KR20220035250A - 공동 환경 재구성 및 카메라 교정 - Google Patents

공동 환경 재구성 및 카메라 교정 Download PDF

Info

Publication number
KR20220035250A
KR20220035250A KR1020227005697A KR20227005697A KR20220035250A KR 20220035250 A KR20220035250 A KR 20220035250A KR 1020227005697 A KR1020227005697 A KR 1020227005697A KR 20227005697 A KR20227005697 A KR 20227005697A KR 20220035250 A KR20220035250 A KR 20220035250A
Authority
KR
South Korea
Prior art keywords
environment
observations
camera
model
camera equipment
Prior art date
Application number
KR1020227005697A
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 KR20220035250A publication Critical patent/KR20220035250A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • 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/10048Infrared image
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)

Abstract

하나의 실시예에서, 방법은 카메라 장비에 대한 교정 모델에 액세스하는 단계를 포함한다. 방법은 환경에서 다수의 포즈(pose)들로부터 카메라 장비에 의해 캡처된 환경의 다수의 관측치들에 액세스하는 단계를 포함한다. 방법은 적어도 관측치들, 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하는 단계를 포함한다. 방법은 포즈들 중 하나 이상에 대해, 환경 모델 및 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정하는 단계를 포함한다. 방법은 예측된 관측치들을 예측된 관측치들이 결정된 포즈들에 대응하는 관측치들과 비교하는 단계를 포함한다. 방법은 비교에 기초하여 교정 모델을 수정하는 단계를 포함한다. 방법은 환경의 적어도 관측치들의 세트 및 수정된 교정 모델에 기초하여 환경 모델을 수정하는 단계를 포함한다.

Description

공동 환경 재구성 및 카메라 교정
본 발명은 일반적으로 카메라 교정에 관한 것이다.
정확성을 보장하기 위해, 카메라들은 그들이 컴퓨터 비전 및 관련된 애플리케이션들에서 사용된 측정치들 또는 다른 데이터를 캡처하기 위해 사용되기 전에 종종 교정된다. 오차의 소스에 관계 없이 부정확한 측정치들은 기본 측정치들에 의존하는 애플리케이션들에서 임계 오차들을 악화시키고 이에 이를 수 있다. 컴퓨터 비전 애플리케이션들이 복잡해짐에 따라, 측정 오차가 악화할 기회들도 증가한다. 카메라 교정에 대한 많은 접근법들은 종종, 특수 구성 장비, 특별히 구성된 환경들, 또는 환경의 특수 기하학적 구조를 요구한다. 많은 접근법들은 또한, 잘못된 취급, 환경 변화들, 및 장비의 성능 저하로 인해 이전 교정이 정확하지 않을 가능성이 높음에도 불구하고, 상당한 시간 및 계산 리소스들을 소모하여, 교정을 자주 수행함으로써 야기된 부담을 증가시킨다. 카메라 교정 기술들은 디지털 출력이 있는 많은 유형들의 카메라들과 함께 사용될 수 있다.
스마트폰, 태블릿 컴퓨터, 또는 랩톱 컴퓨터와 같은 모바일 컴퓨팅 디바이스는 GPS 수신기, 나침반, 자이로스코프, 또는 가속도계와 같은, 그것의 위치, 방향, 또는 방위를 결정하기 위한 기능을 포함할 수 있다. 이러한 디바이스는 또한, 블루투스 통신, 근거리 통신(NFC), 또는 적외선(IR) 통신 또는 무선 근거리 통신망들(WLANs) 또는 셀룰러 전화 네트워크와의 통신과 같은 무선 통신을 위한 기능을 포함할 수 있다. 이러한 디바이스는 또한, 하나 이상의 카메라들, 스캐너들, 터치스크린들, 마이크로폰들, 또는 스피커들을 포함할 수 있다. 모바일 컴퓨팅 디바이스들은 또한, 게임들, 웹 브라우저들, 또는 소셜 네트워킹 애플리케이션들과 같은 소프트웨어 애플리케이션들을 실행할 수 있다. 소셜 네트워킹 애플리케이션들을 통해, 사용자들은 그들의 소셜 네트워크들에서 다른 사용자들과 연결하고, 통신하며, 정보를 공유할 수 있다.
특정한 실시예들에서, 카메라 장비와 연관된 컴퓨팅 디바이스에 의한 공동 환경 재구성 및 카메라 교정을 위한 방법은 카메라 장비에 대한 교정 모델에 액세스하는 단계를 포함한다. 초기 교정 모델은 예를 들면, 제조업체의 프로세스의 일부로서 표준 교정 절차에 의해 미리 결정될 수 있다. 방법은 환경에서 복수의 포즈(pose)들로부터 카메라 장비에 의해 캡처된 환경의 제 1 복수의 관측치들에 액세스하는 단계를 포함할 수 있다. 카메라 장비의 포즈들에 관한 정보는 환경의 관측치들이 캡처될 때 또한 캡처될 수 있다. 특정한 실시예들에서, 환경의 관측치들은 환경으로 투영된 구조화된 광 패턴의 검출들에 기초한 깊이 맵(예를 들면, 깊이 카메라로부터 생성됨)을 포함할 수 있다.
특정한 실시예들에서, 방법은 적어도 제 1 복수의 관측치들, 복수의 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하는 단계를 포함할 수 있다. 교정 모델은 포즈들에 기초하여 관측치들을 해석하기 위해 사용될 수 있다. 환경 모델은 환경의 복수의 추정치들을 융합함으로써 형성된 환경의 디지털 재구성을 포함할 수 있고, 환경의 각각의 추정치는 단일 관측치 및 포즈 페어링(pose pairing)으로부터 올 수 있다.
방법은 복수의 포즈들 중 하나 이상의 포즈들에 대해, 환경 모델 및 하나 이상의 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정하는 단계를 포함할 수 있다. 예측된 관측치들은 수집된 포즈들에 기초하여 환경의 시뮬레이팅된 관측치를 생성함으로써 생성될 수 있다(예컨대, 환경 모델을 통해). 방법은 하나 이상의 예측된 관측치들을 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상과 비교하는 단계를 포함할 수 있다. 비교는 예측된 관측치들과 캡처된 관측치들 사이의 임의의 차들을 결정하는 것을 포함할 수 있다. 카메라 교정 모델은 예를 들면, 비교의 결과와 같은 비교에 기초하여 수정될 수 있다. 방법은 환경 및 수정된 교정 모델의 적어도 제 2 복수의 관측치들에 기초하여 환경 모델을 수정하는 단계를 포함할 수 있다. 프로세스는 새로 캡처된 관측치들에 기초하여 환경 모델을 수정하는 것과 수정된 환경 모델에 기초하여 카메라 교정 모델을 수정하는 것 사이에서 교번적으로 계속될 수 있다.
본 발명의 실시예들은 인공 현실 시스템을 포함하거나 이와 결부하여 구현될 수 있다. 인공 현실은 예컨대, 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 그들의 일부 조합 및/또는 파생물들을 포함할 수 있는, 사용자에게 제공되기 전에 일부 방식으로 조정된 현실의 일 형태이다. 인공 현실 콘텐츠는 캡처된 콘텐츠(예컨대, 실세계 사진들)와 조합된 생성된 콘텐츠 또는 완전히 생성된 콘텐츠를 포함할 수 있다. 인공 현실 콘텐츠는 비디오, 오디오, 햅틱 피드백, 또는 그들의 일부 조합을 포함할 수 있으며, 그들 중 임의의 것은 단일 채널로 또는 다수의 채널들(예컨대, 뷰어에게 3차원 효과를 생성하는 스테레오 비디오와 같음)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 예컨대, 인공 현실에서 콘텐츠를 생성하기 위해 사용되고/거나 인공 현실에서 사용되는(예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐츠를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 머리 장착 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐츠를 한 명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
본 명세서에서 개시된 실시예들은 단지 예들이고, 본 발명의 범위는 그들로 제한되지 않는다. 특정한 실시예들은 상기 개시된 실시예들의 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 전부, 일부를 포함할 수 있거나, 그들 중 어느 것도 포함하지 않을 수 있다. 본 발명에 따른 실시예들은 특히, 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에 개시되고, 하나의 청구항 범주 예컨대, 방법에 언급된 임의의 특징은 또 다른 청구항 범주 예컨대, 시스템에서 또한 청구될 수 있다. 첨부된 청구항들의 종속성들 또는 역 참조들은 단지 공식적인 이유들로 인해 선택된다. 그러나, 임의의 이전 청구항들(특히 다중 종속성들)에 대한 고의적인 역 참조로부터 발생하는 임의의 주제가 또한 청구될 수 있어서, 청구항들과 그들의 특징들의 임의의 조합이 개시되게 하고 첨부된 청구항들에서 선택된 종속성들에 관계없이 청구될 수 있게 한다. 청구될 수 있는 주제는 첨부된 청구항들에 제시된 바와 같이 특징들의 조합들뿐만 아니라 청구항들의 특징들의 임의의 다른 조합을 포함하고, 청구항들에 언급된 각각의 특징은 청구항들의 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 또한, 본 명세서에서 설명되거나 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 본 명세서에서 설명되거나 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과의 임의의 조합으로 청구될 수 있다.
방법이 제공되고, 방법은 컴퓨팅 디바이스에 의해:
카메라 장비에 대한 교정 모델에 액세스하는 단계;
환경에서 복수의 포즈들로부터 카메라 장비에 의해 캡처된 환경의 제 1 복수의 관측치들에 액세스하는 단계;
적어도 제 1 복수의 관측치들, 복수의 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하는 단계;
복수의 포즈들 중 하나 이상의 포즈들에 대해, 환경 모델 및 하나 이상의 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정하는 단계;
하나 이상의 예측된 관측치들을 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상과 비교하는 단계;
비교에 기초하여 교정 모델을 수정하는 단계; 및
환경의 적어도 제 2 복수의 관측치들 및 수정된 교정 모델에 기초하여 환경 모델을 수정하는 단계를 포함한다.
방법은:
카메라 장비에 의해, 구조화된 광 패턴을 환경으로 투영하고;
카메라 장비의 카메라에 의해, 환경에서 투영된 구조화된 광 패턴을 검출하며;
검출된 구조화된 광 패턴을 템플릿 구조화된 광 패턴과 비교함으로써 환경의 제 1 복수의 관측치들을 캡처하는 단계를 더 포함할 수 있다.
방법은:
카메라 장비에 의해, 복수의 지점들을 포함하는 구조화된 광 패턴을 환경으로 투영하고;
카메라 장비의 카메라에 의해, 환경에서 구조화된 광 패턴의 하나 이상의 지점들을 검출하고;
검출된 지점들의 각각을 식별하며;
각각의 식별된 지점에 대해, 식별된 지점의 위치를 구조화된 광 패턴에서 식별된 지점의 대응하는 예상된 방향과 비교함으로써 환경의 제 1 복수의 관측치들을 캡처하는 단계를 더 포함할 수 있다.
방법은:
각각의 제 1 관측치가 카메라 장비의 로컬화 시스템(localization system)으로부터 카메라 장비의 포즈를 수신함으로써 캡처된 카메라 장비의 포즈를 캡처하는 단계를 더 포함할 수 있다.
방법은:
카메라 장비의 동작 센서로부터의 출력에 기초하여 카메라 장비의 로컬화 시스템을 초기화하는 단계를 더 포함할 수 있다.
방법은:
각각의 관측치가 적어도 관측치 및 교정 모델에 기초하여 카메라 장비를 로컬화함으로써 캡처된 카메라 장비의 포즈를 캡처하는 단계를 더 포함할 수 있다.
적어도 제 1 복수의 관측치들, 복수의 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하는 단계는:
각각의 관측치 및 관측치가 캡처된 카메라 장비의 포즈로부터 환경의 기하학적 구조의 추정을 생성하는 단계; 및
환경 모델을 형성하기 위해 각각의 관측치로부터 생성된 추정들을 조합하는 단계를 포함한다.
하나 이상의 예측된 관측치들 및 제 1 복수의 관측치들은 구조화된 광 패턴의 지점들에 대한 위치 정보를 포함할 수 있고;
하나 이상의 예측된 관측치들을 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상과 비교하는 단계는 각각의 예측된 관측치의 위치 정보를 각각의 대응하는 제 1 관측치의 위치 정보와 비교하는 단계를 포함할 수 있다.
카메라 장비에 대한 교정 모델은:
카메라 장비의 카메라에 대한 고유 파라미터들;
카메라 장비의 방출기에 대한 고유 파라미터들;
환경에서 카메라 장비의 로컬화를 수행하기 위한 파라미터들; 또는
카메라 장비의 방출기와 카메라 사이의 관계와 연관된 파라미터들을 포함한다.
비교에 기초하여 교정 모델을 수정하는 단계는:
하나 이상의 예측된 관측치들과 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상 사이의 차를 최소화하기 위해 교정 모델의 파라미터들 중 하나 이상을 바꾸는 단계를 포함할 수 있다.
대안적으로, 비교에 기초하여 교정 모델을 수정하는 단계는:
제안된 수정된 교정 모델을 산출하는 단계;
제안된 수정된 교정 모델, 환경에서 하나 이상의 포즈들로부터 카메라 장비에 의해 캡처된 환경의 하나 이상의 관측치들에 기초하여 환경의 기하학적 구조의 예측을 생성하는 단계;
제 1 관측치들 중 하나 이상에 대한 하나 이상의 예측된 관측치들의 비교와 기하학적 구조의 예측을 비교하는 단계; 및
비교가 수정 임계치를 만족한다고 결정하는 단계를 포함할 수 있다.
환경의 적어도 제 2 복수의 관측치들 및 수정된 교정 모델에 기초하여 환경 모델을 수정하는 단계는:
제 2 복수의 관측치들, 관측치들이 수집된 제 2 복수의 포즈들, 및 수정된 교정 모델로부터 제안된 수정된 환경 모델을 생성하는 단계; 및
환경 모델과 제안된 수정된 환경 모델을 비교하는 단계를 포함할 수 있다.
환경의 하나 이상의 예측된 관측치들은 카메라 장비의 이동 센서로부터 카메라 장비의 이동을 수신하는 것에 응답하여 결정될 수 있거나;
환경 모델은 카메라 장비의 이동 센서로부터 카메라 장비의 이동을 수신하는 것에 응답하여 수정된다.
방법은:
환경 모델을 수정하기 이전에, 카메라 장비의 수신된 이동을 적어도 수정된 카메라 교정 모델 및 환경의 제 2 복수의 관측치들에 기초하여 결정된 카메라 장비의 이동과 비교하는 단계를 더 포함할 수 있다.
카메라 장비의 이동 센서는:
가속도계;
자이로스코프;
초음파 이동 센서;
자력계; 또는
광학 이동 센서를 포함할 수 있다.
카메라 장비의 카메라는 적외선 또는 자외선을 검출하도록 구성될 수 있다.
카메라 장비는 머리 장착 디바이스에 통합될 수 있다.
카메라 장비는 핸드헬드 컴퓨팅 디바이스에 통합될 수 있다.
소프트웨어를 구현하는 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체가 또한 제공되고, 소프트웨어는 실행될 때:
카메라 장비에 대한 교정 모델에 액세스하고;
환경에서 복수의 포즈들로부터 카메라 장비에 의해 캡처된 환경의 제 1 복수의 관측치들에 액세스하고;
적어도 제 1 복수의 관측치들, 복수의 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하고;
복수의 포즈들 중 하나 이상의 포즈들에 대해, 환경 모델 및 하나 이상의 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정하고;
하나 이상의 예측된 관측치들을 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상과 비교하고;
비교에 기초하여 교정 모델을 수정하며;
환경의 적어도 제 2 복수의 관측치들 및 수정된 교정 모델에 기초하여 환경 모델을 수정하도록 동작가능하다.
시스템이 또한 제공되고, 시스템은:
하나 이상의 프로세서들; 및
프로세서들 중 하나 이상에 결합되고 명령들을 포함하는 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체를 포함하고, 명령들은 프로세서들 중 하나 이상에 의해 실행될 때 시스템으로 하여금:
카메라 장비에 대한 교정 모델에 액세스하게 하고;
환경에서 복수의 포즈들로부터 카메라 장비에 의해 캡처된 환경의 제 1 복수의 관측치들에 액세스하게 하고;
적어도 제 1 복수의 관측치들, 복수의 포즈들, 및 교정 모델에 기초하여 환경의 기하학적 구조를 포함하는 환경 모델을 생성하게 하고;
복수의 포즈들 중 하나 이상의 포즈들에 대해, 환경 모델 및 하나 이상의 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정하게 하고;
하나 이상의 예측된 관측치들을 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 제 1 관측치들 중 하나 이상과 비교하게 하고;
비교에 기초하여 교정 모델을 수정하게 하며;
환경의 적어도 제 2 복수의 관측치들 및 수정된 교정 모델에 기초하여 환경 모델을 수정하게 하도록 동작가능하다.
본 발명의 하나 이상의 양태들 또는 실시예들에 통합하기에 적합한 것으로서 본 명세서에서 설명된 임의의 특징들이 본 발명의 임의의 및 모든 양태들 및 실시예들에 걸쳐 일반화가능하도록 의도된다는 것이 인식될 것이다.
도 1은 일 예시적인 깊이 카메라 장비를 도시한 도면.
도 2는 교정 및 재구성을 위한 일 예시적인 방법을 도시한 도면.
도 3은 교정 및 재구성의 일례를 도시한 도면.
도 4는 일 예시적인 컴퓨터 시스템을 도시한 도면.
특정한 실시예들에서, 카메라 장비는 장비가 카메라 장비를 둘러싼 환경에 대한 기하학적 구조를 결정하는 것을 허용하는 구성요소들을 포함할 수 있다. 이들 실시예들은 카메라의 시야에 있는 객체들에 대해 카메라로부터의 거리를 측정하도록 구성되는 깊이 감지 카메라, 또는 간단히 "깊이 카메라"를 포함할 수 있다. 깊이 카메라의 출력은 카메라로부터 이미지의 개별적인 픽셀들의 거리들을 전달하는 깊이 맵을 포함할 수 있다. 이 픽셀 당 깊이는 깊이 정보가 있는 이미지를 생성하기 위해 카메라의 또 다른 센서(예컨대, 이미지 센서)에 의해 제공된 컬러 정보와 병합될 수 있다. 특정한 실시예들에서, 깊이 카메라들은 실시간으로 카메라의 시야에서 기하학적 구조에 대한 깊이 맵을 보여주는 정지 이미지들 또는 출력 라이브 비디오를 제공할 수 있다. 깊이 카메라들은 따라서, 광범위한 잠재적인 용도들을 갖는다.
특정한 실시예들에서, 깊이 카메라의 개별적인 프레임들의 출력은 깊이 카메라의 환경에 대한 모델을 생성하거나 재구성하기 위해 사용될 수 있다. 예를 들면, "기하학적 융합"에서, 환경에 대한 깊이 정보는 프레임들(또는 다른 입력 범위들)에 걸쳐 환경 모델로 병합되거나, "융합"될 수 있다. 카메라가 검출할 수 있는 객체들이 인식될 수 있고 객체의 위치는 프레임들에 걸쳐 기록된다. 이것은 객체의 깊이 또는 뒷벽과 같은 환경의 다른 인식된 부분들이 시간에 따라 그 객체에 대한 깊이들의 조합(예컨대, 가중된 평균)에 기초하여 결정되는 것을 허용할 수 있다. 특정한 애플리케이션들에서, 환경 모델은 단일 이미지로부터와 같은 단일 깊이 맵을 사용하여 이용가능할 수 있는 것보다 환경의 더 정확한 표현을 제공할 수 있다. 다수의 깊이 맵들로부터의 픽셀 컬러 및 픽셀 당 깊이는 상세한 환경 모델을 생성하기 위해 사용될 수 있다. 결과적인 모델은 깊이 카메라를 둘러싼 환경의 체적 재구성일 수 있다. 그러나, 시간에 따라 정확한 기하학적 융합을 수행하기 위한 컴퓨팅 요구조건들이 상당히 높을 수 있어서, 특정 실시간 동작들에 대해 불량한 성능을 야기한다.
특정한 실시예들에서, 환경 모델은 환경에서 깊이 카메라를 로컬화하기 위한 프로세스의 일부로서 사용될 수 있다. 동시 로컬화 및 매핑("SLAM")으로서 알려진 컴퓨터 비전의 하나의 문제에서, 목적은 대략적으로, 하나 이상의 센서들로부터의 센서 데이터를 사용하여 에이전트를 둘러싼 환경의 맵 및 환경 내의 에이전트의 위치 둘 모두를 결정하는 것이다. 예를 들면, 시간에 따른 카메라로부터의 이미지 데이터 사이의 공통점들은 SLAM 문제를 해결하기 위해 사용될 수 있다. 특정한 실시예들에서, 환경 모델은 깊이 카메라를 더 효율적으로(속도 및 계산 리소스들의 관점에서) 및 다른 해결책들을 더 정확하게 로컬화하기 위해 사용될 수 있다. 예를 들면, 카메라로부터 수신된 이미지 데이터는 환경에 대한 카메라의 포즈를 결정하기 위해 환경 모델과 비교될 수 있다. 깊이 카메라로부터의 깊이 정보는 또한, 프로세스를 보강하기 위해 사용될 수 있어서, 시스템이 모호성들(예컨대, 규모, 투영, 등)을 더 효율적으로 해결하는 것을 허용한다. 일부 실시예들에서, 포즈는 예컨대, 환경 내에 카메라를 배치하는 세계 좌표 시스템의 관점에서 표현될 수 있다. 일부 실시예들에서, 포즈는 예컨대, 카메라의 환경의 객체들을 배치하는 카메라 좌표 시스템의 관점에서 표현될 수 있다. 깊이 카메라의 환경에서 그것을 로컬화하는 것은 다양한 애플리케이션들을 갖는다. 로컬화 프로세스의 속도를 개선하는 것은 제조(예컨대, 제품들의 설계 또는 테스팅), 엔터테인먼트 및 생산성(예컨대, 인공 현실 애플리케이션들을 위한 머리 장착 디바이스들 또는 내부 매핑을 위한 헨드헬드 디바이스들), 자율 동작들, 생활 보조(예컨대, 시각 또는 청각이 손상된 사람들에게 환경에 관한 정보를 제공하기 위한), 및 많은 다른 분야들과 같은 분야들에서 다양한 실시간 애플리케이션들을 포함하는 용도들을 더욱 발달시킨다.
많은 컴퓨터 비전 관련 기술들과 마찬가지로, 깊이 카메라의 구성요소들의 교정은 환경 모델의 정확도에 영향을 줄 수 있다. 일부 실시예들에서, 교정은 깊이 카메라에 대한 정확한 교정 모델을 생성하기 위한 시도로 고도로 전문화된 장비를 사용하여 수행될 수 있다. 예를 들면, 검사 장비는 깊이 카메라가 제조 결함들이나 비정상들을 나타내는지의 여부를 결정하기 위해 제조업체 또는 품질 보증 제공자에 의해 사용될 수 있다. 유사하게, 자동화된 기술들은 특수화된 교정 타겟들 및 정확하게 측정된 거리들을 포함할 수 있는 신중하게 구성된 교정 환경들에 의존할 수 있다. 실측 값들(예컨대, 교정 환경에 대해 알려진 값들)에 대해 비교된 깊이 카메라가 검출한 깊이 정보를 사용하여, 깊이 카메라의 교정 모델에 대한 정정들이 행해질 수 있다. 전통적인 사용 경우들에서, 일단 깊이 카메라가 교정되면, 그것은 최종 사용자에 의해 사용될 수 있다.
환경 모델의 품질은 실제 사용으로부터 깊이 카메라의 교정을 분리하는 실질적인 필요성에 의해 제한될 수 있다. 특정한 실시예들에서, 교정 파라미터들은 일부 경우들에서 예측가능하지만, 종종 예기치 않게 시간에 따라 달라질 수 있다. 예를 들면, 자연적으로 발생하는 환경 인자들, 심지어 미묘한 인자들은 사용된 교정의 정확한 본질로 인해 깊이 카메라 교정 모델에 영향을 미칠 수 있다. 주변 열이나 압력의 변화들은 카메라 교정으로 불규칙성들을 도입할 수 있다. 또 다른 예로서, 깊이 카메라 애플리케이션이 카메라의 이동을 요구하는 경우 예를 들면, 그것이 머리 장착 디스플레이 또는 핸드헬드 디바이스에 통합되는 경우, 사용자의 정상적인 움직임들은 불규칙성들을 도입할 수 있다. 또한, 깊이 카메라는 충격(예컨대, 배송 또는 사용 동안의 낙하들 및 충격들), 극한 온도들, 변조 또는 다른 악의적인 활동, 또는 다양한 다른 것들과 같은 예기치 않은 스트레스를 받을 수 있다. 고 성능 장비 또는 실시간 동작들에서의 사용과 같은, 정밀한 교정이 우선 순위가 높은 애플리케이션들에서, 깊이 카메라는 그것이 교정 전문가에게 운반될 수 있을 때까지 또는 그것이 시간이 많이 소모되는 교정 절차들의 영향을 받을 때까지 사용가능하지 않게 될 수 있다.
특정한 실시예들에서, 공동 깊이 카메라 교정 및 환경 재구성 절차는 부가적인 교정 타겟들 또는 맞춤화된 환경에 대한 필요성을 감소시키거나 심지어 제거하면서 재구성 품질을 상당히 개선할 수 있다. 또한, 특정한 실시예들에서, 공동 절차의 계산 효율성들은 교정이, 교정이 시스템의 비 교정 사용 동안 시간에 따라 발생하는 배경 동작으로서 발생하는 것을 허용할 수 있다. 공동 교정 및 재구성 절차는 교번 반복 프로세스로 해결될 수 있는 2개의 상호관련된 추정 문제들로 분해될 수 있다. 제 1 단계에서, 깊이 카메라에 대한 교정 모델이 액세스되거나 추정될 수 있다. 일례로서, 공칭 제조 교정 파라미터들이 사용될 수 있다. 또 다른 예로서, 교정은 제조 공정의 일부로서 수행될 수 있다. 사전 교정을 사용하여, 깊이 카메라를 둘러싼 환경의 기하학적 구조가 추정될 수 있다. 본 발명의 전체에 걸쳐 상세하게 설명된 바와 같이, 환경 추정치는 교정 모델 및 깊이 측정치들, 포즈들, 또는 명시된 시간 프레임의 다양한 지점들에서 깊이 카메라에 의해 수집된 다른 센서 데이터에 기초할 수 있다. 일례로서, 포즈는 카메라 장비의 SLAM 하위 시스템에 의해 또는 이것을 통해 결정될 수 있다. 또 다른 예로서, 포즈는 카메라 장비의 하나 이상의 이동 센서들에 기초하여 결정될 수 있다. 환경 기하학적 구조의 다수의 개별적인 추정치들은 예를 들면, 기하학적 융합을 사용하여 환경 모델의 제 1 반복으로 조합될 수 있다. 제 2 단계에서, 환경 모델은 그 다음, 깊이 카메라 교정을 업데이트하기 위해 사용될 수 있다. 제 1 단계로부터의 포즈들 및 환경 모달은 환경의 예측들을 생성하기 위해 사용될 수 있다. 예측들은 각각의 주어진 포즈와 연관된, 제 1 단계로부터의 카메라 깊이 또는 이미지 산출들과 비교될 수 있다. 예측들과 캡처된 데이터 사이의 차들은 오차들로서 해석될 수 있다. 오차들은 카메라 교정 모델을 수정함으로써 정정될 수 있다. 이 설명된 기술에서, 깊이 측정치들은 깊이 카메라를 위해 사용된 교정 파라미터들의 함수로서 해석될 수 있다. 카메라 교정 모델, 환경 모델, 및 공동 깊이 카메라 교정 및 환경 재구성 절차는 이제, 본 발명의 도면들을 참조하여 더 상세하게 설명될 것이다.
도 1은 장비의 일 예시적인 깊이 카메라(100)를 도시한다. 예시적인 깊이 카메라(100)는 2개의 구성요소들: 카메라(110) 및 방출기(120)를 포함한다. 방출기(120)는 구조화된 광 패턴을 깊이 카메라(100)를 둘러싸는 환경으로 투영할 수 있다. 방출기(120)는 하나 이상의 회절 광학 요소들(125)을 통해 투영되는 광 패턴을 생성할 수 있고, 이는 광 패턴으로 하여금 환경을 통해 확산되게 할 수 있다. 광 패턴은 환경에서 표면들(135)에 충돌하는 복수의 광선들(130a)을 포함할 수 있다. 표면들(135)로부터 반사되는 광선들(130b)은 카메라(110)에 도달할 수 있다. 단순성의 목적을 위해, 카메라(110)에 도달하는 광선들만이 도시된다. 실제로, 광선들(130a)이 환경에서 표면들(135)에 충돌할 때, 복수의 광선들은 일부가 카메라(110)에 도달하면서 임의의 수의 가능한 방향들로 반사될 수 있다. 카메라 고유 파라미터들, 방출기 고유 파라미터들, 카메라 방출기 변환 파라미터들, 및 구조화된 광 패턴에 관해 알려진 다른 정보를 포함하지만, 이들로 제한되지 않는 다양한 파라미터들을 사용하여, 카메라(130), 또는 카메라의 컴퓨팅 시스템은 환경에 대한 깊이 매핑 정보를 결정하기 위해 반사된 광선들(130b)을 해석할 수 있다.
투영된 광선들은 명시된 광 패턴 예컨대, 패턴(160)을 포함할 수 있다. 특정한 실시예들에서, 투영 패턴은 방출기(120)로부터 투영된 수백 개 이상의 광 도트(light dot)들을 포함할 수 있다. 광 도트들은 방출기(120)에 의해 형성되고 회절 광학 요소들(125)과 같은 회절 광학계들을 통한 복제 프로세스를 통해 곱해질 수 있다. 방출기(120)는 광의 가시광선 스펙트럼의 광 도트들을 생성하도록 구성될 수 있다. 특정한 실시예들에서, 방출기(120)는 적외선 또는 자외선을 포함하지만 이로 제한되지 않는, 광의 가시광선 스펙트럼을 넘는 광 도트들을 생성하도록 구성될 수 있다. 카메라(110)는 광 도트들의 선택된 파장에 관계 없이, 광 도트들을 검출하도록 구성될 수 있다. 특정한 실시예들에서, 방출기(120)에 의해 방출된 패턴 예컨대, 패턴(160)은 템플릿 구조화된 광 패턴을 포함할 수 있다. 특정한 실시예들에서, 방출기로부터의 패턴의 도트들의 예상된 방향들이 또한 알려질 수 있다(도트들 중에서 절대적으로든 상대적이든). 도트들의 방향들은 독립적인 교정 절차의 일부로서 또는 본 명세서에서 설명된 절차들의 일부로서 교정될 수 있다. 도트들의 방향들에 관한 정보는 본 명세서에서 설명된 바와 같이, 패턴의 교란들을 더 정확하게 검출하기 위해 사용될 수 있다. 교란들은 그 다음, 패턴의 특정한 교란에 대한 이유에 관한 모호성들을 해결하기 위해 사용될 수 있다. 예를 들면, 패턴의 도트들이 환경으로 투영된 후에 그들의 검출된 방향들, 또는 위치들을 도트들의 예상된 개별적인 방향들과 비교함으로써, 패턴의 더 미묘한 교란들이 검출될 수 있다. 이것은 결과적으로, 환경의 더 정확한 측정치들을 허용할 수 있다.
특정 파라미터들은 도 1에 상징적으로 표현된다. 파라미터들의 하나의 이러한 세트는 카메라 고유 파라미터들(140)(KC)이다. 카메라 고유 파라미터들은 일반적으로, 이상화된 카메라에 대해 실세계 카메라를 시뮬레이팅하기 위해 사용된 파라미터들을 언급할 수 있다. 특정한 실시예들에서, 카메라 고유 파라미터들(140)은 카메라의 초점 길이, 주요 지점 오프셋, 축 스큐(axis skew), 또는 임의의 다른 적합한 카메라 고유 파라미터들을 포함할 수 있다. 초점 길이는 렌즈와 이미지 센서 사이의 거리를 언급할 수 있다. 주요 지점 오프셋은 이미지 센서 평면의 원점에 대해 주요 광선(표준 카메라 핀홀을 통과하는 광선)의 위치를 언급할 수 있다. 축 스큐는 캡처된 이미지의 전단 왜곡을 언급할 수 있다. 도 1에 상징적으로 표현된 파라미터들의 또 다른 세트는 방출기 고유 파라미터들(145)(KE)이다. 방출기 고유 파라미터들은 이상화된 방출기에 대한 방출기 동작들을 설명하기 위해 사용된 파라미터들을 언급할 수 있다. 특정한 실시예들에서, 방출기 고유 파라미터들은 방출기의 전력, 방출기 본체(120)의 다이오드에 대한 회절 격자들(125)의 배열, 회절 격자들(125) 중 하나 이상의 방위, 기울기, 굴절률, 사용된 광의 파장, 임의의 다른 적합한 파라미터들 또는 그들의 임의의 적합한 조합과 같은 정보를 포함할 수 있다. 도 1에 상징적으로 표현된 파라미터들의 또 다른 세트는 카메라 방출기 변환 파라미터들(150)(TEC)이다. 특정한 실시예들에서, 카메라 방출기 변환 파라미터들(150)은 방출기 및 카메라의 물리적 배치 및 방위를 측정하기 위해 사용된 파라미터들을 언급할 수 있다. 특정한 실시예들에서, 환경으로 방출된 광의 원점이 깊이 카메라의 이미지 센서의 위치와 상이하기 때문에, 카메라 방출기 변환 파라미터들(150)은 통합된 깊이 카메라 방출기(예컨대, 여기서 방출기 및 카메라는 동일한 물리적 공간을 공유하거나, 동일한 디바이스임)를 시뮬레이팅하기 위해 사용될 수 있다. 카메라 및/또는 방출기는가 사용 특히, 트라우마(예컨대, 떨어짐)으로 인해 이동할 수 있기 때문에, 파라미터들은 깊이 카메라가 제조업체를 떠난 후에 수정을 요구할 수 있다.
도 2는 깊이 카메라의 교정 및 환경의 재구성을 위한 일 예시적인 방법(200)을 도시한다. 특정한 실시예들에서, 방법(200)의 단계들은 시스템의 최초 사용, 새로운 환경에서의 최초 사용 동안, 또는 정기적인 유지보수로서 수행되는 표준화된 교정 절차의 일부로서 수행될 수 있다. 특정한 실시예들에서, 방법(200)의 단계들은 정상 사용 동안(예컨대, 시스템이 다른 비 교정 동작들에 관여되는 동안) 배경에서 컴퓨팅 시스템에 의해 수행될 수 있다. 방법은 깊이 카메라(110)와 연관된 컴퓨팅 시스템이 깊이 카메라(110)의 초기 교정을 수행할 수 있는 단계(201)에서 시작할 수 있다. 초기 교정은 제조자, 품질 보증 에이전트, 또는 다른 자격을 갖춘 교정 에이전트에 의해 수행될 수 있다. 초기 교정은 알려진 크기, 형상, 컬러, 또는 거리의 객체들을 포함하는 환경을 포함하는 하나 이상의 실측 구성들을 사용하여 수행될 수 있다. 깊이 카메라가 중간 사용자 또는 최종 사용자에게 배송되기 전에 초기 교정이 수행될 수 있다. 특정한 실시예들에서, 초기 교정은 깊이 카메라 또는 깊이 카메라를 포함하는 시스템의 초기화 또는 활성화 시에 사용자에 의해 수행될 수 있다. 초기 교정은 최초 사용 절차의 일부로서, 또는 정기적인 유지보수의 일부로서 수행될 수 있다.
단계(210)에서, 컴퓨팅 시스템은 카메라 교정 모델에 액세스할 수 있다. 방법의 제 1 반복 동안, 카메라 교정은 초기 교정으로부터 수신될 수 있다. 그러나, 본 발명 전체에 걸쳐 설명될 바와 같이, 설명된 절차는 반복적으로 수행될 수 있어서, 환경 모델 및 카메라 교정 모델 모두를 반복적으로 개선한다. 그들 경우들에서, 단계(210) 동안 액세스된 카메라 교정 모델은 수정된 카메라 교정 모델일 수 있다. 컴퓨팅 시스템은 카메라 교정 모델을 사용하여 깊이 카메라로부터의 관측치들을 해석할 수 있다.
단계(211)에서, 카메라 장비의 방출기는 광 패턴을 투영할 수 있다. 방출기는 깊이 카메라의 환경에 광 패턴을 투영할 수 있다. 광 패턴은 템플릿에 기초한 구조화된 광 패턴일 수 있다. 템플릿은 패턴의 편차들이 발생하는 위치를 결정하는 것을 더 간단하게 할 수 있는 특정 패턴을 포함할 수 있다. 예를 들면, 패턴은 균일하게 이격된 도트들의 그리드를 포함할 수 있다. 기하학적 구조 없이 후면만 있는 환경으로 투영되는 경우, 카메라에 의해 검출될 때 패턴은 동일한 그리드일 수 있다. 물론 그때에도, 검출된 그리드는 카메라 장비로부터 뒷벽의 거리에 기초한 축척 조정들에 의해 야기된 편차들을 가질 수 있다. 기하학적 구조가 있는 환경으로 투영되는 경우, 템플릿으로부터의 검출된 그리드의 편차들에 의해 기하학적 구조가 검출될 수 있다. 이들 편차들은 편차를 야기하는 환경에서 기하학적 구조의 형상을 외삽하기 위해 사용할 수 있다. 특정한 실시예들에서, 광 패턴은 각각의 도트의 위치가 알려져 있고, 각각의 도트가 개별적으로 식별가능한 구조화된 광 패턴일 수 있다. 따라서, 전체적인 패턴에 더하여 각각의 개별적인 도트와 연관된 편차의 정도를 식별함으로써 환경의 기하학적 구조를 더 정확하게 결정하는 것이 가능할 수 있다.
단계(212)에서, 카메라 장비의 깊이 카메라는 환경의 관측치들을 캡처할 수 있다. 관측치들은 환경의 전통적인 컬러 및/또는 밝기 세기 이미지들을 포함할 수 있다. 특정한 실시예들에서, 캡처된 관측치들은 카메라 장비의 방출기에 의해 환경으로 투영된 광 패턴의 관측치들을 포함할 수 있다. 예를 들면, 카메라 장비의 카메라는 카메라 장비의 방출기에 의해 환경으로 투영된 환경의 구조화된 광 패턴을 검출할 수 있다. 구조화된 광 패턴은 구조화된 광 패턴에 대한 템플릿에 기초하여 생성될 수 있다. 컴퓨팅 디바이스(또는 카메라의 시스템)는 환경에서 검출된 구조화된 광 패턴을 템플릿 구조화된 광 패턴과 비교할 수 있다. 또 다른 예로서, 각각의 캡처된 관측치는 환경에서 표면들에 의해 야기된 투영된 광 패턴의 왜곡을 캡처하는 지점 대 지점 대응들의 세트를 포함할 수 있다. 카메라 장비의 방출기에 의해 환경으로 투영된 광 패턴은 패턴의 각각의 지점의 위치가 알려지거나 결정될 수 있는 구조 광 패턴에 기초할 수 있다. 카메라가 관측치들을 캡처할 때, 그것은 구조 광 패턴의 개별적인 지점들을 검출할 수 있다. 카메라, 또는 관련된 시스템은 구조화된 광 패턴의 각각의 개별적인 지점을 식별할 수 있고 각각의 식별된 지점의 위치, 또는 방향을 구조화된 광 패턴에서 식별된 지점의 대응하는 예상된 위치, 또는 방향과 비교할 수 있다. 지점 대 지점 대응들(예컨대, 관측된 구조화된 광 패턴에서 특정한 지점의 예상된 위치와 특정한 지점의 관측된 위치 사이의 차)을 비교함으로써, 카메라 및 컴퓨팅 시스템은 더 미묘한 변동들을 설명할 수 있는 더 정확한 깊이 맵들을 생성할 수 있다. 시스템은 구조화된 광 패턴의 잠재적 모호성들 예를 들면, 표면의 코너 근처의 광 패턴의 관측치에 의해 야기된 것들을 결정할 수 있다. 지점 대 지점 대응들로부터, 컴퓨팅 시스템은 각각의 지점의 위치가 해결될 수 있기 때문에 모호성들을 해결할 수 있다. 특정한 실시예들에서, 캡처된 관측치들로부터, 깊이 카메라(또는 깊이 카메라와 연관된 컴퓨팅 시스템)는 하나 이상의 깊이 맵들을 생성할 수 있다.
단계(213)에서, 카메라 장비는 환경에서 카메라 장비의 포즈들을 결정할 수 있다. 포즈들은 카메라 장비의 깊이 카메라에 의해 관측치가 캡처된 때에 카메라 장비의 포즈에 대응할 수 있다. 특정한 실시예들에서, 단계들(212 및 213)은 각각의 관측치에 대해 포즈가 결정된다는 점에서 순차적으로 수행될 수 있다. 특정한 실시예들에서, 로컬화 시스템은 환경에서 카메라 장비의 복수의 포즈들을 산출할 수 있다. 산출된 포즈들의 수는 깊이 카메라에 의해 캡처된 환경의 별개의 관측치들의 수와 같을 수 있다. 예를 들면, 깊이 카메라가 비디오와 일치하는 관측치들을 캡처할 수 있는 경우(예컨대, 초 당 24, 30, 또는 60개의 관측치들을 캡처함), 컴퓨팅 시스템은 같은 수의 포즈들을 산출할 수 있다. 포즈들은 예컨대, 캡처된 관측치 데이터 및 카메라 교정 모델의 파라미터들에 기초하여 환경에서 깊이 카메라를 로컬화함으로써 실시간으로 캡처된 관측치들로부터 결정될 수 있다. 예를 들면, 로컬화 시스템은 환경에 대한 깊이 카메라의 대략적인 포즈를 생성하기 위해 깊이 카메라에 의해 캡처된 이미지들로부터 하나 이상의 SLAM 방법들을 사용할 수 있다. 포즈는 그 다음, 관측치가 캡처된 때에 깊이 카메라 위치에 대응할 수 있다. 특정한 실시예들에서, 포즈들은 로컬화 시스템에 통합되는 카메라 장비의 하드웨어 구성요소들에 기초하여 결정될 수 있다. 하드웨어 구성요소들은 하나 이상의 다축 가속도계들, 다축 자이로스코프들(단독으로 또는 다축 가속도계와 조합되어 관성 측정 유닛을 형성함), 초음파 이동 센서들, 자력계들, 광학 이동 센서들, 임의의 다른 적합한 하드웨어 이동 센서, 또는 그들의 임의의 구성요소와 같은 이동 센서를 포함할 수 있다. 포즈는 각각의 관측치가 캡처되는 것과 동시에 로컬화 시스템의 하나 이상의 하드웨어 구성요소들로부터 검색될 수 있다.
단계(214)에서, 컴퓨팅 시스템은 환경의 복수의 추정치들을 생성할 수 있다. 특정한 실시예들에서, 추정된 것은 각각의 캡처된 관측치, 관측치가 캡처되는 때에 카메라 장비의 대응하는 포즈, 및 카메라 교정 모델에 기초하여 생성될 수 있다. 환경의 추정치들을 생성하기 위해, 컴퓨팅 시스템은 캡처된 관측치들 및 대응하는 포즈들에 액세스할 수 있다. 상기 설명된 바와 같이, 산출된 포즈들의 수는 캡처된 관측치들의 수와 일치할 수 있다. 각각의 포즈는 시간별로 깊이 카메라에 의해 캡처된 관측치와 직접적으로 연관될 수 있어서, 포즈가 관측치가 캡처된 때에 깊이 카메라의 포즈를 표현하게 한다. 기하학적 추정 시스템은 카메라 교정 모델, 캡처된 관측치들, 및 연관된 포즈들에 액세스할 수 있다. 기하학적 추정 시스템은 카메라 교정 모델의 파라미터들을 사용하여 깊이 카메라 관측치들을 해석할 수 있다. 기하학적 추정 시스템은 각각의 깊이 카메라 관측치와 연관된 포즈를 사용하여 관측치가 캡처된 때에 카메라의 시점을 추정, 근사화, 또는 결정할 수 있다. 이것으로부터, 기하학적 관측 시스템은 환경의 "뷰(view)"를 결정할 수 있다. 기하학적 관측 시스템은 복수의 관측치들(최대 모든 관측치들까지, 및 이들을 포함함)에 대해 이들 단계들을 수행할 수 있다. 개별적으로 볼 때, 뷰들은 환경의 단 한 번의 추정치들로서 해석될 수 있다. 그들은 환경 및 가능하게 환경에 있는 개별적인 객체들에 대한 깊이 맵 및 컬러 맵과 같은 정보를 포함할 수 있다.
단계(215)에서, 컴퓨팅 시스템은 추정치들에 기초하여 환경 모델을 형성할 수 있다. 컴퓨팅 시스템은 추정치들을 조합하여 환경의 환경 모델을 형성할 수 있다. 특정한 실시예들에서, 추정치들은 기하학적 융합 또는 관련된 기술을 사용하여 조합될 수 있다. 예를 들면, 환경의 캡처된 관측치들로부터의 깊이 정보는 별개의 관측치들에 걸쳐 병합될 수 있다. 융합은 깊이 카메라의 환경의 환경 모델을 생성할 수 있다. 환경 모델은 예를 들면, 관측치들이 캡처된 시간 기간에 걸친 환경의 3차원 재구성일 수 있다. 일부 실시예들에서, 프로세싱 속도를 개선하기 위해, 깊이 카메라(또는 다른 이미징 디바이스)가 관측치들을 캡처하는 동안 환경이 시간이에 따라 크게 변경되지 않는다고 가정할 수 있다. 일부 실시예들에서, 컴퓨팅 시스템이 관측들, 포즈들, 및 카메라 교정 모델로부터 직접적으로 환경 모델을 형성할 수 있음에 유의한다.
단계들(210 및 215)(및 다른 중간 단계들)은 프로세스의 환경 재구성 부분으로서 언급될 수 있다. 단계들(220 내지 224)은 방법의 카메라 교정 부분으로서 언급될 수 있다. 단계들(210 및 215)에서, 환경 모델은 캡처된 관측치들에 기초하여 필요에 따라 생성되고/거나 업데이트될 수 있다. 단계들(220 내지 224)에서, 환경 모델은 카메라 모델 교정의 목적들을 위해 정확한 것으로 가정되고 카메라 교정 모델의 카메라 교정 파라미터들이 조정되는 동안 일정하게 유지될 수 있다.
단계(220)에서, 컴퓨팅 시스템은 포즈들 및 환경 모델에 기초하여 예측된 관측치들을 결정할 수 있다. 컴퓨팅 시스템은 복수의 포즈들 중 하나 이상의 포즈들에 대해, 환경 모델 및 하나 이상의 포즈들에 기초하여 환경의 하나 이상의 예측된 관측치들을 결정할 수 있다. 특정한 실시예들에서, 포즈 정보를 사용하여, 컴퓨팅 시스템은 환경 모델에서 캡처된 바와 같이 환경으로의 뷰를 시뮬레이팅할 수 있다. 환경 모델, 카메라 교정 모델(깊이 카메라 또는 방출기 고유 파라미터들, 깊이 카메라 또는 방출기 외적 파라미터들, 및 카메라 방출기 변환 파라미터들과 같은 파라미터들을 포함함), 및 포즈를 고려할 때, 컴퓨팅 시스템은 광 투영의 투영된 방출기 도트들이 깊이 카메라에 의해 이미징될 때 나타날 곳을 예측할 수 있다. 예측된 관측치(또는 단순하게 예측)를 생성하기 위해, 컴퓨팅 시스템은 환경으로 투영된 구조화된 광 패턴을 시뮬레이팅할 수 있다. 광 패턴은 카메라 장비의 방출기에 의해 방출된 동일한 구조화된 광 패턴의 모델일 수 있다. 예측은 그 다음, 포즈에 의해 지시된 환경의 뷰에서 가시적인, 환경 모델에서 캡처된 바와 같이, 환경에서 기하학적 구조에 의해 야기된 광 패턴의 변동들에 관한 정보를 포함할 수 있다. 이 프로세스는 복수의 포즈들(최대 모든 포즈들, 및 그들을 포함함)에 대해 수행될 수 있다. 특정한 실시예들에서, 컴퓨팅 시스템은 카메라 장비의 이동을 검출하는 것에 응답하여 예측된 관측치들을 결정할 수 있다. 이동은 이동 센서(예컨대, 상기 검출된 이동 센서들 중 하나)에 의해 검출될 수 있다. 따라서, 카메라 장비의 이동은 프로세스의 카메라 모델 교정 부분을 시작하기 위한 트리거(trigger)로서 사용될 수 있다. 재교정이 요구되는지의 여부를 결정하기 위해(예컨대, 재교정이 전체 시스템의 성능을 개선시킬 가능성이 있는지의 여부를 결정하기 위해) 관련된 프로세스의 일부로서 이 이동이 사용될 수 있다.
단계(221)에서, 각각의 포즈에 대해, 컴퓨팅 시스템은 예측된 관측치를 결정하기 위해 사용된 포즈와 연관된 캡처된 관측치와 예측된 관측치들을 비교할 수 있다. 예를 들면, 컴퓨팅 시스템은 각각의 예측된 관측치를 예측된 관측치가 결정된 포즈로부터 캡처된 관측치와 비교할 수 있다. 상기 설명된 바와 같이, 각각의 포즈는 깊이 카메라에 의해 캡처된 환경의 관측치와 연관될 수 있다(예컨대, 시간에 의해). 특정한 실시예들에서, 캡처된 관측치들은 환경으로 투영된 광 패턴의 변동을 포함할 수 있다. 예측 및 캡처된 관측치가 동일한 광 패턴에 기초할 수 있기 때문에, 예측 및 관측치는 교란들을 각각에서의 구조화된 광 패턴과 비교함으로써 비교될 수 있다. 특정한 캡처된 관측치에 대해, 컴퓨팅 시스템은 예측된 관측치가 얼마나 정확한지를 결정할 수 있다. 환경 모델이 정확하다고 가정되기 때문에, 예측된 관측치는 카메라 교정 모델이 수행될 수 있는 카메라 장비 교정의 인자들을 얼마나 정확하게 설명하는지에 대한 척도의 역할을 할 수 있다.
특정한 실시예들에서, 단계(221)에서 예측된 관측치들을 캡처된 관측치들과 비교하는 동안, 컴퓨팅 시스템은 단계(222)에서, 캡처된 관측치와 연관된 예측된 관측치 사이의 변동들을 비교하여 각각의 포즈와 연관된 예측들과 관측치들 사이의 모델 오차를 산출할 수 있다. 특정한 실시예들에서, 예측된 관측치들 및 캡처된 관측치들은 구조화된 광 패턴의 지점들에 대한 위치 정보를 포함할 수 있다. 그 다음, 예측된 관측치들을 캡처된 관측치들과 비교하는 것은 각각의 예측된 관측치의 위치 정보를 각각의 대응하는 캡처 관측치의 위치 정보와 비교하는 것을 포함할 수 있다. 비교가 관측된 광 투영 패턴을 방출된 광 투영 패턴과 연관시키는 결과를 고려할 때, 컴퓨팅 시스템은 각각의 예측(예컨대, 예측된 도트 패턴)을 관측된 현실과 비교할 수 있다. 관측치와 예측 사이의 차들은 모델 오차(예컨대, 카메라 교정 모델에 의해 야기된 오차)를 산출하기 위해 조합될 수 있다. 직관적으로, 이 단계에서 환경 모델이 거의 정확하다고 가정되기 때문에, 오차의 하나의 소스는 예측을 생성하기 위해 포즈들과 함께 사용되는 카메라 교정 모델이라고 가정될 수 있다. 특정한 실시예들에서, 오차의 부가적인 소스는 결정된 포즈 자체일 수 있다. 특정한 실시예들에서, 동작 센서 또는 동작 검출 시스템은 로컬화 시스템의 정확도를 개선할 수 있는 로컬화 시스템에 대한 초기화 조건을 생성하기 위해 사용될 수 있다. 또한, 동작 센서의 출력은 예컨대, 동작 센서와 로컬화 시스템의 상대적인 위치 변화를 비교함으로써 개별적인 포즈들의 정확도를 결정하기 위해 로컬화 시스템의 결과들과 비교될 수 있다. 특정한 실시예들에서, 각각의 캡처된 관측치에 대한 포즈가 예측을 생성하기 위해 사용되기 때문에, 포즈는 교정 절차를 단순화하기 위해 오차의 소스가 아닌 것으로 가정될 수 있다. 목표는 모델 오차를 최소화하는 카메라 파라미터들(예컨대, 깊이 카메라 또는 방출기 고유 파라미터들, 깊이 카메라 또는 방출기 외부 파라미터들, 카메라 방출기 변환 파라미터들)을 찾는 것이다.
단계(223)에서, 컴퓨팅 시스템은 모델 오차가 카메라 교정 모델을 수정하기 위한 임계치를 만족하는지의 여부를 결정할 수 있다. 일반적으로, 카메라 교정 파라미터들의 새로운 세트를 산출하고 적용하는 효과들을 예측하기 어려울 수 있다. 일부 상황들에서, 카메라 교정 파라미터들의 품질을 개선하기 위한 노력들에도 불구하고, 카메라 교정 절차에 대한 바꿈들은 관측치들의 정확도 및 결과적인 환경 모델을 악화시킬 가능성을 갖는다. 새로운 또는 수정된 카메라 교정 모델을 생성하는 동작이 상당한 계산 리소스들을 소비할 수 있기 때문에, 컴퓨팅 시스템은 개선이 재교정으로부터 발생할 가능성이 있는지의 여부를 결정하기 위해 확인할 수 있다. 그렇게 하는 하나의 접근법은 모델 오차(또는 예측된 관측치들을 캡처된 관측치들과 비교한 결과들을 추적하기 위해 사용되는 메트릭은 무엇이든)가 행해진 변경들이 오차를 감소시킬 가능성이 있도록 하는지의 여부를 결정하는 것일 수 있다. 예를 들면, 모델 오차가 충분히 높으면, 임의의 변경이 성공할 가능성이 있을 것이다. 모델 오차가 처음부터 낮았다면, 카메라 교정 모델을 재계산하는 것은 오차를 크게 개선하지 않을 수 있다. 특정한 실시예들에서, 리소스들을 보존하기 위해, 컴퓨팅 시스템은 관측치들의 이 세트에 대한 카메라 교정 모델을 재계산하는 것을 건너뛰기로 선택할 수 있다. 따라서, 하나의 예에서, 모델 오류가 카메라 교정 모델을 수정하기 위한 임계치를 만족하지 않는다면, 프로세스는 카메라 교정 모델이 변경되지 않은 채로 단계(210)로 다시 계속될 수 있다. 모델 오류가 임계치를 만족한다면, 프로세스는 단계(224)로 이동할 수 있다. 특정한 실시예들에서, 임계치는 역전될 수 있다. 즉, 임계치는 카메라 교정 모델의 정확도가 이미 수용가능한지의 여부를 결정하는 것일 수 있다. 이것은 낮은 모델 오차로 표현될 수 있으며, 임계치는 카메라 교정 모델이 수용가능하게 정확할 때 구분되는 모델 오차의 하한일 수 있다. 카메라 교정 모델을 수정할지의 여부를 결정하기 위한 다른 방법들이 사용될 수 있다.
단계(224)에서, 컴퓨팅 시스템은 카메라 교정 모델을 수정할 수 있다. 일부 실시예들에서, 카메라 교정 모델을 수정하는 것은 기존의 모델을 조정하는 것을 포함할 수 있다. 일부 실시예들에서, 수정 프로세스는 새로 수집된 정보(예컨대, 예측되고 캡처된 관측치들 및 그들의 비교)에 기초하여 새로운 카메라 교정 모델을 생성하는 것을 포함할 수 있다. 특정한 실시예들에서, 카메라 교정 모델을 수정하는 것은 모델 오차(그것이 산출되는 경우) 또는 하나 이상의 예측된 관측치들과 하나 이상의 예측된 관측치들이 결정된 하나 이상의 포즈들에 대응하는 캡처된 관측치들 중 하나 이상 사이의 차를 최소화하기 위해 교정 모델의 파라미터들 중 하나 이상을 바꾸거나 대체하는 것을 포함할 수 있다.
공식적으로, 환경의 예측된 관측치들 및 캡처된 관측치들로부터 카메라 교정 모델을 생성하기 위해, 컴퓨팅 시스템은 IR 이미지(i)에서 모든 관측된 도트 또는 지점 대 지점 대응들(
Figure pct00001
)에 대해 다음의 제곱 재투영 오차의 합을 최소화할 수 있다:
Figure pct00002
여기서,
Figure pct00003
은 관측치(i)에서의 도트 위치의 예측된 관측치이다(이미지로서 해석됨):
Figure pct00004
여기서:
Figure pct00005
:
Figure pct00006
는 IR 카메라 프레임(i)의 지점(
Figure pct00007
)을 픽셀 좌표들(
Figure pct00008
)로 가져오는 함수이다.
Figure pct00009
:
Figure pct00010
는 방출기 2D 도트 패턴(
Figure pct00011
)을 방출기 프레임 벡터(
Figure pct00012
)로 가져오는 방출기 역투영을 표현하는 함수이다.
Figure pct00013
:
Figure pct00014
는 광선(r)과 평면(N=[n,r]) 사이의 교차점을 계산하는 함수이다.
Figure pct00015
여기서,
Figure pct00016
는 각각 기준(w 및 e)의 환경 및 방출기 프레임들에서 표면의 선형화에 대응하는 평면들이다.
Figure pct00017
는 각각 장비로부터 세계(world-from-rig) 및 깊이 카메라로부터 장비(rig-from-depth-camera) 변환들이다.
α 및 β는 프레임 포즈 및 카메라 외부 요소들에 대한 알려지지 않은 업데이트들이다.
x ix e는 각각 깊이 카메라의 파라미터들 및 방출기 프로젝터 파라미터들이다.
특정한 실시예들에서, 카메라 교정 모델을 수정하는 것은 예컨대, 본 명세서에서 설명된 방법들을 사용하여 제안된 수정된 교정 모델을 산출하는 것을 포함할 수 있다. 컴퓨팅 시스템은 제안된 수정된 교정 모델, 환경에서 하나 이상의 포즈들로부터 카메라 장비에 의해 캡처된 환경의 하나 이상의 관측치들에 기초하여 환경의 기하학적 구조의 예측을 생성할 수 있다. 예를 들면, 컴퓨팅 시스템은 새로운 카메라 교정 모델을 사용하여 예측된 관측치를 결정하기 위해 하나 또는 캡처된 관측치들과 연관된 하나 이상의 포즈들을 사용할 수 있다. 예측된 관측치를 결정하기 위한 프로세스는 본 명세서에서 설명된 프로세스와 유사할 수 있다. 컴퓨팅 시스템은 하나 이상의 예측된 관측치들의 상기 설명된 비교를 캡처된 관측치들 중 하나 이상 및 기하학적 구조의 예측과 비교할 수 있다. 특정한 실시예들에서, 컴퓨팅 시스템은 이 비교에 기초하여 수정 효과를 산출할 수 있다. 컴퓨팅 시스템은 그 다음, 수정 효과를 수정 임계치와 비교할 수 있다. 수정 임계치가 만족된다고 결정할 시에, 수정된 카메라 교정 모델은 수용되고 초기 카메라 교정 모델로 대체될 수 있다.
방법(200)에 도시된 바와 같이, 카메라 교정 모델을 수정한 후에 또는 선택적으로, 모델 오차가 임계 오차를 만족하지 않는다고 결정한 후에, 방법은 다시 단계(210)로 진행할 수 있다. 특정한 실시예들에서, 컴퓨팅 시스템은 다시, 수정된 카메라 교정 모델에 기초하여 환경 모델을 수정할 수 있다. 예를 들면, 컴퓨팅 시스템은 동일한 캡처된 관측치들을 사용하여 방법(200)의 동작들을 다시 수행할 수 있다. 교정 절차들이 관측치들의 캡처에 반드시 영향을 미치는 것은 아니므로, 원하는 레벨의 교정 정확도가 성취될 때까지 동일한 관측치들이 반복적으로 사용될 수 있다. 또 다른 예로서, 컴퓨팅 시스템은 환경의 관측치들의 제 2 세트를 캡처할 수 있다. 단계들(210 및 215)에 이어서, 컴퓨팅 시스템은 그 다음, 최대 단계들(210 및 215)을 포함하는 방법(200)의 환경 재구성 부분의 단계들을 수행할 수 있다. 이것은 단계(212)에서, 관측들의 제 2 세트를 캡처하는 것, 및 단계(213)에서 포즈들의 제 2 세트를 결정하는 것을 포함할 수 있다. 컴퓨팅 시스템은 환경의 적어도 관측치들의 제 2 세트 및 수정된 카메라 교정 모델에 기초하여 환경 모델을 수정할 수 있다.
특정한 실시예들에서, 환경 모델을 수정하기 이전에, 컴퓨팅 시스템은 카메라 장비의 이동을 검출할 수 있다. 예를 들면, 컴퓨팅 시스템은 카메라 장비의 이동 센서로부터 카메라 장비의 이동을 수신할 수 있다. 환경 모델은 이동에 응답하여 결정될 수 있다. 특정한 실시예들에서, 컴퓨팅 시스템은 환경 모델을 수정하기 이전에, 카메라 장비의 수신된 이동을 적어도 수정된 카메라 교정 모델 및 환경의 제 2 복수의 관측치들에 기초하여 결정된 카메라 장비의 이동과 비교할 수 있다. 비교에 기초하여, 컴퓨팅 시스템은 이동이 진짜 이동인지의 여부, 또는 이동이 오차로 검출되었는지의 여부를 결정할 수 있다. 이동이 오차였던 것으로 결정되면, 컴퓨팅 시스템은 리소스들을 보존하기 위해 환경 모델을 수정하기 위한 프로세스들을 개시하지 않을 수 있다.
특정한 실시예들에서, 컴퓨팅 시스템은 관측치들의 제 2 세트, 관측치들이 수집된 제 2 복수의 포즈들, 및 본 명세서에서 설명된 것과 동일한 절차들을 사용하여 수정된 교정 모델로부터 제안된 수정된 환경 모델을 생성함으로써 환경의 적어도 관측치들의 제 2 세트 및 수정된 교정 모델에 기초하여 환경 모델을 수정할 수 있다. 컴퓨팅 시스템은 환경 모델과 제안된 수정된 환경 모델을 비교할 수 있다. 컴퓨팅 시스템은 수정된 환경 모델이 카메라 장비 및 시스템의 동작에 유익할지를 결정하기 위해 현재 환경 모델에 대해 제안된 수정된 환경 모델을 대체하는 효과를 결정할 수 있다. 제안된 수정된 환경 모델이 개선이 아닌 것으로 결정되면(예컨대, 산출된 오차가 임계치를 초과함), 제안된 수정된 환경 모델이 사용되지 않을 수 있다.
본 명세서에서 설명된 절차들은 깊이 카메라의 환경에 대한 정확한 환경 모델을 재구성하기 위한 현재 절차들에 다수의 중요한 장점들을 제공할 수 있다. 본 명세서에서 설명된 절차들은 덜 제한된 리소스들을 사용하여 계산적으로 더 효율적일 수 있다. 이것은 결과적으로, 이들 기술들을 구현하는 컴퓨팅 디바이스가 부가적인 작업들을 위해 사용되거나, 더 에너지 효율적으로 만들어지는 것을 허용할 수 있다. 절차들은 2개의 근사 모델들(예컨대, 카메라 교정 모델 및 환경 모델)에서 더 빠르게 수렴될 수 있는데, 이는 둘 모두가 거의 동시 방식으로 변경되도록 허용되기 때문이다. 이것은 2개가 필요에 따라 환경에 관한 새로운 정보뿐만 아니라, 서로에게 조정하는 것을 허용한다. 프로세스가 깊이 카메라로부터의 이미지들 및 깊이 맵들을 사용하기 때문에, 절차들은 시스템에 의해 사용되고 있는 어떤 애플리케이션들과도 협력하여 사용될 수 있다. 따라서, 시스템은 정상 동작 동안 카메라 교정 모델 및 환경 모델 둘 모두의 개선을 지원할 수 있어서, 시스템에 대한 사용자 참여와 사용 사이의 지연을 감소시킨다. 예를 들면, 시스템은 사용자가 달리 시스템에 참여하는 동안 설명된 공동 교정 및 재구성 절차들을 수행할 수 있다. 사용자는 교정을 용이하게 하는 것과 구체적으로 관련되는 조치들을 취할 필요가 없다(예컨대, 정확한 교정을 용이하게 하기 위해 시스템의 프롬프트들에 따름). 사용자는 교정이 발생하고 있음을 심지어 통지받지 못할 수 있다. 카메라 장비 및 컴퓨팅 시스템은 정상 사용 동안 사용자 움직임을 검출하고 그 움직임을 트리거로서 사용하여 또 다른 카메라 장비 교정 또는 환경 재구성이 수행되어야 하는지의 여부를 결정할 수 있다. 이들, 및 많은 다른 이득들은 숙련자들에게 인식가능할 것이다.
특정한 실시예들은 적절한 경우, 도 2의 방법의 하나 이상의 단계들을 반복할 수 있다. 본 발명이 도 2의 방법의 특정한 단계들을 특정한 순서로 발생하는 것으로서 설명하고 도시할지라도, 본 발명은 임의의 적합한 순서로서 발생하는 도 2의 방법의 임의의 적합한 단계들을 고려한다. 게다가, 본 발명이 도 2의 방법의 특정한 단계들을 포함하는 환경의 재구성 및 깊이 카메라의 교정을 위한 일 예시적인 방법을 설명하고 도시할지라도, 본 발명은 적절한 경우, 도 2의 방법의 모든, 일부 단계들을 포함하거나, 어떠한 단계들도 포함하지 않을 수 있는 임의의 적합한 단계들을 포함하는 환경의 재구성 및 깊이 카메라의 교정을 위한 임의의 적합한 방법을 고려한다. 또한, 본 발명이 도 2의 방법의 특정한 단계들을 수행하는 특정한 구성요소들, 디바이스들, 또는 시스템들을 설명하고 도시할지라도, 본 발명은 도 2의 방법의 임의의 적합한 단계들을 수행하는 임의의 적합한 구성요소들, 디바이스들, 또는 시스템들의 임의의 적합한 조합을 고려한다.
도 3은 개략적인 방식으로 교정 및 재구성을 위한 교번 반복 프로세스를 도시한다. 중앙 분할 라인의 도 3의 좌측의 측면은 "재구성" 단계를 표현할 수 있고, 중앙 라인의 도 3의 우측의 측면은 "교정" 단계를 표현할 수 있다. 재구성 단계 동안, 카메라 장비(예컨대, 카메라 장비(100))의 컴퓨팅 시스템에 카메라 장비에 대한 교정 모델의 하나 이상의 파라미터들이 제공될 수 있다(예컨대, 방법(200)의 단계(210)에 이어서). 예를 들면, 카메라 장비에 대한 교정 모델의 파라미터들은 카메라 고유 파라미터들(KC)(301a), 방출기 고유 파라미터들(KE)(302a), 및 카메라 방출기 변환 파라미터들(TEC)(303a)을 포함할 수 있다.
카메라 장비와 연관된 컴퓨팅 시스템은 환경 모델을 생성할 수 있다. 방법(200)의 단계(211)에서와 같이, 방출기(예컨대, 방출기(120))는 구조화된 광 패턴(305)을 환경으로 방출할 수 있다. 패턴(305)은 광 패턴의 전체 구조에 관한 정보를 포함할 수 있고/거나 광 패턴의 각각의 도트의 예상된 방향 또는 예상된 위치에 관한 정보를 포함할 수 있다. 방법(200)의 단계(212)에서와 같이, 카메라(예컨대, 깊이 카메라(110))는 일련의 캡처된 관측치들(310a, 310b, 및 310c), 등에서 구조화된 광 패턴을 검출할 수 있다. 이들 관측치들은 구조화된 광 패턴(305)의 변동을 포함할 수 있다. 각각의 관측치(310a, 310b, 및 310c)는 특정한 시간에 캡처될 수 있고 각각의 관측치(310a, 310b, 및 310c)는 관측치가 캡처된 때에 카메라의 포즈(315a, 315b, 및 315c)와 각각 연관될 수 있다. 특정한 실시예들에서, 포즈들은 각각의 관측치를 캡처하기 위한 부분 프로세스로서 캡처될 수 있다(예컨대, 방법(200)의 단계들(212 및 213)은 빠르게 연속적으로 수행될 수 있음. 특정한 실시예들에서, 관측치들(310a, 310b, 및 310c)로부터, 카메라(또는 연관된 컴퓨팅 시스템)는 다수의 깊이 맵들(320a, 320b, 및 320c)을 각각 생성할 수 있다. 단계(214)에서와 같이, 컴퓨팅 시스템은 환경의 일련의 추정치들(325a, 325b, 및 325c)을 결정할 수 있다. 특정한 실시예들에서, 컴퓨팅 시스템은 추정치들을 결정하기 위해 카메라 교정 파라미터들(301a, 302a, 및 302a)에 더하여 구조화된 광 관측치들(310a, 310b, 및 310c), 깊이 맵들(320a, 및 320b, 및 320c), 및 대응하는 포즈들(315a, 315b, 및 315c)을 사용할 수 있다. 각각의 추정치는 환경의 단일 뷰를 제공할 수 있다. 단계(215)에서와 같이, 많은 추정치들 예컨대, 추정치들(325a, 325b, 및 325c)은 환경 모델(330)을 생성하기 위해 하나 이상의 적합한 융합 기술들을 통해 조합될 수 있다.
환경 모델(330)의 생성 후에, 프로세스는 중앙 분할 라인의 우측으로 도 3의 측면에 도시된 바와 같이, 프로세스의 카메라 모델 교정 단계로 이동할 수 있다. 이 단계에서, 환경 모델(330)은 대략적으로 정확한 것으로 간주되고, 카메라 교정 모델(예컨대, 파라미터들(301a, 302a, 및 302c))은 잠재적으로 변경된다. 단계(220)에서와 같이, 컴퓨팅 시스템은 환경 모델(330)에 기초하여 환경의 예측된 관측치들(340a, 340b, 및 340c)을 생성하기 위해 환경 모델(330), 구조화된 광 패턴(305), 및 포즈들(315a, 315b, 및 315c)을 사용할 수 있다. 예측된 관측치들(340a, 340b, 및 340c)은 결정된 환경 모델(330)에 기초한 물리적 환경의 예측일 수 있다.
단계(221)에서와 같이, 컴퓨팅 시스템은 예측된 관측치들(340a, 340b, 및 340c)을 예측들을 생성하기 위해 사용된 동일한 포즈들(315a, 315b, 및 315c)로부터 캡처된 관측치들(320a, 320b, 및 320c)과 비교할 수 있다. 예를 들면, 예측된 관측치(340a)가 포즈(315a) 및 환경 모델(330)을 이용하여 생성되었기 때문에, 그것은 캡처된 관측치(320a)와 비교된다. 유사하게, 예측된 관측치(340b)는 포즈(315b) 및 환경 모델(330)을 사용하여 생성되었기 때문에, 그것은 캡처된 관측치(320b)와 비교된다. 캡처된 관측치들 및 예측된 관측치들은 유사한 포맷으로 표현될 수 있다. 예를 들면, 캡처된 관측치들 및 예측된 관측치들은 깊이 맵들에 의해, 템플릿 구조화된 광 패턴에 대한 구조화된 광 패턴들의 편차들로서, 구조화된 광 패턴들의 지점 대 지점 편차들로서, 또는 임의의 다른 적합한 포맷으로 표현될 수 있다. 환경 모델(300)이 이 단계에 대해 대략적으로 정확한 것으로 가정되기 때문에, 예측된 관측치들과 캡처 관측치들 사이의 임의의 차들은 카메라 교정 모델로부터 파생되는 것으로 가정될 수 있다. 특정한 실시예들에서, 오차들의 다른 소스들이 가정되고 설명될 수 있다. 예를 들면, 오차의 하나의 부가적인 소스는 검출된 포즈 자체일 수 있다. 특정한 실시예들에서, 본 명세서에서 설명된 바와 같이, 동작 검출 시스템은 검출된 포즈의 정확성을 확인하기 위한 방법으로서 사용될 수 있다.
캡처된 관측치들(320a, 320b, 및 320c)에 대한 예측된 관측치들(340a, 340b, 및 340c)의 비교는 일련의 모델 오차들(345a, 345b, 및 345c)로서 도 3에 도시된다. 비교는 다수의 실시예들에서 임의의 적합한 포맷으로 구현될 수 있다. 모델 오차들은 예측된 관측치와 예측된 관측치가 생성된 포즈에서 캡처된 캡처된 관측치 사이의 차를 캡처할 수 있다. 모델 오차들은 예측된 관측치들 및 캡처된 관측치들의 구조화된 광 패턴(또는 깊이 맵들) 사이의 다수의 지점 대 지점 차들을 포함할 수 있다. 캡처된 관측치들과 예측된 관측치들 사이의 변동들은 다수의 관측치들에 기초하여 환경 모델의 "평균"을 제공하는 환경 모델을 생성하기 위한 융합 프로세스로부터 자연스럽게 발생할 수 있다. 예를 들면, 모델 오차(345a)는 예측된 관측치(340a)와 캡처된 관측치들(320a)(예측된 관측치(340a)가 캡처된 포즈(315a)에서 캡처됨) 사이의 편차들을 구현한다. 유사하게, 모델 오차(345b)는 예측된 관측치(340b)와 캡처된 관측치(320b) 사이의 편차들을 구현한다. 모델 오차(345c)는 예측된 관측치(340c)와 캡처된 관측치(320c) 사이의 편차들을 구현한다.
방법(200)의 단계(224)에서와 같이, 카메라 교정 모델이 수정될 수 있다. 특정한 실시예들에서, 카메라 교정 모델(예컨대, 301a, 302a, 및 303a)에 포함된 파라미터들 중 하나 이상은 수집된 모델 오차들을 최소화하도록 수정될 수 있다. 수정된 카메라 교정 모델 파라미터들(예컨대, 301b, 302b, 및 302c)은 프로세스가 프로세스의 재구성 단계로 다시 전환될 때 사용될 수 있으며, 여기서 환경 모델은 환경의 새로 캡처된 관측치들을 사용하여 다시 재구성될 수 있다. 프로세스는 이러한 방식으로 반복적으로 교번할 수 있다. 프로세스는 다수의 중단 조건들 중 하나 이상에 도달할 때까지 계속될 수 있다. 예를 들면, 하나의 중단 조건은 임의의 제안된 수정들이 특정한 임계치 미만인 것으로 결정되어(예컨대, 본 명세서에서 설명된 방법들을 사용하여), 모델들 중 하나 또는 둘 모두가 대략적으로 정확함을 나타내는 것일 수 있다.
도 4는 일 예시적인 컴퓨터 시스템(400)을 도시한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)에서 실행되는 소프트웨어는 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들은 하나 이상의 컴퓨터 시스템들(400)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 컴퓨터 시스템에 대한 참조는 적절한 경우, 컴퓨팅 디바이스를 포함할 수 있으며, 그 반대도 마찬가지이다. 게다가, 컴퓨터 시스템에 대한 참조는 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 발명은 임의의 적합한 수의 컴퓨터 시스템들(400)을 고려한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 컴퓨터 시스템(400)을 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 내장된 컴퓨터 시스템, 시스템 온 칩(SOC), 단일 보드 컴퓨터 시스템(SBC)(예를 들면, 컴퓨터 온 모듈(COM) 또는 시스템 온 모듈(SOM)과 같음), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크, 메인프레임, 컴퓨터 시스템들의 메시, 모바일 전화, 개인 휴대용 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 그들 중 2개 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(400)은 하나 이상의 컴퓨터 시스템들(400)을 포함할 수 있거나; 단일 또는 분산될 수 있거나; 다수의 위치들에 걸쳐 있을 수 있거나; 다수의 기계들에 걸쳐 있을 수 있거나; 다수의 데이터 센터들에 걸쳐 있을 수 있거나; 하나 이상의 네트워크들에 하나 이상의 클라우드 구성요소들을 포함시킬 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실질적인 공간적 또는 시간적 제한 없이 수행할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 하나 이상의 컴퓨터 시스템들(400)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실시간 또는 배치 모드로 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(400)은 적절한 경우, 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 상이한 시간들에서 또는 상이한 위치들에서 수행할 수 있다.
특정한 실시예들에서, 컴퓨터 시스템(400)은 프로세서(402), 메모리(404), 저장장치(406), 입력/출력(I/O) 인터페이스(408), 통신 인터페이스(410), 및 버스(412)를 포함한다. 본 발명이 특정한 배열로 특정한 수의 특정한 구성요소들을 가지는 특정한 컴퓨터 시스템을 설명하고 도시할지라도, 본 발명은 임의의 적합한 배열로 임의의 적합한 수의 임의의 적합한 구성요소들을 가지는 임의의 적합한 컴퓨터 시스템을 고려한다.
특정한 실시예들에서, 프로세서(402)는 컴퓨터 프로그램을 구성하기 위한 명령들과 같은, 명령들을 실행하기 위한 하드웨어를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 명령들을 실행하기 위해, 프로세서(402)는 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장장치(406)로부터 명령들을 검색(또는 인출)하고; 그들을 디코딩하고 실행하며; 그 다음, 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장장치(406)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 명령들, 또는 주소들을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 캐시들을 포함하는 프로세서(402)를 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 프로세서(402)는 하나 이상의 명령 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼(translation lookaside buffer; TLB)들을 포함할 수 있다. 명령 캐시들에서의 명령들은 메모리(404) 또는 저장장치(406)에서의 명령들의 카피들일 수 있고, 명령 캐시들은 프로세서(402)에 의한 그들 명령들의 검색의 속도를 높일 수 있다. 데이터 캐시들에서의 데이터는 동작할 프로세서(402)에서 실행되는 명령들을 위한 메모리(404) 또는 저장장치(406)에서의 데이터; 프로세서(402)에서 실행되는 후속 명령들에 의해 액세스하기 위해 또는 메모리(404) 또는 저장장치(406)에 기록하기 위해 프로세서(402)에서 실행된 이전 명령들의 결과들; 또는 다른 적합한 데이터의 카피들일 수 있다. 데이터 캐시들은 프로세서(402)에 의한 판독 또는 기록 동작들의 속도를 높일 수 있다. TLB들은 프로세서(402)를 위한 가상 주소 변환의 속도를 높일 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 명령들, 또는 주소들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 레지스터들을 포함하는 프로세서(402)를 고려한다. 적절한 경우, 프로세서(402)는 하나 이상의 산술 논리 유닛(ALU)들을 포함하거나; 멀티 코어 프로세서일 수 있거나; 하나 이상의 프로세서들(402)을 포함할 수 있다. 본 발명이 특정한 프로세서를 설명하고 도시할지라도, 본 발명은 임의의 적합한 프로세서를 고려한다.
특정한 실시예들에서, 메모리(404)는 프로세서(402)가 실행할 명령들 또는 프로세서(402)가 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 저장장치(406) 또는 또 다른 소스(예를 들면, 또 다른 컴퓨터 시스템(400)과 같음)로부터 메모리(404)로 명령들을 로드할 수 있다. 프로세서(402)는 그 다음, 메모리(404)로부터 내부 레지스터 또는 내부 캐시로 명령들을 로드할 수 있다. 명령들을 실행하기 위해, 프로세서(402)는 내부 레지스터 또는 내부 캐시로부터 명령들을 검색하고 그들을 디코딩할 수 있다. 명령들의 실행 동안 또는 이후에, 프로세서(402)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있음)을 내부 레지스터 또는 내부 캐시에 기록할 수 있다. 프로세서(402)는 그 다음, 그들 결과들 중 하나 이상을 메모리(404)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(404)(저장장치(406)와는 대조적으로 또는 어딘가의)에서 단지 명령들을 실행하고 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(404)(저장장치(406)와는 대조적으로 또는 어딘가의)에서 단지 데이터에 따라 동작한다. 하나 이상의 메모리 버스들(주소 버스 및 데이터 버스를 각각의 포함할 수 있음)은 프로세서(402)를 메모리(404)에 결합할 수 있다. 버스(412)는 하기에 설명된 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정한 실시예들에서, 하나 이상의 메모리 관리 유닛(MMU)들은 프로세서(402)와 메모리(404) 사이에 상주하고 프로세서(402)에 의해 요청된 메모리(404)에 대한 액세스들을 용이하게 한다. 특정한 실시예들에서, 메모리(404)는 랜덤 액세스 메모리(RAM)를 포함한다. 이 RAM은 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이 RAM은 단일 포트되거나 다중 포트된 RAM일 수 있다. 본 발명은 임의의 적합한 RAM을 고려한다. 메모리(404)는 적절한 경우, 하나 이상의 메모리들(404)을 포함할 수 있다. 본 발명이 특정한 메모리를 설명하고 도시할지라도, 본 발명은 임의의 적합한 메모리를 고려한다.
특정한 실시예들에서, 저장장치(406)는 데이터 또는 명령들을 위한 대용량 저장장치를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 저장장치(406)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광 디스크, 광 자기 디스크, 자기 테이프, 또는 범용 직렬 버스(Universal Serial Bus; USB) 드라이브 또는 그들 중 2개 이상의 조합을 포함할 수 있다. 저장장치(406)는 적절한 경우, 탈착가능하거나 탈착가능하지 않은(또는 고정된) 매체를 포함할 수 있다. 저장장치(406)는 적절한 경우, 컴퓨터 시스템(400)의 내부 또는 외부에 있을 수 있다. 특정한 실시예들에서, 저장장치(406)는 비 휘발성, 고체 상태 메모리이다. 특정한 실시예들에서, 저장장치(406)는 판독 전용 메모리(ROM)를 포함한다. 적절한 경우, 이 ROM은 마스크 프로그래밍된 ROM, 프로그래밍가능한 ROM(PROM), 소거가능한 PROM(EPROM), 전기적으로 소거가능한 PROM(EEPROM), 전기적으로 개조가능한 ROM(EAROM), 또는 플래시 메모리 또는 그들 중 2개 이상의 조합을 포함한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 대용량 저장장치(406)를 고려한다. 저장장치(406)는 적절한 경우, 프로세서(402)와 저장장치(406) 사이의 통신을 용이하게 하는 하나 이상의 저장 제어 유닛들을 포함할 수 있다. 적절한 경우, 저장장치(406)는 하나 이상의 저장장치들(406)을 포함할 수 있다. 본 발명이 특정한 저장장치를 설명하고 도시할지라도, 본 발명은 임의의 적합한 저장장치를 고려한다.
특정한 실시예들에서, I/O 인터페이스(408)는 컴퓨터 시스템(400)과 하나 이상의 I/O 디바이스들 사이의 통신을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 컴퓨터 시스템(400)은 적절한 경우, 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(400) 사이의 통신을 가능하게 할 수 있다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, I/O 디바이스는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 고정형 카메라, 스타일러스, 태블릿, 터치 화면, 트랙볼, 비디오 카메라, 또 다른 적합한 I/O 디바이스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 발명은 임의의 적합한 I/O 디바이스들 및 그들을 위한 임의의 적합한 I/O 인터페이스들(408)을 고려한다. 적절한 경우, I/O 인터페이스(408)는 프로세서(402)가 이들 I/O 디바이스들 중 하나 이상을 구동하는 것을 가능하게 하는 하나 이상의 디바이스 또는 소프트웨어 구동기들을 포함할 수 있다. I/O 인터페이스(408)는 적절한 경우, 하나 이상의 I/O 인터페이스들(408)을 포함할 수 있다. 본 발명이 특정한 I/O 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 I/O 인터페이스를 고려한다.
특정한 실시예들에서, 통신 인터페이스(410)는 컴퓨터 시스템(400)과 하나 이상의 다른 컴퓨터 시스템들(400) 또는 하나 이상의 네트워크들 사이의 통신(예를 들면, 패킷 기반 통신과 같음)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 통신 인터페이스(410)는 이더넷 또는 다른 유선 기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 네트워크 어댑터 또는 와이파이 네트워크와 같은, 무선 네트워크와 통신하기 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 발명은 임의의 적합한 네트워크 및 그것을 위한 임의의 적합한 통신 인터페이스(410)를 고려한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 컴퓨터 시스템(400)은 애드 혹 네트워크, 개인 통신망(PAN), 근거리 통신망(LAN), 광역 통신망(WAN), 도시권 통신망(MAN), 또는 인터넷의 하나 이상의 부분들 또는 그들 중 2개 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 일례로서, 컴퓨터 시스템(400)은 무선 PAN(WPAN)(예를 들면, 블루투스 WPAN과 같음), 와이파이 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들면, 모바일 통신을 위한 글로벌 시스템(Global System for Mobile Communications; GSM) 네트워크와 같음), 또는 다른 적합한 무선 네트워크 또는 이들 중 2개 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(400)은 적절한 경우, 이들 네트워크들 중 임의의 것을 위한 임의의 적합한 통신 인터페이스(410)를 포함할 수 있다. 통신 인터페이스(410)는 적절한 경우, 하나 이상의 통신 인터페이스들(410)을 포함할 수 있다. 본 발명이 특정한 통신 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 통신 인터페이스를 고려한다.
특정한 실시예들에서, 버스(412)는 컴퓨터 시스템(400)의 구성요소들을 서로 결합하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 일례로서 그리고 제한에 의한 것이 아닌 것으로서, 버스(412)는 가속화된 그래픽 포트(Accelerated Graphics Port; AGP) 또는 다른 그래픽 버스, 향상된 산업 표준 아키텍쳐(Enhanced Industry Standard Architecture; EISA) 버스, FSB(front-side bus), 하이퍼트랜스포트(HYPERTRANSPORT)(HT) 상호연결부, 산업 표준 아키텍쳐(ISA) 버스, 인피니밴드 상호연결부, LPC(low-pin-count) 버스, 메모리 버스, 마이크로 채널 아키텍쳐(Micro Channel Architecture; MCA) 버스, 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스, PCI-Express(PCIe) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스, 또는 또 다른 적합한 버스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. 버스(412)는 적절한 경우, 하나 이상의 버스들(412)을 포함할 수 있다. 본 발명이 특정한 버스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 버스 또는 상호연결부를 고려한다.
본 명세서에서, 컴퓨터 판독가능한 비 일시적 저장 매체 또는 매체는 적절한 경우, 하나 이상의 반도체 기반 또는 다른 집적 회로들(ICs)(예를 들면, 필드 프로그래밍가능한 게이트 어레이들(FPGAs) 또는 주문형 반도체들(ASICs)과 같음), 하드 디스크 드라이브들(HDDs), 하이브리드 하드 드라이브들(HHDs), 광 디스크들, 광 디스크 드라이브들(ODDs), 광 자기 디스크들, 광 자기 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(FDDs), 자기 테이프들, 고체 상태 드라이브들(SSDs), RAM 드라이브들, 보안 디지털 카드들 또는 드라이브들, 임의의 다른 적합한 컴퓨터 판독가능한 비 일시적 저장 매체, 또는 이들 중 2개 이상의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독가능한 비 일시적 저장 매체는 적절한 경우, 휘발성, 비 휘발성, 또는 휘발성 및 비 휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 포괄적이고 배타적이지 않다. 따라서, 본 명세서에서, "A 또는 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A, B, 또는 둘 모두"를 의미한다. 게다가, "및"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 공동 및 몇몇 둘 모두이다. 따라서, 본 명세서에서, "A 및 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A 및 B, 공동으로 또는 별개로"를 의미한다.
본 발명의 범위는 당업자가 이해할 본 명세서에서 설명되고 도시된 예시적인 실시예들에 대한 모든 변경들, 교체들, 변형들, 개조들, 및 수정들을 포함한다. 본 발명의 범위는 본 명세서에서 설명되고 도시된 예시적인 실시예들로 제한되지 않는다. 게다가, 본 발명이 본 명세서에서의 각각의 실시예들을 특정한 구성요소들, 요소들, 특징, 기능들, 동작들, 또는 단계들을 포함하는 것으로서 설명하고 도시할지라도, 이들 실시예들 중 임의의 것은 당업자가 이해할 본 명세서의 어딘가에서 설명되고 도시된 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 또한, 첨부된 청구항들에서 특정한 기능을 수행하도록 적응되거나, 배열되거나, 수행할 수 있거나, 구성되거나, 가능하게 되거나, 동작가능하거나, 동작하는 장치, 또는 시스템 또는 장치, 또는 시스템의 구성요소에 대한 참조는, 그 장치, 시스템, 또는 구성요소가 그렇게 적응되거나, 배열되거나, 할 수 있거나, 구성되거나, 가능하게 되거나, 동작가능하거나, 동작하는 한, 그것 또는 그 특정한 기능이 활성화되든, 턴 온되든, 또는 잠금해제되든 아니든 그 장치, 시스템, 구성요소를 포함한다. 부가적으로, 본 발명이 특정한 실시예들을 특정한 장점들을 제공하는 것으로서 설명하거나 도시할지라도, 특정한 실시예들은 이들 장점들을 전혀 제공하지 않거나, 그들의 일부, 또는 전부를 제공할 수 있다.

Claims (15)

  1. 방법에 있어서,
    컴퓨팅 디바이스에 의해:
    카메라 장비에 대한 교정 모델에 액세스하는 단계;
    환경에서 복수의 포즈(pose)들로부터 상기 카메라 장비에 의해 캡처된 상기 환경의 제 1 복수의 관측치들에 액세스하는 단계;
    적어도 상기 제 1 복수의 관측치들, 상기 복수의 포즈들, 및 상기 교정 모델에 기초하여 상기 환경의 기하학적 구조를 포함하는 환경 모델을 생성하는 단계;
    상기 복수의 포즈들 중 하나 이상의 포즈들에 대해, 상기 환경 모델 및 상기 하나 이상의 포즈들에 기초하여 상기 환경의 하나 이상의 예측된 관측치들을 결정하는 단계;
    상기 하나 이상의 예측된 관측치들을 상기 하나 이상의 예측된 관측치들이 결정된 상기 하나 이상의 포즈들에 대응하는 상기 제 1 관측치들 중 하나 이상과 비교하는 단계;
    상기 비교에 기초하여 상기 교정 모델을 수정하는 단계; 및
    상기 환경의 적어도 제 2 복수의 관측치들 및 상기 수정된 교정 모델에 기초하여 상기 환경 모델을 수정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 카메라 장비에 의해, 구조화된 광 패턴을 상기 환경으로 투영하고;
    상기 카메라 장비의 카메라에 의해, 상기 환경에서 상기 투영된 구조화된 광 패턴을 검출하며;
    상기 검출된 구조화된 광 패턴을 템플릿 구조화된 광 패턴과 비교함으로써 상기 환경의 제 1 복수의 관측치들을 캡처하는 단계를 더 포함하는, 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 카메라 장비에 의해, 복수의 지점들을 포함하는 구조화된 광 패턴을 상기 환경으로 투영하고;
    상기 카메라 장비의 카메라에 의해, 상기 환경에서 상기 구조화된 광 패턴의 하나 이상의 지점들을 검출하고;
    상기 검출된 지점들의 각각을 식별하며;
    각각의 식별된 지점에 대해, 상기 식별된 지점의 위치를 상기 구조화된 광 패턴에서 상기 식별된 지점의 대응하는 예상된 방향과 비교함으로써 상기 환경의 제 1 복수의 관측치들을 캡처하는 단계를 더 포함하는, 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    각각의 제 1 관측치가 상기 카메라 장비의 로컬화 시스템(localization system)으로부터 상기 카메라 장비의 포즈를 수신함으로써 캡처된 상기 카메라 장비의 포즈를 캡처하는 단계를 더 포함하고; 바람직하게:
    상기 카메라 장비의 동작 센서로부터의 출력에 기초하여 상기 카메라 장비의 로컬화 시스템을 초기화하는 단계를 더 포함하는, 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    각각의 관측치가 적어도 상기 관측치 및 상기 교정 모델에 기초하여 상기 카메라 장비를 로컬화함으로써 캡처된 상기 카메라 장비의 포즈를 캡처하는 단계를 더 포함하는, 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    적어도 상기 제 1 복수의 관측치들, 상기 복수의 포즈들, 및 상기 교정 모델에 기초하여 상기 환경의 기하학적 구조를 포함하는 상기 환경 모델을 생성하는 단계는:
    각각의 관측치 및 상기 관측치가 캡처된 상기 카메라 장비의 포즈로부터 상기 환경의 기하학적 구조의 추정치을 생성하는 단계; 및
    상기 환경 모델을 형성하기 위해 각각의 관측치로부터 생성된 상기 추정치들을 조합하는 단계를 포함하는, 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 하나 이상의 예측된 관측치들 및 상기 제 1 복수의 관측치들은 구조화된 광 패턴의 지점들에 대한 위치 정보를 포함하고;
    상기 하나 이상의 예측된 관측치들을 상기 하나 이상의 예측된 관측치들이 결정된 상기 하나 이상의 포즈들에 대응하는 상기 제 1 관측치들 중 하나 이상과 비교하는 단계는 각각의 예측된 관측치의 위치 정보를 각각의 대응하는 제 1 관측치의 위치 정보와 비교하는 단계를 포함하는, 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 카메라 장비에 대한 상기 교정 모델은:
    상기 카메라 장비의 카메라에 대한 고유 파라미터들;
    상기 카메라 장비의 방출기에 대한 고유 파라미터들;
    환경에서 상기 카메라 장비의 로컬화를 수행하기 위한 파라미터들; 또는
    상기 카메라 장비의 방출기와 상기 카메라 사이의 관계와 연관된 파라미터들을 포함하는, 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 비교에 기초하여 상기 교정 모델을 수정하는 단계는:
    하나 이상의 예측된 관측치들과 상기 하나 이상의 예측된 관측치들이 결정된 상기 하나 이상의 포즈들에 대응하는 상기 제 1 관측치들 중 하나 이상 사이의 차를 최소화하기 위해 상기 교정 모델의 파라미터들 중 하나 이상을 바꾸는 단계를 포함하는, 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 비교에 기초하여 상기 교정 모델을 수정하는 단계는:
    제안된 수정된 교정 모델을 산출하는 단계;
    상기 제안된 수정된 교정 모델, 상기 환경에서 하나 이상의 포즈들로부터 상기 카메라 장비에 의해 캡처된 상기 환경의 하나 이상의 관측치들에 기초하여 상기 환경의 기하학적 구조의 예측을 생성하는 단계;
    상기 제 1 관측치들 중 하나 이상에 대한 상기 하나 이상의 예측된 관측치들의 비교와 상기 기하학적 구조의 예측을 비교하는 단계; 및
    상기 비교가 수정 임계치를 만족한다고 결정하는 단계를 포함하는, 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 환경의 적어도 제 2 복수의 관측치들 및 상기 수정된 교정 모델에 기초하여 상기 환경 모델을 수정하는 단계는:
    상기 제 2 복수의 관측치들, 상기 관측치들이 수집된 제 2 복수의 포즈들, 및 상기 수정된 교정 모델로부터 제안된 수정된 환경 모델을 생성하는 단계; 및
    상기 환경 모델과 상기 제안된 수정된 환경 모델을 비교하는 단계를 포함하는, 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 환경의 하나 이상의 예측된 관측치들은 상기 카메라 장비의 이동 센서로부터 상기 카메라 장비의 이동을 수신하는 것에 응답하여 결정되거나;
    상기 환경 모델은 상기 카메라 장비의 이동 센서로부터 상기 카메라 장비의 이동을 수신하는 것에 응답하여 수정되고; 바람직하게:
    상기 환경 모델을 수정하기 이전에, 상기 카메라 장비의 수신된 이동을 적어도 상기 수정된 카메라 교정 모델 및 상기 환경의 제 2 복수의 관측치들에 기초하여 결정된 상기 카메라 장비의 이동과 비교하는 단계를 더 포함하고/거나;
    바람직하게 상기 카메라 장비의 이동 센서는:
    가속도계;
    자이로스코프;
    초음파 이동 센서;
    자력계; 또는
    광학 이동 센서를 포함하는, 방법.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 카메라 장비의 카메라는 적외선 또는 자외선을 검출하도록 구성되고/거나; 바람직하게 상기 카메라 장비는 머리 장착 디바이스에 통합되고/거나; 바람직하게 상기 카메라 장비는 핸드헬드 컴퓨팅 디바이스에 통합되는, 방법.
  14. 소프트웨어를 구현하는 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체에 있어서,
    상기 소프트웨어는 실행될 때:
    카메라 장비에 대한 교정 모델에 액세스하고;
    환경에서 복수의 포즈들로부터 상기 카메라 장비에 의해 캡처된 상기 환경의 제 1 복수의 관측치들에 액세스하고;
    적어도 상기 제 1 복수의 관측치들, 상기 복수의 포즈들, 및 상기 교정 모델에 기초하여 상기 환경의 기하학적 구조를 포함하는 환경 모델을 생성하고;
    상기 복수의 포즈들 중 하나 이상의 포즈들에 대해, 상기 환경 모델 및 상기 하나 이상의 포즈들에 기초하여 상기 환경의 하나 이상의 예측된 관측치들을 결정하고;
    상기 하나 이상의 예측된 관측치들을 상기 하나 이상의 예측된 관측치들이 결정된 상기 하나 이상의 포즈들에 대응하는 상기 제 1 관측치들 중 하나 이상과 비교하고;
    상기 비교에 기초하여 상기 교정 모델을 수정하며;
    상기 환경의 적어도 제 2 복수의 관측치들 및 상기 수정된 교정 모델에 기초하여 상기 환경 모델을 수정하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체.
  15. 시스템에 있어서,
    하나 이상의 프로세서들; 및
    상기 프로세서들 중 하나 이상에 결합되고 명령들을 포함하는 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체를 포함하고, 상기 명령들은 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금:
    카메라 장비에 대한 교정 모델에 액세스하게 하고;
    환경에서 복수의 포즈들로부터 상기 카메라 장비에 의해 캡처된 상기 환경의 제 1 복수의 관측치들에 액세스하게 하고;
    적어도 상기 제 1 복수의 관측치들, 상기 복수의 포즈들, 및 상기 교정 모델에 기초하여 상기 환경의 기하학적 구조를 포함하는 환경 모델을 생성하게 하고;
    상기 복수의 포즈들 중 하나 이상의 포즈들에 대해, 상기 환경 모델 및 상기 하나 이상의 포즈들에 기초하여 상기 환경의 하나 이상의 예측된 관측치들을 결정하게 하고;
    상기 하나 이상의 예측된 관측치들을 상기 하나 이상의 예측된 관측치들이 결정된 상기 하나 이상의 포즈들에 대응하는 상기 제 1 관측치들 중 하나 이상과 비교하게 하고;
    상기 비교에 기초하여 상기 교정 모델을 수정하게 하며;
    상기 환경의 적어도 제 2 복수의 관측치들 및 상기 수정된 교정 모델에 기초하여 상기 환경 모델을 수정하게 하도록 동작가능한, 시스템.
KR1020227005697A 2019-07-22 2020-07-16 공동 환경 재구성 및 카메라 교정 KR20220035250A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/518,862 2019-07-22
US16/518,862 US11488324B2 (en) 2019-07-22 2019-07-22 Joint environmental reconstruction and camera calibration
PCT/US2020/042426 WO2021016051A1 (en) 2019-07-22 2020-07-16 Joint environmental reconstruction and camera calibration

Publications (1)

Publication Number Publication Date
KR20220035250A true KR20220035250A (ko) 2022-03-21

Family

ID=71995110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227005697A KR20220035250A (ko) 2019-07-22 2020-07-16 공동 환경 재구성 및 카메라 교정

Country Status (6)

Country Link
US (2) US11488324B2 (ko)
EP (1) EP4004874A1 (ko)
JP (1) JP2022541100A (ko)
KR (1) KR20220035250A (ko)
CN (1) CN114051626A (ko)
WO (1) WO2021016051A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11727597B2 (en) * 2018-12-21 2023-08-15 Sony Group Corporation Calibrating volumetric rig with structured light
CN113242421A (zh) * 2021-04-02 2021-08-10 青岛小鸟看看科技有限公司 相机校准方法、装置及虚拟现实设备
US11909950B1 (en) * 2021-09-21 2024-02-20 Amazon Technologies, Inc. Three-dimensional (3D) sensor performance evaluation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734419B1 (en) * 2008-12-30 2017-08-15 Cognex Corporation System and method for validating camera calibration in a vision system
CN116485870A (zh) * 2013-12-19 2023-07-25 苹果公司 用于跟踪移动设备的方法和系统
US10187629B2 (en) * 2016-04-06 2019-01-22 Facebook, Inc. Camera calibration system
WO2018134686A2 (en) 2017-01-19 2018-07-26 Mindmaze Holding Sa Systems, methods, device and apparatuses for performing simultaneous localization and mapping
US10089750B2 (en) 2017-02-02 2018-10-02 Intel Corporation Method and system of automatic object dimension measurement by using image processing
GB201702118D0 (en) * 2017-02-09 2017-03-29 Cathx Ocean Ltd Method and system for calibrating imaging system
US10692244B2 (en) * 2017-10-06 2020-06-23 Nvidia Corporation Learning based camera pose estimation from images of an environment
US20200042656A1 (en) * 2018-07-31 2020-02-06 Toyota Research Institute, Inc. Systems and methods for persistent simulation

Also Published As

Publication number Publication date
EP4004874A1 (en) 2022-06-01
US11488324B2 (en) 2022-11-01
CN114051626A (zh) 2022-02-15
US20210027492A1 (en) 2021-01-28
US20230169686A1 (en) 2023-06-01
WO2021016051A1 (en) 2021-01-28
JP2022541100A (ja) 2022-09-22

Similar Documents

Publication Publication Date Title
US11973923B2 (en) Online compensation of thermal distortions in a stereo depth camera
KR102334139B1 (ko) 적응적 호모그래피 매핑에 기초한 눈 시선 추적
EP3466070B1 (en) Method and device for obtaining image, and recording medium thereof
US20230169686A1 (en) Joint Environmental Reconstruction and Camera Calibration
US9978147B2 (en) System and method for calibration of a depth camera system
US20170374331A1 (en) Auto keystone correction and auto focus adjustment
CN112399158B (zh) 投影图像校准方法、装置及投影设备
EP3633606B1 (en) Information processing device, information processing method, and program
EP4049245B1 (en) Augmented reality 3d reconstruction
US20220253131A1 (en) Systems and methods for object tracking using fused data
JP7103354B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6486083B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR20210123994A (ko) 전자 장치 및 페어링된 전자 장치를 이용한 객체 식별 방법
KR20230162927A (ko) 인간의 시야 범위로부터의 자기중심적 포즈 추정
WO2023141491A1 (en) Sensor calibration system
US8462157B2 (en) Computing the irradiance from a disk light source at a receiver point