KR20170056563A - 포즈 추정의 시스템 및 방법 - Google Patents

포즈 추정의 시스템 및 방법 Download PDF

Info

Publication number
KR20170056563A
KR20170056563A KR1020177007494A KR20177007494A KR20170056563A KR 20170056563 A KR20170056563 A KR 20170056563A KR 1020177007494 A KR1020177007494 A KR 1020177007494A KR 20177007494 A KR20177007494 A KR 20177007494A KR 20170056563 A KR20170056563 A KR 20170056563A
Authority
KR
South Korea
Prior art keywords
frame
image
image frame
camera pose
processor
Prior art date
Application number
KR1020177007494A
Other languages
English (en)
Inventor
쿠엔-한 린
사이람 순다레산
미헬 아딥 자르키스
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170056563A publication Critical patent/KR20170056563A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • H04N13/0221
    • H04N13/0282
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/207Image signal generators using stereoscopic image cameras using a single 2D image sensor
    • H04N13/221Image signal generators using stereoscopic image cameras using a single 2D image sensor using the relative movement between cameras and objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

방법은 이미지 캡처 디바이스로부터 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하는 단계를 포함한다. 방법은, 또한 프로세서에서, 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하는 단계를 포함한다. 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 방법은, 프로세서에서 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하는 단계를 더 포함한다. 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다.

Description

포즈 추정의 시스템 및 방법{SYSTEM AND METHOD OF POSE ESTIMATION}
관련 출원들의 상호참조
본 출원은 2014년 9월 19일자로 출원된, 공동 소유의 미국 정규 특허출원 제 14/491,857 호에 우선권을 주장하며, 이것의 내용들은 참조로서 그 전체가 본원에 명확하게 포함된다.
기술분야
본 개시물은 일반적으로, 포즈 추정의 시스템 및 방법에 관한 것이다.
기술에서의 진보들은 더 작고 더 강력한 컴퓨팅 디바이스들을 초래하였다. 예를 들어, 작고, 경량의, 그리고 사용자들에 의해 쉽게 운반되는 모바일 및 스마트 폰들과 같은 무선 전화기들, 태블릿들 및 랩톱 컴퓨터들을 포함하는 다양한 휴대용 개인 컴퓨팅 디바이스들이 현재 존재한다. 이들 디바이스들은 무선 네트워크들을 통해 음성 및 데이터 패킷들을 통신할 수 있다. 또한, 많은 이러한 디바이스들은 디지털 스틸 카메라, 디지털 비디오 카메라, 디지털 레코더, 및 오디오 파일 플레이어와 같은 부가적인 기능성을 통합한다. 또한, 이러한 디바이스들은, 인터넷에 액세스하는데 사용될 수 있는 웹 브라우저 애플리케이션과 같은 소프트웨어 애플리케이션들을 포함하는, 실행가능 명령들을 프로세싱할 수 있다. 이와 같이, 이들 디바이스들은 중요한 컴퓨팅 능력들을 포함할 수 있다.
무선 전화기들 및 유사한 디바이스들이 이미지들을 캡처하는데 사용될 수도 있다. 이러한 이미지들은 객체의 3-차원 (3D) 모델을 생성하는데 사용될 수도 있다. 일반적으로, 3D 모델들을 생성하기 위한 디바이스들은 실시간으로 또는 거의 실시간으로 동작하지 않는다. 차라리, 이미지 프레임들의 시퀀스는 (예를 들어, 카메라에 의해) 캡처되고, 이미지 프레임들의 시퀀스는 후속적으로 (예를 들어, 컴퓨터와 같은 프로세싱 시스템에서) 그룹으로서 프로세싱되어 3D 모델을 생성한다. 이미지 프레임들의 시퀀스가 완전한 3D 모델을 생성하기에 불충분하거나 부적절하면, 이러한 불충분성 또는 부적절성은 3D 모델을 생성하기 위한 프로세싱 후까지 간과될 수도 있다. 이 경우에서, 불완전한 또는 부정확한 3D 모델이 생성될 수도 있다. 더 완전한 또는 더 정확한 3D 모델을 생성하기 위해, 사용자는 객체 이미지들의 새로운 시퀀스를 캡처하고 이미지들의 새로운 시퀀스를 프로세싱해야 할 수도 있다.
이미지 프레임들의 캡처된 시퀀스에 기초하여 3D 포인트 클라우드 및/또는 3D 모델의 실시간 또는 거의 실시간 생성을 가능하게 하는 시스템 및 방법이 개시된다. 이미지 프레임들의 시퀀스는 이미지 캡처 디바이스 (예를 들어, 모바일 폰의 카메라) 에 의해 캡처될 수도 있다. 이미지 캡처 디바이스의 사용자 (예를 들어, 오퍼레이터) 는 객체 주위에서 이미지 캡처 디바이스를 이동시켜 객체의 이미지 프레임들의 시퀀스를 캡처할 수도 있다.
3D 포인트 클라우드 및/또는 3D 모델은 이미지 프레임들의 시퀀스를 프로세싱하기 위해 병렬의 프로세싱 스레드들을 이용함으로써 전자 디바이스 (예를 들어, 카메라를 포함하는 모바일 폰) 에서 생성될 수도 있다. 예를 들어, 제 1 프로세싱 스레드 및 제 2 프로세싱 스레드는 이미지 프레임들의 실시간 또는 거의 실시간 프로세싱을 가능하게 하도록 병렬로 프로세싱될 수도 있다. 예를 들어, 제 1 프로세싱 스레드는 프레임에서 프레임까지 카메라 포즈 추정을 수행할 수도 있고, 제 2 프로세싱 스레드는 프레임에서 키프레임까지 카메라 포즈 추정을 수행할 수도 있다.
특정 실시형태에서, 제 1 프로세싱 스레드 및 제 2 프로세싱 스레드는 상이한 해상도들로 이미지들을 프로세싱할 수도 있다. 예를 들어, 제 1 프로세싱 스레드는 저 해상도 (예를 들어, 쿼터-쿼터 비디오 그래픽 어레이 (Quarter-Quarter Video Graphics Array; QQVGA) 해상도) 이미지 프레임들을 프로세싱하여 하나 이상의 이미지 프레임들의 카메라 포즈들을 추정할 수도 있다. 제 2 프로세싱 스레드는 고 해상도 (예를 들어, 쿼터 비디오 그래픽 어레이 (QVGA) 해상도) 이미지 프레임들 및 레퍼런스 이미지 프레임들 (즉, 키프레임들) 을 프로세싱하여 특정 이미지 프레임의 카메라 포즈를 리파이닝할 수도 있다. 예를 들어, 카메라 포즈는, QVGA 이미지 프레임이 QQVGA 해상도로 다운-샘플링되는 경우 손실될 수도 있는 추가의 정보를 결정하기 위해 QVGA 이미지 프레임을 특정 키프레임에 비교함으로써 리파이닝될 수도 있다. 특정 키프레임은 복수의 키프레임들 중 하나일 수도 있고, 복수의 키프레임들 각각은 객체에 대해 대응하는 로케이션에서 레퍼런스 이미지 프레임으로서 역할을 할 수도 있다. 이미지 프레임들의 시퀀스가 캡처되고 있는 동안, 하나 이상의 추가의 키프레임들이 카메라 포즈 추정치들을 리파이닝하도록 생성되어 3D 포인트 클라우드 및/또는 3D 모델을 생성한다. 추가의 키프레임들은 객체에 대해 상이한 로케이션들에서 이미지 프레임들의 시퀀스에 대해 비교되도록 추가의 레퍼런스 이미지 프레임들로서 역할을 할 수도 있다.
특정 실시형태에서, 방법은 이미지 캡처 디바이스 (예를 들어, 카메라) 로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하는 단계를 포함한다. 방법은 또한, 프로세서에서, 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하는 단계를 포함하고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 방법은, 프로세서에서, 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하는 단계를 더 포함하고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다.
다른 특정 실시형태에서, 장치는 메모리 및 프로세서를 포함한다. 프로세서는 이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하도록 구성된다. 프로세서는 또한, 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하도록 구성되고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 프로세서는 또한, 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하도록 구성되고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다.
다른 특정 실시형태에서, 컴퓨터 판독가능 저장 디바이스는, 프로세서에 의해 실행되는 경우, 프로세서로 하여금 이미지 캡처 디바이스로부터 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하게 하는 명령들을 포함한다. 명령들은 또한, 프로세서로 하여금, 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하게 하고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 명령들은 또한, 프로세서로 하여금, 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하게 하고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다.
또 다른 특정 실시형태에서, 장치는 이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하기 위한 수단을 포함한다. 장치는 또한, 제 1 이미지 프레임의 제 2 이미지 프레임에 대한 제 1 비교에 기초하여 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하기 위한 수단을 포함하고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 장치는, 제 1 이미지 프레임의 키프레임에 대한 제 2 비교에 기초하여 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하기 위한 수단을 더 포함하고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다.
개시된 실시형태들 중 적어도 하나에 의해 제공된 하나의 특정한 이점은 이미지 프레임들의 시퀀스에서 인접한 이미지 프레임들 간의 비교에 기초한 카메라 포즈의 추정 및 특정 이미지 프레임과 키프레임 간의 비교에 기초한 리파이닝된 카메라 포즈의 추정이 별개의 프로세싱 스레드들을 사용하여 동시에 (예를 들어, 병렬로) 수행될 수도 있다는 것이다. 카메라 포즈 추정 및 카메라 포즈 리파인먼트의 병렬 프로세싱은 이미지 프레임들의 시퀀스의 실시간 또는 거의 실시간 프로세싱을 가능하게 하여 3D 포인트 클라우드 또는 3D 모델을 생성할 수 있다. 개시된 실시형태들 중 적어도 하나에 의해 제공된 다른 특정한 이점은 객체의 이미지 프레임들의 캡처링에 대하여 실시간 또는 거의 실시간으로 객체의 3D 포인트 클라우드를 생성하기 위한 능력이다.
본 개시물의 다른 양태들, 이점들, 및 특성들은 다음의 섹션들:도면의 간단한 설명, 상세한 설명, 및 청구범위를 포함하는, 전체 출원의 리뷰 후에 명백해질 것이다.
도 1 은 이미지 프레임들의 시퀀스에 기초하여 포인트 클라우드 데이터를 생성하기 위한 시스템의 특정한 예시적인 실시형태의 블록도이다.
도 2 는 포인트 클라우드 데이터를 생성하기 위한 시스템의 다른 특정한 예시적인 실시형태의 블록도이다.
도 3 은 이미지 캡처 디바이스에 의해 캡처되는 장면의 사시도이고, 이 장면은 포인트 클라우드 데이터의 시간-경과 묘사가 실시간으로 생성되고 있는 것의 예시를 포함한다.
도 4 는 이미지 프레임들의 시퀀스에 기초하여 카메라 포즈들 또는 새로운 키프레임들을 생성하는 것을 예시하는 다이어그램이다.
도 5 는 새로운 키프레임을 생성하기 위한 추가의 이미지 프레임들의 사용을 포함하는 도 4 의 다이어그램의 후속도이다.
도 6 은 새로운 키프레임을 생성하기 위한 추가적인 이미지 프레임들의 사용을 포함하는 도 4 및 도 5 의 다이어그램들의 후속도이다.
도 7 은 이미지 프레임들의 시퀀스의 2 개의 이미지 프레임들 간의 픽셀 강도 에러 및/또는 심도 에러를 결정하는 것을 예시하는 다이어그램이다.
도 8 은 새로운 키프레임을 생성하는 방법의 특정한 예시적인 실시형태의 흐름도이다.
도 9 는 이미지 프레임들의 시퀀스에서 이미지 프레임들의 카메라 포즈들을 추정하는 방법의 특정한 예시적인 실시형태의 흐름도이다.
도 10 은 비용 함수에 기초하여 특정 이미지 프레임의 카메라 포즈들을 추정하는 방법의 특정한 예시적인 실시형태의 흐름도이다.
도 11 은 카메라 포즈를 추정하고 리파이닝된 카메라 포즈를 추정하는 방법의 특정한 예시적인 실시형태의 흐름도이다.
도 12 는 이미지 프레임들의 시퀀스에 기초하여 카메라 포즈 추정을 수행하도록 구성된 프로세서를 포함하는 컴퓨팅 디바이스의 블록도이다.
도 1 을 참조하면, 시스템 (100) 의 특정한 예시적인 실시형태가 도시된다. 시스템 (100) 은 프로세서 (106) 및 메모리 (112) 에 통신가능하게 커플링된 카메라 (102) 를 포함한다. 예시적인 실시형태에서, 카메라 (102), 프로세서 (106), 및 메모리 (112) 는 컴퓨팅 또는 전자 디바이스, 예컨대 모바일 폰, 태블릿 컴퓨터, 퍼스널 컴퓨터, 미디어 플레이어 디바이스 등 안에 통합될 수도 있다.
특정 실시형태에서, 시스템 (100) 은 이미지 캡처 디바이스 (예를 들어, 카메라 (102)) 가 객체 주위에서 이동되는 것과 같은 이미지 캡처 프로세스 동안 포인트 클라우드 데이터 (116)(예를 들어, 3D 포인트 클라우드 또는 3D 모델) 를 생성하도록 구성된다. 카메라 (102)(또는 다른 이미지 캡처 디바이스) 는 이미지 프레임들의 시퀀스 (104) 를 캡처하도록 구성될 수도 있다. 카메라 (102) 가 이미지 프레임들의 시퀀스 (104) 를 캡처하는 동안, 카메라 (102) 는 (예를 들어, 객체 주위를 걸을 수도 있는 사용자에 의해) 객체 주위에서 이동될 수도 있다. 도시된 실시형태에서, 이미지 프레임들의 시퀀스 (104) 는 5 개의 이미지 프레임들을 포함한다; 그러나, 이미지 프레임들의 시퀀스 (104) 는 5 개보다 더 많은 이미지 프레임들 또는 5 개보다 더 적은 이미지 프레임들을 포함할 수도 있다. 각각의 이미지 프레임은 다수의 픽셀들을 포함하고, 각각의 픽셀은 픽셀 값들의 세트, 예컨대 심도 값들, 포토메트릭 값들 (예를 들어, 레드-그린-블루 (RGB) 값들, 세기 값들, 크로마 값들, 포화 값들 등), 또는 그 조합에 대응한다.
카메라 (102) 는 이미지 프레임들의 시퀀스 (104) 를 프로세서 (106) 의 비교기 (108) 에 제공할 수도 있다. 특정 실시형태에서, 프로세서 (106) 는 단일의 코어 프로세서일 수도 있다. 다른 실시형태에서, 프로세서 (106) 는 다수의 프로세싱 코어들을 포함할 수도 있고, 비교기 (108) 는 다수의 프로세싱 코어들 중 적어도 하나의 코어에 대응할 수도 있다 (예를 들어, 이에 의해 실행될 수도 있다). 다른 특정 실시형태에서, 프로세서 (106) 는 병렬로 동작하는 다수의 프로세서들을 포함할 수도 있고, 여기서 다수의 프로세서들의 각각의 프로세서는 대응하는 비교기, 예컨대 비교기 (108) 를 포함한다. 예시적인 실시형태에서, 이미지 프레임들의 시퀀스 (104) 에서 각각의 이미지 프레임은 소스 해상도 (예를 들어, 고 해상도, 예컨대 고화질 (HD)) 에서 캡처될 수도 있다.
예시되지 않았으나, 이미지 프레임들의 시퀀스 (104) 중 하나 이상의 이미지 프레임들은 프로세서 (106) 에 의해 버퍼링 (예를 들어, 저장) 될 수도 있다. 예를 들어, 프로세서 (106) 는 소스 해상도 (예를 들어, 고 해상도, 예컨대 고화질 (HD)) 에서 이미지 프레임들의 시퀀스 (104) 의 특정 이미지 프레임을 수신할 수도 있고, 메모리, 예컨대 프로세서 (106) 에 커플링되거나 이에 포함된 랜덤 액세스 메모리 (RAM) 에 소스 해상도에서의 이미지 프레임을 저장할 수도 있다. 부가적으로 또는 대안으로, 프로세서 (106) 는 이미지 프레임들의 시퀀스 (104) 중 하나 이상의 이미지 프레임들을 다운 샘플링 또는 리사이징하도록 구성될 수도 있다. 예를 들어, 프로세서 (106) 는 특정 이미지 프레임의 (소스 해상도에 비교될 때) 하나 이상의 감소된 해상도 이미지 프레임들을 생성할 수도 있다. 예시하기 위해, 소스 해상도가 고 해상도 (예를 들어, HD 해상도) 인 경우, 프로세서 (106) 는 특정 프레임의 중간 해상도 (예를 들어, 쿼터 비디오 그래픽 어레이 (QVGA) 해상도) 이미지 프레임 및/또는 저 해상도 (예를 들어, 쿼터-쿼터 비디오 그래픽 어레이 (QQVGA) 해상도) 이미지 프레임을 생성할 수도 있다. 일부 구현들에서, 프로세서 (106) 는 다양한 (예를 들어, 상이한) 해상도들에서 특정 이미지 프레임을 수신할 수도 있다. 프로세서 (106) 는 프로세서 (106) 에 포함되거나 이에 커플링되는 메모리 (예를 들어, RAM) 에 특정 이미지 프레임의 하나 이상의 감소된 해상도 이미지 프레임들을 저장 (예를 들어, 버퍼링) 하도록 구성될 수도 있다. 프로세서 (106) 에서 또는 이에 의해 버퍼링되는 다양한 해상도들에서의 이미지 프레임들은 프로세서 (106) 의 하나 이상의 컴포넌트들, 예컨대 비교기 (108) 및/또는 키프레임 생성기 (110) 에 액세스 가능할 수도 있다. 특정 이미지 프레임의 하나 이상의 감소된 해상도 버전들은 특정 이미지 프레임을 수신하는 프로세서 (106) 에 응답하여 생성될 수도 있고, 또는 특정 이미지 프레임의 하나 이상의 감소된 해상도 버전들이 프로세서 (106) 의 컴포넌트들에 의해 필요로 될 때 (예를 들어, 요청될 때) 필요에 따라 생성될 수도 있다.
비교기 (108) 는 프로세서 (106) 의 하나 이상의 하드웨어 디바이스들 (예를 들어, 로직 회로), 프로세서 (106) 에 의해 실행 가능한 소프트웨어 명령들 (예를 들어, 프로그램 코드), 또는 이들의 조합을 사용하여 구현될 수도 있다. 특정 실시형태에서, 비교기 (108) 는 메모리 (112) 에 저장된 하나 이상의 키프레임들 (114) 에 대하여 그리고/또는 서로에 대하여 이미지 프레임들의 시퀀스 (104) 에서 이미지 프레임들의 픽셀별 비교를 수행하도록 구성된다. 특정 실시형태에서, 비교기 (108) 는, 아래에서 추가로 설명되는 바와 같이, 픽셀별 비교를 수행하여 오버랩 비 (109) 를 결정한다. 픽셀별 비교는 제 1 이미지 프레임 (121) 의 픽셀 값들 (예를 들어, 심도 값들, 포토메트릭 값들 (예를 들어, 레드-그린-블루 (RGB) 값들), 또는 이들의 조합) 및 제 2 이미지 프레임 (122) 또는 키프레임 (114) 의 픽셀 값들 간의 비교를 포함할 수도 있다.
오버랩 비 (109) 는 이미지 프레임들의 시퀀스 (104) 중 2 이상의 이미지 프레임들의 유사성의 수적 표현일 수도 있다. 예를 들어, 수적 표현은 "유사한" 픽셀들의 수를 픽셀들의 총 수로 나눈 것 일 수도 있다. 2 이상의 이미지 프레임들의 픽셀들은, 픽셀들이 정확하게 일치하는 (예를 들어, 특정 픽셀 값에 대해 동일한 수치를 갖는) 경우 또는 픽셀들이 실질적으로 일치하는 (예를 들어, 제 1 픽셀의 수치가 제 2 픽셀의 대응하는 수치의 차이 임계 내에 있는) 경우 유사한 것으로 결정될 수도 있다. 대안의 실시형태에서, 오버랩 비 (109) 는 이미지 프레임들의 시퀀스 (104) 중 2 이상의 이미지 프레임들 간의 비유사성의 수적 표현일 수도 있다. 예를 들어, 오버랩 비 (109) 는 "비유사한" 픽셀들 (예를 들어, 전술된 바와 같이 유사하지 않은 픽셀들) 의 수를 픽셀들의 총 수로 나눈 것 일 수도 있다. 특정 실시형태에서, 오버랩 비 (109) 를 결정하는 것은 픽셀별 비교에 기초하여 이미지 프레임과 키프레임 간의 다수의 차이 값들을 결정하는 것 및 (오버랩 비 임계 (131) 에 대응할 수도 있는) 차이 임계를 충족시키는 다수의 차이 값들의 수를 결정하는 것을 포함하고, 여기서 오버랩 비 (109) 는 그 수를 이미지 프레임의 픽셀들의 총 수로 나눈 것에 기초한다.
키프레임 생성기 (110) 는 이미지 프레임들의 시퀀스 (104) 의 초기에 캡처된 프레임 (예를 들어, 제 1 이미지 프레임 (121)) 에 기초하여 새로운 키프레임 (111) 을 생성할 수도 있다. 예를 들어, 이미지 프레임들의 시퀀스 (104) 와 연관된 어느 키프레임들 (114) 도 메모리 (112) 에 저장되지 않는 경우, 그 후 제 1 이미지 프레임 (121)(또는 그 버전) 이 디폴트로 새로운 키프레임 (111) 으로서 사용될 수도 있다. 특정의 생성된 키프레임은 키프레임들 (114) 중 하나로서 저장될 수도 있고 캡처된 이미지 프레임과 동일한 해상도를 가질 수도 있거나 캡처된 이미지 프레임과 상이한 해상도를 가질 수도 있다 (예를 들어, 제 1 이미지 프레임 (121) 에 기초하여 생성된 키프레임 (111) 은 제 1 이미지 프레임 (121) 과 상이한 해상도를 가질 수도 있다). 예를 들어, 특정 키프레임은, 소스 해상도 (예를 들어, 제 1 이미지 프레임 (121) 의 오리지널 해상도) 에서 제 1 이미지 프레임 (121) 보다 더 낮은 메모리 또는 프로세싱 풋프린트를 사용하는 동안 제 1 이미지 프레임 (121) 으로부터의 적어도 일부 상세를 보유하는 중간 해상도 (예를 들어, 쿼터 비디오 그래픽 어레이 (QVGA) 해상도) 이미지 프레임일 수도 있다. 특정 실시형태에서, 프로세서 (106)(예를 들어, 키프레임 생성기 (110)) 는 제 1 이미지 프레임 (121) 을 다운-샘플링하거나 리사이징하여 새로운 키프레임 (111) 을 생성하도록 구성될 수도 있다.
부가적으로 또는 대안으로, 키프레임 생성기 (110) 는 이미지 프레임들의 시퀀스 (104) 의 캡처된 이미지 (예를 들어, 제 2 이미지 (122)) 및 하나 이상의 키프레임들 (114) 중 특정 키프레임에 기초하여 새로운 키프레임 (11) 을 생성할 수도 있다. 예시하기 위해, 하나 이상의 키프레임들 (114) 각각은 (예를 들어, 아래에서 설명되는 바와 같이, 카메라 포즈 추정치들을 리파이닝하기 위해) 이미지 프레임들의 시퀀스 (104) 의 이미지 프레임들 중 하나 이상에 대한 레퍼런스 이미지 프레임으로서 역할을 하도록 이용 가능할 수도 있다. 예를 들어, 비교기 (108) 는 하나 이상의 키프레임들 (114) 중 (제 1 이미지 프레임 (121) 에 기초하는) 특정 키프레임을 제 2 이미지 프레임 (122) 에 비교하여 제 2 이미지 프레임 (122) 과 연관된 카메라 포즈를 리파이닝하도록 사용될 수도 있다. 이미지 프레임들의 시퀀스 (104) 중 추가의 이미지 프레임들이 수신될 때, 비교기 (108) 는 각각의 수신된 이미지 프레임, 또는 그 감소된 해상도 버전들의, 메모리 (112) 내의 하나 이상의 키프레임들 (114) 의 이전에 저장된 키프레임에 대한 픽셀별 비교를 수행할 수도 있다. 특정 실시형태에서, 픽셀별 비교는 특정 키프레임의 대응하는 픽셀과 유사한 제 2 이미지 프레임 (122) 의 픽셀들을 결정한다. 비교기 (108) 는 유사한 픽셀들의 수에 기초하여 오버랩 비 (109) 를 계산할 수도 있다. 예를 들어, 비교기 (108) 는 특정 키프레임과 제 2 이미지 프레임 (122) 간의 유사한 픽셀들의 수를 제 2 이미지 프레임 (122) 에서의 픽셀들의 총 수로 나눈 것에 기초하여 오버랩 비 (109) 를 생성할 수도 있다. 대안의 실시형태에서, 오버랩 비 (109) 는 제 1 이미지 프레임 (121) 과 제 2 이미지 프레임 (122) 간의 비유사한 픽셀들의 수를 총 픽셀들의 수로 나눈 것의 수적 표현일 수도 있다. 제 2 이미지 프레임 (122) 은 또한, 오버랩 비 (109) 를 계산하기 위해 제 1 이미지 프레임 (121) 을 정렬하도록 수정 (예를 들어, 도 6 을 참조하여 설명된 바와 같이 랩핑 (wrap) 하거나 비틈) 될 수도 있다.
키프레임 생성기 (110) 는 오버랩 비 (109) 를 오버랩 비 임계 (131) 에 비교하도록 구성될 수도 있다. 오버랩 비 임계 (131) 는 백분율, 픽셀들의 수의 관점들로, 또는 일부 다른 방식들로 표현될 수도 있다. 예를 들어, 오버랩 비 임계 (131) 는, 오버랩 비 (109) 가 백분율로서 표현되는 경우 백분율일 수도 있다. 특정 실시형태에서, 오버랩 비 (109) 는 픽셀들의 총 수의 유사한 픽셀들의 백분율이고, 오버랩 비 임계 (131) 는 이미지 프레임이 키프레임과 실질적으로 유사한 것으로 간주되는 것 (예를 들어, 90% 유사성) 이상의 백분율이다. 오버랩 비 임계 (131) 의 값은, 이미지 프레임들이 실질적으로 유사한지 여부를 결정하는데 있어서 감도를 증가시키거나 감소시키도록 (예를 들어, 사용자에 의해) 조정될 수도 있다. 특정 실시형태에서, 오버랩 비 (109) 는, 이 오버랩 비 (109) 가 오버랩 비 임계 (131) 이상인 경우 오버랩 비 임계 (131) 를 충족할 수도 있다. 오버랩 비 (109) 가 오버랩 비 임계 (131) 이상인 경우, 이미지 프레임 및 키프레임은 실질적으로 유사하고 키프레임 생성기 (110) 는 메모리 (112) 에 저장하기 위한 새로운 키프레임 (111)(예를 들어, 다른 키프레임) 을 생성하지 않는다. 다른 특정 실시형태에서, 오버랩 비 (109) 는, 이 오버랩 비 (109) 가 오버랩 비 임계 (131) 이하인 경우 오버랩 비 임계 (131) 를 충족시킬 수도 있다. 오버랩 비 (109) 가 오버랩 비 임계 (131) 이하인 경우, 이미지 프레임 및 키프레임은 실질적으로 유사하지 않고 키프레임 생성기 (110) 는 메모리 (112) 에 저장하기 위한 새로운 키프레임 (111)(예를 들어, 다른 키프레임) 을 생성한다. 새로운 키프레임 (111) 을 생성하는 것은 이미지 프레임들의 시퀀스 (104) 의 소스 프레임의 복사본을 생성하는 것을 포함할 수도 있다. 특정 실시형태에서, 복사본은 소스 프레임 (예를 들어, HD 해상도) 에 비해 감소된 해상도 (예를 들어, QVGA 해상도) 를 갖는다.
특정 실시형태에서, 오버랩 비 임계 (131) 에 대한 오버랩 비 (109) 의 비교가, 이미지 프레임 및 키프레임이 실질적으로 유사하지 않다는 것을 나타내는 경우, 실질적인 변화가 카메라 (102) 의 제 1 포지션과 제 2 포지션, 예컨대 제 1 이미지 프레임 (121) 의 캡처 동안 카메라 (102) 의 제 1 포지션과 제 2 이미지 프레임 (122) 의 캡처 동안 카메라 (102) 의 제 2 포지션 간에 발생했던 것으로 결정된다. 따라서, 오버랩 비 (109) 와 오버랩 비 임계 (131) 간의 비교에 기초하여, 제 1 이미지 프레임 (121) 및 제 2 이미지 프레임 (122) 은 상이한 이미지 데이터를 갖는 실질적으로 상이한 이미지 프레임들인 것으로 결정될 수도 있다. 제 1 이미지 프레임 (121) 및 제 2 이미지 프레임 (122) 이 실질적으로 상이한 이미지 프레임들인 것으로 결정되는 경우, 키프레임 생성기 (110) 는 제 2 이미지 프레임 (122) 에 기초하여 새로운 키프레임 (111) 을 생성할 수도 있다. 대안으로, 오버랩 비 임계 (131) 에 대한 오버랩 비 (109) 의 비교가, 이미지 프레임 및 키프레임이 실질적으로 유사하다는 것을 나타내는 경우, 키프레임 (114) 및 제 2 이미지 프레임 (122) 은 실질적으로 동일한 이미지 데이터를 포함하기 때문에 제 2 이미지 프레임 (122) 에 기초하여 어느 새로운 키프레임 (111) 도 생성되지 않는다. 키프레임 (114) 및 제 2 이미지 프레임 (122) 이 실질적으로 유사한 경우, 새로운 키프레임 (111) 의 생성은 필요하지 않다. 비교들을 위해 생성되고 이용 가능한 새로운 키프레임들의 수를 감소시킴으로써, 이미지 프레임들의 시퀀스 (104) 는 더 효율적인 방식으로 프로세싱될 수도 있다.
일반적으로, 이미지 프레임들의 시퀀스 (104) 의 모든 이미지 프레임이 오버랩 비 임계 (131) 에 기초하여 키프레임과 유사한 것으로 결정되지는 않을 것이다. 특정 이미지 프레임, 예컨대 제 4 이미지 프레임 (123) 이 캡처되어 비교기 (108) 에 제공되는 경우, 카메라 (102) 는, 하나 이상의 키프레임들 (114) 중 특정 키프레임 (예를 들어, 제 1 이미지 프레임 (121) 에 기초한 특정 키프레임) 에 대응하는 이미지 프레임이 캡처된 경우와 실질적으로 상이한 포지션에 있을 수도 있다. 결과적으로, 특정 키프레임과 제 4 이미지 프레임 (123) 간의 비교에 대응하는 오버랩 비 (109) 가 결정되고 오버랩 비 임계 (131) 에 비교되어, 제 4 이미지 프레임 (123) 및 특정 키프레임이 유사한지 여부를 나타낼 수도 있다. 따라서, 이 비교에 기초하여, 제 4 이미지 프레임 (123) 및 특정 키프레임이 유사하지 않은 것으로 결정되는 경우, 제 4 이미지 프레임 (123) 에 기초한 새로운 키프레임 (111) 이 생성되고 메모리 (112) 에 저장될 수도 있다. 새로운 키프레임 (111) 이 제 4 이미지 프레임 (123) 에 기초하여 생성되는 경우, 이미지 프레임들의 시퀀스 (104) 의 제 4 이미지 프레임 (123) 을 뒤따르는 수신된 이미지 프레임들은 이러한 이미지 프레임들의 (또는 이러한 이미지 프레임들의 감소된 해상도 버전들의) 제 4 이미지 프레임 (123) 에 기초하여 생성된 새로운 키프레임 (111) 에 대한 추가의 픽셀별 비교들을 수행하도록 비교기 (108) 에 의해 사용될 수도 있다. 따라서, 이미지 프레임들의 시퀀스 (104) 에서 초기 수신된 이미지 프레임이 키프레임으로서 지정되고 메모리 (112) 에 저장된 후에, 비교기 (108) 에 의해 수행된 비교들은 메모리 (112) 내의 "가장 최근에 생성된" 키프레임 (예를 들어, 키프레임들 (114) 의 타임스탬프들에 기초하여 최종 생성된 키프레임) 에 대하여 수행된다. 대안으로, 메모리 (112) 에서 미리 생성된 키프레임들의 세트에 대하여 비교기 (108) 에 의해 비교들이 수행될 수도 있다. 예를 들어, 메모리 (112) 는 이미지 프레임들의 시퀀스 (104) 의 프로세싱 동안 이전에 생성되었던 키프레임(들)을 저장할 수도 있다. 일부 실시형태들에서, 도 2 를 참조하여 추가로 설명되는 바와 같이, 이전의 키프레임들 중 하나가 비교기 (108) 에 의해 수행된 비교에서 사용되도록 선택될 수도 있다.
특정 실시형태에서, 새로운 키프레임 (111) 이 이미지 프레임들의 시퀀스 (104) 의 이미지 프레임들에 대해 감소된 해상도에서 생성된다. 감소된 해상도 이미지 프레임은 다운-샘플링, 리사이징, 및/또는 다른 동작들을 통해 이미지 프레임으로부터 생성될 수도 있다. 예를 들어, 제 2 이미지 프레임 (122) 이 HD 이미지 프레임이면, 새로운 키프레임 (111) 은 중간 해상도 이미지 프레임 (예를 들어, QVGA 해상도, 예를 들어, 320x240 픽셀들) 일 수도 있다. 키프레임 생성기 (110) 는 새롭게 생성된 키프레임들, 예를 들어 새로운 키프레임 (111) 을 메모리 (112) 로 전송할 수도 있다. 특정 실시형태에서, 메모리 (112) 는 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 디스크-기반 메모리, 고체 상태 메모리, 또는 이들의 임의의 조합을 포함할 수도 있다. 도 1 에 도시된 실시형태에서, 새로운 키프레임 (111) 은 메모리 (112) 내에 키프레임(들)(114) 중 하나로서 저장될 수도 있다. 이미지 프레임들의 시퀀스 (104) 와 연관된 하나 이상의 키프레임들 (114) 이 카메라 (102) 의 동작 동안 메모리 (112) 에 저장될 수도 있다. 특정 실시형태에서, 다수의 키프레임들 (114) 의 수는 이미지 프레임들의 시퀀스 (104) 에서 이미지 프레임들의 총 수보다 적다. 다수의 키프레임들 (114) 은 장면 주변의 상이한 상대적 포지션들로부터 카메라 포즈들을 리파이닝하도록 다수의 레퍼런스 이미지 프레임들을 제공할 수도 있다. 특정 실시형태에서, 메모리 (112) 에서의 키프레임들 (114) 각각은 레퍼런스 이미지 프레임으로서 비교기 (108) 에 의한 비교에서 선택 및 사용되도록 이용 가능하다. 예를 들어, 일부 구현들에서, 메모리 (112) 는 다수의 키프레임들 (114) 을 포함할 수도 있고, 도 2 를 참조하여 본원에서 추가로 설명되는 바와 같이, 저장된 다수의 키프레임들 (114) 중 가장 유사한 키프레임이 이미지 프레임들의 시퀀스 (104) 중 특정 이미지 프레임과의 비교에 사용되도록 선택될 수도 있다. 부가적으로 또는 대안으로, 메모리 (112) 에 저장되고 이미지 프레임들의 시퀀스 (104) 의 세트에 대응하는 하나 이상의 키프레임들 (114) 은 각각, 이미지들 (104) 의 시퀀스에 기초하여 생성되거나 이미지 프레임들의 시퀀스 (104) 와 연관된 키프레임들 (114) 의 전부보다 적은 키프레임들을 포함할 수도 있다. 예를 들어, 하나 이상의 키프레임들 (114) 은 키프레임들의 특정 수, 예컨대 하나 이상의 키프레임들 (114) 이 대형 메모리 풋프린트를 초래하지 않도록 가장 최근에 생성된 키프레임들의 수를 포함할 수도 있다.
새로운 키프레임들 (111) 이 생성될 때 및 추가의 이미지 프레임들이 카메라 (102) 로부터 수신될 때, 프로세서 (106) 는 포인트 클라우드 데이터 (116) 를 생성할 수도 있다. 특정 실시형태에서, 포인트 클라우드 데이터 (116) 는 3D 공간에서의 포인트들 (예를 들어, 좌표들) 에 관한 데이터, 예컨대 좌표들의 콜렉션 (예를 들어, x, y 및 z 좌표들 또는 다른 좌표들) 또는 방정식들을 포함하여 특정 형상을 나타낸다. 포인트 클라우드 데이터 (116) 의 생성은 도 3 을 참조하여 추가로 설명된다. 예시적인 실시형태에서, 포인트 클라우드 데이터 (116) 는 이미지 프레임들의 시퀀스 (104) 에서 하나 이상의 이미지 프레임들에 포함된 데이터, 메모리 (112) 내에 저장된 하나 이상의 키프레임들, 도 2 를 참조하여 본원에 설명된 바와 같은 프로세서 (106) 에 의해 컴퓨팅된 카메라 포즈 정보, 또는 이들의 임의의 조합에 기초하여 생성될 수도 있다. 예를 들어, 포인트 클라우드 데이터 (116) 는 이미지 프레임들의 시퀀스 (104) 의 캡처에 대해 실시간으로 또는 거의-실시간으로 생성될 수도 있고, 예시적인 실시형태에서, 본원에 추가로 설명된 바와 같이, 포인트 클라우드 데이터 (116) 는 카메라 (102) 에 의해 캡처된 하나 이상의 객체들의 3-차원 (3D) 모델의 생성 동안 사용될 수도 있다. 특정 실시형태에서, 3D 모델은 포인트 클라우드 데이터 (116) 를 보간하는 것, 예컨대 3D 모델의 부분인 3D 공간에서 포인트들을 식별하기 위해 좌표들을 사용하는 것에 기초하여 생성된다.
동작 동안, 프로세서 (106) 는 카메라 (102) 로부터 이미지 프레임들의 시퀀스 (104) 중 제 1 이미지 프레임 (121) 을 수신할 수도 있다. 프로세서 (106) 는, 제 1 이미지 프레임 (121) 이 이미지 프레임들의 시퀀스 (104) 의 제 1 (예를 들어, 초기) 이미지 프레임이고, 따라서 이미지 프레임들의 시퀀스 (104) 와 연관된 어느 키프레임도 메모리 (112) 에 저장되지 않기 때문에 제 1 이미지 프레임 (121) 에 기초하여 제 1 키프레임 (예를 들어, 하나 이상의 키프레임들 (114) 중 제 1 키프레임) 을 생성할 수도 있다. 제 1 키프레임을 생성하는 것은 제 1 이미지 프레임 (121) 을 다운 샘플링하여, 제 1 이미지 프레임 (121) 이 캡처되었던 해상도보다 더 낮은 해상도 (예를 들어, QVGA) 버전의 제 1 이미지 프레임 (121) 을 생성할 수도 있다.
제 1 이미지 프레임 (121) 을 수신한 후에, 프로세서 (106) 는 카메라 (102) 로부터 제 2 이미지 프레임 (122) 을 수신할 수도 있다. 프로세서 (106) 는 제 2 이미지 프레임 (122) 과 제 1 키프레임 간의 오버랩 비 (109) 를 결정할 수도 있다. 오버랩 비 (109) 는 제 2 이미지 프레임 (122) 의 픽셀 값들 (예를 들어, 컬러 값, 세기 값, 또는 이들의 임의의 조합) 및 키프레임 (114) 의 대응하는 픽셀 값들의 픽셀별 비교에 기초할 수도 있다. 일부 구현들에서, 오버랩 비 (109) 를 결정하는데 사용된 제 2 이미지 프레임 (122) 의 특정 해상도는 제 1 키프레임과 동일한 해상도일 수도 있다 (예를 들어, 양자 모두는 QVGA 임). 다른 구현들에서, 오버랩 비 (109) 를 결정하는데 사용된 제 2 이미지 프레임 (122) 의 특정 해상도는 제 1 키프레임의 해상도와 상이할 수도 있고, 제 2 이미지 프레임 (122) 및/또는 제 1 키프레임의 하나 이상의 픽셀 값들은 오버랩 비 (109) 를 생성하기 위해 픽셀별 비교를 수행하도록 보간될 수도 있다.
오버랩 비 (109) 는 오버랩 비 임계 (131) 에 비교될 수도 있고, 제 2 이미지 프레임 (122) 이 키프레임 (114) 과 실질적으로 유사하지 않다는 결정에 기초하여, 제 2 이미지 프레임 (122) 은 메모리 (112) 에 저장하기 위한 새로운 키프레임 (111) 을 생성하는데 사용될 수도 있다. 대안으로, 이 비교에 기초하여 제 2 이미지 프레임 (122) 이 키프레임 (114) 과 실질적으로 유사한 것으로 결정되는 경우, 제 2 이미지 프레임 (122) 은 새로운 키프레임 (111) 을 생성하는데 사용되지 않을 수도 있다. 제 2 이미지 프레임 (122) 에 기초하여 새로운 키프레임 (111) 을 생성하는 것은 제 2 이미지 프레임 (122) 을 다운 샘플링하여 더 낮은 해상도 (예를 들어, QVGA) 버전의 제 2 이미지 프레임 (122) 을 생성하는 것, 또는 제 2 이미지 프레임 (122) 의 이전에 다운-샘플링된 버전을 사용하는 것을 포함할 수도 있다.
도 1 의 시스템 (100) 은, 생성된 키프레임들의 수가 이미지 프레임들의 시퀀스 (104) 의 이미지 프레임들의 수보다 작도록 키프레임들을 선택적으로 생성하는데 사용될 수도 있다. 부가적으로, 키프레임들을 식별하기 위한 이미지 프레임들의 프로세싱은 이미지 프레임들의 시퀀스 (104) 의 수신된 이미지의 특정 해상도에 비교될 때 감소된 해상도에서 수행될 수도 있다. 키프레임들 (114) 을 생성하기 위해 더 낮은 해상도를 사용함으로써, 포인트 클라우드 데이터 (116) 의 생성 및 다른 프로세싱 동작들은 이미지 프레임들의 시퀀스 (104) 가 캡처되는 속도에 대해 실시간으로 또는 거의-실시간으로 수행될 수도 있다. 따라서, 도 1 의 시스템은 이미지 프레임들의 시퀀스 (104) 의 캡처링의 비에 대해, 실시간으로, 또는 거의 실시간으로 포인트 클라우드 데이터 및/또는 3D 모델을 생성하는데 사용될 수도 있다.
도 2 를 참조하면, 키프레임들을 선택적으로 생성하기 위해 동작 가능한 시스템 (200) 의 다른 특정 실시형태가 도시된다. 시스템 (200) 은 카메라 (202), 프로세서 (206), 및 메모리 (212) 를 포함한다. 프로세서 (206) 는 이미지 프레임 버퍼 (207), 하나 이상의 카메라 포즈 추정기들 (208), 하나 이상의 비교기들 (220), 및 키프레임 생성기 (210) 를 포함한다. 이미지 프레임 버퍼 (207) 는 카메라 (202) 로부터 이미지 프레임들의 시퀀스 (204) 를 수신하도록 구성되는 캐시 및/또는 디스크-기반의 메모리에 대응할 수도 있다. 이미지 프레임 버퍼 (207) 로부터의 이미지 프레임들은, 다수의 프레임들 (예를 들어, 제 1 이미지 프레임 (221) 및 제 2 이미지 프레임 (222)) 이 하나 이상의 카메라 포즈 추정기들 (208) 에 동시에 제공될 수 있도록 하나 이상의 카메라 포즈 추정기들 (208) 에 제공될 수도 있다.
하나 이상의 카메라 포즈 추정기들 (208) 은 키프레임 생성기 (210) 에 의해 생성된 하나 이상의 키프레임들 및/또는 이미지 프레임들의 시퀀스 (204) 에서의 하나 이상의 이미지 프레임들에 대한 카메라 포즈 정보를 생성할 수도 있다. 일부 실시형태들에서, 키프레임 생성기 (210) 는 도 1 의 키프레임 생성기 (110) 에 대응할 수도 있다. 카메라 포즈 추정치는 특정 이미지 프레임의 캡처 동안 카메라 (202) 의 상대적인 포지션 (예를 들어, "오리진" 좌표 포지션과 같은 초기 포지션에 대한 포지션의 차이와 연관된 좌표) 및 배향 (예를 들어, "오리진" 각도와 같은 초기 각도에 대한 차이와 연관된 각도) 의 근사치일 수도 있다. 특정 실시형태에서, 특정 로케이션과 특정 이미지 프레임을 연관 (예를 들어, 지오태깅) 시키는, 하나 이상의 카메라 포즈들은 로케이션 데이터, 예컨대 글로벌 포지셔닝 위성 (GPS) 데이터와는 별도로 추정된다. 카메라 포즈 추정치는, 특정 이미지 프레임의 픽셀 값들과 함께 포인트 클라우드 데이터 (216) 를 생성하는데 사용될 수도 있다. 포인트 클라우드 데이터 (216) 는 도 1 의 포인트 클라우드 데이터 (116) 에 대응할 수도 있다. 예시적인 실시형태에서, 하나 이상의 카메라 포즈 추정기들 (208) 은 다수의 이미지 프레임들 (예를 들어, 제 1 이미지 프레임 (221) 및 제 2 이미지 프레임 (222)) 간의 비교에 기초하여 특정 이미지 프레임에 대한 카메라 포즈를 추정한다. 예를 들어, 하나 이상의 카메라 포즈 추정기들 (208) 은 이미지 프레임들의 시퀀스 (204) 에서 낮은 해상도 (예를 들어, QQVGA 해상도, 즉, 160x120) 버전들의 이미지 프레임들을 비교할 수도 있다. 이미지 프레임들의 낮은 해상도 버전들의 비교에 기초하여, 하나 이상의 카메라 포즈 추정기들 (208) 은 카메라 포즈 추정치 (250) 를 생성할 수도 있다. 본원에 설명된 바와 같이, 카메라 포즈 추정치 (250) 는 2 개의 이미지 프레임들 중 후자 (예를 들어, 제 2 이미지 프레임 (222)) 에 대응한다. 예시하기 위해, 이미지 프레임들의 시퀀스 (204) 중 제 1 이미지 프레임 (221) 은 "오리진" 으로서 사용될 수도 있고, 이미지 프레임들의 시퀀스 (204) 의 각각의 후속의 이미지 프레임은 제 1 이미지 프레임 (221)(예를 들어, "오리진") 에 대해 결정되는 대응하는 카메라 포즈를 가질 수도 있다. 예를 들어, 제 1 이미지 프레임 (121) 과 연관된 카메라 포즈는 0 의 상대적인 각도를 갖는 레퍼런스 포인트 (예를 들어, 포인트 0) 로서 표현될 수도 있다. 이 예에서, 후속의 카메라 포즈 추정치들은 실제 공간에서 상대적인 모션을 나타내는 좌표 (예를 들어, 거리에서의 근사한 변화를 나타내는 (x,y,z) 좌표들) 및 카메라 (102) 의 틸트에서의 상대적인 변화를 나타내는 각도 (예를 들어, 10°의 각도 변화) 로서 표현될 수도 있다.
예시적인 실시형태에서, 2 개의 이미지 프레임들 중 (예를 들어, 나중에 수신된 및/또는 생성된) 후자에 대응하는 카메라 포즈 추정치 (250) 를 생성하는 것은 2 개의 이미지 프레임들 간의 카메라 (202) 에 의해 캡처되고 있는 객체 (및/또는 장면) 및 카메라 (202) 의 상대적 모션에 기초하여 후반에 캡처된 프레임을 랩핑 (즉, 변환) 함으로써 랩핑된 프레임을 생성하는 것을 포함한다. 후반에 캡처된 프레임은 도 6 을 참조하여 본원에 설명된 바와 같이 초기에 캡처된 이미지 프레임과 더 유사해지도록 랩핑된다.
특정 실시형태에서, 이미지 프레임 비교를 위해 이미지 프레임에 기초하여 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 생성된 카메라 포즈 추정치 (250) 는 "초기" 카메라 포즈에 대응할 수도 있다. 카메라 포즈 추정치 (250) 는 낮은 해상도 (예를 들어, QQVGA) 동작에 기초하여 생성되었기 때문에 "초기" 일 수도 있다. "초기 (initial)" 카메라 포즈는 후속의 동작 동안 리파이닝될 수도 있다. 일부 실시형태들에서, "초기" 카메라 포즈 추정치는 특정 이미지 프레임에 대해 "초기" 일 수도 있고, 여기서 후속의 이미지 프레임들은 그 자신의 개별의 "초기" 카메라 포즈 추정치를 가질 수도 있다. 하나 이상의 비교기들 (220) 은, 본원에서 추가로 설명되는 바와 같이 키프레임 선택기 (242) 를 사용하여 키프레임들 (214) 로부터 가장 유사한 키프레임을 선택할 수도 있다. 일부 실시형태들에서, 키프레임 선택기 (242) 는 식별된 키프레임 (252) 을 선택하도록 카메라 포즈 추정치 (250) 를 사용하고, 여기서 식별된 키프레임 (252) 은 카메라 포즈 추정치 (250) 에 대하여 가장 유사한 키프레임이다. 식별된 키프레임 (252)(또는 그 표시) 은 카메라 포즈 추정기들 (208) 에 제공될 수도 있다.
카메라 포즈 추정기들 (208) 은 식별된 키프레임 (252) 을 수신할 수도 있고, 초기 카메라 포즈 추정치, 예컨대 카메라 포즈 추정치 (250) 를 리파이닝할 수도 있다. 예를 들어, 카메라 포즈 추정기들 (208) 은 이미지 프레임의 QVGA 버전을 이미지 프레임들의 시퀀스 (204) 에서 선행하는 이미지 프레임에 대응하는 식별된 키프레임 (252) 의 QVGA 해상도 버전에 비교함으로써 이미지 프레임에 대응하는 리파이닝된 카메라 포즈 (256) 를 추정하도록 구성될 수도 있다. 일부 실시형태들에서, 하나 이상의 비교기들 (220) 은 도 1 의 비교기 (108) 에 대응할 수도 있다.
예시하기 위해, 이미지 프레임들의 시퀀스 (204) 에서 이미지 프레임들 중 하나에 대응하는 초기 카메라 포즈 추정치가 결정된 후에, 하나 이상의 카메라 포즈 추정기들 (208) 은, 그 이미지 프레임을 키프레임 생성기 (210) 에 의해 이전에 생성되어 메모리 (212) 에 저장된 키프레임 (214), 예컨대 가장 최근에 생성된 키프레임 또는 가장 유사한 키프레임, 예컨대 식별된 키프레임 (252) 에 비교함으로써 이미지 프레임에 대응하는 리파이닝된 카메라 포즈 추정치 (256) 를 생성할 수도 있다. 메모리 (212) 는 도 1 의 메모리 (112) 에 대응할 수도 있다. 이미지 프레임 (223) 에 대한 초기 카메라 포즈 추정치 (250) 를 결정하는 것은 이미지 프레임 (223) 을 선행하는 이미지 프레임, 예컨대 이미지 프레임 (222) 또는 다른 이미지 프레임에 비교하는 것을 포함할 수도 있다. 하나 이상의 비교기들 (220) 은 메모리 (212) 로부터 키프레임 (214) 을 선택하도록 구성된 키프레임 선택기 (242) 를 포함한다. 일부 실시형태들에서, 키프레임 선택기 (242) 는 카메라 포즈 추정치 (250) 와 하나 이상의 키프레임들 (214) 중 특정 키프레임의 대응하는 카메라 포즈 추정치 간의 유사성들에 기초하여 키프레임 (214) 을 선택할 수도 있다. 일부 실시형태들에서, 카메라 포즈 추정치 (250) 와 특정 키프레임의 대응하는 카메라 포즈 추정치 간의 유사성은 상대적인 로케이션들, 배향들, 또는 이들의 조합 (예를 들어, 좌표들 및 각도들) 간의 비교에 기초할 수도 있다.
예를 들어, 카메라 포즈 추정치 (250) 에 대하여 가장 유사한 키프레임을 식별하기 위해, 키프레임 선택기 (242) 는 카메라 포즈 추정치의 상대적인 포지션 (예를 들어, 좌표) 및 배향 (예를 들어, 각도) 을 키프레임들 (214) 과 연관된 하나 이상의 카메라 포즈들에 비교할 수도 있다. 예시하기 위해, 키프레임들 (214) 의 각각의 키프레임은 키프레임을 생성하는데 사용된 이미지 프레임들의 시퀀스 (204) 중 특정 이미지 프레임에 대응하는 카메라 포즈와 연관될 수도 있다. 예를 들어, 제 1 키프레임은 전술된 바와 같이, "오리진" 과 연관될 수도 있다. 제 2 키프레임은 제 1 이미지 프레임 (221) 에 후속하는 특정 이미지 프레임에 기초하여 생성될 수도 있고, 제 2 키프레임은 특정 키프레임의 카메라 포즈와 연관될 수도 있다.
키프레임 선택기 (242) 는 카메라 포즈 추정치 (250) 의 상대적인 포지션 및/또는 상대적인 각도에 기초하여 키프레임들 (214) 중 유사한 키프레임 (또는 가장 유사한 키프레임) 을 식별할 수도 있다. 예를 들어, 키프레임 선택기 (242) 는 카메라 포즈 추정치 (250) 의 상대적인 포지션과 특정 키프레임과 연관된 특정 카메라 포즈의 상대적인 포지션 간의 제 1 차이를 결정할 수도 있다. 부가적으로 또는 대안으로, 키프레임 선택기 (242) 는 카메라 포즈 추정치 (250) 의 상대적인 각도와 특정 카메라 포즈의 상대적인 각도 간의 제 2 차이를 결정할 수도 있다. 키프레임 선택기 (242) 는 키프레임들 (214) 각각에 대해 제 1 차이 및/또는 제 2 차이를 결정할 수도 있고, 최소 차이 값 (예를 들어, 상대적인 포지션에서의 최소 차이 및/또는 상대적인 각도에서의 최소 차이) 을 초래하는 키프레임을 가장 유사한 키프레임으로서 선택할 수도 있다.
다른 예로서, 키프레임 선택기 (242) 는, 키프레임 선택기 (242) 가 상대적인 포지션 임계 및/또는 상대적인 거리 임계를 충족시키는 특정 키프레임을 식별할 때 까지 (키프레임들 (214) 중) 하나 이상의 키프레임들의 세트에 카메라 포즈 추정치 (250) 를 반복적으로 비교할 수도 있다. 예를 들어, 키프레임 선택기 (242) 는 제 1 키프레임 (예를 들어, 가장 최근에 생성된 키프레임) 의 제 1 차이 및/또는 제 2 차이를 결정할 수도 있다. 키프레임 선택기 (242) 는 제 1 차이를 상대적인 포지션 임계에 비교할 수도 있고/있거나 제 2 차이를 상대적인 각도 임계에 비교할 수도 있다. 제 1 차이가 상대적인 포지션 임계를 충족시키고 (상대적인 포지션 임계 이하이고) 및/또는 제 2 차이가 상대적인 각도 임계를 충족시키면 (상대적인 각도 임계 이하이면), 키프레임은 카메라 포즈 추정치 (250) 와 유사한 (예를 들어, 가장 유사한) 것으로서 식별될 수도 있고 카메라 포즈 추정치 (250) 는 다른 키프레임 (예를 들어, 가장 최근에 생성된 키프레임 이전에 생성된 키프레임) 에 비교되지 않을 수도 있다. 하나 이상의 키프레임들의 세트 중 어느 것도 상대적인 포지션 임계 및/또는 상대적인 각도 임계를 충족시키지 않으면, 가장 유사한 키프레임이 선택되지 않고 키프레임 생성기 (201) 는 카메라 포즈 추정치 (250) 에 대응하는 이미지 프레임에 기초하여 새로운 키프레임을 생성하도록 명령 받을 수도 있다.
이미지 프레임 (223) 에 대해 리파이닝된 카메라 포즈 추정치 (256) 를 생성하는 것은 이미지 프레임 (223) 을 메모리 (212) 에 저장된 특정 키프레임들, 예컨대 이미지 프레임 (223) 에 대응하는 카메라 포즈 추정치 (250) 의 것과 가장 유사한 카메라 포즈를 갖는 키프레임에 비교하는 것을 수반할 수도 있다. 일부 실시형태들에서, 하나 이상의 키프레임들 (214) 의 각각의 키프레임은 대응하는 리파이닝된 카메라 포즈 추정치 (256) 와 연관된다.
하나 이상의 비교기들 (220) 은 이미지 프레임들의 시퀀스 (204) 에서 특정 이미지 프레임의 QVGA 해상도 버전의 메모리 (212) 에서 가장 유사한 키프레임에 대한 픽셀별 비교를 수행할 수도 있다. 특정 이미지 프레임의 키프레임에 대한 비교에 기초하여, 하나 이상의 비교기들 (220) 은 오버랩 비 (209) 를 생성하고 이 오버랩 비 (209) 를 키프레임 생성기 (210) 에 제공할 수도 있다. 키프레임 생성기 (210) 는 오버랩 비 (209) 를 오버랩 비 임계에 비교하여, 특정 이미지 프레임 및 키프레임이 유사한지 (예를 들어, 어느 새로운 키프레임도 생성되지 않을 것인지) 여부 또는 특정 이미지 프레임 및 키프레임이 다른지 (예를 들어, 추가의 키프레임이 생성될 것인지) 여부를 결정할 수도 있다. 예를 들어, 특정 이미지 프레임 및 키프레임이 다른 경우, 키프레임 생성기 (210) 는 새로운 키프레임 (211) 을 생성할 수도 있다. 일부 실시형태들에서, 오버랩 비 (209) 및 오버랩 비 임계는 도 1 의 오버랩 비 (109) 및 오버랩 비 임계 (131) 에 각각 대응한다.
오버랩 비 (209) 는 본원에 설명된 랩핑된 비교에 기초하여 하나 이상의 비교기들 (220) 에 의해 생성될 수도 있다. 대안으로, 카메라 포즈 추정치 (250) 는, 본원에 설명된 바와 같이 초기에 캡처된 (또는 생성된) 키프레임과 더 유사하게 되도록 이미지 프레임을 랩핑하는 것에 기초하여 생성될 수도 있다. 다른 대안의 실시형태에서, 오버랩 비 (209) 는 리파이닝된 카메라 포즈 추정치 (256) 와 키프레임들 (214) 의 대응하는 카메라 포즈 추정치들 간의 비교에 기초하여 생성될 수도 있다. 오버랩 비 (209) 는 백분율, 픽셀들의 수의 관점들에서, 또는 일부 다른 방식들로 표현될 수도 있다. 하나 이상의 비교기들 (220) 은 픽셀 세기 에러를 결정할 수도 있고, 여기서 픽셀 세기 에러는 랩핑된 프레임의 하나 이상의 픽셀들과 이미지 프레임들의 쌍 (또는 키프레임들 (114) 중 하나) 에서 사전 캡처된 프레임의 하나 이상의 픽셀들 간의 픽셀 세기에서의 차이를 나타낸다. 하나 이상의 카메라 포즈 추정기들 (208) 은 그 후, 랩핑된 프레임의 하나 이상의 픽셀들과 사전 캡처된 프레임 (또는 사전 키프레임) 의 하나 이상의 픽셀들 간의 심도의 차이를 나타내는 심도 에러를 결정할 수도 있다. 픽셀 세기 및 심도 에러들을 결정하는 것의 일 예가 도 7 을 참조하여 추가로 설명된다. 픽셀 세기 에러 및 심도 에러는 후반에 캡처된 이미지 프레임에 대한 카메라 포즈를 추정하는데 사용될 수도 있다.
특정 실시형태에서, 초기 카메라 포즈 정보는 프로세서 (206) 의 제 1 스레드에 의해 생성될 수도 있고, 리파이닝된 카메라 포즈들은 프로세서 (206) 의 제 2 프로세싱 스레드들에 의해 추정될 수도 있다. 제 1 프로세싱 스레드 및 제 2 프로세싱 스레드는 프로세서 (206) 에 의해 병렬로 (예를 들어, 동시에) 실행될 수도 있다. 제 1 프로세싱 스레드는 프로세서 (206) 의 제 1 프로세싱 코어를 포함하거나 이에 대응할 수도 있고, 제 2 프로세싱 코어는 프로세서 (206) 의 제 2 프로세싱 코어를 포함하거나 이에 대응할 수도 있다. 병렬의 프로세싱은, 제 2 프로세싱 스레드로 하여금, 전술된 바와 같이 카메라 포즈들의 초기 추정을 인터럽트하지 않고 카메라 포즈들을 리파이닝하기 위한 동작들을 실행하게 할 수 있다. 예시적인 실시형태에서, 하나 이상의 카메라 포즈 추정기들 (208) 은 프로세서 (206) 의 상이한 프로세싱 스레드에 의해 실행되도록 구성된다. 상이한 프로세싱 스레드들은 다수의 프로세서 코어들에서 병렬로 및/또는 단일의 프로세싱 코어에서 시간 멀티플렉싱된 방식으로 실행될 수도 있다. 제 1 및 제 2 프로세싱 스레드들은 단일의 프로세서 (예를 들어, 프로세서 (206)) 에 포함되어 있는 것으로 설명되지만, 다른 구현들에서 제 1 프로세싱 스레드는 제 1 프로세서에 포함될 수도 있고 제 2 프로세싱 스레드는 제 1 프로세서와 구별되는 제 2 프로세서에 포함될 수도 있다.
하나 이상의 카메라 포즈 추정기들 (208) 은 이미지 프레임들 (예를 들어, 제 1 이미지 프레임 (221) 과 제 2 이미지 프레임 (222)) 간에 또는 이미지 프레임 (예를 들어, 제 2 이미지 프레임 (222)) 과 키프레임 (예를 들어, 키프레임들 (214) 중 하나) 간에 비교들을 수행할 수도 있다. 예를 들어, 하나 이상의 카메라 포즈 추정기들 (208) 은 픽셀별로 또는 일부 다른 방식으로, 이미지 프레임들의 시퀀스 (204) 에서 연속적인 이미지 프레임들의 쌍들을 비교할 수도 있다. 예시하기 위해, 하나 이상의 카메라 포즈 추정기들 (208) 은 제 1 이미지 프레임 (221) 및 제 2 이미지 프레임 (222) 을 비교할 수도 있다. 특정 실시형태에서, 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 수행된 이미지 프레임 비교를 위한 이미지 프레임은 랜드마크들 또는 다른 그러한 피처들 (예를 들어, 에지들, 정점들 등) 과 독립적일 수도 있지만 (예를 들어, 기초하지 않을 수도 있지만), 차라리 픽셀 단위 마다 수행될 수도 있다. 따라서, 하나 이상의 카메라 포즈 추정기들 (208) 은 이미지 프레임들의 시퀀스 (204) 에서 이미지 프레임들의 랜드마크들을 검색하는 대신에 픽셀별 비교를 수행할 수도 있다. 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 수행된 비교의 결과들은 카메라 포즈 추정치 (250) 로서 하나 이상의 비교기들 (220) 에 제공될 수도 있다.
동작 동안, 카메라 포즈 추정기 (208) 는 카메라 포즈 정보를 생성할 수도 있고, 적용 가능할 때, 키프레임 생성기 (210) 는 새로운 키프레임들 (211) 을 생성할 수도 있다. 프로세서 (206) 는 이미지 프레임들의 시퀀스 (204) 의 캡처링에 대해 실시간으로 또는 거의-실시간으로 포인트 클라우드 데이터 (216) 를 생성하기 위해 이러한 정보를 사용할 수도 있다. 특정 실시형태에서, 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 생성된 카메라 포즈들 각각은, 이미지 프레임들의 시퀀스 (204) 에서 대응하는 이미지 프레임이 캡처되었던 때의 특정 시간에 대응하는 카메라 (202) 의 포지셔닝의 근사치를 나타낸다. 프로세서 (206) 는 카메라 (202) 로부터 이미지 프레임들의 시퀀스 (204) 에서 하나 이상의 추가의 이미지 프레임들을 수신할 수도 있고, 하나 이상의 추가의 이미지 프레임들에 기초하여 포인트 클라우드 데이터 (216), 예를 들어 3-차원 포인트 클라우드를 업데이트할 수도 있다. 특정 실시형태에서, 3-차원 포인트 클라우드를 업데이트하는 속도는 하나 이상의 추가의 이미지 프레임들을 수신하는 속도와 실질적으로 동일하다. 제 1 프로세싱 스레드는 이미지 프레임들의 시퀀스 (204) 의 캡처 동안 동작하기에 충분한 속도로 QQVGA 이미지 프레임들을 프로세싱하도록 구성될 수도 있다. 따라서, 포인트 클라우드 데이터 (216) 는 카메라 (202) 의 이미지 캡처 동작들에 대해 실시간으로 또는 거의 실시간으로 업데이트될 수도 있다. 포인트 클라우드 데이터의 이러한 실시간 또는 거의-실시간 생성의 일 예가 도 3 을 참조하여 추가로 예시된다.
따라서, 도 2 의 시스템은 다수의 해상도들의 프레임들을 프로세싱하고 키프레임들을 선택적으로 생성하며 포인트 클라우드 데이터를 업데이트하여 포인트 클라우드/3D 모델 생성 디바이스에서 거의-실시간 또는 실시간 동작을 수행할 수도 있다. 예시적인 실시형태에서, 카메라 (202) 에 의해 캡처된 이미지 프레임들 각각은 고 해상도 이미지 프레임들 (예를 들어, HD 해상도) 이고, 메모리 (212) 에 저장된 키프레임들 (214) 은 중간 해상도 프레임들 (예를 들어, QVGA 프레임들) 이며, 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 수행된 이미지-프레임-대-이미지-프레임 비교들은 저 해상도 (예를 들어, QQVGA 해상도) 에서 수행된다. 예시적인 실시형태에서, 이미지 프레임들의 시퀀스 (104) 에서 QVGA 및 QQVGA 버전들의 이미지 프레임들은 다운샘플링, 리사이징, 또는 다른 기법들에 기초하여 생성될 수도 있다.
도 3 을 참조하면, 도 1 의 시스템 (100) 또는 도 2 의 시스템 (200) 의 동작의 예시적인 실시형태가 도시되고 일반적으로 300 으로 지정된다. 도 3 에서, 이미지 캡처 디바이스 (302), 예컨대 도 1 의 카메라 (102) 또는 도 2 의 카메라 (202) 는 객체 (310), 예컨대 도 3 에 도시된 컵을 중심으로 경로 (304)(예를 들어, 아크) 를 따라 이동된다. 경로를 따른 이미지 캡처 디바이스 (302) 의 이동 동안, 이미지 캡처 디바이스 (302) 는 카메라 포즈들 (306A, 306B, 306C, 306D, 306E, 및 306F) 에 의해 도 3 에 예시된 다양한 포지션들에 위치된다. 도 3 에 도시된 카메라 포즈들 (306A-F) 의 수, 세퍼레이션, 및 배향은 단지 예시를 위해 도시되고, 제한하는 것으로 간주되지 않는다는 것이 주목된다. 예를 들어, 더 많은 카메라 포즈들 또는 더 적은 카메라 포즈들이 사용될 수도 있다.
경로 (304) 는, 이미지 캡처 디바이스 (302) 가 객체 (310) 주위에서 어떻게 이동되는지에 기초하여 임의의 구성일 수도 있다. 이미지 캡처 디바이스 (302) 가 카메라 포즈 (306A) 와 연관된 포지션으로부터 카메라 포즈 (306F) 와 연관된 포지션으로 경로 (304) 를 따라 이동될 때, 도 1 및 도 2 를 참조하여 전술된 바와 같이, 객체 (310) 의 3D 포인트 클라우드는 실시간 또는 거의-실시간으로 생성될 수도 있다. 예를 들어, 경로 (304) 를 따른 제 1 포지션에서 이미지 캡처 디바이스 (302) 의 초기 카메라 포즈를 나타내는, 카메라 포즈 (306A) 에서, 307A 에서 도시된 바와 같이 제 1 부분 3D 포인트 클라우드 (310A) 가 이미지 캡처 디바이스 (302) 에서 생성될 수도 있다. 이미지 캡처 디바이스 (302) 가 경로 (304) 를 따라 계속해서 이동할 때, 추가의 데이터가 캡처되어 부분 3D 포인트 클라우드에 포인트들을 추가하도록 사용될 수도 있다. 예를 들어, 컴퓨팅 디바이스 (302) 가 경로 (304) 를 따라 카메라 포즈 (306D) 와 연관된 포지션으로 이동된 경우, 307D 에 도시된 바와 같이 더욱 완전한 3D 포인트 클라우드 (310D) 가 생성될 수도 있다. 이미지 캡처 디바이스 (302) 가 카메라 포즈 (306F) 와 연관된 포지션에 도달한 후에, 307F 에서 도시된 바와 같이 완료된 3D 포인트 클라우드 (310F) 가 생성될 수도 있다.
따라서, 도 3 은 이미지 캡처 디바이스 (302) 에 의해 캡처된 이미지들을 사용하는 이미지 캡처 디바이스 (302) 의 모션에 기초하여 3D 포인트 클라우드 데이터의 거의-실시간 또는 실시간 생성을 예시한다. 3D 포인트 클라우드 데이터의 완료성은 이미지 캡처 디바이스 (302) 의 포지셔닝 및 캡처된 이미지들의 수에 의존할 수도 있다. 예를 들어, 3D 포인트 클라우드 데이터의 생성 동안, 3D 포인트 클라우드 데이터는 (예를 들어, 이미지 캡처 디바이스 (302) 가 카메라 포즈 (306F) 와 연관된 포지션에 도달하기 전에) 불완전할 수도 있고, 이것은 추가의 3D 포인트 클라우드 데이터가 수집되지 않으면 객체 (310) 의 불완전한 3D 표현의 생성을 초래할 수도 있다. 예시하기 위해, 이미지 캡처 디바이스 (302) 가 객체 (310) 의 모든 가시적인 각도들로부터 객체 (310) 의 이미지들을 캡처하지 않으면, 객체 (310) 의 3D 표현은 불완전할 수도 있다. 이 경우에서, 객체 (310) 의 3D 표현에서의 갭들을 완성하거나 채우기 위해 더 많은 이미지들이 이미지 캡처 디바이스 (302) 에 의해 캡처될 필요가 있을 수도 있다.
도 4 를 참조하면, 도 1 의 시스템 (100) 또는 도 2 의 시스템 (200) 에 관련된 다이어그램 (400) 이 도시된다. 도 4 에서, 상이한 동작 레벨들 또는 프로세싱 스레드들이 수평적으로 도시된다. 도 4 는 이미지 캡처/취출 레벨, 제 1 동작 모드/프로세싱 스레드, 제 2 동작 모드/프로세싱 스레드, 및 메모리 동작 레벨을 포함한다. 예시적인 실시형태에서, 이미지 캡처/취출 레벨은 도 1 의 카메라 (102), 카메라 (202), 이미지 캡처 디바이스 (302), 또는 이들의 조합에 의해 수행된 동작들에 대응한다. 제 1 동작 모드/프로세싱 스레드는 도 1 의 비교기 (108) 에 의해 또는 도 2 의 비교기(들)(220) 에 의해 수행된 동작들에 대응할 수도 있다. 제 2 동작 모드/프로세싱 스레드는 도 2 의 하나 이상의 비교기들 (220) 에 의해 수행된 동작들에 대응할 수도 있다. 메모리는 도 1 의 메모리 (112) 에 또는 도 2 의 메모리 (212) 에 대응할 수도 있다.
도 4 에서 도시된 바와 같이, 상이한 동작 세그먼트들은 상이한 해상도들, 예컨대 HD, QQVGA, 및 QVGA 해상도들을 갖는 이미지 데이터를 프로세싱하는 것을 수반할 수도 있다. 도 4 의 실시형태에서, 이미지 캡처/취출 레벨은 고 해상도 (HD) 데이터를 수신, 생성 및/또는 프로세싱하고, 제 1 동작 모드/프로세싱 스레드는 저 해상도 (예를 들어, QQVGA) 데이터를 수신, 생성 및/또는 프로세싱하며, 제 2 동작 모드/프로세싱 스레드는 중간 해상도 (예를 들어, QVGA) 데이터를 수신, 생성 및/또는 프로세싱한다. 예를 들어, 이미지 캡처/취출 레벨은 이미지 프레임들 (예를 들어, 도 4 의 소스 프레임:0, 소스 프레임:1, 소스 프레임:2 및 소스 프레임:3) 의 시퀀스를 기간 경과에 따라 수신할 수도 있다. 제 1 동작 모드/프로세싱 스레드는 소스 프레임들 각각을 다운 샘플링하여, 카메라 포즈 추정에서의 사용을 위해 대응하는 프레임 (예를 들어, 도 4 의 프레임:0, 프레임:1, 프레임:2, 및 프레임:3) 을 생성할 수도 있다. 유사하게, 제 2 동작 모드/프로세싱 스레드는 소스 프레임들의 적어도 일부를 다운 샘플링하여, 키프레임 생성을 위한 대응하는 프레임 (예를 들어, 도 4 의 프레임:1') 을 생성할 수도 있다. 대안으로, 제 2 동작 모드/프로세싱 스레드는 키프레임 생성을 위해 전 해상도 (예를 들어, HD) 에서 소스 프레임들을 사용할 수도 있다. 특정 실시형태에서, 소스 프레임들의 다운 샘플링된 버전들은 다른 프로세싱 스레드로부터 또는 다른 디바이스 (예를 들어, 이미지 프레임들의 시퀀스를 제공하는 디바이스) 로부터 제 1 동작 모드/프로세싱 스레드, 제 2 동작 모드/프로세싱 스레드, 또는 양자 모두에 제공될 수도 있다.
제 1 프레임 (예를 들어, 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임), 예컨대 소스 프레임:0 이 캡처 또는 수신되는 경우, 제 1 프레임은 키프레임, 예컨대 키프레임:0 을 생성하도록 자동으로 사용될 수도 있다. 예시적인 실시형태에서, 키프레임:0 의 생성은 소스 프레임:0 의 QVGA 해상도 복사본을 만들고 소스 프레임:0 의 QVGA 해상도 복사본을 메모리에 저장하는 것을 포함한다. 제 1 동작 모드/프로세싱 스레드에 도시된 바와 같이, 소스 프레임들 각각은 선행하는 QQVGA 프레임에 비교될 수도 있는 QQVGA 프레임에 대응한다. 예를 들어, 도 4 에 도시된 바와 같이, 프레임:1 에 대한 카메라 포즈는 프레임:0 과 프레임:1 의 비교에 기초하여 결정될 수도 있다. 유사하게, 프레임:2 에 대한 카메라 포즈는 프레임:1 과 프레임:2 의 비교에 기초하여 생성될 수도 있고, 프레임:3 에 대한 카메라 포즈는 프레임:2 와 프레임:3 의 비교에 기초하여 생성될 수도 있다. 예시적인 실시형태에서, 카메라 포즈 정보는 도 2 의 하나 이상의 카메라 포즈 추정기들 (208) 을 참조하여 설명된 바와 같이 생성될 수도 있고, 메모리에 저장될 수도 있다.
제 2 동작 모드/프로세싱 스레드는 도 2 의 하나 이상의 카메라 포즈 추정기들 (208) 을 참조하여 설명된 바와 같이, 제 1 동작 모드/프로세싱 스레드에 의해 결정된 카메라 포즈들을 리파이닝하는 것 및 도 1 의 키프레임 생성기 (110) 또는 도 2 의 키프레임 생성기 (210) 를 참조하여 설명된 바와 같이 새로운 키프레임이 생성되어야 하는지 여부를 결정하는 것을 수반한다. 예를 들어, 도 4 에 도시된 바와 같이, QVGA 해상도에서 프레임:1 은 키프레임:0 에 비교되어 오버랩 비, 예컨대 도 1 의 오버랩 비 (109) 또는 도 2 의 오버랩 비 (209) 를 결정한다. 키프레임:0 과 프레임:1 의 비교에 기초하여, 프레임:1 의 QQVGA 버전에 대하여 결정된 카메라 포즈는 도 2 를 참조하여 설명된 바와 같이, 리파이닝된 카메라 포즈 추정치를 생성하도록 리파이닝될 수도 있다. 리파이닝된 카메라 포즈 추정치는 그 후, 제 1 동작 모드/프로세싱 스레드에 의해 생성된 특정 프레임과 연관된, 카메라 포즈 추정치를 업데이트하는데 사용된다. 예를 들어, 프레임:1 에 대한 카메라 포즈 추정치는 대응하는 리파이닝된 카메라 포즈 추정치를 반영하도록 업데이트된다. 또한, 도 1 의 오버랩 비 (131) 와 같은, 오버랩 비 임계에 대한 생성된 오버랩 비의 비교는, 프레임:1 이 키프레임:0 과 다르다는 것을 나타내고, 도 1 및 도 2 를 참조하여 설명된 바와 같이, 새로운 키프레임이 생성되어 메모리에 저장될 수도 있다. 도 4 에 도시된 실시형태에서, 오버랩 비 임계에 대한 오버랩 비의 비교가 프레임:1 이 키프레임:0 과 유사하다는 것을 나타내기 때문에 새로운 키프레임은 생성되지 않는다.
도 5 를 참조하면, 도 4 를 참조하여 설명된 동작들의 계속을 예시하는 다이어그램 (500) 이 도시된다. 도 5 에서, 추가의 HD 소스 프레임들이 이미지 캡처 디바이스로부터 수신되어 있다. 예를 들어, 도 5 에 도시된 바와 같이, 소스 프레임:4, 소스 프레임:5, 및 소스 프레임:6 이 수신되어 있다. 제 1 동작 모드/프로세싱 스레드에서, 이미지 프레임들의 연속적인 쌍들이 비교되어 초기 카메라 포즈 정보를 생성한다. 선택된 QVGA 프로세싱은 제 2 동작 모드/프로세싱 스레드에 의해 수행된다. 예를 들어, 도 5 에서, 프레임:2 는 프레임:1 에 비교되어 프레임:2 에 대한 초기 카메라 포즈를 생성한다. 그러나, 프레임:1 의 QVGA 해상도와 키프레임:0 의 QVGA 해상도 간의 도 4 에 예시된 비교가 고 해상도로 인한 추가적인 프로세싱 시간이 걸리기 때문에, 프레임:2 는 QVGA 해상도에서 비교되지 않는다. 따라서, 제 2 프로세싱 스레드는, 제 1 비교가 완료될 때까지 새로운 프레임들을 비교할 수 없을 수도 있다. 따라서, 도 5 의 예에서, 제 2 동작 모드/프로세싱 스레드는 프레임:1 을 프로세싱한 후에, 프레임:2 가 아닌 프레임:3 을 프로세싱한다. 도 4 를 참조하여 설명된 바와 같이, 키프레임:0 은 프레임:3 에 비교되어 오버랩 비 및 이 오버랩 비가 오버랩 비 임계를 충족시키는지 또는 충족시키지 않는지 여부를 결정할 수도 있다. 비교가 키프레임:0 및 프레임:3 이 다르다는 것을 나타내는 경우, 새로운 키프레임이 생성될 수도 있다. 예를 들어, 도 5 에 도시된 바와 같이, 프레임:3 은 키프레임 0 과 충분히 상이하고, 따라서 키프레임:1 로 표기된 새로운 키프레임이 프레임:3 에 기초하여 생성된다. 프레임:3 과 연관된 카메라 포즈 추정치는 제 1 동작 모드/프로세싱 스레드에서 미래의 비교들에서 사용하기 위해 프레임:3 과 연관된 리파이닝된 카메라 포즈 추정치를 반영하도록 업데이트될 수도 있다.
도 6 을 참조하면, 도 4 및 도 5 를 참조하여 설명된 동작들의 계속을 예시하는 다이어그램 (600) 이 도시된다. 도 6 에서, 추가의 HD 소스 프레임들이 이미지 캡처 디바이스로부터 수신되어 있다. 예를 들어, 도 6 에 도시된 바와 같이, 소스 프레임:n, 소스 프레임:n+1, 소스 프레임:n+2, 및 소스 프레임:n+3 이 수신되어 있고, 여기서 n 은 임의의 음이 아닌 정수일 수도 있다. 제 1 동작 모드/프로세싱 스레드에서, 이미지 프레임들의 연속적인 쌍들이 비교되어 초기 카메라 포즈 정보를 생성한다. 선택된 QVGA 프로세싱은 제 2 동작 모드/프로세싱 스레드에 의해 수행된다. 예를 들어, 도 6 에서, 프레임:n+1 는 프레임:n 에 비교되어 프레임:n+1 에 대한 초기 카메라 포즈를 생성한다. 도 4 및 도 5 를 참조하여 설명된 바와 같이, 키프레임:0 내지 키프레임:m (여기서, m 은 음이 아닌 정수) 은 프레임:n+1 에 비교되어 프레임:n+1 과 연관된 오버랩 비를 결정할 수도 있다. 예를 들어, 키프레임:0 은 프레임:n+1 에 비교되어 제 1 오버랩 비를 결정할 수도 있고, 키프레임:1 은 프레임 :n+1 에 비교되어 제 2 오버랩 비를 결정할 수도 있으며, 키프레임:m 은 프레임:n+1 에 비교되어 제 3 오버랩 비를 결정할 수도 있다. 제 2 동작 모드/프로세싱 스레드는 제 1 동작 모드/프로세싱 스레드에서 추정된 카메라 포즈에 기초하여 키프레임:0 으로부터 키프레임 m 까지 가장 유사한 키프레임을 결정하도록 구성된다. 특정 구현에서, 가장 유사한 키프레임은 제 1 내지 제 3 오버랩 비들 중에서 식별된 최고 오버랩 비 값에 기초하여 선택된다. 최고 오버랩 비 값이 오버랩 비 임계를 충족시키지 않으면, 새로운 키프레임이 생성될 수도 있다. 예를 들어, 도 5 에 도시된 바와 같이, (오버랩 비가 오버랩 비 임계를 충족시키지 않도록) 프레임:n+1 은 키프레임:0 에서부터 키프레임:m 까지 충분히 상이하므로, 키프레임:m+1 로 표기된 새로운 키프레임이 프레임:n+1 에 기초하여 생성된다. 프레임:n+1 과 연관된 카메라 포즈 추정치는 제 1 동작 모드/프로세싱 스레드에서 미래의 비교들에서 사용하기 위해 프레임:n+1 과 연관된 리파이닝된 카메라 포즈 추정치를 반영하도록 업데이트될 수도 있다.
도 7 을 참조하면, 카메라 포즈를 추정하는 것의 부분으로서 프레임 에러를 결정하는 것을 포함하는 동작들을 수행하는 방법의 특정 실시형태가 도시되고, 일반적으로 700 으로 지정된다. 예를 들어, 동작들은 도 2 의 하나 이상의 비교기들 (220) 및/또는 도 4 내지 도 6 의 제 1 프로세싱 스레드에 의해 수행될 수도 있다. 도 7 의 실시형태에서, 레퍼런스 이미지 (702) 는 "현재" 이미지 (704) 에 비교된다. "현재" 이미지 (704) 는, 카메라 포즈 정보가 추정되고 있는 이미지일 수도 있다. 따라서, "현재" 이미지 (704) 는 가장 최근에 캡처된 이미지 프레임에 대응할 수도 있다. 레퍼런스 이미지 (702) 는 이전에 캡처된 이미지 프레임에 또는 이전에 캡처된 이미지 프레임에 기초하여 생성/저장된 키프레임에 대응할 수도 있다. 예시하기 위해, 도 5 를 참조하면, 현재 이미지 (704) 는 프레임:3 에 대응할 수도 있고, 레퍼런스 이미지 (702) 는 프레임:2 또는 키프레임:0 에 대응할 수도 있다. 다른 예로서, 현재 이미지 (704) 는 프레임:6 에 대응할 수도 있고, 레퍼런스 이미지 (702) 는 프레임:5 또는 키프레임:1 에 대응할 수도 있다.
도 7 에 도시된 바와 같이, 현재 이미지 (704) 는 랩핑되어 랩핑된 현재 이미지 (706) 를 생성할 수도 있다. 현재 이미지 (704) 는, 랩핑된 현재 이미지 (706) 가 랩핑 프로세스가 완료된 후에 레퍼런스 이미지 (702) 에 매우 근사하도록 랩핑될 수도 있다. 레퍼런스 이미지 (702) 는 랩핑된 현재 이미지 (706) 에 비교될 수도 있다. 예를 들어, 레퍼런스 이미지 (702) 와 랩핑된 현재 이미지 (706) 간에 감산 연산이 수행되어 에러 이미지 (708) 를 생성할 수도 있다. 에러 이미지 (708) 는 레퍼런스 이미지 (702) 와 랩핑된 현재 이미지 (706) 간의 픽셀 세기 및/또는 심도 에러를 나타낸다. 픽셀 세기 및 심도 에러는 다음의 방정식에 의해 표현될 수도 있는 비용 함수 C 에서 사용될 수도 있다:
Figure pct00001
다음 방정식에서, I 는 특정 이미지 프레임에 대응하는 픽셀 세기 이미지를 나타낸다. 변수 P 는 특정 이미지 프레임에 대응하는 심도 이미지로부터 측정된 3D 포인트를 나타낸다. 변수 n 은 심도 이미지로부터의 노멀 (예를 들어, 노멀 값) 을 나타낸다. 함수 π( ) 는 카메라 투영 모델을 나타낸다. 변수 ε는 유클리드 se(3) 공간에서 6x1 벡터를 나타낸다. 함수 T(ε) 는 se(3) 로부터 SE(3) 공간으로의 변환을 나타낸다. 함수
Figure pct00002
는 특정 포인트에 SE(3) 변환을 적용한다.
비용 함수 C 의 결과는 도 2 의 하나 이상의 비교기들 (220) 에 의해 비용 임계에 비교될 수도 있다. 이 결과가 비용 임계를 충족시키면, 하나 이상의 카메라 포즈 추정기들 (208) 은 카메라 포즈 추정치를 생성하고, 이 카메라 포즈 추정치를 현재 이미지 (704) 와 연관시킬 수도 있다. 결과가 비용 임계를 충족시키지 않으면, 현재 이미지 (704) 는 다시 랩핑되어 수정된 랩핑된 현재 이미지 (706) 를 생성하여 픽셀 세기 및/또는 심도 에러를 감소시킨다.
도 8 을 참조하면, 이미지 프레임들의 시퀀스에 기초하여 새로운 키프레임을 생성하는 방법 (800) 이 예시된다. 예시적인 실시형태에서, 방법 (800) 은 도 1 의 프로세서 (106) 또는 도 2 의 프로세서 (206) 에 의해 수행될 수도 있다.
방법 (800) 은 802 에서, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하는 단계를 포함한다. 예를 들어, 이미지 프레임들의 시퀀스는 이미지 캡처 디바이스, 예컨대 도 1 의 카메라 (102), 도 2 의 카메라 (202), 또는 도 3 의 이미지 캡처 디바이스 (302) 에 의해 캡처될 수도 있다. 방법 (800) 은 804 에서, 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 결정하는 단계를 더 포함한다. 오버랩 비의 결정은 제 1 이미지 프레임의 제 1 픽셀 값들 및 키프레임의 제 2 픽셀 값들의 픽셀별 비교에 기초한다. 예를 들어, 오버랩 비의 결정은 도 1 의 비교기 (108) 또는 도 2 의 하나 이상의 비교기들 (220) 에 의해 수행될 수도 있다. 오버랩 비는 제 1 이미지 프레임과 키프레임 간에 유사한 픽셀들의 비, 값, 또는 백분율과 연관될 수도 있다. 대안으로, 오버랩 비는 제 1 이미지와 키프레임 이미지 간에 비유사한 픽셀들의 비, 값, 또는 백분율과 연관될 수도 있다.
방법 (800) 은 또한, 806 에서 오버랩 비를 오버랩 비 임계에 비교하는 단계를 포함한다. 예를 들어, 도 1 의 키프레임 생성기 (110) 또는 도 2 의 키프레임 생성기 (210) 에 의해 비교가 수행될 수도 있다. 방법 (800) 은 808 에서, 오버랩 비 임계를 충족시키지 않는 오버랩 비에 기초하여 제 1 이미지 프레임을 사용하여 새로운 키프레임을 생성하는 단계를 더 포함한다. 예를 들어, 오버랩 비 임계가 제 1 이미지 프레임과 키 간에 유사한 픽셀들의 임계 비, 임계 값 또는 임계 백분율에 대응하는 경우, 오버랩 비 임계는, 이 비교가 오버랩 비가 오버랩 비 임계 이상이라는 것을 나타내는 경우 충족될 수도 있다. 다른 예로서, 오버랩 비 임계가 제 1 이미지 프레임과 키 간에 비유사한 픽셀들의 임계 비, 임계 값 또는 임계 백분율에 대응하는 경우, 오버랩 비 임계는, 이 비교가 오버랩 비가 오버랩 비 임계 이하라는 것을 나타내는 경우 충족될 수도 있다. 새로운 키프레임은 도 1 의 메모리 (112) 에 저장된 새로운 키프레임 (111) 또는 도 2 의 메모리 (212) 에 저장된 새로운 키프레임 (211) 일 수도 있다. 도 8 의 방법 (800) 은 따라서, 생성된 키프레임들의 수를 이미지 프레임들의 캡처된 수보다 더 적게 할 수 있는, 키프레임들의 선택적 생성을 가능하게 할 수도 있다. 더 적은 키프레임들을 생성함으로써, 포인트 클라우드 데이터의 생성 및 다른 프로세싱 동작들은 (예를 들어, 이미지 프레임들이 캡처되고 있는 속도에 대해 실시간으로 또는 거의 실시간으로) 더 빠르게 수행될 수도 있다.
도 9 를 참조하면, 이미지 프레임의 카메라 포즈 추정치를 리파이닝하는 방법 (900) 이 예시된다. 예시적인 실시형태에서, 방법 (900) 은 도 1 의 프로세서 (106) 또는 도 2 의 프로세서 (206) 에 의해 수행될 수도 있다.
방법 (900) 은, 902 에서 제 1 이미지 프레임 및 제 2 이미지 프레임을 수신하는 단계를 포함한다. 제 1 및 제 2 이미지 프레임들은 이미지 캡처 디바이스, 예컨대 도 1 의 카메라 (102), 도 2 의 카메라 (202), 또는 도 3 의 이미지 캡처 디바이스 (302) 로부터 수신될 수도 있다. 방법 (900) 은, 904 에서 저 해상도 (예를 들어, QQVGA 해상도) 에서 제 1 이미지 프레임을 사용하여 제 2 이미지 프레임의 카메라 포즈 추정치를 계산하는 단계를 포함한다. 카메라 포즈 추정치의 생성은 도 2 의 하나 이상의 카메라 포즈 추정기들 (208) 에 의해 수행될 수도 있다. 카메라 포즈 추정치는 도 2 의 하나 이상의 비교기들 (220) 에 의해 수행될 수도 있는 제 1 이미지 프레임 및 제 2 이미지 프레임의 비교에서 비롯되는 정보를 포함하거나 이에 기초할 수도 있다. 방법 (800) 은 806 에서, 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 계산하는 단계를 더 포함한다. 오버랩 비는 도 1 의 비교기 (108) 또는 도 2 의 하나 이상의 비교기들 (220) 에서 계산될 수도 있다.
방법 (900) 은 또한, 908 에서 오버랩 비가 오버랩 비 임계보다 더 큰지 여부를 결정하는 단계를 포함한다. 도 1 의 키프레임 생성기 (110) 또는 도 2 의 키프레임 생성기 (210) 에 의해 결정이 수행될 수도 있다. 오버랩 비가 오버랩 비 임계보다 크면 (예를 들어, 제 1 프레임 및 키프레임이 상대적으로 유사하면), 방법 (900) 은 910 에서, 중간 해상도 (예를 들어, QVGA 해상도) 에서 키프레임을 사용하여 제 2 이미지 프레임의 카메라 포즈 추정치를 리파이닝하는 단계를 포함한다. 제 2 이미지 프레임의 카메라 포즈 추정치를 리파이닝한 후에, 방법 (900) 은, 제 1 이미지 프레임에 기초하여 새로운 키프레임을 생성하지 않고, 이미지 프레임들의 새로운 세트로 반복된다. 특정 실시형태에서, 이미지 프레임들의 새로운 세트는 제 2 이미지 프레임 및 제 2 이미지 프레임에 후속되는 제 3 이미지 프레임을 포함한다.
오버랩 비가 오버랩 비 임계 미만이면, 방법 (900) 은 912 에서, 중간 해상도 (예를 들어, QVGA 해상도) 에서 제 1 이미지 프레임을 사용하여 제 2 이미지 프레임의 카메라 포즈 추정치를 리파이닝하는 단계를 포함한다. 일부 구현들에서, 908 에서, 오버랩 비가 오버랩 비 임계와 동일한 것으로 결정되는 경우, 방법은 910 으로 진행할 수도 있다. 다른 구현들에서, 908 에서, 오버랩 비가 오버랩 비 임계와 동일한 것으로 결정되는 경우, 방법은 912 로 진행할 수도 있다. 방법 (900) 은 914 에서, 제 1 이미지 프레임에 기초하여 새로운 키프레임을 생성하고, 메모리, 예컨대 도 1 의 메모리 (112) 또는 도 2 의 메모리 (212) 에 카메라 포즈 추정치를 저장하는 단계를 더 포함한다. 새로운 키프레임을 생성한 후에, 방법 (900) 은 이미지 프레임들의 새로운 세트로 반복될 수도 있다. 특정 실시형태에서, 이미지 프레임들의 새로운 세트는 제 2 이미지 프레임 및 제 2 이미지 프레임에 후속되는 제 3 이미지 프레임을 포함한다. 추가의 이미지 프레임들이 수신되지 않는 경우, 방법 (900) 은 종료될 수도 있다.
도 10 을 참조하면, 특정 이미지 프레임에 대한 카메라 포즈 추정치를 설정하는 방법 (1000) 이 예시된다. 예시적인 실시형태에서, 방법 (1000) 은 도 1 의 프로세서 (106) 또는 도 2 의 프로세서 (206) 에 의해 수행될 수도 있다.
방법 (1000) 은, 1002 에서 제 1 이미지 프레임의 픽셀들의 서브세트의 각각의 픽셀의 노멀 (normal) 을 컴퓨팅하는 단계를 포함한다. 각각의 픽셀의 노멀은 각각의 픽셀에 대응하는 접평면 (tangential plane) 에 수직인 방향을 나타내는 벡터이다. 픽셀들의 서브세트는 제 1 이미지 프레임의 다운-샘플링된 또는 리사이징된 복사본, 예컨대 고 해상도 (예를 들어, HD) 를 갖는 제 1 이미지 프레임의 저 해상도 (예를 들어, QQVGA 해상도) 복사본을 포함할 수도 있다. 방법 (1000) 은 또한, 1004 에서, 제 1 이미지 프레임을 랩핑하고 결과의 랩핑된 이미지 프레임의 대응하는 픽셀들을 제 2 이미지 프레임 (또는 키프레임) 에 비교하는 단계를 포함한다. 예를 들어, 제 1 이미지 프레임은 도 7 의 "현재" 이미지 (704) 에 대응할 수도 있고, 제 2 이미지 프레임은 도 7 의 레퍼런스 이미지 (702) 에 대응할 수도 있으며, 랩핑된 이미지 프레임은 도 7 의 랩핑된 현재 이미지 (706) 에 대응할 수도 있다. 방법 (1000) 은, 1006 에서, 랩핑된 제 1 이미지 프레임과 제 2 이미지 프레임 (또는 키프레임) 간의 픽셀 세기 에러 및 심도 에러를 계산하는 단계를 더 포함한다. 픽셀 세기 에러 또는 심도 에러는 도 7 의 에러 이미지 (708) 에 의해 도시될 수도 있다.
방법 (1000) 은, 1008 에서, 픽셀 세기 에러 및 심도 에러에 기초하여 비용 함수를 계산하는 단계를 더 포함한다. 비용 함수는 도 7 에 대하여 본원에 설명된 방정식에 의해 표현될 수도 있다. 방법 (1000) 은, 1010 에서, 비용 함수의 결과가 비용 임계를 충족시키는지 여부를 결정하는 단계를 더 포함한다. 결과가 비용 함수를 충족시키지 않으면, 방법 (1000) 은 1004 로 리턴하고 제 1 이미지 프레임이 다시 랩핑된다. 결과가 비용 함수를 충족시키면, 1012 에서 카메라 포즈 추정치가 설정된다.
도 11 을 참조하면, 카메라 포즈를 추정하고 리파이닝된 카메라 포즈를 추정하는 방법 (1100) 이 예시된다. 방법 (1100) 은 1102 에서, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 취출하는 단계를 포함한다. 이미지 프레임들의 시퀀스는 이미지 캡처 디바이스, 예컨대 카메라 (102), 카메라 (202), 또는 이미지 캡처 디바이스 (302) 로 캡처될 수도 있다. 방법 (1100) 은 또한, 1104 에서 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하는 단계를 포함하고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 일 실시형태에서, 카메라 포즈를 추정하는 단계는 도 2 의 하나 이상의 카메라 포즈 추정기들 (208), 도 4 내지 도 6 의 제 1 동작 모드/프로세싱 스레드, 또는 이들의 임의의 조합에 의해 수행될 수도 있다. 방법 (1100) 은, 1106 에서, 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하는 단계를 더 포함한다. 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임을 선행하는 특정 이미지 프레임에 대응할 수도 있다. 일 실시형태에서, 카메라 포즈를 추정하는 것은 도 2 의 하나 이상의 카메라 포즈 추정기들 (208), 도 4 내지 도 6 의 제 2 동작 모드/프로세싱 스레드, 또는 이들의 임의의 조합에 의해 수행될 수도 있다.
도 8 의 방법 (800), 도 9 의 방법 (900), 도 10 의 방법 (1000), 도 11 의 방법 (1100), 또는 이들의 조합은 필드-프로그램가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 예컨대 중앙 처리 장치 (CPU), 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 도 8 의 방법 (800), 도 9 의 방법 (900), 도 10 의 방법 (1000), 및 도 11 의 방법 (1100) 중 하나 이상은 도 12 에 대하여 설명된 바와 같이 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 12 를 참조하면, 전자 디바이스, 예컨대 무선 통신 디바이스의 특정의 예시적인 실시형태의 블록도가 도시되고, 일반적으로 1200 으로 지정된다. 디바이스 (1200) 는 프로세서, 예컨대 메모리 (1232) 에 커플링된 디지털 신호 프로세서 (DSP)(1210) 를 포함한다. 프로세서는 도 1 의 프로세서 (106) 또는 도 2 의 프로세서 (206) 를 포함하거나 이에 대응할 수도 있다. 메모리는 도 1 의 메모리 (112) 및/또는 도 2 의 메모리 (212) 를 포함하거나 이에 대응할 수도 있다. 카메라 (1262) 는 카메라 제어기 (1260) 를 통해 프로세서 (1210) 에 커플링될 수도 있다. 예시적인 실시형태에서, 카메라 (1262) 는 도 1 의 카메라 (102) 에, 도 2 의 카메라 (202) 에, 또는 도 3 의 이미지 캡처 디바이스 (302) 에 대응한다. 하나 이상의 비교기들 (1250) 은 프로세서 (1210) 내의 하나 이상의 하드웨어 디바이스들, 프로세서 (1210) 에 의해 실행 가능한 소프트웨어 명령들, 또는 이들의 조합을 사용하여 구현될 수도 있다. 예시적인 실시형태에서, 하나 이상의 비교기들 (1250) 은 도 1 의 비교기 (108) 에 대응할 수도 있고, 도 2 의 하나 이상의 비교기들 (208) 에 대응할 수도 있고/있으며, 도 6 내지 도 9 의 방법들에 따라 동작할 수도 있다. 하나 이상의 비교기들 (1250) 은 카메라 포즈 추정 로직 (1252) 및/또는 키프레임 생성 로직 (1254) 을 사용하여 프로세서 (1210) 에 의해 분석 또는 프로세싱될 비교 결과들 (예를 들어, 복수의 이미지 프레임들 간의 오버랩 비) 을 제공할 수도 있다.
메모리 (1232) 는 도 1 내지 도 11 을 참조하여 설명된 하나 이상의 동작들의 전부 또는 일부를 수행하도록 컴퓨터 실행가능 명령들 (1256) 을 저장하는 비-순간적 또는 비-일시적 컴퓨터 판독가능 매체일 수도 있다. 예를 들어, 명령들 (1256) 은, 프로세서 (1210) 에 의해 실행되는 경우, 프로세서 (1210) 로 하여금 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하고, 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 결정하고 (여기서, 오버랩 비는 제 1 이미지 프레임의 제 1 픽셀 값들 및 키프레임의 제 2 픽셀 값들의 픽셀별 비교에 기초함), 오버랩 비를 오버랩 비 임계에 비교하며, 임계를 충족시키지 않는 오버랩 비에 기초하여 제 1 이미지 프레임을 사용하여 새로운 키프레임을 생성하게 하는 명령들을 포함할 수도 있다. 오버랩 비가 임계를 충족시키면, 어느 새로운 키프레임도 생성되지 않을 수도 있다. 새로운 키프레임이 생성되면, 새로운 키프레임은 키프레임 (1258) 으로서 메모리 (1232) 에 저장될 수도 있다. 카메라 포즈 추정 로직 (1252) 에 의해 생성된 카메라 포즈 추정치들은 카메라 포즈 추정치들 (1259) 로서 저장될 수도 있다.
개시된 실시형태들에 따르면, 컴퓨터 판독가능 저장 디바이스, 예컨대 도 1 의 메모리 (112), 도 2 의 메모리 (212), 또는 도 12 의 메모리 (1232) 가 개시된다. 컴퓨터 판독가능 저장 디바이스는, 프로세서, 도 1 의 프로세서 (106), 도 2 의 프로세서 (206), 또는 도 12 의 프로세서 (1210) 에 의해 실행되는 경우, 프로세서로 하여금 이미지 캡처 디바이스로부터 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하게 하는 명령들을 포함한다. 이미지 프레임들의 시퀀스는 도 1 의 이미지 프레임들의 시퀀스 (104) 또는 도 2 의 이미지 프레임들의 시퀀스 (204) 를 포함하거나 이에 대응할 수도 있다. 명령들은 또한, 프로세서로 하여금, 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하게 하고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 카메라 포즈는 도 2 의 카메라 포즈 추정치 (250) 를 포함하거나 이에 대응할 수도 있다. 명령들은 또한, 프로세서로 하여금, 제 1 이미지 프레임을 키프레임에 비교함으로써 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하게 하고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다. 리파이닝된 카메라 포즈는 도 2 의 리파이닝된 카메라 포즈 추정치 (256) 를 포함하거나 이에 대응할 수도 있다.
도 12 는 또한, 디지털 신호 프로세서 (1210) 에 그리고 디스플레이 (1228) 에 커플링되는 디스플레이 제어기 (1226) 를 도시한다. 코더/디코더 (CODEC)(1234) 가 또한, 디지털 신호 프로세서 (1210) 에 커플링될 수 있다. 스피커 (1236) 및 마이크로폰 (1238) 이 CODEC (1234) 에 커플링될 수 있다.
도 12 는 또한, 무선 인터페이스 (1240) 가 디지털 신호 프로세서 (1210) 에 그리고 안테나 (1242) 에 커플링될 수 있다는 것을 나타낸다. 특정 실시형태에서, 프로세서 (1210), 디스플레이 제어기 (1226), 카메라 제어기 (1260), 메모리 (1232), CODEC (1234), 및 무선 인터페이스 (1240) 는 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1222) 에 포함된다. 특정 실시형태에서, 입력 디바이스 (1230) 및 전력 공급기 (1244) 는 시스템-온-칩 디바이스 (1222) 에 커플링된다. 더욱이, 특정 실시형태에서, 도 12 에 예시된 바와 같이, 디스플레이 (1228), 입력 디바이스 (1230), 스피커 (1236), 마이크로폰 (1238), 안테나 (1242), 카메라 (1262), 및 전력 공급기 (1244) 는 시스템-온-칩 디바이스 (1222) 외부에 있다. 그러나, 디스플레이 (1228), 입력 디바이스 (1230), 스피커 (1236), 마이크로폰 (1238), 안테나 (1242), 카메라 (1262), 및 전력 공급기 (1244) 각각은 시스템-온-칩 디바이스 (1222) 의 컴포넌트, 예컨대 인터페이스 또는 제어기에 커플링될 수 있다.
설명된 실시형태들과 함께, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하기 위한 수단을 포함할 수도 있는 시스템이 개시된다. 이미지들을 수신하기 위한 수단은 도 1 의 카메라 (102), 도 2 의 카메라 (202), 도 3 의 이미지 캡처 디바이스 (302), 도 12 의 카메라 (1262), 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하도록 구성된 하나 이상의 다른 디바이스들 또는 회로들, 또는 이들의 임의의 조합을 포함할 수도 있다. 시스템은 또한, 새로운 키프레임을 생성하기 위한 수단을 포함할 수도 있다. 새로운 키프레임을 생성하는 것은 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 결정하는 것 (여기서, 오버랩 비는 제 1 이미지 프레임의 제 1 픽셀 값들 및 키프레임의 제 2 픽셀 값들의 픽셀별 비교에 기초함), 오버랩 비를 오버랩 비 임계에 비교하는 것, 및 오버랩 비 임계를 충족시키지 않는 오버랩 비에 기초하여 제 1 이미지 프레임을 사용하여 새로운 키프레임을 생성하는 것을 포함한다. 예를 들어, 새로운 키프레임을 생성하기 위한 수단은 도 1 의 프로세서 (106), 도 1 의 키프레임 생성기 (110), 도 2 의 프로세서 (206), 도 2 의 키프레임 생성기 (210), 도 12 의 프로세서 (1210)(또는 이들의 컴포넌트(들), 예컨대 키프레임 생성 로직 (1254)), 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 결정하도록 구성된 하나 이상의 다른 디바이스들 또는 회로들, 또는 이들의 임의의 조합을 포함할 수도 있다.
설명된 실시형태들과 함께, 장치는 이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하기 위한 수단을 포함할 수도 있다. 수신하기 위한 수단은 도 1 의 비교기 (108), 도 1 의 키프레임 생성기 (110), 도 2 의 이미지 프레임 버퍼 (207), 도 2 의 하나 이상의 카메라 포즈 추정기들 (208), 도 12 의 카메라 제어기 (1260), 이미지 프레임들의 시퀀스의 이미지 프레임을 수신하도록 구성된 하나 이상의 다른 구조물들, 디바이스들, 또는 회로들, 또는 이들의 임의의 조합을 포함할 수도 있다. 장치는 또한, 제 1 이미지 프레임의 제 2 이미지 프레임에 대한 제 1 비교에 기초하여 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하기 위한 수단을 포함할 수도 있고, 여기서 제 2 이미지 프레임은 이미지 프레임들의 시퀀스에서 제 1 이미지 프레임에 선행한다. 카메라 포즈를 추정하기 위한 수단은 도 2 의 하나 이상의 카메라 포즈 추정기들 (208), 도 12 의 카메라 포즈 추정 로직 유닛 (1252), 카메라 포즈들을 추정하도록 구성된 하나 이상의 다른 구조물들, 디바이스들, 또는 회로들, 또는 이들의 임의의 조합을 포함할 수도 있다.
장치는, 제 1 이미지 프레임의 키프레임에 대한 제 2 비교에 기초하여 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하기 위한 수단을 더 포함할 수도 있고, 여기서 키프레임은 이미지 프레임들의 시퀀스에서 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응한다. 리파이닝된 카메라 포즈를 추정하기 위한 수단은 도 2 의 하나 이상의 카메라 포즈 추정기들 (208), 도 12 의 카메라 포즈 추정 로직 유닛 (1252), 카메라 포즈들을 추정하도록 구성된 하나 이상의 다른 구조물들, 디바이스들, 또는 회로들, 또는 이들의 임의의 조합을 포함할 수도 있다.
당업자는 또한, 본원에 개시된 실시형태들과 연계하여 설명된 다양한 예시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 프로세서에 의해 실행된 컴퓨터 소프트웨어, 또는 양자 모두의 조합으로서 구현될 수도 있음을 이해할 것이다. 다양한 예시적인 컴포넌트들, 블록들, 구성들, 모듈들, 회로들, 및 단계들이 그 기능에 관하여 일반적으로 전술되어 있다. 그러한 기능이 하드웨어 또는 프로세서 실행가능 명령들로서 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 의존한다. 당업자는, 설명된 기능성을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정들은 본 개시물의 범위를 벗어나게 하는 것으로 이해되어서는 안된다.
본원에 개시된 실시형태들과 연계하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어에서, 프로세서에 의해 실행된 소프트웨어 모듈에서, 또는 이들 둘의 조합에서 직접적으로 구현될 수도 있다. 소프트웨어 모듈은 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 프로그램가능 판독 전용 메모리 (PROM), 소거가능한 프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능한 프로그램가능 판독 전용 메모리 (EEPROM), 레지스터, 하드디스크, 착탈형 디스크, 컴팩트 디스크 판독 전용 메모리 (CD-ROM), 또는 종래 기술에서 알려진 임의의 다른 형태의 비-일시적 저장 매체 내에 있을 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기입할 수 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 주문형 집적 회로 (ASIC) 내에 있을 수도 있다. ASIC 는 컴퓨팅 디바이스 또는 사용자 단말 내에 있을 수도 있다. 대안에서, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말기에서 별개의 컴포넌트들로서 있을 수도 있다.
개시된 실시형태들의 이전 설명들은 당업자가 개시된 실시형태들을 실시하거나 사용하는 것을 가능하게 하도록 제공된다. 이들 실시형태들에 대한 다양한 수정들이 당업자에게는 자명할 것이고, 본원에 정의된 원리들은 본 개시물의 범위를 벗어나지 않으면서 다른 실시형태들에 적용될 수도 있다. 따라서, 본 개시물은 본원에서 보여진 실시형태들에 제한되도록 의도되는 것은 아니며 다음의 청구항들에 대해 정의된 원리들과 신규의 특성들과 일치하는 가능한 최광의의 범위를 따르기 위한 것이다.

Claims (30)

  1. 방법으로서,
    이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하는 단계;
    프로세서에서, 상기 제 1 이미지 프레임을 제 2 이미지 프레임에 비교함으로써 상기 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하는 단계로서, 상기 제 2 이미지 프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 1 이미지 프레임에 선행하는, 상기 카메라 포즈를 추정하는 단계; 및
    상기 프로세서에서, 상기 제 1 이미지 프레임을 키프레임에 비교함으로써 상기 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하는 단계로서, 상기 키프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응하는, 상기 리파이닝된 카메라 포즈를 추정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 카메라 포즈는 상기 프로세서의 제 1 프로세싱 스레드의 부분으로서 추정되고,
    상기 리파이닝된 카메라 포즈는 상기 프로세서의 제 2 프로세싱 스레드의 부분으로서 추정되는, 방법.
  3. 제 2 항에 있어서,
    상기 프로세서는 프로세싱 스레드들을 병렬로 실행하도록 구성되고,
    상기 제 1 프로세싱 스레드 및 상기 제 2 프로세싱 스레드는 병렬로 실행되는, 방법.
  4. 제 1 항에 있어서,
    상기 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하는 단계는,
    상기 제 1 이미지 프레임의 캡처와 상기 제 2 이미지 프레임의 캡처 간의 상기 이미지 캡처 디바이스의 상대적인 모션의 추정치에 기초하여 상기 제 1 이미지 프레임을 변환함으로써 랩핑된 프레임을 생성하는 단계;
    픽셀 세기 에러를 결정하는 단계로서, 상기 픽셀 세기 에러는 상기 랩핑된 프레임의 하나 이상의 픽셀들과 상기 제 2 이미지 프레임의 하나 이상의 픽셀들 간의 픽셀 세기의 차이를 나타내는, 상기 픽셀 세기 에러를 결정하는 단계; 및
    심도 에러를 결정하는 단계로서, 상기 심도 에러는 상기 랩핑된 프레임의 상기 하나 이상의 픽셀들과 상기 제 2 이미지 프레임의 상기 하나 이상의 픽셀들 간의 심도의 차이를 나타내고, 상기 심도 에러는 상기 제 2 이미지 프레임의 상기 하나 이상의 픽셀들의 노멀 (normal) 값들에 기초하여 결정되는, 상기 심도 에러를 결정하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하는 단계는,
    상기 제 1 이미지 프레임의 캡처와 상기 키프레임의 캡처 간의 상기 이미지 캡처 디바이스의 상대적 모션의 추정치에 기초하여 상기 제 1 이미지 프레임을 변환함으로써 랩핑된 프레임을 생성하는 단계;
    픽셀 세기 에러를 결정하는 단계로서, 상기 픽셀 세기 에러는 상기 랩핑된 프레임의 하나 이상의 픽셀들과 상기 키프레임의 하나 이상의 픽셀들 간의 픽셀 세기의 차이를 나타내는, 상기 픽셀 세기 에러를 결정하는 단계; 및
    심도 에러를 결정하는 단계로서, 상기 심도 에러는 상기 랩핑된 프레임의 상기 하나 이상의 픽셀들과 상기 키프레임의 상기 하나 이상의 픽셀들 간의 심도의 차이를 나타내고, 상기 심도 에러는 상기 키프레임의 상기 하나 이상의 픽셀들의 노멀 값들에 기초하여 결정되는, 상기 심도 에러를 결정하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 프로세서에서, 상기 제 1 이미지 프레임과 상기 키프레임 간의 오버랩 비를 결정하는 단계로서, 상기 오버랩 비는 상기 제 1 이미지 프레임의 제 1 픽셀 값들 및 상기 키프레임의 제 2 픽셀 값들의 픽셀별 비교에 기초하는, 상기 오버랩 비를 결정하는 단계;
    상기 오버랩 비를 오버랩 비 임계에 비교하여 비교 결과를 생성하는 단계; 및
    상기 제 1 이미지 프레임 및 상기 키프레임이 다르다는 것을 나타내는 상기 비교 결과에 기초하여 상기 제 1 이미지 프레임을 사용하여 새로운 키프레임을 생성하는 단계를 더 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 새로운 키프레임을 생성하는 단계는 메모리에서의 상기 제 1 이미지 프레임에 대응하는 복사본 이미지 프레임을 생성하는 단계를 포함하고,
    상기 복사본 이미지 프레임은 상기 새로운 키프레임으로서 지정되는, 방법.
  8. 제 6 항에 있어서,
    상기 제 1 픽셀 값들은 심도 값들, 포토메트릭 값들, 또는 이들의 조합을 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 리파이닝된 카메라 포즈 및 상기 이미지 프레임들의 시퀀스를 사용하여 3 차원 포인트 클라우드를 생성하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 이미지 캡처 디바이스로부터, 상기 이미지 프레임들의 시퀀스 중 하나 이상의 추가의 이미지 프레임들을 수신하는 단계; 및
    상기 하나 이상의 추가의 이미지 프레임들에 기초하여 상기 3 차원 포인트 클라우드를 업데이트하는 단계를 더 포함하고,
    상기 3 차원 포인트 클라우드를 업데이트하는 속도는 상기 하나 이상의 추가의 이미지 프레임들을 수신하는 속도와 실질적으로 동일한, 방법.
  11. 제 1 항에 있어서,
    상기 카메라 포즈는, 상기 제 1 이미지 프레임이 캡처될 때의 특정 시간에 상기 이미지 캡처 디바이스의 포지션의 근사치를 나타내는, 방법.
  12. 제 1 항에 있어서,
    상기 제 1 이미지 프레임은 제 1 해상도를 갖고, 상기 키프레임은 키프레임 해상도를 가지며, 상기 제 1 해상도는 상기 키프레임 해상도와 상이한, 방법.
  13. 장치로서,
    프로세서; 및
    상기 프로세서로 하여금,
    이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하게 하고;
    상기 제 1 이미지 프레임의 제 2 이미지 프레임에 대한 제 1 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하게 하는 것으로서, 상기 제 2 이미지 프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 1 이미지 프레임에 선행하는, 상기 카메라 포즈를 추정하게 하며;
    상기 제 1 이미지 프레임의 키프레임에 대한 제 2 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하게 하는 것으로서, 상기 키프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응하는, 상기 리파이닝된 카메라 포즈를 추정하게 하도록,
    상기 프로세서에 의해 실행 가능한 명령들을 저장한 메모리를 포함하는, 장치.
  14. 제 13 항에 있어서,
    상기 카메라 포즈는 상기 프로세서의 제 1 프로세싱 스레드의 부분으로서 추정되고,
    상기 리파이닝된 카메라 포즈는 상기 프로세서의 제 2 프로세싱 스레드의 부분으로서 추정되는, 장치.
  15. 제 14 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 키프레임들의 세트로부터 상기 키프레임을 선택하게 하도록 실행 가능하고,
    상기 키프레임은 추정된 상기 카메라 포즈에 기초하여 선택되는, 장치.
  16. 제 13 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 상기 제 1 이미지 프레임을 변환하여 랩핑된 프레임을 생성하게 하도록 실행 가능하고,
    상기 제 1 이미지 프레임은 상기 이미지 캡처 디바이스와 상기 제 2 이미지 프레임에 대응하는 좌표들 간의 상대적 모션의 추정치에 기초하여 변환되는, 장치.
  17. 제 16 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 픽셀 세기 에러를 결정하게 하도록 실행 가능하고,
    상기 픽셀 세기 에러는 상기 랩핑된 프레임의 하나 이상의 픽셀들과 상기 제 2 이미지 프레임의 하나 이상의 픽셀들 간의 픽셀 세기의 차이를 나타내는, 장치.
  18. 제 16 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 심도 에러를 결정하게 하도록 실행 가능하고,
    상기 심도 에러는 상기 랩핑된 프레임의 하나 이상의 픽셀들과 상기 제 2 이미지 프레임의 하나 이상의 픽셀들 간의 심도의 차이를 나타내고, 상기 심도 에러는 상기 제 2 이미지 프레임의 상기 하나 이상의 픽셀들의 노멀 값들에 기초하여 결정되는, 장치.
  19. 제 13 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 상기 제 1 이미지 프레임과 키프레임 간의 오버랩 비를 결정하게 하도록 실행 가능한, 장치.
  20. 제 19 항에 있어서,
    상기 오버랩 비는 상기 제 1 이미지 프레임의 제 1 픽셀 값들 및 상기 키프레임의 제 2 픽셀 값들의 픽셀별 비교에 기초하는, 장치.
  21. 제 19 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 상기 오버랩 비의 오버랩 비 임계에 대한 비교에 기초하여 결과를 생성하게 하도록 실행 가능한, 장치.
  22. 제 21 항에 있어서,
    상기 명령들은 또한, 상기 프로세서로 하여금, 상기 제 1 이미지 프레임이 상기 키프레임과 유사하지 않다는 것을 나타내는 상기 결과에 기초하여 상기 제 1 이미지 프레임을 사용하여 새로운 키프레임을 생성하게 하도록 실행 가능한, 장치.
  23. 명령들을 저장한 컴퓨터 판독가능 저장 디바이스로서,
    상기 명령들은 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금,
    이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하게 하고;
    상기 제 1 이미지 프레임의 제 2 이미지 프레임에 대한 제 1 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하게 하는 것으로서, 상기 제 2 이미지 프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 1 이미지 프레임에 선행하는, 상기 카메라 포즈를 추정하게 하며; 그리고
    상기 제 1 이미지 프레임의 키프레임에 대한 제 2 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하게 하는 것으로서, 상기 키프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응하는, 상기 리파이닝된 카메라 포즈를 추정하게 하는, 컴퓨터 판독가능 저장 디바이스.
  24. 제 23 항에 있어서,
    상기 카메라 포즈는 상기 프로세서의 제 1 프로세싱 스레드의 부분으로서 추정되고,
    상기 리파이닝된 카메라 포즈는 상기 프로세서의 제 2 프로세싱 스레드의 부분으로서 추정되며,
    상기 제 1 프로세싱 스레드 및 상기 제 2 프로세싱 스레드는 병렬로 실행하는, 컴퓨터 판독가능 저장 디바이스.
  25. 제 23 항에 있어서,
    상기 명령들은 또한, 상기 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금, 상기 이미지 프레임들의 시퀀스에 기초하여 3 차원 포인트 클라우드를 생성하게 하고,
    상기 3 차원 포인트 클라우드를 생성하는 속도는 상기 이미지 프레임들의 시퀀스를 수신하는 속도와 실질적으로 동일한, 컴퓨터 판독가능 저장 디바이스.
  26. 장치로서,
    이미지 캡처 디바이스로부터, 이미지 프레임들의 시퀀스의 제 1 이미지 프레임을 수신하기 위한 수단;
    상기 제 1 이미지 프레임의 제 2 이미지 프레임에 대한 제 1 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 카메라 포즈를 추정하기 위한 수단으로서, 상기 제 2 이미지 프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 1 이미지 프레임에 선행하는, 상기 카메라 포즈를 추정하기 위한 수단; 및
    상기 제 1 이미지 프레임의 키프레임에 대한 제 2 비교에 기초하여 상기 제 1 이미지 프레임에 대응하는 리파이닝된 카메라 포즈를 추정하기 위한 수단으로서, 상기 키프레임은 상기 이미지 프레임들의 시퀀스에서 상기 제 2 이미지 프레임에 선행하는 특정 이미지 프레임에 대응하는, 상기 리파이닝된 카메라 포즈를 추정하기 위한 수단을 포함하는, 장치.
  27. 제 26 항에 있어서,
    상기 제 1 이미지 프레임의 상기 제 2 이미지 프레임에 대한 상기 제 1 비교를 수행하기 위한 수단; 및
    상기 제 1 이미지 프레임의 상기 키프레임에 대한 상기 제 2 비교를 수행하기 위한 수단을 더 포함하는, 장치.
  28. 제 26 항에 있어서,
    상기 키프레임을 키프레임들의 세트로부터 선택하기 위한 수단을 더 포함하는, 장치.
  29. 제 26 항에 있어서,
    상기 제 1 이미지 프레임에 기초하여 새로운 키프레임을 생성하기 위한 수단을 더 포함하는, 장치.
  30. 제 26 항에 있어서,
    상기 리파이닝된 카메라 포즈 및 상기 이미지 프레임들의 시퀀스를 사용하여 3 차원 포인트 클라우드를 생성하기 위한 수단을 더 포함하는, 장치.
KR1020177007494A 2014-09-19 2015-06-30 포즈 추정의 시스템 및 방법 KR20170056563A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/491,857 US9607388B2 (en) 2014-09-19 2014-09-19 System and method of pose estimation
US14/491,857 2014-09-19
PCT/US2015/038582 WO2016043827A1 (en) 2014-09-19 2015-06-30 System and method of pose estimation

Publications (1)

Publication Number Publication Date
KR20170056563A true KR20170056563A (ko) 2017-05-23

Family

ID=53765533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177007494A KR20170056563A (ko) 2014-09-19 2015-06-30 포즈 추정의 시스템 및 방법

Country Status (6)

Country Link
US (1) US9607388B2 (ko)
EP (1) EP3175427B1 (ko)
JP (1) JP2017529620A (ko)
KR (1) KR20170056563A (ko)
CN (1) CN106688013B (ko)
WO (1) WO2016043827A1 (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
US9589362B2 (en) 2014-07-01 2017-03-07 Qualcomm Incorporated System and method of three-dimensional model generation
GB2536493B (en) * 2015-03-20 2020-11-18 Toshiba Europe Ltd Object pose recognition
US20160314569A1 (en) * 2015-04-23 2016-10-27 Ilya Lysenkov Method to select best keyframes in online and offline mode
US9911242B2 (en) 2015-05-14 2018-03-06 Qualcomm Incorporated Three-dimensional model generation
US10373366B2 (en) 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation
US10304203B2 (en) 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
WO2017011753A1 (en) * 2015-07-15 2017-01-19 Massachusetts Institute Of Technology System and method for providing reconstruction of human surfaces from orientation data
KR20180121494A (ko) * 2015-12-31 2018-11-07 엠엘 네덜란드 씨.브이. 단안 카메라들을 이용한 실시간 3d 캡처 및 라이브 피드백을 위한 방법 및 시스템
JP6775969B2 (ja) * 2016-02-29 2020-10-28 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US10989542B2 (en) 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
CN109313024B (zh) 2016-03-11 2022-06-17 卡尔塔股份有限公司 具有实时在线自我运动估计的激光扫描仪
US11573325B2 (en) 2016-03-11 2023-02-07 Kaarta, Inc. Systems and methods for improvements in scanning and mapping
US11567201B2 (en) 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
CN107077140B (zh) 2016-03-28 2018-11-30 深圳市大疆创新科技有限公司 无人飞行器的悬停控制方法、控制系统和无人飞行器
US10192347B2 (en) * 2016-05-17 2019-01-29 Vangogh Imaging, Inc. 3D photogrammetry
CN109155082B (zh) * 2016-05-26 2023-06-20 索尼公司 信息处理设备、信息处理方法和存储介质
US11185305B2 (en) * 2016-06-30 2021-11-30 Koninklijke Philips N.V. Intertial device tracking system and method of operation thereof
US10380762B2 (en) 2016-10-07 2019-08-13 Vangogh Imaging, Inc. Real-time remote collaboration and virtual presence using simultaneous localization and mapping to construct a 3D model and update a scene based on sparse data
US10341568B2 (en) 2016-10-10 2019-07-02 Qualcomm Incorporated User interface to assist three dimensional scanning of objects
WO2018182524A1 (en) * 2017-03-29 2018-10-04 Agency For Science, Technology And Research Real time robust localization via visual inertial odometry
US10467756B2 (en) 2017-05-14 2019-11-05 International Business Machines Corporation Systems and methods for determining a camera pose of an image
US11222430B2 (en) * 2017-08-31 2022-01-11 Sony Group Corporation Methods, devices and computer program products using feature points for generating 3D images
EP3704563A4 (en) * 2017-10-31 2021-08-04 Outward, Inc. MIXED PHYSICAL AND VIRTUAL REALITIES
US10685197B2 (en) 2017-11-17 2020-06-16 Divine Logic, Inc. Systems and methods for tracking items
WO2019099605A1 (en) 2017-11-17 2019-05-23 Kaarta, Inc. Methods and systems for geo-referencing mapping systems
US10628965B2 (en) 2017-11-17 2020-04-21 Qualcomm Incorporated Systems and methods for illuminant-invariant model estimation
US10839585B2 (en) 2018-01-05 2020-11-17 Vangogh Imaging, Inc. 4D hologram: real-time remote avatar creation and animation control
US11900639B2 (en) 2018-01-19 2024-02-13 Interdigital Vc Holdings, Inc. Processing a point cloud
US11210804B2 (en) * 2018-02-23 2021-12-28 Sony Group Corporation Methods, devices and computer program products for global bundle adjustment of 3D images
WO2019165194A1 (en) * 2018-02-23 2019-08-29 Kaarta, Inc. Methods and systems for processing and colorizing point clouds and meshes
US11080540B2 (en) 2018-03-20 2021-08-03 Vangogh Imaging, Inc. 3D vision processing using an IP block
WO2019195270A1 (en) 2018-04-03 2019-10-10 Kaarta, Inc. Methods and systems for real or near real-time point cloud map data confidence evaluation
US10810783B2 (en) 2018-04-03 2020-10-20 Vangogh Imaging, Inc. Dynamic real-time texture alignment for 3D models
US11170224B2 (en) 2018-05-25 2021-11-09 Vangogh Imaging, Inc. Keyframe-based object scanning and tracking
WO2020009826A1 (en) 2018-07-05 2020-01-09 Kaarta, Inc. Methods and systems for auto-leveling of point clouds and 3d models
US10916031B2 (en) * 2018-07-06 2021-02-09 Facebook Technologies, Llc Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit
EP3591605A1 (en) * 2018-07-06 2020-01-08 Facebook Technologies, LLC Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit
FR3087036B1 (fr) * 2018-10-03 2021-06-25 Soletanche Freyssinet Procede de texturation d'un modele 3d
CN111127524A (zh) * 2018-10-31 2020-05-08 华为技术有限公司 一种轨迹跟踪与三维重建方法、系统及装置
US10885657B2 (en) * 2018-10-31 2021-01-05 Disney Enterprises, Inc. Configuration for indicating image capture device position
CN111161348B (zh) * 2018-11-08 2023-12-05 深圳市优必选科技有限公司 一种基于单目相机的物体位姿估计方法、装置及设备
US11308639B2 (en) * 2019-03-12 2022-04-19 Volvo Car Corporation Tool and method for annotating a human pose in 3D point cloud data
EP3712843A1 (en) * 2019-03-19 2020-09-23 Koninklijke Philips N.V. Image signal representing a scene
CN110059651B (zh) * 2019-04-24 2021-07-02 北京计算机技术及应用研究所 一种相机实时跟踪注册方法
US11232633B2 (en) 2019-05-06 2022-01-25 Vangogh Imaging, Inc. 3D object capture and object reconstruction using edge cloud computing resources
US11170552B2 (en) 2019-05-06 2021-11-09 Vangogh Imaging, Inc. Remote visualization of three-dimensional (3D) animation with synchronized voice in real-time
US11064096B2 (en) * 2019-12-13 2021-07-13 Sony Corporation Filtering and smoothing sources in camera tracking
US11335063B2 (en) 2020-01-03 2022-05-17 Vangogh Imaging, Inc. Multiple maps for 3D object scanning and reconstruction
JP2021150874A (ja) * 2020-03-23 2021-09-27 国際航業株式会社 撮影装置
CN111539988B (zh) * 2020-04-15 2024-04-09 京东方科技集团股份有限公司 一种视觉里程计实现方法、装置和电子设备
CN113709441B (zh) * 2020-05-22 2023-05-02 杭州海康威视数字技术股份有限公司 一种扫描设备、相机的位姿确定方法、装置及电子设备
US11321859B2 (en) * 2020-06-22 2022-05-03 Toyota Research Institute, Inc. Pixel-wise residual pose estimation for monocular depth estimation
CN111928861B (zh) * 2020-08-07 2022-08-09 杭州海康威视数字技术股份有限公司 地图构建方法及装置
CN112288816B (zh) * 2020-11-16 2024-05-17 Oppo广东移动通信有限公司 位姿优化方法、位姿优化装置、存储介质与电子设备
CN112837424B (zh) * 2021-02-04 2024-02-06 脸萌有限公司 图像处理方法、装置、设备和计算机可读存储介质
CN115278326A (zh) * 2021-04-29 2022-11-01 腾讯科技(深圳)有限公司 视频展示方法、装置、计算机可读介质及电子设备

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3907783B2 (ja) 1996-12-12 2007-04-18 富士フイルム株式会社 色変換方法
WO1999026198A2 (en) 1997-11-14 1999-05-27 National University Of Singapore System and method for merging objects into an image sequence without prior knowledge of the scene in the image sequence
US6297825B1 (en) 1998-04-06 2001-10-02 Synapix, Inc. Temporal smoothing of scene analysis data for image sequence generation
US6281904B1 (en) 1998-06-09 2001-08-28 Adobe Systems Incorporated Multi-source texture reconstruction and fusion
US6469710B1 (en) 1998-09-25 2002-10-22 Microsoft Corporation Inverse texture mapping using weighted pyramid blending
EP1022654A3 (en) * 1999-01-14 2001-02-14 Interuniversitair Microelektronica Centrum Vzw Concurrent timed digital system design method and environment
JP2000348186A (ja) * 1999-06-03 2000-12-15 Fujitsu Ltd 物体追跡装置及び方法
US6487304B1 (en) * 1999-06-16 2002-11-26 Microsoft Corporation Multi-view approach to motion and stereo
US6476803B1 (en) 2000-01-06 2002-11-05 Microsoft Corporation Object modeling system and process employing noise elimination and robust surface extraction techniques
US6750873B1 (en) 2000-06-27 2004-06-15 International Business Machines Corporation High quality texture reconstruction from multiple scans
GB2377870B (en) 2001-05-18 2005-06-29 Canon Kk Method and apparatus for generating confidence data
US7215813B2 (en) 2001-12-03 2007-05-08 Apple Computer, Inc. Method and apparatus for color correction
WO2004023155A1 (en) * 2002-09-06 2004-03-18 Nokia Corporation Method and system for estimating the position of a mobile device
US20040136241A1 (en) 2002-10-31 2004-07-15 Lockheed Martin Corporation Pipeline accelerator for improved computing architecture and related system and method
US7570791B2 (en) 2003-04-25 2009-08-04 Medtronic Navigation, Inc. Method and apparatus for performing 2D to 3D registration
US7272264B2 (en) 2003-09-11 2007-09-18 International Business Machines Corporation System and method for hole filling in 3D models
US20050140670A1 (en) 2003-11-20 2005-06-30 Hong Wu Photogrammetric reconstruction of free-form objects with curvilinear structures
US7205998B2 (en) 2004-06-23 2007-04-17 Microsoft Corporation System and process for optimal texture map reconstruction from multiple views
CN100389430C (zh) * 2006-06-13 2008-05-21 北京中星微电子有限公司 基于aam的头部姿态实时估算方法及系统
CN101627280B (zh) 2006-11-21 2013-09-25 曼蒂斯影像有限公司 三维几何建模和三维视频内容创建
US8773425B2 (en) 2007-05-01 2014-07-08 M.E.P. CAD Inc. Methods and apparatuses for proposing resolutions to conflicts in a CAD drawing with reflections
JP5011224B2 (ja) 2008-07-09 2012-08-29 日本放送協会 任意視点映像生成装置及び任意視点映像生成プログラム
EP2545411B1 (en) 2009-12-11 2014-02-12 DigitalOptics Corporation Europe Limited Panorama imaging
US8471890B1 (en) * 2009-12-30 2013-06-25 Insors Integrated Communications Adaptive video communication channel
US8619122B2 (en) 2010-02-02 2013-12-31 Microsoft Corporation Depth camera compatibility
US9400503B2 (en) 2010-05-20 2016-07-26 Irobot Corporation Mobile human interface robot
US8811699B2 (en) 2010-09-22 2014-08-19 Siemens Aktiengesellschaft Detection of landmarks and key-frames in cardiac perfusion MRI using a joint spatial-temporal context model
US8149268B1 (en) 2010-11-05 2012-04-03 The United States Of America As Represented By The Secretary Of The Army System and method for determining three-dimensional information from two-dimensional images
US9235894B2 (en) * 2011-01-27 2016-01-12 Metaio Gmbh Method for determining correspondences between a first and a second image, and method for determining the pose of a camera
US8587583B2 (en) 2011-01-31 2013-11-19 Microsoft Corporation Three-dimensional environment reconstruction
JPWO2012121052A1 (ja) * 2011-03-08 2014-07-17 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US20120300020A1 (en) * 2011-05-27 2012-11-29 Qualcomm Incorporated Real-time self-localization from panoramic images
US8494554B2 (en) * 2011-06-03 2013-07-23 Apple Inc. Mobile device location estimation
US8879828B2 (en) 2011-06-29 2014-11-04 Matterport, Inc. Capturing and aligning multiple 3-dimensional scenes
US9336625B2 (en) 2011-10-25 2016-05-10 Microsoft Technology Licensing, Llc Object refinement using many data sets
CN102364953A (zh) 2011-11-08 2012-02-29 北京新岸线网络技术有限公司 立体图像颜色校正方法及装置
JP5269972B2 (ja) 2011-11-29 2013-08-21 株式会社東芝 電子機器及び三次元モデル生成支援方法
AU2011253973B2 (en) * 2011-12-12 2015-03-12 Canon Kabushiki Kaisha Keyframe selection for parallel tracking and mapping
US9141196B2 (en) 2012-04-16 2015-09-22 Qualcomm Incorporated Robust and efficient learning object tracker
US20130286161A1 (en) 2012-04-25 2013-10-31 Futurewei Technologies, Inc. Three-dimensional face recognition for mobile devices
US20130293686A1 (en) 2012-05-03 2013-11-07 Qualcomm Incorporated 3d reconstruction of human subject using a mobile device
CA2910376C (en) 2012-05-09 2020-06-30 Laboratoires Bodycad Inc. Segmentation of magnetic resonance imaging data
US20150178988A1 (en) 2012-05-22 2015-06-25 Telefonica, S.A. Method and a system for generating a realistic 3d reconstruction model for an object or being
US9621869B2 (en) 2012-05-24 2017-04-11 Sony Corporation System and method for rendering affected pixels
US9147122B2 (en) 2012-05-31 2015-09-29 Qualcomm Incorporated Pose estimation based on peripheral information
US9420265B2 (en) 2012-06-29 2016-08-16 Mitsubishi Electric Research Laboratories, Inc. Tracking poses of 3D camera using points and planes
US8831290B2 (en) * 2012-08-01 2014-09-09 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of vehicle-mounted cameras for in-road obstacle detection
US10674135B2 (en) * 2012-10-17 2020-06-02 DotProduct LLC Handheld portable optical scanner and method of using
GB2499694B8 (en) 2012-11-09 2017-06-07 Sony Computer Entertainment Europe Ltd System and method of image reconstruction
US9317972B2 (en) 2012-12-18 2016-04-19 Qualcomm Incorporated User interface for augmented reality enabled devices
US9336629B2 (en) 2013-01-30 2016-05-10 F3 & Associates, Inc. Coordinate geometry augmented reality process
US20140267618A1 (en) 2013-03-15 2014-09-18 Google Inc. Capturing and Refocusing Imagery
US9269003B2 (en) * 2013-04-30 2016-02-23 Qualcomm Incorporated Diminished and mediated reality effects from reconstruction
US9818231B2 (en) 2013-08-13 2017-11-14 Boston Scientific Scimed, Inc. Computer visualization of anatomical items
AU2013237718A1 (en) 2013-10-04 2015-04-23 Canon Kabushiki Kaisha Method, apparatus and system for selecting a frame
TWI530909B (zh) 2013-12-31 2016-04-21 財團法人工業技術研究院 影像合成系統及方法
US9589362B2 (en) 2014-07-01 2017-03-07 Qualcomm Incorporated System and method of three-dimensional model generation
US10915161B2 (en) 2014-12-11 2021-02-09 Intel Corporation Facilitating dynamic non-visual markers for augmented reality on computing devices
US20160232715A1 (en) 2015-02-10 2016-08-11 Fangwei Lee Virtual reality and augmented reality control with mobile devices
US10373366B2 (en) 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation
US10304203B2 (en) 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
US9911242B2 (en) 2015-05-14 2018-03-06 Qualcomm Incorporated Three-dimensional model generation

Also Published As

Publication number Publication date
EP3175427A1 (en) 2017-06-07
CN106688013B (zh) 2020-05-12
EP3175427B1 (en) 2017-12-06
US9607388B2 (en) 2017-03-28
JP2017529620A (ja) 2017-10-05
US20160086336A1 (en) 2016-03-24
WO2016043827A1 (en) 2016-03-24
CN106688013A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
EP3175427B1 (en) System and method of pose estimation
EP3457683B1 (en) Dynamic generation of image of a scene based on removal of undesired object present in the scene
US10453204B2 (en) Image alignment for burst mode images
TWI543610B (zh) 電子裝置及其影像選擇方法
US9589362B2 (en) System and method of three-dimensional model generation
US9589595B2 (en) Selection and tracking of objects for display partitioning and clustering of video frames
US10346465B2 (en) Systems, methods, and apparatus for digital composition and/or retrieval
CN105283905B (zh) 使用点和线特征的稳健跟踪
US20170168709A1 (en) Object selection based on region of interest fusion
WO2019218388A1 (zh) 一种事件数据流的处理方法及计算设备
KR20180011794A (ko) 오브젝트 시각화 방법
EP3506635B1 (en) Picture encoding method and terminal
WO2023179342A1 (zh) 重定位方法及相关设备
US11080540B2 (en) 3D vision processing using an IP block
CN108431867B (zh) 一种数据处理方法及终端
CN111345023B (zh) 图像消抖方法、装置、终端及计算机可读存储介质
US20140056474A1 (en) Method and apparatus for recognizing polygon structures in images
JP2009048495A (ja) 画像処理装置、画像処理方法及び画像処理プログラム