KR101827046B1 - 모션 센서 데이터에 기초한 3d 모델들을 계산하도록 구성된 이동 디바이스 - Google Patents
모션 센서 데이터에 기초한 3d 모델들을 계산하도록 구성된 이동 디바이스 Download PDFInfo
- Publication number
- KR101827046B1 KR101827046B1 KR1020147019346A KR20147019346A KR101827046B1 KR 101827046 B1 KR101827046 B1 KR 101827046B1 KR 1020147019346 A KR1020147019346 A KR 1020147019346A KR 20147019346 A KR20147019346 A KR 20147019346A KR 101827046 B1 KR101827046 B1 KR 101827046B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- mobile device
- model
- camera
- movement
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/564—Depth or shape recovery from multiple images from contours
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/207—Image signal generators using stereoscopic image cameras using a single 2D image sensor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
특정 방법은, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을, 적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 결정하는 단계를 포함한다. 그 방법은 또한, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지, 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지, 그리고 이동 디바이스의 이동에 기초하여, 오브젝트의 3차원 (3D) 모델을 계산하는 단계를 포함한다.
Description
관련 출원에 대한 상호 참조
본원은 2012년 1월 26일자로 출원된 U.S. 특허 가출원 번호 제 61/591,196 호 및 2012년 11월 9일자로 출원된 U.S. 특허 정규출원 번호 제 13/673,681 호의 혜택을 주장하며, 그들의 개시는 전부 참조에 의해 여기에 원용된다.
기술분야
본 개시는 일반적으로 오브젝트들의 3차원 (3D) 모델들을 생성하는 것에 관한 것이다.
기술 진보의 결과로 컴퓨팅 디바이스들은 더 작고 더 강력해졌다. 예를 들면, 작고, 경량이며 사용자에 의해 용이하게 휴대되는, 휴대 무선 전화기, PDA (personal digital assistant), 및 페이징 디바이스들과 같은 무선 컴퓨팅 디바이스들을 포함한, 다양한 휴대 개인 컴퓨팅 디바이스들이 현재 존재한다. 더 상세하게는, 휴대 무선 전화, 이를테면 셀룰러 전화기 및 IP (internet protocol) 전화기는 무선 네트워크 상에서 음성 및 데이터 패킷들을 통신할 수 있다. 또한, 그러한 무선 전화기들은, 인터넷에 액세스하기 위하여 사용될 수 있는, 웹 브라우저 애플리케이션과 같은 소프트웨어 애플리케이션들을 포함한, 실행가능한 명령들을 프로세싱할 수 있다. 그래서, 이들 무선 전화기들은, 현저한 계산 능력을 포함할 수 있고, 3차원 (3D) 오브젝트 (object) 들의 그래픽스 프로세싱이 가능할 수도 있다.
오브젝트의 3차원 (3D) 모델은 오브젝트의 멀티뷰 이미지 (multi-view image) 들 (예를 들어, 상이한 각도 및/또는 위치로부터 하나 이상의 카메라들에 의해 취해진 오브젝트의 다수의 뷰들) 에 기초하여 생성될 수도 있다. 3D 모델들은 무선 디바이스의 사용자에게 유용하고 흥미로운 정보를 제공할 수도 있고 전반적인 사용자 체험을 향상시킬 수도 있다. 3D 재구성 (3D reconstruction) 은, 보안, 감시 및 로보틱스 (robotics) 에서 사용될 수도 있다. 또한, 3D 재구성은 내비게이션 목적을 위한 또는 가상 투어 생성을 위한 빌딩들의 모델들을 개발하는데 사용될 수도 있다. 게다가, 파괴되었을 수도 있는 오브젝트들이 (예를 들어, 박물관에서) 재구성 및 보존될 수도 있다.
요약
무선 디바이스의 멀티뷰 프로세싱에서 모션 규칙화된 오브젝트 재구성 (motion regularized object reconstruction) 의 시스템 및 방법이 개시된다. 개시된 실시형태들은, 하나 이상의 모션 센서들에 의해 제공된 무선 디바이스의 모션 정보를 이용하여, 하나 이상의 3D 재구성 기법들과 관련해 3차원 (3D) 모델 (예를 들어, 3D 구조) 를 생성하는 복잡성을 감소시킨다.
특정 예에 따르면, 피쳐 포인트 기반 (feature point-based) 재구성 기법 (예를 들어, 번들 조정 기법) 이 모션 센서 데이터와 관련해 사용되어 3D 모델을 산출한다. 일부 접근법들에 따르면, 번들 조정 (bundle adjustment) 은 " 하기 수식에 대한 "최대 우도 해" (maximum likelihood solution) 이다 : 식중 Pi 는 카메라의 i번째 투영 매트릭스 (즉, 카메라에 의해 취해지고 i번째 이미지 상에 투영되는 오브젝트의 피쳐 포인트들의 표현) 이고, 식중 X j 는 오브젝트의 j번째 피쳐 포인트이고, 식중 x i j 는 i번째 이미지에서 j번째 피쳐 포인트의 좌표들이고, 식중 d(·) 는 거리 함수를 나타내는데, 이는 아래에서 더 설명된다. 오브젝트의 피쳐 포인트들은, 오브젝트의 3D 모델을 생성하는데 중요할 수도 있는 오브젝트의 부분들 (예를 들어, 오브젝트에 있는 코너들, 오브젝트에 있는 커브들, 오브젝트의 에지들 등) 을 포함한다. 예를 들어, 피쳐 포인트들은, 머그잔의 핸들, 머그잔의 그래픽스 패턴의 코너, 텍스트를 포함하는 머그잔의 부분들, 및 머그잔의 기부를 포함할 수도 있다.
번들 조정 기법의 적어도 하나의 사용에 따르면, 카메라의 초기 위치로부터 후속 위치로의 카메라의 위치 및 배향을 추정하는, 초기 (예를 들어, i = 1) 및 후속 (예를 들어, i = 2, 3, … , n) 투영 매트릭스 P i 가 추정된다. 오브젝트의 피쳐 포인트들 X j 이 추정되고, 카메라에 의해 캡처된 오브젝트의 다수의 이미지들에서 피쳐 포인트들 x i j 의 좌표들도 추정된다. 그 번들 조정 해 (bundle adjustment solution) 는, 추정될 많은 수의 파라미터들 때문에 크고 계산 집중적인 문제를 초래할 수도 있다. 따라서, 번들 조정 해는 계산적으로 부담이 크고, 프로세서 리소스들에 부담을 지게 할 수도 있다.
본 개시의 적어도 하나의 실시형태에 따르면, 번들 조정 기법의 복잡성은 모션 센서 데이터를 사용하여 P i+1 (또는 P i+1 의 추정치) 를 결정함으로써 감소될 수도 있다. 예를 들어, 번들 조정 복잡성은, 하기 수식에 따라 감소될 수도 있다: 단 P i+1 =[R i |T i ]P i 이고, 여기서 R i 및 T i 는 각각 회전 및 병진 매트릭스이고 [R i |T i ] 는 무선 디바이스의 하나 이상의 센서들에 의해 이루어진 측정에 기초한 무선 디바이스와 연관된 상대 포즈 매트릭스 (relative pose matrix) 이다. 따라서, 적어도 하나의 i번째+1 투영 매트릭스는 하나 이상의 모션 센서들에 의해 제공된 무선 디바이스의 모션 정보로부터 도출될 수도 있고, 번들 조정 기법을 통해 반복적으로 추정될 필요가 없으며, 이는 전반적인 복잡성을 감소시킨다.
또 다른 특정 예에 따르면, 모션 센서 측정들이, 실루엣 기반 3D 오브젝트 (예를 들어, 비주얼 헐 (visual hull) 기법) 을 사용하여 생성된 3D 오브젝트) 를 생성하기 위해 카메라 로케이션 정보를 도출하는데 사용된다. 모션 센서 측정들을 사용함으로써, 실루엣 기반 3D 모델들이 이동 디바이스 (예를 들어, "고정" 또는 미리결정된 로케이션과 연관되지 않은 디바이스) 에 의해 효과적으로 생성될 수 있다.
특정 실시형태에서, 방법은, 이동 디바이스의 카메라에서, 이동 디바이스가 제 1 위치에 있는 동안 오브젝트의 제 1 이미지를 캡처하는 단계, 및 이동 디바이스가 제 2 위치에 있는 동안 오브젝트의 제 2 이미지를 캡처하는 단계를 포함한다. 그 방법은, 이동 디바이스의 적어도 하나의 모션 센서에 의해 출력된 데이터에 기초하여, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하는 단계를 포함한다. 그 방법은 또한, 제 1 이미지, 제 2 이미지, 및 이동 디바이스의 결정된 이동에 기초하여 오브젝트의 3차원 (3D) 모델을 계산하는 단계를 포함한다.
특정 실시형태에서, 장치는, 제 1 위치에 있는 동안 오브젝트의 제 1 이미지를 캡처하고 제 2 위치에 있는 동안 오브젝트의 제 2 이미지를 캡처하도록 구성된 카메라를 포함한다. 장치는 적어도 하나의 모션 센서, 프로세서, 및 프로세서에 의해 실행가능한 명령들을 저장하는 메모리를 포함한다. 명령들은, 적어도 하나의 모션 센서에 의해 출력된 데이터에 기초하여, 제 1 위치로부터 제 2 위치로의 카메라의 이동을 결정하고, 제 1 이미지, 제 2 이미지, 및 카메라의 결정된 이동에 기초하여 오브젝트의 3차원 (3D) 모델을 계산하도록 실행가능하다.
특정 실시형태에서, 적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하는 단계를 포함한다. 그 방법은 또한, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지에 기초하여, 또한 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 이동 디바이스의 이동에 기초하여, 오브젝트의 3차원 (3D) 모델을 계산하는 단계를 포함한다.
특정 실시형태에서, 장치는, 모션을 감지하는 적어도 하나의 수단으로부터 수신된 데이터에 기초하여, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하는 수단을 포함한다. 그 장치는 또한, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지에 기초하여, 또한 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 이동 디바이스의 이동에 기초하여, 오브젝트의 3차원 (3D) 모델을 계산하는 수단을 포함한다.
특정 실시형태에서, 컴퓨터 판독가능 비일시적 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하게 하는 명령들을 포함한다. 그 명령들은 또한, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지에 기초하여, 또한 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 이동 디바이스의 이동에 기초하여, 오브젝트의 3차원 (3D) 모델을 계산하도록 실행가능하다.
본 발명의 다른 양태들, 이점들 및 특징들은 다음 섹션들, 즉 도면의 간단한 설명, 상세한 설명 및 청구항들을 포함한, 본원 전체의 검토 후 분명해질 것이다.
도 1은, 모션 센서 데이터에 기초한 3D 모델을 계산하도록 구성된 이동 디바이스를 포함하는 시스템의 특정 실시형태의 도면이고;
도 2는 도 1의 이동 디바이스의 특정 예시적 실시형태의 도면이고;
도 3은 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고;
도 4는 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고;
도 5는, 모션 센서 데이터에 기초한 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 6은, 모션 센서 데이터에 기초한 3D 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 흐름도이고;
도 7은, 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 8은, 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 9는, 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 흐름도이고;
도 10은, 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스는 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하도록 구성되고;
도 11은, 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스는 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하도록 구성된다.
도 2는 도 1의 이동 디바이스의 특정 예시적 실시형태의 도면이고;
도 3은 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고;
도 4는 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고;
도 5는, 모션 센서 데이터에 기초한 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 6은, 모션 센서 데이터에 기초한 3D 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 흐름도이고;
도 7은, 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 8은, 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도이고;
도 9는, 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 흐름도이고;
도 10은, 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스는 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하도록 구성되고;
도 11은, 도 1의 이동 디바이스의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스는 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하도록 구성된다.
도 1을 참조하면, 시스템의 특정 실시형태의 도면이 개시되고 일반적으로 100으로 표기된다. 시스템 (100) 은, 오브젝트 (130) 와 같은 하나 이상의 오브젝트들의 하나 이상의 이미지들 (예를 들어, 제 1 이미지 (120) 및 제 2 이미지 (122)) 를 캡처하도록 구성된 카메라 (108) 를 포함하는 이동 디바이스 (102) 를 포함한다. 이동 디바이스 (102) 는 하나 이상의 모션 센서들 (104), 하나 이상의 저장 디바이스 (106), 및 3D 모델러 (110) 를 더 포함한다. 3D 모델러 (110) 는, 하드웨어를 사용하여, 컴퓨터 판독가능 유형의 매체에 저장된 프로세서 실행가능 명령들을 사용하여 또는 이들의 조합에 의해 구현될 수도 있는데, 이는 아래에서 더 설명된다. 하나 이상의 모션 센서들 (104) 은, 하나 이상의 전기, 기계, 전기기계, 또는 다른 센서들, 이를테면 자이로스코프, 가속도계, 다른 모션 센서 디바이스들 또는 이들의 조합을 포함할 수도 있다.
오브젝트 (130) 는, 하나 이상의 피쳐 포인트 (feature point) 들, 이를테면, 오브젝트 (130) 의 정점, 오브젝트 (130) 의 기부, 오브젝트 (130) 의 핸들, 오브젝트 (130) 의 텍스트 또는 그래픽스, 오브젝트 (130) 의 커브, 오브젝트 (130) 의 하나 이상의 다른 구분되는 부분들, 또는 이들의 임의의 조합을 포함할 수도 있다. 도 1은, 이동 디바이스가 2개의 위치들에 있을 때 카메라 (108) 에 의해 캡처되는 오브젝트 (130) 의 2개 이미지들 (120, 122) 을 도시하지만, 이동 디바이스 (102) 의 다수의 위치들에 대응하는 오브젝트 (130) 의 다수의 이미지들이 카메라 (108) 에 의해 캡처될 수도 있다는 것에 유의해야 한다.
카메라 (108) 는, (예를 들어, 초기 위치에 대한 또는 좌표 시스템에 대한 상이한 각도 및/또는 회전들에서) 이동 디바이스 (102) 의 다수의 위치들에서 오브젝트 (130) 의 이미지들을 캡처하도록 구성될 수도 있다. 예를 들어, 카메라 (108) 는, 이동 디바이스 (102) (및 카메라 (108)) 가 제 1 위치에 있을 때 오브젝트 (130) 의 제 1 이미지 (120) (예를 들어, 오브젝트 (130) 의 제 1 뷰 (140)), 및 이동 디바이스 (102) (및 카메라 (108)) 가 제 2 위치에 있을 때 오브젝트 (130) 의 제 2 이미지 (122) (예를 들어, 오브젝트 (130) 의 제 2 뷰 (150)) 를 캡처할 수도 있다. 적어도 하나의 실시형태에서, 제 1 뷰 (140) 및 제 2 뷰 (150) 에 대응하는 이미지 데이터는 하나 이상의 저장 디바이스 (106) 에 저장될 수도 있다.
하나 이상의 모션 센서들 (104) 은, 이동 디바이스 (102) 의 위치 (예를 들어, 이동 디바이스 (102) 의 초기 위치에 대한 또는 좌표 시스템에 대한 이동 디바이스 (102) 의 회전 및/또는 병진) 를 나타내는 모션 센서 데이터를 생성하도록 구성될 수도 있다. 예를 들어, 하나 이상의 모션 센서들 (104) 은, 제 1 이미지 (120) 를 캡처하는 카메라 (108) 와 동시에 모션 센서 데이터 (112) 를 생성하도록 구성될 수도 있다. 또 다른 예로서, 하나 이상의 모션 센서들 (104) 은, 제 2 이미지 (122) 를 캡처하는 카메라 (108) 와 동시에 모션 센서 데이터 (114) 를 생성하도록 구성될 수도 있다. 적어도 하나의 실시형태에서, 이동 디바이스 (102) 는, 모션 센서 데이터 (112, 114) 를 사용하여 또한 이미지들 (120, 122) 에 관한 이미지 데이터를 사용하여 오브젝트 (130) 의 3D 모델 (116) 을 생성하기 위해 3D 모델러 (110) 를 사용하는데, 이는 아래에서 더 설명된다.
동작 동안, 이동 디바이스 (102) 는 카메라 (108) 의 제 1 뷰 (140) 에 기초하여 카메라 (108) 를 통해 오브젝트 (130) 의 제 1 이미지 (120) 를 캡처할 수도 있다. 이동 디바이스 (102) 는 (예를 들어, 이동 디바이스 (102) 의 사용자의 이동에 기인하여) 제 2 위치로 이동할 수도 있고, 카메라 (108) 의 제 2 뷰 (150) 에 기초하여 카메라 (108) 를 통해 오브젝트 (130) 의 제 2 이미지 (122) 를 캡처할 수도 있다. 이동 디바이스 (102) 의 하나 이상의 모션 센서들 (104) 은, 제 1 위치로부터 제 2 위치로의 이동 디바이스 (102) 의 이동의 결정을 가능하게 하는, 이동 디바이스 (102) 의 모션 정보에 대응하는 모션 센서 데이터 (112, 114) 를 출력할 수도 있다. 모션 센서 데이터 (112, 114) 는 이동 디바이스 (102) 의 회전 및 병진 운동을 나타낼 수도 있다.
예시하자면, 이동 디바이스 (102) 가 제 1 위치에 있을 때, 3D 모델러 (110) 는 제 1 이미지 (120) 에 대응하는 데이터를 수신할 수도 있고 또한 하나 이상의 모션 센서들 (104) 에 의해 출력된 모션 센서 데이터 (112) 를 수신할 수도 있다. 마찬가지로, 이동 디바이스 (102) 가 제 2 위치에 있을 때, 3D 모델러 (110) 는 제 2 이미지 (122) 에 대응하는 데이터를 수신할 수도 있고 또한 하나 이상의 모션 센서들 (104) 에 의해 출력된 모션 센서 데이터 (114) 를 수신할 수도 있다. 모션 센서 데이터 (114) 는, 제 1 위치로부터 제 2 위치로의 이동 디바이스 (102) 의 이동 정보를 나타낼 수도 있다. 예를 들어, 모션 센서 데이터 (114) 는, 제 1 위치로부터 제 2 위치로의 이동 디바이스 (102) 의 회전 및 병진과 연관된 이동 디바이스 (102) 의 회전 및 병진 매트릭스들을 포함할 수도 있다. 또 다른 예로서, 모션 센서 데이터 (112, 114) 는 이동 디바이스 (102) 의 회전 및 병진 매트릭스들의 생성을 가능하게 하는 정보를 제공할 수도 있다. 모션 센서 데이터 (112, 114) 는 하나 이상의 모션 센서들 (104) 로부터 획득된 "카메라 포즈" 매트릭스를 포함하거나 또는 나타낼 수도 있는데, 이는 아래에서 더 설명된다.
예시의 목적으로, 모션 센서 데이터 (112, 114) 및 이미지들 (120, 122) 에 대응하는 데이터를 사용하여 오브젝트 (130) 의 3D 모델 (116) 을 생성하는 3D 모델러 (110) 의 비한정적인 예시적인 동작이 제공된다. 특정 예에서, 3D 모델러 (110) 가, 하나 이상의 모션 센서들 (104) 에 의해 제공되는 모션 센서 데이터 (114) 에 기초하여 번들 조정 수식 을 산출함으로써 3D 모델 (116) 을 생성하도록 구성된다. 그러한 실시형태에 따라 그리고 아래에서 더 설명되는 바처럼, 3D 모델러 (110) 는 산출에 기초하여 오브젝트 (130) 의 3D 피처 포인트들을 출력할 수도 있다. 출력 3D 피쳐 포인트들은 오브젝트 (130) 의 3D 모델에 대응한다. 특정 실시형태에서, 번들 조정 수식을 계산하는 단계는, 제 1 추정 재투영 이미지 포인트, 제 2 추정 재투영 이미지 포인트, 및 하나 이상의 모션 센서들 (104) 에 의해 출력된 데이터의 함수에 기초하여 오브젝트 (130) 의 피쳐 포인트들을 결정하는 단계를 포함할 수도 있다. 예를 들어, 번들 조정 수식을 계산하는 단계는, 제 1 위치의 제 1 추정 (즉, P 1 ) 및 오브젝트 (130) 의 하나 이상의 피쳐 포인트들 (X j ) 의 곱 (즉, P 1 X j 를 계산하는 것) 에 기초하여 오브젝트 (130) 의 제 1 추정 재투영 이미지 포인트를 결정하는 단계를 포함할 수도 있다. 번들 조정 수식을 계산하는 단계는 또한, 제 2 위치의 제 2 추정 (즉, P 2 ) 및 오브젝트 (130) 의 하나 이상의 피쳐 포인트들 (X j ) 의 곱 (즉, P 2 X j 를 계산하는 것) 에 기초하여 오브젝트의 제 2 추정 재투영 이미지 포인트를 결정하는 단계를 포함할 수도 있다. 번들 조정 수식을 계산하는 단계는 또한, 제 1 이미지 (120) 에서 오브젝트 (130) 의 좌표들과 제 1 추정 재투영 이미지 포인트 사이의 제 1 유클리드 거리 (Euclidean distance) 의 제곱을 결정하는 단계 (즉, d(P 1 X j ,x 1 j ) 2 를 계산하는 단계) 및 제 2 이미지 (122) 에서 오브젝트 (130) 의 좌표들과 제 2 추정 재투영 이미지 포인트 사이에 제 2 유클리드 거리의 제곱을 결정하는 단계 (즉, d(P 2 X j ,x 2 j ) 2 를 계산하는 단계) 를 포함할 수도 있다. 번들 조정 수식을 계산하는 단계는, 제 1 유클리드 거리의 제곱과 제 2 유클리드 거리의 제곱의 합을 감소 또는 최소화 (즉, d(P 1 X j ,x 1 j ) 2 + d(P 2 X j ,x 2 j ) 2 를 "최소화") 하기 위하여 3D 모델 (116) 의 추정치를 변경하는 단계를 포함할 수도 있다. 제 1 위치의 제 1 추정치 P 1 는 또한 제곱들의 합을 더 감소시키기 위하여 변경될 수도 있다. 하지만, 제 2 위치의 제 2 추정치 P 2 는 P i+1 =βP i 가 되도록 제한되고, 여기서 β 는 카메라 포즈 정보, 이를테면 회전 매트릭스 R 및/또는 변환 매트릭스 T 를 나타낸다. 예를 들어, 적어도 하나의 실시형태에서, β=[R i |T i ] 이다. P 2 ...P n 를 제한함으로써, 피쳐 포인트들을 생성하는 복잡성이 현저히 감소될 수도 있다. 유클리드 거리 함수가 이전의 예들과 관련해 보여졌지만, 다른 거리 함수들이 이용될 수도 있다는 것에 유의해야 한다. 예를 들어, d(·) 는, 거리 함수, 이를테면 지오메트리 거리 또는 이미지들에서 측정된 피쳐 좌표들과 투영된 피쳐 좌표들 사이의 차이 또는 거리를 측정하는 임의의 다른 메트릭을 나타낼 수도 있다.
카메라 포즈 정보는 다양한 기법들에 따라 결정될 수도 있다. 예시하자면, 하나 이상의 피쳐 포인트들 X j 중 적어도 하나가, 카메라 (108) 에 의해 캡처된 N개 이미지들 (예를 들어, 제 1 이미지 (120) 및 제 2 이미지 (122)) 에서 "매칭" (예를 들어, 식별) 된다고 가정한다. 매칭된 피쳐 포인트들은 mi 로서 표기될 수도 있고, 여기서 mi = [xi,yi,1]T, 단 (i = 1,... N). 매칭된 피쳐 포인트 mi 는 공간 위치 M = [X Y Z 1]T와 연관된다. 따라서, 스케일링 팩터 μ i 에 대해, μ i [x i , y i , 1] T = P i M, 단 i = 1, ..., N ≥ 2 , 여기서 P i =K i [R i |T i ] 는 i번째 카메라 투영 매트릭스이고 K i 는 이동 디바이스 (102) 의 i번째 카메라의 상부 삼각형 교정 매트릭스 (예를 들어, 3x3 상부 삼각형 교정 매트릭스) 이며, 단 i = 1, ..., N (예를 들어, 예시의 명료성을 위해 도 1로부터 생략된 카메라 (108) 의 멀티 카메라 실시형태의 경우) 이다. 상부 삼각형 교정 매트릭스 K i 는 동일 카메라로 캡처된 이미지들에 대해 동일할 수도 있다 (예를 들어, 카메라 (108) 가 N개 이미지들의 각각을 캡처하는데 사용될 때, 이를테면, 이동 디바이스 (102) 의 단일 카메라 실시형태의 경우). [R i |T i ] 는 i번째 카메라와 연관된 상대 포즈 매트릭스일 수도 있다. 따라서,
여기서, p j i 는 i번째 카메라의 투영 매트릭스의 j번째 로우 (row) 이고 AM = 0 은 3개의 미지수 (X, Y, Z) 를 갖는 2N 동차 방정식의 세트일 수도 있다. 모든 카메라 투영 매트릭스들이 알려질 수도 있고 N은 2 이상일 수도 있으므로, 방정식은 최소 자승해 (least squares solution) 를 가질 수도 있고, 이는 대수 재투영 오차 (algebraic reprojection error) 의 "최소화" 를 가능하게 할 수도 있다.
이전의 설명에 따른 번들 조정 기법은 카메라 포즈 데이터 (예를 들어, 모션 센서 데이터 (112, 114)) 를 이용하여 3D 모델 (116) 의 단순화되고 계산적으로 능률적인 결정을 가능하게 할 수도 있다. 종래 접근법들 (예를 들어, 모션 센서 정보를 이용하지 않는 번들 조정 산출들) 은, 다음과 같은 지오메트릭 오차를 "최소화" 하기 위한 비선형 해를 획득하는 것에 의해서와 같은, 계산 집중적인 "최소 자승 해" 를 필요로 할 수도 있다:
도 2는 이동 디바이스 (102) 의 특정 예시적 실시형태를 도시한다. 도 2의 이동 디바이스 (102) 는 하나 이상의 모션 센서들 (104), 하나 이상의 저장 디바이스 (106), 카메라 (108), 및 3D 모델러 (110) 를 포함한다.
도 2의 구체적인 실시형태에서, 하나 이상의 저장 디바이스들 (106) 이, 3D 모델 (116) 을 생성하기 위하여 3D 모델러 (110) 에 의해 사용될 3D 재구성 데이터 (202) 를 저장한다. 3D 재구성 데이터 (202) 는 모센 센서 데이터 (112, 114) 를 포함할 수도 있고, 도 1의 제 1 이미지 (120) 및 도 1의 제 2 이미지 (122) 에 각각 대응하는 제 1 이미지 데이터 (220) 및 제 2 이미지 데이터 (222) 를 더 포함할 수도 있다. 3D 모델 (116) 은 (도 2에 미도시된) 이동 디바이스 (102) 의 디스플레이 상에 디스플레이될 수도 있다.
특정 예시적인 실시형태에 따르면, 도 2의 이미지 데이터 (220, 222) 는 화상 (picture) 들의 시퀀스에 대응하고, 각 화상은 개별적으로 사용자 입력에 응답하여 캡처된다 (예를 들어, 비디오 시퀀스의 부분이 아닌 사용자에 의해 "수동적으로" 캡처된 "스틸" 또는 "스냅샷" 화상들). 적어도 하나의 실시형태에서, 도 2의 예는, 카메라 (108) 를 사용하여 사용자에 의해 캡쳐된 스틸 화상에 기초하여, 사용자로 하여금 3D 모델 (116) 과 같은 3D 모델들을 생성할 수 있게 하는 이동 디바이스 (102) 의 애플리케이션과 관련하여 사용될 수도 있다. 추가적인 실시형태들에 따라 그리고 아래에서 더 논의되는 바처럼, 이미지 데이터 (220, 222) 는 (예를 들어, "자동적으로" 주기적으로 캡처되는 순차적인 스틸 이미지들인) 비디오 프레임 시퀀스의 비디오 프레임들에 대응할 수도 있다.
도 3은 도 1을 참조하여 설명된 이동 디바이스 (102) 의 또 다른 특정 예시적 실시형태를 도시한다. 도 3의 이동 디바이스 (102) 는 하나 이상의 모션 센서들 (104), 하나 이상의 저장 디바이스 (106), 카메라 (108), 3D 모델러 (110) 및 디스플레이 (320) 를 포함한다. 도 3의 3D 모델러 (110) 는 싱크로나이저 (synchronizer; 308) 를 포함한다. 도 3의 하나 이상의 저장 디바이스들 (106) 은 모션 센서 데이터 버퍼 (306) 및 비디오 프레임 버퍼 (304) 를 포함한다. 선택적으로, 도 3의 이동 디바이스 (102) 는 메인 메모리 (310) 를 포함할 수도 있다.
동작시, 카메라 (108) 는 비디오 프레임 시퀀스 (302) 를 캡처할 수도 있다. 비디오 프레임 버퍼 (304) 는 카메라 (108) 에 응답하고 비디오 프레임 시퀀스 (302) 의 하나 이상의 비디오 프레임들을 저장하도록 구성될 수도 있다. 예를 들어, 도 3의 예에서, 이미지 데이터 (220, 222) 는 비디오 프레임 시퀀스 (302) 의 비디오 프레임들에 대응한다. 모션 센서 데이터 버퍼 (306) 는 하나 이상의 모션 센서들 (104) 에 응답할 수도 있다. 모션 센서 데이터 버퍼 (306) 는 모션 센서 데이터 (112, 114) 를 저장할 수도 있다.
싱크로나이저 (308) 는 모션 센서 데이터 버퍼 (306) 로부터의 데이터에 관하여 비디오 프레임 버퍼 (304) 로부터 데이터를 동기화할 수도 있다. 예를 들어, 싱크로나이저 (308) 는 제 1 모션 센서 데이터 (112) 와 제 1 이미지 데이터 (220) 를 동기화할 수도 있고, 또한 제 2 모션 센서 데이터 (114) 와 제 2 이미지 데이터 (222) 를 동기화할 수도 있다. 적어도 제 1 기법에 따르면, 싱크로나이저 (308) 는, 타임스탬프들을 비교하여, 이를테면 모션 센서 데이터 (112, 114) 와 연관된 타임스탬프들과 이미지 데이터 (220, 222) 와 연관된 타임스탬프들을 비교하여, 모션 센서 데이터 버퍼 (306) 로부터의 데이터에 대해 비디오 프레임 버퍼 (304) 로부터의 데이터를 동기화한다. 적어도 제 2 기법에 따르면, 싱크로나이저 (308) 는 모션 센서 데이터 버퍼 (306) 로부터 그리고 비디오 프레임 버퍼 (304) 로부터 데이터에 주기적으로 액세스한다. 적어도 제 3 기법에 따르면, 싱크로나이저 (308) 는 이동 디바이스 (102) 의 이동에 응답하고 (예를 들어, 하나 이상의 모션 센서들 (104) 에 응답하고), 검출된 모션에 응답하여 모션 센서 데이터 버퍼 (306) 로부터 그리고 비디오 프레임 버퍼 (304) 로부터 데이터를 인출한다. 추가의 기법들은, 제 1 기법, 제 2 기법 및 제 3 기법들 중 하나 이상의 조합을 이용할 수도 있다. 선택적으로, 비디오 프레임 버퍼 (304) 에 의해 출력된 데이터는, 비디오 프레임 시퀀스 (302) 를 포함하는 비디오 파일 (312) 로서 메인 메모리 (310) 에 저장될 수도 있다.
이해될 바처럼, 메인 메모리 (310) 대신에 "임시" 저장부 (예를 들어, 도 3의 비디오 프레임 버퍼 (304) 및 모션 센서 데이터 버퍼 (306)) 로부터 데이터를 인출함으로써, 3D 모델러 (110) 는 "온 더 플라이 (on the fly)" 로 동작할 수도 있다. 예를 들어, 3D 모델러 (110) 는 3D 모델 (116) 을 생성할 수도 있고 이동 디바이스 (102) 는, 캡처되는 비디오 프레임 시퀀스 (302) 와 동시에 또는 실질적으로 동시에 디스플레이 (320) 상에 3D 모델 (116) 을 디스플레이할 수도 있다. 여기에 사용된, "온 더 플라이", "동시에" 및 "실질적으로 동시에" 는, 동시적인 것으로서 사용자가 인지할 수도 있는 오브젝트의 3D 모델의 생성과 캡처된 오브젝트의 뷰 사이의 관계를 지칭한다.
따라서, 도 3과 관련해 예시된 예는 3D 모델 (116) 의 "온 더 플라이" 생성에 대응할 수도 있다. 예를 들어, 사용자가 오브젝트 (이를테면, 도 1의 오브젝트 (130)) 에 관하여 이동 디바이스 (102) 를 이동시킴에 따라, 3D 모델러 (110) 는 3D 모델 (116) 을 "자동적으로" 렌더링할 수도 있고, 이는 사용자 이동과 동시에 디스플레이 (320) 상에 디스플레이된다. 추가적인 실시형태들에 따라 그리고 아래에서 더 논의되는 바처럼, 하나 이상의 실시형태들은, 모션 센서 데이터 및 비디오 프레임 시퀀스에 기초하여 3D 모델들의 비동시 생성을 가능하게 할 수도 있다.
도 4는 도 1을 참조하여 설명된 이동 디바이스 (102) 의 또 다른 특정 예시적 실시형태를 도시한다. 도 4의 이동 디바이스 (102) 는 하나 이상의 모션 센서들 (104), 하나 이상의 저장 디바이스 (106), 카메라 (108), 3D 모델러 (110), 비디오 프레임 버퍼 (304) 및 디스플레이 (320) 를 포함한다.
동작시, 하나 이상의 모션 센서들 (104) 은, 모션 센서 데이터 (112, 114) 를 생성할 수도 있고, 이는 하나 이상의 저장 디바이스 (106) 에 저장될 수도 있다. 카메라 (108) 는 비디오 프레임 시퀀스 (302) 를 캡처할 수도 있고, 이는, 비디오 프레임 버퍼 (304) 에 일시적으로 저장되고, 이를테면 비디오 프레임 시퀀스 (302) 와 연관된 "프리뷰" 피쳐와 관련해, 디스플레이 (320) 에 디스플레이될 수도 있다. 예를 들어, 비디오 프레임 시퀀스 (302) 는, 비디오 프레임 시퀀스 (302) 가 하나 이상의 저장 디바이스들 (106) 에 (예를 들어, 이미지 데이터 (220, 222) 로서) 저장되기 전에 및/또는 3D 모델러 (110) 가 3D 모델 (116) 을 생성하기 전에, 디스플레이 (320) 에 디스플레이될 수도 있다.
따라서, 도 4의 특정 실시형태에서, 3D 모델러는 "포스트-프로세싱" 기법에 따라 3D 모델 (116) 을 생성할 수도 있다. 예를 들어, 3D 모델 (116) 은 카메라 (108) 에 의해 캡처되는 비디오 프레임 시퀀스 (302) 와 동시에 생성 및 디스플레이되지 않을 수도 있으므로, 디스플레이 (320) 는 대신에 카메라 (108) 에 의해 캡처되는 이미지들의 "프리뷰" 를 보여줄 수 있다. 또한, 디스플레이 (320) 는 카메라 배치 (예를 들어, 뷰잉되는 오브젝트에 대해 카메라가 유지될 위치 및/또는 각도) 를 위한 사용자 명령들을 디스플레이할 수도 있다. 3D 모델 (116) 은 그 후에, 도 3과 관련해 설명된 메인 메모리 (310) 와 같은 "메인 메모리" 일 수도 있는 하나 이상의 저장 디바이스들 (106) 에 액세스함으로써 3D 모델러 (110) 에 의해 생성될 수 있다.
도 5를 참조하면, 일반적으로 500 로 표기되는 모션 센서 데이터에 기초한 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 도면이 개시되어 있다. 방법 (500) 은, 502에서 이동 디바이스가 제 1 위치에 있는 동안 오브젝트의 제 1 이미지를, 이동 디바이스의 카메라에서, 캡처하는 단계, 및 504에서 이동 디바이스가 제 2 위치에 있는 동안 오브젝트의 제 2 이미지를 캡처하는 단계를 포함한다. 예를 들어, 카메라 (108) 는, 이동 디바이스 (102) 가 제 1 위치에 있는 동안 오브젝트 (130) 의 제 1 이미지 (120) 를 캡처할 수도 있고 카메라 (108) 는 이동 디바이스 (102) 가 제 2 위치에 있는 동안 오브젝트 (130) 의 제 2 이미지 (122) 를 캡처할 수도 있다. 제 1 이미지 (120) 는, 제 1 위치에 있는 동안 카메라 (108) 에 의해 캡처되는 오브젝트 (130) 의 제 1 뷰 (140) 에 대응할 수도 있고, 제 2 이미지 (122) 는, 제 2 위치에 있는 동안 카메라 (108) 에 의해 캡처되는 오브젝트 (130) 의 제 2 뷰 (150) 에 대응할 수도 있다.
그 방법 (500) 은, 506 에서, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을, 이동 디바이스의 적어도 하나의 모션 센서에 의해 출력된 데이터에 기초하여, 결정하는 단계를 더 포함한다. 예를 들어, 하나 이상의 모션 센서들 (104) 은, 이동 디바이스 (102) 의 모션 정보에 대응하는 모션 센서 데이터 (112, 114) 를 출력할 수도 있다. 특정 실시형태에서, 모션 정보는, 제 1 위치로부터 제 2 위치로의 이동 디바이스 (102) 의 회전 및 병진을 포함할 수도 있다. 예시하자면, 하나 이상의 모션 센서들은, 제 1 위치에 대응하는 이동 디바이스 (102) 의 제 1 회전 및/또는 병진 매트릭스 그리고 제 2 위치에 대응하는 이동 디바이스 (102) 의 제 2 회전 및/또는 병진 매트릭스를 제공할 수도 있다. 적어도 하나의 실시형태에서, 이동 디바이스의 제 1 위치가 "레퍼런스" (reference) 위치로 사용되고, 제 2 위치는 이에 따라 이동 디바이스의 위치의 변화를 나타낸다. 다른 실시형태들에 따르면, 다른 위치 (예를 들어, 이전 위치, 또는 미리결정된 좌표 시스템과 연관된 위치) 가 "레퍼런스" 위치로 사용되고, 제 1 위치 및 제 2 위치 양자 모두는 각각 이동 디바이스의 위치의 변화를 나타낸다.
그 방법 (500) 은 또한, 508 에서, 제 1 이미지, 제 2 이미지, 및 이동 디바이스의 결정된 이동에 기초하여 오브젝트의 3D 모델을 계산하는 단계를 포함한다. 예를 들어, 피쳐 포인트 기반 재구성 기법에 따라 그리고 적어도 도 1을 참조하여 설명되는 바처럼, 3D 모델러 (110) 는 제 1 이미지 (120) 및 제 2 이미지 (122) 에 기초하여 오브젝트 (130) 의 피쳐 포인트들을 계산할 수도 있다. 특정 예에서, 3D 모델러 (110) 가, 하나 이상의 모션 센서들 (104) 에 의해 제공되는 모션 센서 데이터 (114), 제 1 이미지 (120) 및 제 2 이미지 (122) 에 기초하여 번들 조정 수식을 산출하도록 구성될 수도 있다. 추가 실시형태에 따라 그리고 아래에서 더 설명되는 바처럼, 3D 모델은 실루엣 기반 기법 (예를 들어, 비주얼 헐 기법) 에 따라 계산될 수도 있다.
도 6을 참조하면, 일반적으로 600 로 표기되는 모션 센서 데이터에 기초한 3차원 (3D) 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 도면이 개시되어 있다. 그 방법 (600) 은, 602 에서, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을, 적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 결정하는 단계를 포함한다. 데이터, 적어도 하나의 모션 센서, 및 이동 디바이스는, 모션 센서 데이터 (112, 114), 하나 이상의 모션 센서들 (104) 및 이동 디바이스 (102) 에 각각 대응할 수도 있다.
그 방법 (600) 은, 604에서, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지에 기초하여, 또한 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 이동 디바이스의 이동에 기초하여, 오브젝트의 3D 모델을 계산하는 단계를 더 포함한다. 예를 들어, 카메라 (108) 는, 이동 디바이스 (102) 가 제 1 위치에 있는 동안 오브젝트 (130) 의 제 1 이미지 (120) 를 캡처할 수도 있고 카메라 (108) 는 이동 디바이스 (102) 가 제 2 위치에 있는 동안 오브젝트 (130) 의 제 2 이미지 (122) 를 캡처할 수도 있다. 제 1 이미지 (120) 는, 제 1 위치에 있는 동안 카메라 (108) 에 의해 캡처되는 오브젝트 (130) 의 제 1 뷰 (140) 에 대응할 수도 있고, 제 2 이미지 (122) 는, 제 2 위치에 있는 동안 카메라 (108) 에 의해 캡처되는 오브젝트 (130) 의 제 2 뷰 (150) 에 대응할 수도 있다.
도 7을 참조하면, 일반적으로 700 로 표기된 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도가 도시된다. 그 방법 (700) 은, 702 에서, 이동 디바이스 (예를 들어, 이동 디바이스 (102)) 의 카메라 (예를 들어, 카메라 (108)) 를 이용하여 오브젝트 (예를 들어, 오브젝트 (130)) 의 이미지들 (예를 들어, 이미지들 (120, 122)) 을 캡처하는 단계를 포함한다.
704에서, 그 방법 (700) 은, 하나 이상의 모션 센서들 (예를 들어, 하나 이상의 모션 센서들 (104)) 을 이용하여 모션 센서 데이터 (예를 들어, 모션 센서 데이터 (112, 114)) 를 결정하는 단계를 포함한다. 706에서, 이미지들의 하나 이상의 피쳐 포인트들이 매칭되고, 708에서, 하나 이상의 매칭된 피쳐들의 각각에 대한 3D 로케이션이 결정된다. 하나 이상의 피쳐 포인트들 및 3D 로케이션들을 하나 이상의 매칭된 피쳐 포인트들의 각각에 대해 결정하는 단계가 임의의 적합한 기법, 이를테면 적어도 도 1을 참조하여 위에서 설명된 번들 조정 기법을 사용하여, 수행될 수 있다.
710에서, 오브젝트의 3D 모델이 하나 이상의 매칭된 피쳐들을 사용하여 (예를 들면, 번들 조정 기법에 따라) 생성된다. 적어도 하나의 실시형태에서, 도 7의 방법 (700) 이 적어도 도 10을 참조하여 후술되는 바처럼 이동 디바이스 (102) 의 프로세서를 사용하여 수행된다.
도 8을 참조하면, 일반적으로 800 로 표기된 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 특정 실시형태를 예시하는 흐름도가 도시된다. 그 방법 (800) 은, 802 에서, 이동 디바이스 (예를 들어, 이동 디바이스 (102)) 의 카메라 (예를 들어, 카메라 (108)) 를 이용하여 오브젝트 (예를 들어, 오브젝트 (130)) 의 이미지들 (예를 들어, 이미지들 (120, 122)) 을 캡처하는 단계를 포함한다.
804에서, 모션 센서 데이터 (예를 들어, 모션 센서 데이터 (112, 114)) 가 이동 디바이스의 하나 이상의 모션 센서들 (예를 들어, 하나 이상의 모션 센서들 (104)) 을 이용하여 결정된다. 806 에서 이미지들의 각각에서 오브젝트의 실루엣이 생성된다. 그 방법 (800) 은, 808 에서 오브젝트의 실루엣 기반 모델을 생성하는 단계 및 810 에서 실루엣 기반 모델에 기초하여 3D 모델을 생성하는 단계를 더 포함한다. 실루엣 기반 재구성 기법의 특정 예가 도 9를 참조하여 설명된다.
도 9을 참조하면, 일반적으로 900 로 표기된 모션 센서 데이터에 기초한 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하는 방법의 또 다른 특정 실시형태를 예시하는 흐름도가 도시된다. 그 방법 (900) 은, 902 에서, 이동 디바이스 (예를 들어, 이동 디바이스 (102)) 에 의해 제 1 뷰의 각 픽셀을 스캔하고 뷰 방향에 기초하여 레이 R 을 투영시키는 단계를 포함한다. 904에서, 레이 R 은 하나 이상의 레퍼런스 이미지들에 투영되고, 인터벌 I 가 이미지들의 각각의 실루엣에 교차하도록 하는 그러한 인터벌 I 가 구해진다.
906 에서, 이동 디바이스의 위치의 (예를 들어, 제 1 위치로부터 제 2 위치로의) 변화를 나타내는 모션 센서 데이터 (예를 들어, 모션 센서 데이터 (112, 114)) 가 적어도 하나의 센서 (예를 들어, 하나 이상의 모션 센서들 (104) 을 통하여) 결정된다. 적어도 하나의 실시형태에서, 906에서 결정된 모션 센서 데이터는 902 에서 레이 R 를 하나 이상의 레퍼런스 이미지들로 투영하는데 사용된다. 그 방법 (900) 은, 908에서, 3D 인터벌 L로서 알려진 카메라 투영 P i 를 사용하여 3D 공간속으로 다시 인터벌 I 를 투영하는 단계를 더 포함한다. 알려진 카메라 투영 P i 는 모션 센서 데이터로부터 도출될 수도 있다. 그 방법 (900) 은, 910 에서, 오버랩되는 L 들로부터 가장 안쪽 (예를 들어, 최단) 교차 Q 를 선택하는 단계를 더 포함하고, 여기서 Q 는 구성될 3D 모델의 표면 포인트들에 대응하는 엔드 포인트들을 갖는 최종 3D 인터벌이다. 임계치 N 미만인 교차 Q 들의 수에 응답하여, 다른 레이 또는 뷰가 914 에서 추가된다. 임계치 N을 만족하는 Q 들의 수에 응답하여, 3D 모델 (예를 들어, 3D 모델 (116)) 이 교차 Q 들을 사용하여 생성된다. 도 8의 방법 (800), 도 9의 방법 (900), 또는 이들의 조합이, 적어도 도 11을 참조하여 후술되는 바처럼 이동 디바이스 (102) 의 프로세서를 사용하여 수행될 수도 있다.
도 10은, 이동 디바이스 (102) 의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스 (102) 는 모션 센서 데이터에 기초한 피쳐 포인트 기반 재구성 기법 (예를 들어, 번들 조정 기법) 에 따라 3D 모델을 계산하도록 구성된다. 도 10의 이동 디바이스 (102) 는, 메모리 (1032) 에, 그리고 하나 이상의 모션 센서들 (104) 에 연결된 프로세서 (1010) 와 같은 프로세서를 포함한다. 하나 이상의 모션 센서들 (104) 은 또한, 메모리 (1032) 에 연결될 수도 있다.
메모리 (1032) 는, 데이터 (예를 들어, 이동 디바이스 (102) 의 모션 데이터), 명령, 또는 이들의 조합을 저장하는 컴퓨터 판독가능 비일시적 매체일 수도 있다. 특정 실시형태에서, 메모리 (1032) 는, 프로세서 (1010) 로 하여금 이동 디바이스 (102) 의 하나 이상의 기능들을 수행하게 하도록 프로세서 (1010) 에 의해 실행가능할 수도 있는 명령들 (1054) 을 포함할 수도 있다. 예를 들어, 명령들 (1054) 은, 사용자 애플리케이션, 운영 시스템, 또는 다른 실행가능한 명령들, 또는 이들의 조합을 포함할 수도 있다. 명령들 (1054) 은, 프로세서 (1010) 로 하여금 여기에 기재된 하나 이상의 동작들을 수행하게 하도록, 이를테면 하나 이상의 모션 센서들 (104) 에 의해 결정되는 모션 센서 데이터 (예를 들어, 모션 센서 데이터 (112, 114)) 에 기초하여 이동 디바이스 (102) 의 이동을 결정하게 하도록 프로세서 (1010) 에 의해 실행가능할 수도 있다. 적어도 하나의 실시형태에서, 메모리 (1032) 는, 도 3을 참조하여 설명된 메인 메모리 (310) 와 같은 "메인 메모리" 이다. 대안적으로 또는 추가적으로, 메모리 (1032) 는, 하나 이상의 저장 디바이스들 (106), 모션 센서 데이터 버퍼 (306), 비디오 프레임 버퍼 (304), 또는 이들의 조합을 포함할 수도 있다.
프로세서 (1010) 는, 3D 모델러 (110) 를 포함할 수도 있다. 예를 들어, 3D 모델러 (110) 는, 프로세서 (1010) 의 하드웨어 컴포넌트, 프로세서 (1010) 에 의해 실행가능한 명령들 (예를 들어, 메모리 (1032) 에 저장된 명령들) 의 세트, 또는 이들의 조합일 수도 있다. 도 10의 특정 실시형태에서, 3D 모델러 (110) 는, 피쳐 포인트 생성기 (1092) 를 포함하고, 이는 피쳐 포인트 기반 재구성 기법과 관련해 오브젝트의 캡처된 이미지들 (예를 들어, 도 1의 제 1 이미지 (120) 및 제 2 이미지 (122)) 의 피쳐 포인트들 (1094) 을 결정할 수도 있다. 3D 모델러 (110) 는, 피쳐 포인트들 (1094) 에 기초하여 3D 모델 (116) 을 생성할 수도 있다.
도 10은, 3D 모델러 (110) 에 의해 프로세싱될 비디오 데이터 및/또는 이미지들 (120, 122) 을 제공할 수도 있는 카메라 제어기 (1090) 에 연결된 카메라 (108) 를 예시한다. 카메라 제어기 (1090) 는 프로세서 (1010) 및 디스플레이 제어기 (1026) 에 연결될 수도 있다. 카메라 (108) 는, 비디오 카메라, 넌 비디오 (non-video) 카메라, 단일 카메라, 멀티 카메라 (예를 들어, 스테레오 카메라) 또는 이들의 조합일 수도 있다.
도 10은 또한, 디스플레이 제어기 (1026) 가 프로세서 (1010) 에 그리고 디스플레이 (320) 에 연결될 수도 있음을 보여준다. 코더/디코더 (코덱) (1034) (예를 들어, 오디오 및/또는 보이스 코덱) 이 프로세서 (1010) 에 연결될 수 있다. 스피커 (1036) 및 마이크로폰 (1038) 이 코덱 (1034) 에 연결될 수도 있다. 도 10은 또한, 무선 제어기 (1040) 가 프로세서 (1010) 에 그리고 무선 안테나 (1042) 에 연결된 트랜시버 (1050) 에 연결될 수도 있다는 것을 나타낸다. 특정 실시형태에서, 프로세서 (1010), 하나 이상의 모션 센서들 (104), 카메라 제어기 (1090), 디스플레이 제어기 (1026), 메모리 (1032), 코덱 (1034), 무선 제어기 (1040), 및 트랜시버 (1050) 가 시스템 인 패키지 (system-in-package) 또는 시스템 온 칩 (system-on-chip) 디바이스 (1022) 에 포함된다.
특정 실시형태에서, 입력 디바이스 (1030) 및 전력 공급부 (1044) 는 시스템 온 칩 디바이스 (1022) 에 연결된다. 또한, 특정 실시형태에서, 그리고 도 10에 예시된 바처럼, 디스플레이 (320), 카메라 (108), 입력 디바이스 (1030), 스피커 (1036), 마이크로폰 (1038), 무선 안테나 (1042), 및 전력 공급부 (1044) 가 시스템 온 칩 디바이스 (1022) 외부에 있다. 하지만, 디스플레이 (320), 입력 디바이스 (1030), 스피커 (1036), 마이크로폰 (1038), 무선 안테나 (1042), 및 전력 공급부 (1044) 의 각각은, 인터페이스 또는 제어기와 같은 시스템 온 칩 디바이스 (1022) 의 컴포넌트에 연결될 수 있다. 하나 이상의 모션 센서들 (104) 이 시스템 온 칩 디바이스 (1022) 에 포함되는 것으로서 예시되었지만, 다른 실시형태들에서, 하나 이상의 모션 센서들 (104) 이 시스템 온 칩 디바이스 (1022) 의 외부에 있고 시스템 온 칩 디바이스 (1022) 에 연결될 수도 있다.
도 11은, 이동 디바이스 (102) 의 또 다른 특정 예시적 실시형태의 도면이고, 여기서 이동 디바이스 (102) 는 모션 센서 데이터에 기초하여 실루엣 기반 재구성 기법 (예를 들어, 비주얼 헐 기법) 에 따라 3D 모델을 계산하도록 구성된다. 도 11의 이동 디바이스 (102) 의 일정한 컴포넌트들 및 피쳐들, 이를테면, 프로세서 (1010), 하나 이상의 모션 센서들 (104), 카메라 제어기 (1090), 디스플레이 제어기 (1026), 메모리 (1032), 명령들 (1054), 코덱 (1034), 무선 제어기 (1040), 트랜시버 (1050), 시스템 인 패키지 또는 시스템 온 칩 디바이스 (1022), 무선 안테나 (1042), 입력 디바이스 (1030), 디스플레이 (320), 카메라 (108), 스피커 (1036), 마이크로폰 (1038), 및 전력 공급부 (1044) 는 도 10의 이동 디바이스 (102) 를 참조하여 일반적으로 설명될 수도 있다. 하지만, 도 11의 3D 모델러 (110) 는, 예를 들어, 비주얼 헐 기법과 관련해, 실루엣 (1194) 을 생성하기 위한 실루엣 생성기 (1192) 를 포함한다. 실루엣 (1194) 은, 3D 모델 (116) 을 생성하기 위하여 3D 모델러 (110) 에 의해 사용될 수도 있다.
본 개시는 예시의 용이를 위해 이동 디바이스 (예를 들어, 이동 디바이스 (102)) 와 관련해 설명되었지만, 여기에 설명된 기능성들은 다른 디바이스들을 이용해 구현될 수도 있다는 것이 인식되야 한다. 예를 들어, 도 10 및 도 11의 프로세서 (1010) 및 메모리 (1032) 는 멀티미디어 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, PDA (personal digital assistant), 고정 로케이션 데이터 유닛, 또는 컴퓨터 (예를 들어, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터 등), 미디어 디바이스, 데이터를 무선으로 통신하도록 구성된 다른 디바이스, 또는 이들의 조합내에 통합될 수도 있다. 또한, 예시의 편의성을 위해 다양한 기법들 (예를 들어, 피쳐 포인트 기반 및 실루엣 기반 재구성 기법들과 같은 재구성 기법들) 이 따로 설명되었지만, 하나 이상의 그러한 기법들 (또는 이들의 엘리먼트들) 이 조합될 수 있다.
설명된 실시형태들과 관련하여, 제 1 위치로부터 제 2 위치로의 이동 디바이스의 이동을, 모션을 감지하는 적어도 하나의 수단으로부터 수신된 데이터에 기초하여, 결정하는 수단을 포함하는 장치가 개시된다. 예를 들어, 결정하는 수단은 도 1 내지 도 4, 도 10 및 도 11의 3D 모델러, 도 10 및 도 11의 프로세서 (1010), 이동 디바이스의 이동을 결정하도록 구성된 하나 이상의 다른 디바이스들, 또는 이들의 임의의 조합을 포함할 수도 있다. 모션을 감지하는 수단은 하나 이상의 모션 센서들 (104) 을 포함할 수도 있다.
그 장치는, 이동 디바이스의 제 1 위치로부터 오브젝트의 제 1 뷰에 대응하는 오브젝트의 제 1 이미지에 기초하여, 또한 이동 디바이스의 제 2 위치로부터 오브젝트의 제 2 뷰에 대응하는 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 이동 디바이스의 이동에 기초하여, 오브젝트의 3차원 (3D) 모델을 계산하는 수단을 더 포함한다. 예를 들어, 3D 모델을 계산하는 수단은 도 1 내지 도 4, 도 10 및 도 11의 3D 모델러, 도 10 및 도 11의 프로세서 (1010), 3D 모델을 계산하도록 구성된 하나 이상의 다른 디바이스들, 또는 이들의 임의의 조합을 포함할 수도 있다.
당업자는 또한, 여기에 개시된 실시형태와 관련하여 설명된 다양한 예시적인 논리 블록, 구성 (configuration), 모듈, 회로, 및 알고리즘 단계가 전자 하드웨어, 컴퓨터 판독가능 유형의 매체에 저장된 프로세서 실행가능 명령들, 또는 이 양자의 조합으로 구현될 수도 있음을 인식할 것이다. 다양한 예시적인 컴포넌트, 블록, 구성, 모듈, 회로, 및 단계가 그들의 기능성의 관점에서 일반적으로 전술되었다. 그러한 기능성이 하드웨어 또는 소프트웨어로 구현될지는, 전체 시스템에 부과된 설계 제약 및 특정한 애플리케이션에 의존한다. 당업자는 설명된 기능성을 특정 애플리케이션 각각에 대한 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정이 본 개시의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계는, 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 양자의 조합으로 구현될 수도 있다. 소프트웨어 모듈은 랜덤 액세스 메모리 (RAM), 플래시 메모리, 읽기 전용 메모리 (ROM), 프로그램가능 읽기 전용 메모리 (PROM), 소거가능 프로그램가능 읽기 전용 메모리 (EPROM), 전기적으로 소거가능 프로그래램가능 읽기 전용 메모리 (EEPROM), 레지스터, 하드디스크, 리무버블 디스크, 컴팩트 디스크 읽기 전용 메모리 (CD-ROM), 또는 임의의 다른 형태의 비일시적 저장 매체에 상주할 수도 있다. 예시적 저장 매체는 프로세서가 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있도록 프로세서에 연결된다. 다르게는, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC (application-specific integrated circuit) 에 상주할 수도 있다. ASIC는 컴퓨팅 디바이스 또는 사용자 단말기 (예를 들어, 이동 전화기 또는 PDA) 에 상주할 수도 있다. 다르게는, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말기에서 이산 컴포넌트로서 상주할 수도 있다.
개시된 실시형태의 이전의 설명은 당업자가 개시된 실시형태를 제조 또는 사용하는 것을 가능하게 하기 위하여 제공된다. 이들 실시형태에 대한 다양한 변형은 당업자에게는 용이하게 명백할 것이며, 여기에 정의된 원리는 본 개시의 범위를 벗어남이 없이 다른 실시형태들에 적용될 수도 있다. 따라서, 본 개시는 여기에 개시된 실시형태들에 한정되도록 의도된 것이 아니라, 다음 청구항들에 의해 정의되는 원리 및 신규한 특성과 부합하는 가능한 최광의 범위가 부여되야 한다.
Claims (26)
- 이동 디바이스의 적어도 하나의 모션 센서에 의해 출력된 데이터에 기초하여, 레퍼런스 위치로부터 제 2 위치로의 상기 이동 디바이스의 이동을 결정하는 단계; 및
번들 조정 기법을 이용하여, 오브젝트의 3차원 (3D) 모델의 적어도 제 1 부분을 계산하는 단계로서, 상기 레퍼런스 위치로부터 상기 오브젝트의 제 1 뷰에 대응하는 제 1 이미지, 상기 제 2 위치로부터 상기 오브젝트의 제 2 뷰에 대응하는 제 2 이미지, 및 상기 이동 디바이스의 이동에 기초하여, 상기 제 1 부분을 계산하는 단계를 포함하고,
상기 번들 조정 기법은 적어도 상기 제 1 이미지와 연관된 제 1 투영 매트릭스에 기초하여 그리고 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 이동 디바이스의 이동에 기초한 상대 포즈 매트릭스에 기초하여 상기 제 2 이미지와 연관된 제 2 투영 매트릭스를 추정하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 이동 디바이스의 카메라에서, 상기 이동 디바이스가 상기 레퍼런스 위치에 있는 동안 상기 제 1 이미지를 캡처하는 단계;
상기 카메라에서, 상기 이동 디바이스가 상기 제 2 위치에 있는 동안 상기 오브젝트의 상기 제 2 이미지를 캡처하는 단계; 및
상기 3D 모델에 대응하는 이미지를 디스플레이하는 단계를 더 포함하고,
상기 제 1 이미지 및 상기 제 2 이미지는 저장된 비디오 파일과 연관된 비디오 프레임들인, 방법. - 제 1 항에 있어서,
상기 제 1 이미지 및 상기 제 2 이미지는 비디오 프레임 시퀀스와 연관된 비디오 프레임들이고,
비디오 파일로서 상기 비디오 프레임 시퀀스를 저장하기 전에 상기 비디오 프레임들에 액세스하는 단계를 더 포함하는, 방법. - 제 1 항에 있어서,
상기 제 2 위치로부터 제 3 위치로의 상기 이동 디바이스의 제 2 이동에 기초하여 상기 오브젝트의 상기 3D 모델의 제 2 위치를 계산하는 단계를 더 포함하고,
상기 이동 디바이스가 상기 제 2 위치로부터 상기 제 3 위치로 이동되는 동안 상기 3D 모델에 대응하는 이미지가 상기 이동 디바이스에 디스플레이되는, 방법. - 제 1 항에 있어서,
상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터는 상기 이동 디바이스와 연관된 회전 모션, 상기 이동 디바이스와 연관된 병진 모션, 또는 이들의 조합을 나타내고,
상기 이동 디바이스의 이동은, 상기 이동 디바이스의 회전, 상기 이동 디바이스의 병진, 또는 이들의 조합을 포함하는, 방법. - 제 1 항에 있어서,
상기 3D 모델의 제 2 부분을 계산하는 단계를 더 포함하고,
상기 3D 모델의 제 2 부분을 계산하는 단계는
상기 레퍼런스 위치로부터 상기 오브젝트에 대응하는 상기 제 1 이미지의 픽셀들을 통하여 제 1 레이들을 3D 공간속으로 투영하는 단계;
상기 제 2 위치로부터 상기 오브젝트에 대응하는 상기 제 2 이미지의 픽셀들을 통하여 제 2 레이들을 상기 3D 공간속으로 투영하는 단계;
상기 제 1 레이들 및 상기 제 2 레이들의 교차들을 식별하는 단계;
상기 교차들 중 최단 교차를 선택하는 단계; 및
상기 최단 교차를 이용하여 상기 3D 모델의 제 2 부분을 생성하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 오브젝트의 상기 3D 모델의 제 1 부분을 계산하는 단계는 제 1 추정 재투영 이미지 포인트, 제 2 추정 재투영 이미지 포인트, 및 상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터의 함수에 기초하여 상기 오브젝트의 피쳐 포인트들을 결정하는 단계를 더 포함하고,
상기 3D 모델의 제 1 부분을 계산하는 단계는 상기 피쳐 포인트들과 연관된 3D 공간 위치들에 기초하는, 방법. - 제 1 항에 있어서,
상기 오브젝트의 상기 3D 모델의 제 1 부분을 계산하는 단계는
상기 레퍼런스 위치의 제 1 추정치 및 상기 오브젝트의 하나 이상의 피쳐 포인트들의 곱에 기초하여 상기 오브젝트의 제 1 추정 재투영 이미지 포인트를 결정하는 단계;
상기 제 2 위치의 제 2 추정치 및 상기 오브젝트의 하나 이상의 피쳐 포인트들의 곱에 기초하여 상기 오브젝트의 제 2 추정 재투영 이미지 포인트를 결정하는 단계;
상기 제 1 이미지에서 상기 오브젝트의 좌표들과 상기 제 1 추정 재투영 이미지 포인트 사이의 제 1 유클리드 거리의 제곱을 결정하는 단계;
상기 제 2 이미지에서 상기 오브젝트의 좌표들과 상기 제 2 추정 재투영 이미지 포인트 사이의 제 2 유클리드 거리의 제곱을 결정하는 단계; 및
상기 제 1 유클리드 거리의 제곱 및 상기 제 2 유클리드 거리의 제곱의 합을 최소화하기 위하여 상기 3D 모델의 추정치를 변경하는 단계를 더 포함하고,
상기 제 2 위치의 제 2 추정치는 상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터 및 상기 레퍼런스 위치의 상기 제 1 추정치에 기초하여 생성되는, 방법. - 레퍼런스 위치에 있는 동안 오브젝트의 제 1 이미지를 캡처하고 제 2 위치에 있는 동안 상기 오브젝트의 제 2 이미지를 캡처하도록 구성된 카메라;
적어도 하나의 모션 센서; 및
프로세서를 포함하고,
상기 프로세서는:
상기 적어도 하나의 모션 센서에 의해 출력된 데이터에 기초하여, 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 카메라의 이동을 결정하고;
번들 조정 기법을 이용하여, 상기 제 1 이미지, 상기 제 2 이미지, 및 상기 카메라의 이동에 기초하여 상기 오브젝트의 3차원 (3D) 모델의 제 1 부분을 계산하도록 구성되고,
상기 번들 조정 기법은 적어도 상기 제 1 이미지와 연관된 제 1 투영 매트릭스에 기초하여 그리고 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 카메라의 이동에 기초한 상대 포즈 매트릭스에 기초하여 상기 제 2 이미지와 연관된 제 2 투영 매트릭스를 추정하는 단계를 포함하는, 장치. - 제 10 항에 있어서,
상기 프로세서는, 이동 디바이스, 상기 카메라, 멀티미디어 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, PDA (personal digital assistant), 휴대 컴퓨터 또는 이들의 임의의 조합내에 통합되는, 장치. - 제 10 항에 있어서,
상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터는 상기 카메라와 연관된 회전 정보, 상기 카메라와 연관된 병진 정보, 또는 이들의 조합을 포함하고, 상기 카메라의 이동은, 상기 카메라의 회전, 상기 카메라의 병진, 또는 이들의 조합을 포함하는, 장치. - 제 10 항에 있어서,
상기 프로세서는 또한, 제 1 추정 재투영 이미지 포인트, 제 2 추정 재투영 이미지 포인트, 및 상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터의 함수에 기초하여 상기 오브젝트의 피쳐 포인트들을 결정하도록 구성되는, 장치. - 제 10 항에 있어서,
상기 프로세서는 또한
상기 레퍼런스 위치의 제 1 추정치 및 상기 오브젝트의 하나 이상의 피쳐 포인트들의 곱에 기초하여 상기 오브젝트의 제 1 추정 재투영 이미지 포인트를 결정하고;
상기 제 2 위치의 제 2 추정치 및 상기 오브젝트의 하나 이상의 피쳐 포인트들의 곱에 기초하여 상기 오브젝트의 제 2 추정 재투영 이미지 포인트를 결정하고;
상기 제 1 이미지에서 상기 오브젝트의 좌표들과 상기 제 1 추정 재투영 이미지 포인트 사이의 제 1 유클리드 거리의 제곱을 결정하고;
상기 제 2 이미지에서 상기 오브젝트의 좌표들과 상기 제 2 추정 재투영 이미지 포인트 사이의 제 2 유클리드 거리의 제곱을 결정하고; 그리고
상기 제 1 유클리드 거리의 제곱 및 상기 제 2 유클리드 거리의 제곱의 합을 최소화하기 위하여 상기 3D 모델의 제 1 부분의 추정치를 변경하도록 구성되고,
상기 제 2 위치의 제 2 추정치는 상기 적어도 하나의 모션 센서에 의해 출력된 상기 데이터 및 상기 레퍼런스 위치의 상기 제 1 추정치에 기초하여 생성되는, 장치. - 이동 디바이스의 카메라에서, 상기 이동 디바이스가 레퍼런스 위치에 있는 동안 오브젝트의 제 1 이미지를 캡처하는 단계;
상기 이동 디바이스가 제 2 위치에 있는 동안 상기 오브젝트의 제 2 이미지를 캡처하는 단계;
적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 상기 레퍼런스 위치로부터 상기 제 2 위치로의 이동 디바이스의 이동을 결정하는 단계; 및
번들 조정 기법을 이용하여, 상기 제 1 이미지에 기초하여, 또한 상기 제 2 이미지에 기초하여, 그리고 또한 상기 이동 디바이스의 이동에 기초하여 오브젝트의 3차원 (3D) 모델의 제 1 부분을 계산하는 단계를 포함하고,
상기 번들 조정 기법은 적어도 상기 제 1 이미지와 연관된 제 1 투영 매트릭스에 기초하여 그리고 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 이동 디바이스의 이동에 기초한 상대 포즈 매트릭스에 기초하여 상기 제 2 이미지와 연관된 제 2 투영 매트릭스를 추정하는 단계를 포함하는, 방법. - 모션을 감지하는 적어도 하나의 수단으로부터 수신된 데이터에 기초하여, 레퍼런스 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하는 수단; 및
오브젝트의 3차원 (3D) 모델의 부분을 계산하는 수단으로서, 상기 레퍼런스 위치로부터 상기 오브젝트의 제 1 뷰에 대응하는 상기 오브젝트의 제 1 이미지에 기초하여, 또한 상기 제 2 위치로부터 상기 오브젝트의 제 2 뷰에 대응하는 상기 오브젝트의 제 2 이미지에 기초하여, 또한 상기 이동 디바이스의 이동에 기초하여, 그리고 또한 상기 제 1 이미지와 연관된 제 1 투영 매트릭스 및 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 이동 디바이스의 이동에 기초한 상대 포즈 매트릭스에 적어도 기초한 상기 제 2 이미지와 연관된 제 2 투영 매트릭스의 추정치에 기초하여, 상기 부분을 계산하는 수단
을 포함하는, 장치. - 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 명령들은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금
적어도 하나의 모션 센서로부터 수신된 데이터에 기초하여, 레퍼런스 위치로부터 제 2 위치로의 이동 디바이스의 이동을 결정하게 하고; 그리고
번들 조정 기법을 이용하여, 오브젝트의 3차원 (3D) 모델의 제 1 부분을 계산하게 하는 것으로서, 상기 이동 디바이스의 상기 레퍼런스 위치로부터 상기 오브젝트의 제 1 뷰에 대응하는 상기 오브젝트의 제 1 이미지에 기초하여, 또한 상기 이동 디바이스의 상기 제 2 위치로부터 상기 오브젝트의 제 2 뷰에 대응하는 상기 오브젝트의 제 2 이미지에 기초하여, 그리고 또한 상기 이동 디바이스의 이동에 기초하여, 상기 제 1 부분을 계산하게 하고,
상기 번들 조정 기법은 적어도 상기 제 1 이미지와 연관된 제 1 투영 매트릭스에 기초하여 그리고 상기 레퍼런스 위치로부터 상기 제 2 위치로의 상기 이동 디바이스의 이동에 기초한 상대 포즈 매트릭스에 기초하여 상기 제 2 이미지와 연관된 제 2 투영 매트릭스를 추정하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 17 항에 있어서,
제 1 추정 재투영 이미지 포인트, 제 2 추정 재투영 이미지 포인트, 및 상기 데이터의 함수에 기초하여 상기 오브젝트의 피쳐 포인트들을 결정하도록 상기 프로세서에 의해 실행가능한 명령들을 더 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 17 항에 있어서,
상기 오브젝트와 연관된 하나 이상의 실루엣들을 생성하도록 상기 프로세서에 의해 실행가능한 명령들을 더 포함하고,
상기 오브젝트의 상기 3D 모델의 제 2 부분은 상기 하나 이상의 실루엣들에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 1 항에 있어서,
상기 제 2 위치는 상기 레퍼런스 위치와는 다른, 방법. - 제 1 항에 있어서,
상기 제 2 투영 매트릭스를 추정하는 단계는,
상기 제 1 투영 매트릭스를 결정하는 단계;
상기 상대 포즈 매트릭스를 결정하는 단계; 및
상기 제 1 투영 매트릭스 및 상기 상대 포즈 매트릭스에 적어도 기초하여 상기 제 2 투영 매트릭스를 추정하는 단계를 포함하는, 방법. - 제 1 항에 있어서,
상기 제 1 이미지 및 상기 제 2 이미지는 스틸 이미지들이고, 상기 제 1 이미지 및 상기 제 2 이미지는 사용자 입력에 응답하여 캡처되는, 방법. - 제 15 항에 있어서,
상기 3D 모델은 상기 제 1 이미지 및 상기 제 2 이미지 중 적어도 하나를 캡처하는 것과 동시에 계산되는, 방법. - 제 1 항에 있어서,
상기 번들 조정 기법은 최소 자승 산출을 수행함이 없이 수행되는, 방법. - 제 1 항에 있어서,
제 1 레이들 및 제 2 레이들의 교차들을 식별하는 단계로서, 상기 제 1 레이들은 상기 레퍼런스 위치로부터 상기 제 1 이미지의 픽셀들을 통하여 3D 공간속으로 투영되고, 상기 제 2 레이들은 상기 제 2 위치로부터 상기 제 2 이미지의 픽셀들을 통하여 상기 3D 공간속으로 투영되는, 상기 교차들을 식별하는 단계; 및
상기 교차들 중 최단 교차를 이용하여 상기 3D 모델의 제 2 부분을 생성하는 단계를 더 포함하는, 방법. - 제 16 항에 있어서,
상기 결정하는 수단 및 상기 계산하는 수단은 상기 이동 디바이스내에 통합되고,
상기 이동 디바이스는, 통신 디바이스, 카메라, 멀티미디어 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, PDA (personal digital assistant), 휴대 컴퓨터 또는 이들의 임의의 조합을 포함하는, 장치.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261591196P | 2012-01-26 | 2012-01-26 | |
US61/591,196 | 2012-01-26 | ||
US13/673,681 US9639959B2 (en) | 2012-01-26 | 2012-11-09 | Mobile device configured to compute 3D models based on motion sensor data |
US13/673,681 | 2012-11-09 | ||
PCT/US2012/069088 WO2013112237A1 (en) | 2012-01-26 | 2012-12-12 | Mobile device configured to compute 3d models based on motion sensor data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140116867A KR20140116867A (ko) | 2014-10-06 |
KR101827046B1 true KR101827046B1 (ko) | 2018-02-07 |
Family
ID=48869873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147019346A KR101827046B1 (ko) | 2012-01-26 | 2012-12-12 | 모션 센서 데이터에 기초한 3d 모델들을 계산하도록 구성된 이동 디바이스 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9639959B2 (ko) |
EP (1) | EP2807629B1 (ko) |
JP (1) | JP6199313B2 (ko) |
KR (1) | KR101827046B1 (ko) |
CN (1) | CN104081434B (ko) |
WO (1) | WO2013112237A1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10261408B2 (en) * | 2010-07-18 | 2019-04-16 | Spatial Cam Llc | Mobile and portable camera platform for tracking an object |
US9131118B2 (en) * | 2012-11-14 | 2015-09-08 | Massachusetts Institute Of Technology | Laser speckle photography for surface tampering detection |
JP2016504828A (ja) * | 2012-11-30 | 2016-02-12 | トムソン ライセンシングThomson Licensing | 単一のカメラを用いて3d画像を取り込む方法およびシステム |
KR102153539B1 (ko) * | 2013-09-05 | 2020-09-08 | 한국전자통신연구원 | 영상 처리 장치 및 방법 |
US9173066B1 (en) * | 2014-06-13 | 2015-10-27 | Xerox Corporation | Methods and systems for controlling an electronic device |
CN104282041A (zh) * | 2014-09-30 | 2015-01-14 | 小米科技有限责任公司 | 三维建模方法及装置 |
JP2016070891A (ja) * | 2014-10-01 | 2016-05-09 | 日本電信電話株式会社 | 映像データ処理装置及び映像データ処理プログラム |
JP6306996B2 (ja) * | 2014-10-01 | 2018-04-04 | 日本電信電話株式会社 | 映像データ処理方法、映像データ処理装置及び映像データ処理プログラム |
KR102248404B1 (ko) | 2014-11-17 | 2021-05-07 | 삼성전자주식회사 | 움직임 분석 방법 및 움직임 분석 장치 |
CN104517316B (zh) * | 2014-12-31 | 2018-10-16 | 中科创达软件股份有限公司 | 一种三维物体建模方法及终端设备 |
WO2016141208A1 (en) * | 2015-03-04 | 2016-09-09 | Usens, Inc. | System and method for immersive and interactive multimedia generation |
CN104794723A (zh) * | 2015-05-04 | 2015-07-22 | 福建师范大学 | 一种基于概率的遥感影像建筑物位置检测方法 |
US10012509B2 (en) * | 2015-11-12 | 2018-07-03 | Blackberry Limited | Utilizing camera to assist with indoor pedestrian navigation |
US10341633B2 (en) | 2015-11-20 | 2019-07-02 | Qualcomm Incorporated | Systems and methods for correcting erroneous depth information |
KR20170076471A (ko) | 2015-12-24 | 2017-07-04 | 삼성전자주식회사 | 변형 가능한 디스플레이 장치 및 이를 이용한 영상 표시 방법 |
US10841486B2 (en) * | 2017-07-20 | 2020-11-17 | Eclo, Inc. | Augmented reality for three-dimensional model reconstruction |
WO2019127320A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳前海达闼云端智能科技有限公司 | 信息处理方法、装置、云处理设备及计算机程序产品 |
JP6970817B2 (ja) * | 2018-04-11 | 2021-11-24 | 富士フイルム株式会社 | 構造物管理装置、構造物管理方法、及び構造物管理プログラム |
CN113140030A (zh) * | 2020-01-17 | 2021-07-20 | 北京小米移动软件有限公司 | 三维模型生成方法、装置及存储介质 |
US20210259779A1 (en) * | 2020-02-20 | 2021-08-26 | Verb Surgical Inc. | Multi-camera user interface device calibration and tracking |
US11694313B2 (en) * | 2020-02-28 | 2023-07-04 | Unity Technologies Sf | Computer-generated image processing including volumetric scene reconstruction |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002501349A (ja) | 1998-01-06 | 2002-01-15 | インテル・コーポレーション | 3−d視覚画像を作成するために相対的なカメラ向き位置を決定する方法 |
US20100316282A1 (en) | 2009-06-16 | 2010-12-16 | Hope Clinton B | Derivation of 3D information from single camera and movement sensors |
WO2011144408A1 (fr) | 2010-05-17 | 2011-11-24 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede et systeme pour fusionner des donnees issues de capteurs d'images et de capteurs de mouvement ou de position |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2335155C (en) * | 1998-06-18 | 2009-09-01 | Kline & Walker, Llc | Automated devices to control equipment and machines with remote control and accountability worldwide |
US7466843B2 (en) * | 2000-07-07 | 2008-12-16 | Pryor Timothy R | Multi-functional control and entertainment systems |
US6539330B2 (en) | 2000-07-19 | 2003-03-25 | Pentax Corporation | Method and apparatus for measuring 3-D information |
US6961055B2 (en) * | 2001-05-09 | 2005-11-01 | Free Radical Design Limited | Methods and apparatus for constructing virtual environments |
JP2003006680A (ja) | 2001-06-20 | 2003-01-10 | Zenrin Co Ltd | 3次元電子地図データの生成方法 |
US7596473B2 (en) * | 2003-05-20 | 2009-09-29 | Interlego Ag | Method of constructing a virtual construction model |
EP1625488A2 (en) * | 2003-05-20 | 2006-02-15 | Lego A/S | Method and system for manipulating a digital representation of a three-dimensional object |
JP4132068B2 (ja) | 2005-02-28 | 2008-08-13 | 学校法人早稲田大学 | 画像処理装置及び三次元計測装置並びに画像処理装置用プログラム |
JP4910312B2 (ja) * | 2005-06-03 | 2012-04-04 | ソニー株式会社 | 撮像装置および撮像方法 |
CN101395613A (zh) | 2006-01-31 | 2009-03-25 | 南加利福尼亚大学 | 由2d图像实现3d人脸重建 |
US7856125B2 (en) | 2006-01-31 | 2010-12-21 | University Of Southern California | 3D face reconstruction from 2D images |
US20070248260A1 (en) | 2006-04-20 | 2007-10-25 | Nokia Corporation | Supporting a 3D presentation |
US8498497B2 (en) | 2006-11-17 | 2013-07-30 | Microsoft Corporation | Swarm imaging |
US7676146B2 (en) * | 2007-03-09 | 2010-03-09 | Eastman Kodak Company | Camera using multiple lenses and image sensors to provide improved focusing capability |
JP2009200713A (ja) | 2008-02-20 | 2009-09-03 | Sony Corp | 画像処理装置、画像処理方法、プログラム |
US8625846B2 (en) * | 2008-03-18 | 2014-01-07 | Elliptic Laboratories As | Object and movement detection |
CN102713980A (zh) | 2010-02-01 | 2012-10-03 | 英特尔公司 | 从地理参考图像提取及映射三维特征 |
US20110234750A1 (en) | 2010-03-24 | 2011-09-29 | Jimmy Kwok Lap Lai | Capturing Two or More Images to Form a Panoramic Image |
KR20110116525A (ko) | 2010-04-19 | 2011-10-26 | 엘지전자 주식회사 | 3d 오브젝트를 제공하는 영상표시장치, 그 시스템 및 그 동작 제어방법 |
US9400503B2 (en) | 2010-05-20 | 2016-07-26 | Irobot Corporation | Mobile human interface robot |
CN104145474A (zh) * | 2011-12-07 | 2014-11-12 | 英特尔公司 | 引导式图像拍摄 |
-
2012
- 2012-11-09 US US13/673,681 patent/US9639959B2/en active Active
- 2012-12-12 JP JP2014554717A patent/JP6199313B2/ja active Active
- 2012-12-12 CN CN201280066984.2A patent/CN104081434B/zh active Active
- 2012-12-12 KR KR1020147019346A patent/KR101827046B1/ko active IP Right Grant
- 2012-12-12 WO PCT/US2012/069088 patent/WO2013112237A1/en active Application Filing
- 2012-12-12 EP EP12806819.4A patent/EP2807629B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002501349A (ja) | 1998-01-06 | 2002-01-15 | インテル・コーポレーション | 3−d視覚画像を作成するために相対的なカメラ向き位置を決定する方法 |
US20100316282A1 (en) | 2009-06-16 | 2010-12-16 | Hope Clinton B | Derivation of 3D information from single camera and movement sensors |
WO2011144408A1 (fr) | 2010-05-17 | 2011-11-24 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede et systeme pour fusionner des donnees issues de capteurs d'images et de capteurs de mouvement ou de position |
Also Published As
Publication number | Publication date |
---|---|
EP2807629B1 (en) | 2017-09-20 |
KR20140116867A (ko) | 2014-10-06 |
US20130194392A1 (en) | 2013-08-01 |
JP6199313B2 (ja) | 2017-09-20 |
CN104081434A (zh) | 2014-10-01 |
US9639959B2 (en) | 2017-05-02 |
JP2015508197A (ja) | 2015-03-16 |
WO2013112237A1 (en) | 2013-08-01 |
CN104081434B (zh) | 2018-01-05 |
EP2807629A1 (en) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101827046B1 (ko) | 모션 센서 데이터에 기초한 3d 모델들을 계산하도록 구성된 이동 디바이스 | |
US20230245391A1 (en) | 3d model reconstruction and scale estimation | |
JP2015508197A5 (ko) | ||
CN113570721B (zh) | 三维空间模型的重建方法、装置和存储介质 | |
JP7223449B2 (ja) | 撮影に基づく3dモデリングシステム | |
JP6934887B2 (ja) | 単眼カメラを用いたリアルタイム3d捕捉およびライブフィードバックのための方法およびシステム | |
US10388025B2 (en) | Interactive image based 3D panogragh | |
CN110874818B (zh) | 图像处理和虚拟空间构建方法、装置、系统和存储介质 | |
US20230290037A1 (en) | Real-time progressive texture mapping of a 3d mesh | |
US20140218354A1 (en) | View image providing device and method using omnidirectional image and 3-dimensional data | |
JP6793151B2 (ja) | オブジェクトトラッキング装置、オブジェクトトラッキング方法およびオブジェクトトラッキングプログラム | |
CN111161336B (zh) | 三维重建方法、三维重建装置和计算机可读存储介质 | |
JP2010109783A (ja) | 電子カメラ | |
JP6845490B2 (ja) | 自由動作fvvアプリケーションのためのマルチレイヤuvマップに基づくテクスチャレンダリング | |
JP2017017689A (ja) | 全天球動画の撮影システム、及びプログラム | |
US11138743B2 (en) | Method and apparatus for a synchronous motion of a human body model | |
US8509522B2 (en) | Camera translation using rotation from device | |
CN107077719B (zh) | 数码照片中基于深度图的透视校正 | |
JP6306996B2 (ja) | 映像データ処理方法、映像データ処理装置及び映像データ処理プログラム | |
US20230290036A1 (en) | Local live texturing of a 3d mesh | |
JP6625654B2 (ja) | 投影装置、投影方法、および、プログラム | |
JP2006059165A (ja) | 3次元モデリング装置、幾何学パターン、3次元モデリングデータの生成方法、3次元モデリングプログラム、記録媒体 | |
JP2011146762A (ja) | 立体モデル生成装置 | |
CN117115333B (zh) | 一种结合imu数据的三维重建方法 | |
US11706399B2 (en) | Image generation based on altered distances between imaging devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |