KR20200100102A - 증강 현실 디바이스를 교정하기 위한 방법 - Google Patents

증강 현실 디바이스를 교정하기 위한 방법 Download PDF

Info

Publication number
KR20200100102A
KR20200100102A KR1020207019785A KR20207019785A KR20200100102A KR 20200100102 A KR20200100102 A KR 20200100102A KR 1020207019785 A KR1020207019785 A KR 1020207019785A KR 20207019785 A KR20207019785 A KR 20207019785A KR 20200100102 A KR20200100102 A KR 20200100102A
Authority
KR
South Korea
Prior art keywords
sensor
calibration
parameter
calibrated
rotation parameter
Prior art date
Application number
KR1020207019785A
Other languages
English (en)
Other versions
KR102627352B1 (ko
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 KR20200100102A publication Critical patent/KR20200100102A/ko
Application granted granted Critical
Publication of KR102627352B1 publication Critical patent/KR102627352B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • 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
    • G06T7/85Stereo camera calibration
    • 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/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • 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/246Calibration of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • 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/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • 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
    • G06T2207/10021Stereoscopic video; Stereoscopic 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/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/06Adjustment of display parameters
    • G09G2320/0693Calibration of display systems

Abstract

제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법이 제공된다. 방법은, 제1 센서 및 제2 센서를 사용하여 센서 데이터를 캡처하는 단계를 포함한다. 디바이스는 병진 파라미터 및 회전 파라미터를 포함하는, 제1 센서와 제2 센서 사이의 공간 관계를 모델링하기 위한 교정 프로파일을 유지한다. 방법은 또한, 제1 시간에 교정 프로파일과 연관된 제1 교정 레벨을 결정하는 단계를 포함한다. 방법은, 제1 교정 레벨에 기반하여, 교정 프로세스를 수행하도록 결정하는 단계를 더 포함한다. 방법은, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고 병진 파라미터 및 회전 파라미터 중 하나 또는 둘 모두를, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써, 제1 시간에 교정 프로세스를 수행하는 단계를 더 포함한다.

Description

증강 현실 디바이스를 교정하기 위한 방법
[0001] 본 출원은, "METHOD FOR CALIBRATING AN AUGMENTED REALITY DEVICE"란 명칭으로 2017년 12월 21일자로 출원된 미국 가 특허 출원 번호 62/609,242를 우선권으로 주장하며, 이로써 그 전체 개시내용은 본원에 완전히 제시된 것처럼 모든 목적들을 위해 인용에 의해 포함된다.
[0002] 현대 컴퓨팅 및 디스플레이 기술들은 소위 "가상 현실" 또는 "증강 현실" 경험들을 위한 시스템들의 개발을 가능하게 했으며, 여기서, 디지털식으로 재생되는 이미지들 또는 이러한 이미지들의 일부분들은, 그들이 실제인 것 같거나 또는 실제로서 지각될 수 있는 방식으로 사용자에게 제시된다. 가상 현실(virtual reality) 또는 "VR" 시나리오는 통상적으로, 다른 실제 실세계 시각적 입력에 대한 투명도(transparency)가 없는 디지털 또는 가상 이미지 정보의 프리젠테이션을 수반하고; 증강 현실(augmented reality) 또는 "AR" 시나리오는 통상적으로, 사용자 주위의 실제 세계의 시각화에 대한 증강으로서 디지털 또는 가상 이미지 정보의 프리젠테이션을 수반한다.
[0003] 이들 디스플레이 기술들에서 이루어진 진보에도 불구하고, 증강 현실 시스템들, 특히, 디스플레이 시스템들과 관련된 개선된 방법들, 시스템들 및 디바이스들이 기술분야에서 필요하다.
[0004] 본 개시내용은 일반적으로, 증강 현실(AR; augmented reality) 디바이스의 교정과 관련된 방법들 및 시스템들에 관한 것이다. 더욱 구체적으로, 본 개시내용의 실시예들은, AR 디바이스가 동력을 공급받아 사용중인 동안 교정 프로파일의 하나 이상의 파라미터들을 조정함으로써 이 AR 디바이스를 교정하기 위한 방법들 및 시스템들을 제공한다. 본 발명이 AR 디바이스를 참조하여 설명되지만, 본 개시내용은 컴퓨터 비전 및 이미지 디스플레이 시스템들에서의 다양한 애플리케이션들에 적용가능하다.
[0005] 본 발명의 제1 양상에 따르면, 제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법이 제공된다. 방법은, 제1 센서 및 제2 센서를 사용하여 센서 데이터를 캡처하는 단계를 포함한다. 일부 실시예들에서, 디바이스는 제1 센서와 제2 센서 사이의 공간 관계를 모델링하기 위한 교정 프로파일을 유지한다. 일부 실시예들에서, 교정 프로파일은 병진(translation) 파라미터 및 회전 파라미터를 포함한다. 방법은 또한, 제1 시간에 교정 프로파일과 연관된 교정 레벨을 결정하는 단계를 포함할 수 있다. 방법은, 교정 레벨에 기반하여, 교정 프로세스를 수행할지 여부를 결정하는 단계를 더 포함할 수 있다. 방법은, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고 병진 파라미터 및 회전 파라미터 중 하나 또는 둘 모두를, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써, 제1 시간에 교정 프로세스를 수행하는 단계를 더 포함할 수 있다.
[0006] 일부 실시예들에서, 제1 시간에 교정 프로세스를 수행하는 단계는, 회전 파라미터만을 교정된 회전 파라미터로 대체하는 단계를 포함한다. 일부 실시예들에서, 제1 시간에 교정 프로세스를 수행하는 단계는, 교정된 병진 파라미터 및 교정된 회전 파라미터 둘 모두를 생성하는 단계, 및 병진 파라미터 및 회전 파라미터 둘 모두를, 교정된 병진 파라미터 및 교정된 회전 파라미터로 대체하는 단계를 포함한다. 일부 실시예들에서, 방법은, 제2 시간에 교정 프로파일과 연관된 제2 교정 레벨을 결정하는 단계, 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 단계, 및 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터를 생성함으로써, 그리고 병진 파라미터 및 회전 파라미터를, 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터로 대체함으로써, 제2 시간에 제2 교정 프로세스를 수행하는 단계를 더 포함한다. 일부 실시예들에서, 교정 레벨은 제1 교정 레벨이고, 교정 프로세스는 제1 교정 프로세스이며, 회전 파라미터는 제1 교정된 회전 파라미터이다.
[0007] 일부 실시예들에서, 센서 데이터는, 제1 센서를 사용하여 캡처된 하나 이상의 제1 이미지들, 및 제2 센서를 사용하여 캡처된 하나 이상의 제2 이미지들을 포함한다. 일부 실시예들에서, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두는, 센서 데이터를 사용하여 생성된다. 일부 실시예들에서, 교정 레벨은 센서 데이터에 기반하여 결정된다. 일부 실시예들에서, 방법은, 제1 센서 및 제2 센서와 별개인 부가 센서를 사용하여 부가 센서 데이터를 캡처하는 단계를 더 포함한다. 일부 실시예들에서, 교정 레벨은 부가 센서 데이터에 기반하여 결정된다. 일부 실시예들에서, 제1 교정 레벨에 기반하여, 제1 교정 프로세스를 수행하도록 결정하는 단계는, 제1 교정 레벨이 교정 임계치를 초과한다고 결정하는 단계를 포함하며, 그리고 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 단계는, 제2 교정 레벨이 교정 임계치 미만이라고 결정하는 단계를 포함한다.
[0008] 본 발명의 제2 양상에 따르면, 디바이스가 제공된다. 디바이스는, 센서 데이터를 캡처하도록 구성된 제1 센서 및 제2 센서를 포함할 수 있다. 디바이스는 또한, 제1 센서와 제2 센서 사이의 공간 관계를 모델링하는 교정 프로파일을 저장하도록 구성된 메모리 디바이스를 포함할 수 있고, 교정 프로파일은 병진 파라미터 및 회전 파라미터를 포함한다. 디바이스는, 제1 센서, 제2 센서 및 메모리 디바이스에 커플링된 프로세서를 더 포함할 수 있다. 일부 실시예들에서, 프로세서는, 제1 시간에 교정 프로파일과 연관된 교정 레벨을 결정하는 동작을 포함하는 동작들을 수행하도록 구성된다. 동작들은 또한, 교정 레벨에 기반하여, 교정 프로세스를 수행하도록 결정하는 동작을 포함할 수 있다. 동작들은, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고 병진 파라미터 및 회전 파라미터 중 하나 또는 둘 모두를, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써, 제1 시간에 교정 프로세스를 수행하는 동작을 더 포함할 수 있다.
[0009] 일부 실시예들에서, 제1 시간에 교정 프로세스를 수행하는 동작은, 회전 파라미터만을 교정된 회전 파라미터로 대체하는 동작을 포함한다. 일부 실시예들에서, 제1 시간에 교정 프로세스를 수행하는 동작은, 교정된 병진 파라미터 및 교정된 회전 파라미터 둘 모두를 생성하는 동작, 및 병진 파라미터 및 회전 파라미터 둘 모두를, 교정된 병진 파라미터 및 교정된 회전 파라미터로 대체하는 동작을 포함한다. 일부 실시예들에서, 동작들은, 제2 시간에 교정 프로파일과 연관된 제2 교정 레벨을 결정하는 동작, 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 동작, 및 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터를 생성함으로써, 그리고 병진 파라미터 및 회전 파라미터를, 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터로 대체함으로써, 제2 시간에 제2 교정 프로세스를 수행하는 동작을 더 포함한다. 일부 실시예들에서, 교정 레벨은 제1 교정 레벨이고, 교정 프로세스는 제1 교정 프로세스이며, 회전 파라미터는 제1 교정된 회전 파라미터이다.
[0010] 일부 실시예들에서, 센서 데이터는, 제1 센서를 사용하여 캡처된 하나 이상의 제1 이미지들, 및 제2 센서를 사용하여 캡처된 하나 이상의 제2 이미지들을 포함한다. 일부 실시예들에서, 교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두는, 센서 데이터를 사용하여 생성된다. 일부 실시예들에서, 교정 레벨은 센서 데이터에 기반하여 결정된다. 일부 실시예들에서, 디바이스는, 부가 센서 데이터를 캡처하도록 구성된 부가 센서를 더 포함한다. 일부 실시예들에서, 부가 센서는 제1 센서 및 제2 센서와 별개이다. 일부 실시예들에서, 교정 레벨은 부가 센서 데이터에 기반하여 결정된다. 일부 실시예들에서, 제1 교정 레벨에 기반하여, 제1 교정 프로세스를 수행하도록 결정하는 동작은, 제1 교정 레벨이 교정 임계치를 초과한다고 결정하는 동작을 포함하며, 그리고 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 동작은, 제2 교정 레벨이 교정 임계치 미만이라고 결정하는 동작을 포함한다.
[0011] 본 발명의 제3 양상에 따르면, 제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 비-일시적인 컴퓨터-판독가능 매체가 제공된다. 비-일시적인 컴퓨터 판독가능 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 동작들을 수행하게 하는 명령들을 포함할 수 있다. 동작들은 본 발명의 제1 양상에 따라 설명된 방법을 포함할 수 있다.
[0012] 본 발명의 제4 양상에 따르면, 증강 현실 디바이스를 교정하기 위한 방법이 제공된다. 방법은, 적어도 하나의 병진 파라미터 및 적어도 하나의 회전 파라미터를 포함하는 교정 프로파일에 액세스하는 단계를 포함할 수 있다. 방법은 또한, 증강 현실 디바이스의 제1 카메라를 사용하여, 제1 시야의 제1 카메라로부터의 하나 이상의 이미지들을 캡처하는 단계를 포함할 수 있다. 방법은, 증강 현실 디바이스의 제2 카메라를 사용하여, 제2 시야의 제2 카메라로부터의 하나 이상의 이미지들을 캡처하는 단계를 더 포함할 수 있다. 일부 실시예들에서, 제2 시야는 제1 시야와 적어도 부분적으로 오버랩된다. 방법은, 제1 카메라로부터의 하나 이상의 이미지들 중 적어도 하나를 제2 카메라로부터의 하나 이상의 이미지들 중 적어도 하나와 비교하는 단계를 더 포함할 수 있다. 방법은, 비교에 기반하여, 제2 카메라의 제2 포지션과 관련한 제1 카메라의 제1 포지션 사이의 변형량을 결정하는 단계를 더 포함할 수 있다. 방법은, 변형량이 변형 임계치를 초과하는지 여부를 결정하는 단계를 더 포함할 수 있다. 방법은, 변형량이 변형 임계치를 초과한다는 결정에 대한 응답으로: 제1 카메라로부터의 하나 이상의 이미지들 및 제2 카메라로부터의 하나 이상의 이미지들에 존재하는 복수의 매칭된 피처(feature)들을 식별하는 단계, 제1 카메라로부터의 하나 이상의 이미지들 및 제2 카메라로부터의 하나 이상의 이미지들을 복수의 빈(bin)들로 파티셔닝하는 단계, 복수의 빈들의 각각의 빈에 대해, 복수의 빈들의 각각의 빈 내에 위치된 복수의 매칭된 피처들의 수량을 결정하는 단계, 복수의 빈들의 각각의 빈에 대해, 수량이 피처 임계치를 초과한다고 결정하는 단계, 제1 교정된 회전 파라미터를 생성하기 위해, 제1 교정된 회전 파라미터의 함수인 제1 오차 방정식(error equation)을 최소화함으로써, 제1 교정 프로세스를 수행하는 단계; 및 교정 프로파일 내의 적어도 하나의 회전 파라미터를 제1 교정된 회전 파라미터로 대체하는 단계를 더 포함할 수 있다.
[0013] 일부 실시예들에서, 방법은, 변형량이 변형 임계치 미만인지 여부를 결정하는 단계, 및 변형량이 변형 임계치 미만이라는 결정에 대한 응답으로: 제1 카메라 및 제2 카메라를 포함하는 증강 현실 디바이스의 복수의 카메라들을 사용하여, 복수의 맵 지점들을 캡처하는 단계, 희소(sparse) 맵을 생성하는 단계 ―희소 맵은 제1 카메라 및 제2 카메라의 복수의 카메라 포즈 포지션들로부터 볼 때의 맵 지점들의 그룹을 포함함―, 희소 맵의 맴 지점들의 그룹을 정렬하는 단계, 희소 맵에 기반하여, 온라인 교정 트리거가 만족된다고 결정하는 단계, 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터를 생성하기 위해, 제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터의 함수인 제2 오차 방정식을 최소화함으로써, 제2 교정 프로세스를 수행하는 단계, 및 교정 프로파일 내의 적어도 하나의 회전 파라미터를 제2 교정된 회전 파라미터로 대체하고 교정 프로파일 내의 적어도 하나의 병진 파라미터를 제2 교정된 병진 파라미터로 대체하는 단계를 더 포함한다. 일부 실시예들에서, 변형량이 변형 임계치를 초과하는지 여부를 결정하는 단계는 제1 시간에 발생하고, 변형량이 변형 임계치 미만인지 여부를 결정하는 단계는 제2 시간에 발생한다. 일부 실시예들에서, 제1 시간이 제2 시간에 앞선다. 일부 실시예들에서, 제2 시간이 제1 시간에 앞선다. 일부 실시예들에서, 제1 시간은 제2 시간과 동시적이다. 일부 실시예들에서, 제1 시간은 제2 시간과 병렬적(concurrent)이다.
[0014] 본 발명의 제5 양상에 따르면, 병진 파라미터 및 회전 파라미터를 포함하는 교정 프로파일을 갖는 증강 현실 디바이스가 제공된다. 증강 현실 디바이스는 하나 이상의 제1 이미지들을 캡처하도록 구성된 제1 카메라를 포함할 수 있다. 증강 현실 디바이스는 또한, 하나 이상의 제2 이미지들을 캡처하도록 구성된 제2 카메라를 포함할 수 있다. 증강 현실 디바이스는 제1 카메라 및 제2 카메라에 커플링된 프로세서를 더 포함할 수 있다. 일부 실시예들에서, 프로세서는 동작들을 수행하도록 구성되고, 동작들은, 제2 카메라와 관련한 제1 카메라의 변형량에 기반하여, 증강 현실 디바이스가 제1 시간에 변형된다고 결정하는 동작, 및 증강 현실 디바이스가 제1 시간에 변형된다고 결정하는 동작에 대한 응답으로, 제1 교정된 회전 파라미터를 생성하기 위해 제1 교정 프로세스를 수행하는 동작, 및 교정 프로파일 내의 회전 파라미터를 제1 교정된 회전 파라미터로 대체하는 동작을 포함한다.
[0015] 종래 기법들보다 다수의 이득들이 본 발명을 통해 달성된다. 예컨대, 종래의 기법들은, 재교정을 위해 AR 디바이스를 공장에 반복적으로 반납할 것을 사용자에게 요구할 수 있다. 공장 교정은 정밀 기기들을 사용하여 디바이스에 대해 물리적으로 측정하는 것을 포함할 수 있으며, 이는 AR 디바이스의 사용자에 대해 시간-소모적이고 값비싸다. 대조적으로, 본 발명은, AR 디바이스가 동력을 공급받아 사용중인 동안 교정을 가능하게 하여서, 디바이스의 특정 사용에 기반하여 디바이스 상에 배치된 특정 스트레인에 응답하는 실시간 교정을 제공한다. 예컨대, AR 디바이스가 더 따뜻한 온도들에서 사용될 때, 열은 디바이스가 부분적으로 휘거나 또는 팽창하게 하여서, 현재 사용에 대해 임의의 공장 교정을 부정확하게 할 수 있다. 또한, 본 발명에 따른 교정이 캡처된 카메라 이미지들에 기반할 수 있기 때문에, 본 발명에 따른 교정은, AR 디바이스의 변형이 발생했다면, 캡처된 카메라 이미지들에 부분적으로 기반하여 생성되는 가상 이미지들의 더 나은 정렬을 제공함으로써, 공장 교정과 비교할 때 더 나은 전체 성능을 제공할 수 있다. 본원에서 제시된 교정 방법은 또한, AR 디바이스가 어떤 임계치를 넘어서 변형될 때 교정 프로파일에 대해 회전 정정들만이 이루어진다는 점에서 유리하다. 그러한 고변형 상황들 하에서, 병진 정정들은 매우 불규칙한 것으로 확인되며, AR 디바이스의 불량한 성능을 야기할 수 있다. 이에 따라서, 교정 방법은, AR 디바이스의 변형량에 기반하여 2 개의 상이한 프로세스 경로들 중 하나가 선택되는 "라우팅"-형 기능성을 제공한다. 본 개시내용의 다른 이득들은 당업자들에게 용이하게 자명할 것이다.
[0016] 도 1은 본원에서 설명된 실시예에 따른, 웨어러블 AR(augmented reality) 디바이스를 통해 본 AR 장면을 예시하는 도면이다.
[0017] 도 2는 본 발명의 일부 실시예들에 따른, 웨어러블 AR 디바이스를 예시하는 블록 다이어그램이다.
[0018] 도 3은 본 발명의 일부 실시예들에 따른 AR의 교정 모델을 예시한다.
[0019] 도 4a, 도 4b 및 도 4c는 본 발명의 일부 실시예들에 따른, 교정 프로파일과 연관된 교정 레벨을 결정하기 위한 다양한 단계들을 예시한다.
[0020] 도 5a, 도 5b 및 도 5c는 본 발명의 일부 실시예들에 따른, 교정 프로파일과 연관된 교정 레벨을 결정하기 위한 다양한 단계들을 예시한다.
[0021] 도 6은 본 발명의 일부 실시예들에 따른, 2 개의 이미지들에 기반한 변형량의 예시적인 계산을 예시한다.
[0022] 도 7은 본 발명의 일부 실시예들에 따른, 2 개의 이미지들에 기반한 변형량의 예시적인 계산을 예시한다.
[0023] 도 8은 본 발명의 일부 실시예들에 따른, AR 디바이스를 교정하기 위한 방법을 예시한다.
[0024] 도 9는 본 발명의 일부 실시예들에 따른, AR 디바이스를 교정하기 위한 방법을 예시한다.
[0025] 도 10은 본 발명의 일부 실시예들에 따른, AR 디바이스를 교정하기 위한 방법을 예시한다.
[0026] 도 11은 본 발명의 일부 실시예들에 따른, AR 디바이스를 교정하기 위한 방법을 예시한다.
[0027] 도 12는 본 발명의 일부 실시예들에 따른, 페어링된 이미지들 사이의 매칭된 피처들을 검출하기 위한 다양한 단계들을 예시한다.
[0028] 도 13은 본 발명의 일부 실시예들에 따른, 페어링된 이미지들을 빈들로 파티셔닝하고 빈들 각각에 위치된 매칭된 피처들의 수량을 결정하기 위한 다양한 단계들을 예시한다.
[0029] 도 14a 및 도 14b는 본 발명의 일부 실시예들에 따른, 이미지들을 3-차원 공간에서의 복수의 빈들로 파티셔닝하기 위한 다양한 단계들을 예시한다.
[0030] 도 15는 본 발명의 일부 실시예들에 따른, 번들 조정을 수행하기 위한 다양한 단계들을 예시한다.
[0031] 도 16은 본 발명의 일부 실시예들에 따른 단순화된 컴퓨터 시스템을 예시한다.
[0032] 광학 디바이스들, 특히, 머리-장착 디스플레이들을 갖는 광학 디바이스들이 공장에 있는 동안 매우 복잡한 기기들을 이용하여 교정될 수 있지만, 사용 동안 그러한 디바이스들은 열, 사용 및 다양한 형태들의 마모(wear and tear)로 인해 빨리 변형되어서, 공장 교정이 부정확해지게 될 수 있다. 하나의 가능한 솔루션은, 사용자가 재교정을 위해 광학 디바이스를 공장에 반복적으로 반납하는 것이다. 그러한 솔루션의 명백한 비용들을 회피하기 위해, 본원에서 설명된 실시예들은 디바이스가 사용중인 동안 정확하고 견고한 런-타임 교정을 가능하게 하여서, 공장 재교정에 대한 필요를 제거한다. 실시예들은, 2 개의 타입들의 교정 프로세스들 중 어느 교정 프로세스를 수행할지를 결정하기 위해 디바이스의 현재 교정 레벨을 고려해 본다. 디바이스가 교정을 상당히 벗어난 상태일 때, 회전 정정들로 제한되는 제1 교정 프로세스가 수행되고, 약간의 잘못된 교정 하에서는, 회전 및 병진 정정들을 포함하는 제2 교정이 수행된다. 본원에서 설명된 실시예들은 광학 디바이스들에 대해서 유용할 뿐만 아니라, 병진 컴포넌트 및 회전 컴포넌트에 의해 모델링되는 공간 관계를 갖는 2 개의 센서들을 가지는 임의의 디바이스에 대해서도 유용하다.
[0033] 도 1은 본원에서 설명된 실시예에 따른, 웨어러블 AR(augmented reality) 디바이스를 통해 본 AR 장면을 예시하는 도면이다. 도 1을 참조하면, 증강 현실 장면(100)이 묘사되며, 여기서, AR 기술의 사용자는 배경에 있는 사람들, 나무들, 빌딩들, 및 콘크리트 플랫폼(120)을 특징으로 하는 실세계 공원-형 장소(106)를 본다. 이들 아이템들에 부가하여, AR 기술의 사용자는 또한, 자신이 실세계 플랫폼(120) 상에 서있는 로봇 동상(110), 및 호박벌의 의인화인 것 같은 날고 있는 만화-형 아바타 캐릭터(102)를 "본다"는 것을 지각하더라도, 이들 엘리먼트들(캐릭터(102) 및 동상(110))은 실세계에서는 존재하지 않는다. 인간의 시각적 지각 및 신경계의 극도의 복잡성으로 인해, 다른 가상 또는 실세계 이미저리 엘리먼트들 사이에서 가상 이미지 엘리먼트들의 편안한, 자연스러운 느낌의 풍부한 프리젠테이션을 가능하게 하는 VR(virtual reality) 또는 AR 기술을 생성하는 것은 난제이다.
[0034] 도 2는 본 발명의 일부 실시예들에 따른, 웨어러블 AR 디바이스(200)의 개략적인 도면을 예시한다. AR 디바이스(200)는 좌측 광학 스택의 일부로서 좌측 접안렌즈(202A) 및 우측 광학 스택의 일부로서 우측 접안렌즈(202B)를 포함할 수 있다. 일부 실시예들에서, AR 디바이스(200)는, 좌측 접안렌즈(202A)에 직접적으로 또는 가까이 부착된 좌측 전방 세계 센서(206A), 우측 접안렌즈(202B)에 직접적으로 또는 가까이 부착된 우측 전방 세계 센서(206B), 좌측 접안렌즈(202A)에 직접적으로 또는 가까이 부착된 좌측방 세계 센서(206C), 및 우측 접안렌즈(202B)에 직접적으로 또는 가까이 부착된 우측방 세계 센서(206D)를 포함하는 하나 이상의 센서들을 포함(그러나, 이에 제한되지는 않음)한다. 센서들(206) 중 하나 이상의 센서들의 포지션들은 예시된 실시예로부터 변할 수 있으며, 다양한 후방, 전방, 상향, 하향, 내향 및/또는 외향 구성들을 포함할 수 있다. 센서들(206A, 206B, 206C, 206D)은, 각각, 센서 데이터(220A, 220B, 220C, 220D)를 생성, 검출 및/또는 캡처하도록 구성될 수 있고, 이 센서 데이터(220A, 220B, 220C, 220D)는, AR 디바이스(200)를 둘러싸는 환경의 물리적 특성, 이를테면, 모션, 광, 온도, 사운드, 습도, 진동, 압력 등에 대응하는 전자 데이터일 수 있다.
[0035] 일부 실시예들에서, 센서들(206) 중 하나 이상은 카메라들일 수 있고, 센서 데이터(220) 중 하나 이상은 카메라 이미지들일 수 있다. 예컨대, 센서 데이터(220)는 단일 이미지, 한 쌍의 이미지들, 이미지들의 스트림을 포함하는 비디오, 페어링된 이미지들의 스트림을 포함하는 비디오 등을 포함할 수 있다. 일부 실시예들에서, 센서들(206) 중 하나 이상은 깊이 센서들일 수 있고, 센서 데이터(220) 중 하나 이상은 깊이 이미지들/맵들일 수 있다. 예컨대, 센서들(206) 중 하나는, 타겟 오브젝트들을 조명하기 위한 광 펄스들을 송신하도록, 그리고 수신된 광학 신호들에 기반하여 타겟 오브젝트들까지의 거리들을 결정하도록 구성된 비행시간(time-of-flight) 이미징 시스템을 포함할 수 있다. 그러한 시스템의 일 예는, "REAL TIME CALIBRATION FOR TIME-OF-FLIGHT DEPTH MEASUREMENT"란 명칭으로 2017년 9월 29일자로 출원된 미국 특허 출원 일련 번호 15/721,640을 참조하여 설명되며, 이로써 그 전체 개시내용은 본원에 완전히 제시된 것처럼 모든 목적들을 위해 인용에 의해 포함된다. 센서들(206)의 부가적인 예들은 임의의 타입의 모션 센서, 깊이 센서, 광 센서, 기계적 센서, 온도 센서, 사운드 센서, 습도 센서, 진동 센서, 압력 센서 등을 포함할 수 있다.
[0036] AR 디바이스(200)는 센서들(206)과 별개인 부가 센서(207)를 포함할 수 있다. 부가 센서(207)는 부가 센서 데이터(221)를 생성, 검출 및/또는 캡처하도록 구성될 수 있다. 부가 센서(207)는 센서들(206)을 참조하여 위에서 설명된 임의의 타입의 센서일 수 있고, 부가 센서 데이터(221)는 센서 데이터(220)를 참조하여 위에서 설명된 임의의 타입의 센서 데이터일 수 있다. 일부 실시예들에서, 부가 센서 데이터(221)는, 아래에서 더욱 상세히 설명되는 바와 같이 센서들(206)과 연관된(즉, 교정 프로파일(254)과 연관된) 교정 레벨을 결정하기 위해 사용된다. 일 예에서, 부가 센서(207)는 AR 디바이스(200)에 대한 스트레인을 결정하기 위한, AR 디바이스(200)의 일부분 위에 포지셔닝된(예컨대, 센서들(206) 중 2 개의 센서들 사이에서 연장되는) 스트레인 게이지이다. 다른 예에서, 부가 센서(207)는 AR 디바이스(200)의 프레임의 일부분의 굽힘, 각도, 비틀림 등을 측정하기 위한, AR 디바이스(200)의 프레임을 따라(예컨대, 접안렌즈들(202) 사이의 중심점에) 포지셔닝된 기계적 센서이다. 부가 센서(207)의 추가적인 예들은, "SYSTEMS AND METHODS FOR DISPLAY BINOCULAR DEFORMATION COMPENSATION"란 명칭으로 2018년 7월 13일자로 출원된 미국 가 특허 출원 번호 62/698,015에서 제공되며, 이로써 그 전체 개시내용은 본원에 완전히 제시된 것처럼 모든 목적들을 위해 인용에 의해 포함된다.
[0037] 일부 실시예들에서, AR 디바이스(200)는 하나 이상의 이미지 투사 디바이스들, 이를테면, 좌측 접안렌즈(202A)에 광학적으로 링크된 좌측 투사기(214A) 및 우측 접안렌즈(202B)에 광학적으로 링크된 우측 투사기(214B)를 포함한다. 투사기들(214)은, 사용자가 가상 콘텐츠를 특정 거리에 포지셔닝된 것으로서 지각하는 방식으로, 가상 콘텐츠와 연관된 광을 접안렌즈들(202)의 하나 이상의 도파관들 상에 주사할 수 있다. 접안렌즈들(202A, 202B)은, 각각, 투사기들(214A, 214B)로부터 수신된 광을 지향 및 아웃커플링하도록 구성된 투명 또는 반-투명 도파관들을 포함할 수 있다. 동작 동안, 프로세싱 모듈(250)은 좌측 투사기(214A)로 하여금 좌측 가상 이미지 광(222A)을 좌측 접안렌즈(202A) 상에 출력하게 할 수 있고, 우측 투사기(214B)로 하여금 우측 가상 이미지 광(222B)을 우측 접안렌즈(202B) 상에 출력하게 할 수 있다. 일부 실시예들에서, 접안렌즈들(202) 각각은 상이한 색들 및/또는 상이한 깊이 평면들에 대응하는 복수의 도파관들을 포함할 수 있다.
[0038] AR 디바이스(200)의 컴포넌트들 중 일부 또는 전부는, 투사된 이미지들이 사용자에 의해 보여질 수 있도록 머리 장착될 수 있다. 일 특정 구현에서, 도 2에서 도시된 AR 디바이스(200)의 컴포넌트들 전부는 사용자에 의해 착용가능한 단일 디바이스(예컨대, 단일 헤드셋) 상에 장착된다. 다른 구현에서, 프로세싱 모듈(250)의 하나 이상의 컴포넌트들은 하나 이상의 유선 및/또는 무선 연결들에 의해 AR 디바이스(200)의 다른 컴포넌트들과 물리적으로 별개이고 통신가능하게 커플링된다. 예컨대, 프로세싱 모듈(250)은 AR 디바이스(200)의 머리 장착 부분 상의 로컬 모듈, 및 로컬 모듈과 물리적으로 별개이고 통신가능하게 링크된 원격 모듈을 포함할 수 있다. 원격 모듈은 다양한 구성들로, 이를테면, 프레임에 고정식으로 부착되거나, 사용자에 의해 착용되는 헬멧 또는 모자에 고정식으로 부착되거나, 헤드폰들에 임베딩되거나, 또는 (예컨대, 백팩-스타일 구성, 벨트-커플링 스타일 구성 등으로) 다른 방식으로 사용자에 제거가능하게 부착되게 장착될 수 있다.
[0039] 프로세싱 모듈(250)은 프로세서(252) 및 연관된 디지털 메모리, 이를테면, 비-휘발성 메모리(예컨대, 플래시 메모리)를 포함할 수 있으며, 이들 둘 모두는 데이터, 이를테면, 센서 데이터(220)의 프로세싱, 캐싱 및 저장을 보조하기 위해 활용될 수 있다. 예컨대, 프로세싱 모듈(250)은 좌측 전방 카메라(즉, 센서(206A))로부터 좌측 전방 이미지(들)(즉, 센서 데이터(220A)), 우측 전방 세계 카메라(즉, 센서(206B))로부터 우측 전방 이미지(들)(즉, 센서 데이터(220B)), 좌측방 세계 카메라(즉, 센서(206C))로부터 좌측 이미지(들)(즉, 센서 데이터(220C)) 및 우측방 세계 카메라(즉, 센서(206D))로부터 우측 이미지(들)(즉, 센서 데이터(220D))를 수신할 수 있다. 센서 데이터(220)는, AR 디바이스(200)가 동력을 공급받는 동안 주기적으로 생성되어 프로세싱 모듈(250)에 전송될 수 있거나, 또는 프로세싱 모듈(250)에 의해 카메라들 중 하나 이상에 전송된 명령에 대한 응답으로 생성될 수 있다. 다른 예로서, 프로세싱 모듈(250)은 주변 광 센서(즉, 센서(206))로부터 주변 광 정보(즉, 센서 데이터(220))를 수신할 수 있다.
[0040] 카메라들로서 구현될 때, 센서들(206A, 206B)은, 각각, 사용자의 좌안 및 우안의 시야와 실질적으로 오버랩되는 이미지들을 캡처하도록 포지셔닝될 수 있다. 이에 따라서, 센서들(206)의 배치는 사용자의 눈들에 가까이 있을 수 있지만, 사용자의 시야를 가릴만큼 가까이 있지는 않는다. 대안적으로 또는 부가적으로, 센서들(206A, 206B)은, 각각, 가상 이미지 광(222A, 222B)의 인커플링 위치들과 실질적으로 정렬되도록 포지셔닝될 수 있다. 카메라들로서 구현될 때, 센서들(206C, 206D)은, 예컨대 사용자의 주변시(peripheral vision) 안으로 또는 사용자의 주변시 밖으로, 사용자의 측면에 대한 이미지들을 캡처하도록 포지셔닝될 수 있다. 센서들(206C, 206D)을 사용하여 캡처된 이미지들은 센서들(206A, 206B)을 사용하여 캡처된 이미지들과 반드시 오버랩될 필요는 없다.
[0041] AR 디바이스(200)의 동작 동안, 프로세싱 모듈(250)은, 센서 데이터(220)가 정확하게 분석될 수 있도록, 센서들(206) 사이의 간격 및 배향 차이들을 설명하기 위해 교정 프로파일(254)로부터의 하나 이상의 파라미터들을 사용할 수 있다. 교정 프로파일(254)은 부가적으로, 사용자가 가상 이미지 엘리먼트들을 편안하게 그리고 적절한 정렬로 볼 수 있도록, 접안렌즈들(202) 사이의 간격 및 배향 차이들을 설명하기 위해 가상 이미지 광(222)을 생성할 때 사용될 수 있다. 이를 달성하기 위해, 프로세서(252)는, 사용되고 있는 파라미터들이, 이용가능한 가장 최근에 업데이트되고 정확한 파라미터들을 반영함을 보장하기 위해 교정 프로파일(254)에 반복적으로 액세스할 수 있다. 일부 사례들에서, 프로세서(252)는 교정 프로세스가 수행된 직후에 교정 프로파일(254)로부터 파라미터들을 검색할 수 있다. 일 특정 구현에서, AR 디바이스(200)에 동력을 공급할 때 프로세서(252)가 마지막으로 사용된 파라미터들을 검색할 수 있도록, 교정 프로파일(254)은 비-휘발성 메모리에 저장된다. 대안적으로, 예컨대 온보드 전자 컴포넌트들을 실행시킴으로써 유발되는, 디바이스의 열 팽창에 기인하는 상당한 변형을 AR 디바이스(200)가 겪지 않을 수 있을 때, AR 디바이스(200)의 스타트업 시에, 저장된 공장 교정에 액세스하는 것이 바람직할 수 있다.
[0042] 일부 실시예들에서, 센서들(206) 중 제1 센서와 제2 센서(예컨대, 센서들(206A, 206B)) 사이의 공간 관계를 모델링하기 위해 교정 프로파일(254)은 프로세서(252)에 의해 유지된다. 본 발명의 일부 실시예들에 따르면, 교정 프로파일(254)은 제1 센서와 제2 센서 사이의 상대 거리에 대응하는 병진 파라미터(T), 및 제1 센서와 제2 센서 사이의 상대 각도 배향에 대응하는 회전 파라미터(R)를 포함한다. 병진 파라미터(T) 및 회전 파라미터(R) 각각은 넓은 범위의 데이터 타입들을 띨 수 있다. 예컨대, 병진 파라미터(T)는 단일 수량(예컨대, 0.1 미터), 1-차원 행렬(예컨대, [0.1; 0; 0] 미터), 다-차원 행렬(예컨대, [[0.1; 0; 0][0; 0; 0][0; 0; 0]] 미터), 어레이, 벡터, 또는 단일 또는 다수의 수량들의 임의의 다른 가능한 표현일 수 있다. 유사하게, 회전 파라미터(R)는 단일 수량(예컨대, 0.5 도), 1-차원 행렬(예컨대, [0.5; 0; 0] 도), 다-차원 행렬(예컨대, [[0.5; 0; 0][0; 0; 0][0; 0; 0]] 도), 어레이, 벡터, 또는 단일 또는 다수의 수량들의 임의의 다른 가능한 표현일 수 있다.
[0043] 이상적인 조건들 하에서, 병진 파라미터(T) 및 회전 파라미터(R)는 AR 디바이스(200)의 제조 직후에 공장에서 교정되고, 디바이스의 수명 전체에 걸쳐 제1 센서와 제2 센서 사이의 공간 관계의 정확한 표시들을 유지한다. 실제 조건들 하에서, AR 디바이스(200)는 열, 사용 및 다양한 형태들의 마모로 인해 변형되어서, 병진 파라미터(T) 및 회전 파라미터(R)의 공장 교정된 값들이 부정확해지게 된다. 하나의 가능한 솔루션은, 사용자가 재교정을 위해 AR 디바이스(200)를 공장에 반복적으로 반납하는 것이다. 대안적으로, AR 디바이스(200)가 동력을 공급받고 사용자에 의해 사용중인 동안, 병진 파라미터(T) 및 회전 파라미터(R)를 교정하기 위해 런-타임 교정 방법이 이용될 수 있다.
[0044] 일부 사례들에서, 교정 프로파일(254)과 연관된 교정 레벨이 주기적으로 결정된다. 교정 레벨에 기반하여, 프로세싱 모듈(250)은 여러 타입들의 교정들 중 하나가 발생하게 할 수 있다. 예컨대, 교정 레벨이 제1 교정 임계치 미만일 때, 프로세싱 모듈(250)은 제1 교정 프로세스가 수행되게 할 수 있고, 교정 레벨이 제1 교정 임계치를 초과할 때, 프로세싱 모듈(250)은 제2 교정 프로세스가 수행되게 할 수 있다. 일부 사례들에서, 교정 레벨이 제1 교정 임계치 및 제2 교정 임계치를 초과할 때, 교정 프로세스는 수행되지 않을 수 있고, 이는 교정 프로파일(254)이 정확함을 표시한다. 본원에서 사용된 바와 같이, "교정 레벨"이란 용어는, 제1 센서와 제2 센서(예컨대, 센서들(206A, 206B)) 사이의 실제 공간 관계를 모델링할 때 교정 프로파일(254)의 정확도 레벨에 대응할 수 있다. 이에 따라서, 더 높은 교정 레벨들은 실제 공간 관계의 더욱 정확한 모델링에 대응할 수 있고, 더 낮은 교정 레벨은 실제 공간 관계의 덜 정확한 모델링에 대응할 수 있다. AR 디바이스(200)의 교정과 관련하여 교정 레벨을 모니터링하는 프로세스는 아래에서 더욱 상세히 설명된다.
[0045] 도 3은 본 발명의 일부 실시예들에 따른, AR 디바이스(200)의 교정 모델(300)을 예시한다. 교정 모델(300)에서, 센서들(206) 각각은 핀홀 카메라 모델을 사용하여 단일 지점을 점유하는 것으로서 표현될 수 있으며, 센서(206C)는 센서(206A)로부터 알려진 병진 및 회전(변환 [TL|RL]에 의해 모델링됨)만큼 오프셋되고, 센서(206D)는 센서(206B)로부터 알려진 병진 및 회전(변환 [TR|RR]에 의해 모델링됨)만큼 오프셋된다. 센서들(206A, 206B) 사이의 중심점(302)은 세계 원점에 대하여 환경에서 AR 디바이스(200)의 포지션을 추적하기 위해 사용되며, 또한, 병진 및 회전 조정들을 위한 기준선으로서 사용된다. 일부 실시예들에서, 센서들(206A, 206B) 각각과 중심점(302) 사이의 상대 거리는 병진 파라미터(T)와 동일할 수 있고, 여기서, 병진 파라미터(T)는 3-차원(3D; three-dimensional) 벡터에 대응하는 3×1 행렬(예컨대, [0.1 0.2 0.1] 미터)을 표현한다. 일부 실시예들에서, 센서들(206A, 206B) 각각과 중심점(302) 사이의 상대 각도 배향은 회전 파라미터(R)와 동일할 수 있고, 여기서, 회전 파라미터(R)는 3×3 행렬(일부 실시예들에서, 회전 벡터로 지칭됨)을 표현한다. 이에 따라서, 센서(206B)와 중심점(302) 사이의 변환은 변환 [T|R]에 의해 모델링될 수 있고, 센서(206A)와 중심점(302) 사이의 변환은 변환 [T|R]-1에 의해 모델링될 수 있다.
[0046] 도 4a, 도 4b 및 도 4c는 본 발명의 일부 실시예들에 따른, 교정 프로파일(254)과 연관된 교정 레벨을 결정하기 위한 다양한 단계들을 예시한다. 일부 실시예들에서, 교정 프로파일(254)과 연관된 교정 레벨을 결정하는 것은, 우측 전방 세계 센서(206B)와 관련한 좌측 전방 세계 센서(206A)의 포지션 및/또는 배향에 영향을 주는, AR 디바이스(200)의 변형량(D)을 결정하는 것을 포함한다. 변형량(D)은 교정 레벨로서 사용될 수 있고, 본원에서 설명된 교정 레벨에 반비례할 수 있다. 예컨대, 변형량(D)이 변형 임계치를 초과하는지 여부를 결정하는 것은, 교정 레벨이 교정 임계치 미만인지 여부를 결정하는 것과 마찬가지일 수 있다. 유사하게, 변형량(D)이 변형 임계치 미만인지 여부를 결정하는 것은, 교정 레벨이 교정 임계치를 초과하는지 여부를 결정하는 것과 마찬가지일 수 있다.
[0047] 도 4a, 도 4b 및 도 4c를 참조하여 설명된 단계들은 프레임 단위로 수행될 수 있거나 또는 매 N-번째 프레임마다 수행될 수 있다. 단계들은 등극 기하학적 구조(epipolar geometry)를 사용할 수 있으며, 이는 한 쌍의 대응하는 "피처들" 또는 "관심 지점들"이 센서들(206A, 206B) 각각에 의해 관찰가능할 것을 요구할 수 있다. 변형량(D)은 도 8, 도 9, 도 10 및 도 11을 참조하여 설명된 방법들(800, 900, 1000, 1100)의 수행 전에 또는 수행 동안 결정될 수 있다.
[0048] 도 4a를 참조하면, 시간(t1)에서 센서(206A)에 의해 캡처된 좌측 이미지(402)가 시각(t1)에서 센서(206B)에 의해 캡처된 우측 이미지(404)와 비교되어, (예컨대, 하나 이상의 피처 매칭 기법들을 사용하여) 이미지들 둘 모두에서 나타나는 적어도 하나의 피처가 그 전체에서 또는 그 일부분들에서 식별될 수 있다. 이미지들(402, 404) 둘 모두가 피처(420)(오각별)를 포함한다고 결정한 후에, 등극선(422)이 좌측 이미지(402)에 기반하여 생성되어 우측 이미지(404) 상에 투사된다. 등극선(422)은 좌측 이미지(402)에 나타나는 것으로서 피처(420)의 수직/수평 포지셔닝 및/또는 배향에 기반하여 생성될 수 있고, 교정 프로파일(254)의 가장 최근에 업데이트된 버전을 사용하여 우측 이미지(404) 상에 투사될 수 있다. 등극선(422)은, 센서들(206A, 206B)이 완벽하게 정렬되면 센서(206B)의 관점으로부터 피처(420)가 놓일 것으로 예상되는 선을 표현한다. 등극선(422)으로부터 피처(420)의 포지션에서의 편차는 센서들(206A, 206B) 사이의 교정 오차를 표시하고, 편차의 크기는 다소의 오차에 대응한다.
[0049] 일부 실시예들에서, 피처(420)의 수직/수평 포지셔닝 및/또는 배향을 결정하는 것을 가능하게 하기 위해 이미지들(402, 404) 각각에서의 피처(420) 내에서 제1 지점(405) 및 제2 지점(407)이 식별된다. 도 4a에서 도시된 예에서, 좌측 이미지(402)가 분석되어, 피처(420)의 좌측 상단 지점을 따라 제1 지점(405)이 식별되고 피처(420)의 우측 상단 지점을 따라 제2 지점(407)이 식별된다. 다음으로, 제1 지점(405)과 제2 지점(407) 사이의 교차선이 좌측 이미지(402)에 형성되고, 등극선(422)을 우측 이미지(404) 상에 투사하기 위해 교정 프로파일(254)을 사용하여 좌측 이미지(402)로부터 우측 이미지(404)로 교차선이 변환된다. 일단 등극선(422)이 우측 이미지(404) 상에 투사되면, 우측 이미지(404) 내의 제1 지점(405) 및 제2 지점(407)이 등극선(422)과 비교된다. 우측 이미지(404) 내의 피처(420)(즉, 지점들(405 및 407))를 등극선(422)과 비교한 후에, 피처(420)와 등극선(422) 사이의 병진 오프셋 및 배향 오프셋에 기반하여 변형량(D)(즉, 교정 레벨)이 계산될 수 있다. 도 4a에서 예시된 예의 피처(420)가 등극선(422)과 제대로 정렬되기 때문에, 변형량(D)은 낮은 것으로(예컨대, 0과 동일한 것으로) 결정된다. 더 높은 정도의 정확도로 변형량(D)을 결정하기 위해 부가적인 피처들이 분석될 수 있다. 일부 실시예들에서, 변형량(D)은 픽셀로 표현되고, 일부 실시예들에서, 피처(420)와 등극선(422)을 분리하는 픽셀 수와 동일할 수 있다. 일부 실시예들에서, 변형량(D)은 재투사 오차로 지칭된다.
[0050] 도 4b를 참조하면, 시간(t2)에서 센서(206A)에 의해 캡처된 좌측 이미지(406)가 시각(t2)에서 센서(206B)에 의해 캡처된 우측 이미지(408)와 비교되어, 이미지들 둘 모두에서 나타나는 피처(420)가 식별될 수 있다. 이미지들(406, 408)이 분석되어, 이미지들(406, 408) 각각에서의 피처(420) 내에서 지점들(405, 407)이 식별된다. 다음으로, 지점들(405, 407) 사이의 교차선이 좌측 이미지(406)에 형성되고, 등극선(422)을 우측 이미지(408) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 좌측 이미지(406)로부터 우측 이미지(408)로 교차선이 변환된다. 그런 다음, 우측 이미지(408) 내의 지점들(405, 407)이 등극선(422)과 비교되어, 변형량(D)이 결정된다. 피처(420)가 등극선(422)과 정렬되지 않기 때문에(병진 오프셋 및 배향 오프셋은 지점들(405 및 407)과 등극선(422) 사이의 오정렬에 의해 도시된 바와 같이 상당함), 변형량(D)은 도 4a에서 도시된 예보다 더 높은 것으로(예컨대, 26.3과 동일한 것으로) 결정된다.
[0051] 도 4c를 참조하면, 시간(t3)에서 센서(206A)에 의해 캡처된 좌측 이미지(410)가 시각(t3)에서 센서(206B)에 의해 캡처된 우측 이미지(412)와 비교되어, 이미지들 둘 모두에서 나타나는 피처(420)가 식별될 수 있다. 이미지들(410, 412)이 분석되어, 이미지들(410, 412) 각각에서의 피처(420) 내에서 지점들(405, 407)이 식별된다. 다음으로, 지점들(405, 407) 사이의 교차선이 좌측 이미지(410)에 형성되고, 등극선(422)을 우측 이미지(412) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 좌측 이미지(410)로부터 우측 이미지(412)로 교차선이 변환된다. 그런 다음, 우측 이미지(412) 내의 지점들(405, 407)이 등극선(422)과 비교되어, 변형량(D)이 결정된다. 피처(420)가 등극선(422)에 대해 상당히 오프셋되기 때문에(병진 오프셋 및 배향 오프셋은 지점들(405 및 407)과 등극선(422) 사이의 오정렬에 의해 도시된 바와 같이 상당함), 변형량(D)은 도 4a 및 도 4b에서 도시된 예들보다 더 높은 것으로(예컨대, 84.1과 동일한 것으로) 결정된다.
[0052] 도 5a, 도 5b 및 도 5c는 본 발명의 일부 실시예들에 따른, 교정 프로파일(254)과 연관된 교정 레벨을 결정하기 위한 다양한 단계들을 예시한다. 도 5a, 도 5b 및 도 5c에서 예시된 예들은, 각각, 도 4a, 도 4b 및 도 4c에서 예시된 예들에 대응하고, 동일한 변형량(D)(즉, 교정 레벨)을 계산하기 위해 우측 이미지를 좌측 이미지 상에 투사하는 대안적인 접근법을 증명한다. 도 5a, 도 5b 및 도 5c를 참조하여 설명된 단계들은 프레임 단위로 수행될 수 있거나 또는 매 N-번째 프레임마다 수행될 수 있다.
[0053] 도 5a를 참조하면, 시간(t1)에서 센서(206A)에 의해 캡처된 좌측 이미지(502)가 시각(t1)에서 센서(206B)에 의해 캡처된 우측 이미지(504)와 비교되어, 이미지들 둘 모두에서 나타나는 피처(520)가 식별될 수 있다. 이미지들(502, 504)이 분석되어, 이미지들(502, 504) 각각에서의 피처(520) 내에서 지점들(505, 507)이 식별된다. 다음으로, 지점들(505, 507) 사이의 교차선이 우측 이미지(504)에 형성되고, 등극선(522)을 좌측 이미지(502) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 우측 이미지(504)로부터 좌측 이미지(502)로 교차선이 변환된다. 그런 다음, 좌측 이미지(502) 내의 지점들(505, 507)이 등극선(522)과 비교되어, 변형량(D)이 결정된다. 도 5a에서 예시된 예의 피처(520)가 등극선(522)과 제대로 정렬되기 때문에, 변형량(D)은 낮은 것으로(예컨대, 0과 동일한 것으로) 결정된다.
[0054] 도 5b를 참조하면, 시간(t2)에서 센서(206A)에 의해 캡처된 좌측 이미지(506)가 시각(t2)에서 센서(206B)에 의해 캡처된 우측 이미지(508)와 비교되어, 이미지들 둘 모두에서 나타나는 피처(520)가 식별될 수 있다. 이미지들(506, 508)이 분석되어, 이미지들(506, 508) 각각에서의 피처(520) 내에서 지점들(505, 507)이 식별된다. 다음으로, 지점들(505, 507) 사이의 교차선이 우측 이미지(508)에 형성되고, 등극선(522)을 좌측 이미지(506) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 우측 이미지(508)로부터 좌측 이미지(506)로 교차선이 변환된다. 그런 다음, 좌측 이미지(506) 내의 지점들(505, 507)이 등극선(522)과 비교되어, 변형량(D)이 결정된다. 피처(520)가 등극선(522)과 정렬되지 않기 때문에(병진 오프셋 및 배향 오프셋은 지점들(505 및 507)과 등극선(522) 사이의 오정렬에 의해 도시된 바와 같이 상당함), 변형량(D)은 도 5a에서 도시된 예보다 더 높은 것으로(예컨대, 26.3과 동일한 것으로) 결정된다.
[0055] 도 5c를 참조하면, 시간(t3)에서 센서(206A)에 의해 캡처된 좌측 이미지(510)가 시각(t3)에서 센서(206B)에 의해 캡처된 우측 이미지(512)와 비교되어, 이미지들 둘 모두에서 나타나는 피처(520)가 식별될 수 있다. 이미지들(510, 512)이 분석되어, 이미지들(510, 512) 각각에서의 피처(520) 내에서 지점들(505, 507)이 식별된다. 다음으로, 지점들(505, 507) 사이의 교차선이 우측 이미지(512)에 형성되고, 등극선(522)을 좌측 이미지(510) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 우측 이미지(512)로부터 좌측 이미지(510)로 교차선이 변환된다. 그런 다음, 좌측 이미지(510) 내의 지점들(505, 507)이 등극선(522)과 비교되어, 변형량(D)이 결정된다. 피처(520)가 등극선(522)에 대해 상당히 오프셋되기 때문에(병진 오프셋 및 배향 오프셋은 지점들(505 및 507)과 등극선(522) 사이의 오정렬에 의해 도시된 바와 같이 상당함), 변형량(D)은 도 5a 및 도 5b에서 도시된 예들보다 더 높은 것으로(예컨대, 84.1과 동일한 것으로) 결정된다.
[0056] 도 6은 본 발명의 일부 실시예들에 따른, 이미지들 둘 모두에서 나타나는 공통 피처를 갖는 2 개의 이미지들에 기반한 변형량(D)(즉, 교정 레벨)의 예시적인 계산을 예시한다. 먼저, 지점들(605, 607)을 갖는 피처(620)가 제1 이미지(602) 및 제2 이미지(도시되지 않음) 둘 모두에서 식별된다. 제1 이미지(602)는 다른 가능성들 중에서 좌측 이미지 또는 우측 이미지를 표현할 수 있다. 지점들(605, 607) 사이의 교차선이 제2 이미지에 형성되고, (도 4a, 도 4b, 도 4c, 도 5a, 도 5b 및 도 5c를 참조하여 도시되는 바와 같이) 등극선(622)을 제1 이미지(602) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 제2 이미지로부터 제1 이미지(602)로 변환된다. 그런 다음, 제1 이미지(602) 내의 지점들(605, 607)이 등극선(622)과 비교되어, 변형량(D)이 결정된다.
[0057] 일부 실시예들에서, 제1 오프셋(650)이 지점(605)과 등극선(622) 사이의 수직 거리로서 계산되고, 그리고/또는 제2 오프셋(652)이 지점(607)과 등극선(622) 사이의 수직 거리로서 계산된다. 변형량(D)의 계산된 값은 다른 가능성들 중에서 제1 오프셋(650), 제2 오프셋(652), 제1 오프셋(650)과 제2 오프셋(652) 사이의 평균 오프셋(654), 제1 오프셋(650)과 제2 오프셋(652) 중 최소치 또는 최대치, 제1 오프셋(650)과 제2 오프셋(652) 사이의 비(ratio)(예컨대, 제1 오프셋(650)을 제2 오프셋(652)으로 나눈 것, 제2 오프셋(652)을 제1 오프셋(650)으로 나눈 것 등), 제1 오프셋(650)과 제2 오프셋(652) 사이의 차이(예컨대, 제2 오프셋(652)으로부터 제1 오프셋(650)을 뺀 것, 또는 제1 오프셋(650)으로부터 제2 오프셋(652)을 뺀 것 등)와 동일할 수 있거나 또는 이들과 관련될 수 있다(예컨대, 이들의 스케일링된 버전).
[0058] 도 7은 본 발명의 일부 실시예들에 따른, 이미지들 둘 모두에서 나타나는 공통 피처를 갖는 2 개의 이미지들에 기반한 변형량(D)(즉, 교정 레벨)의 예시적인 계산을 예시한다. 먼저, 지점들(705, 707)을 갖는 피처(720)가 제1 이미지(702) 및 제2 이미지(도시되지 않음) 둘 모두에서 식별된다. 제1 이미지(702)는 다른 가능성들 중에서 좌측 이미지 또는 우측 이미지를 표현할 수 있다. 지점들(705, 707) 사이의 교차선이 제2 이미지에 형성되고, (도 4a, 도 4b, 도 4c, 도 5a, 도 5b 및 도 5c를 참조하여 도시되는 바와 같이) 등극선(722)을 제1 이미지(702) 상에 투사하기 위해 교정 프로파일(254)의 최신 업데이트된 버전을 사용하여 제2 이미지로부터 제1 이미지(702)로 변환된다. 그런 다음, 제1 이미지(702) 내의 지점들(705, 707)이 등극선(722)과 비교되어, 변형량(D)이 결정된다.
[0059] 일부 실시예들에서, 지점들(705, 707)과 교차하는 선(756)이 제1 이미지(702)에 형성되고, 선(756)과 등극선(722) 사이의 각도(758)가 계산된다. 대안적으로 또는 부가적으로, 각도(758)는, 지점들(705, 707)과 등극선(722) 사이의 수직 오프셋들(도 6을 참조하여 설명된 제1 오프셋(650) 및 제2 오프셋(652)과 유사함) 및 지점들(705, 707) 사이의 수평 오프셋을 결정함으로써 그리고 각도(758)를 구하기 위해 삼각법을 사용하여 계산될 수 있다. 변형량(D)의 계산된 값은, 다른 가능성들 중에서 각도(758), 각도(758)의 사인(함수), 각도(758)의 탄젠트(함수), 각도(758)의 역(inverse)과 동일할 수 있거나 또는 이들과 관련될 수 있다(예컨대, 이들의 스케일링된 버전).
[0060] 일부 실시예들에서, 도 6을 참조하여 계산된 변형량은 병진 변형량(DT)이고, 도 7을 참조하여 계산된 변형량은 회전 변형량(DR)이다. 일부 실시예들에서, 변형량(D)의 계산된 값은 다른 가능성들 중에서 병진 변형량(DT)과 회전 변형량(DR)의 합, 병진 변형량(DT)과 회전 변형량(DR) 사이의 평균, 병진 변형량(DT)과 회전 변형량(DR) 중 최소치 또는 최대치, 병진 변형량(DT)과 회전 변형량(DR) 사이의 비(예컨대, 병진 변형량(DT)을 회전 변형량(DR)으로 나눈 것, 회전 변형량(DR)을 병진 변형량(DT)으로 나눈 것 등), 병진 변형량(DT)과 회전 변형량(DR) 사이의 차이(예컨대, 회전 변형량(DR)으로부터 병진 변형량(DT)을 뺀 것 또는 병진 변형량(DT)으로부터 회전 변형량(DR)을 뺀 것 등)와 동일할 수 있거나 또는 이들과 관련될 수 있다(예컨대, 이들의 스케일링된 버전).
[0061] 도 8은 본 발명의 일부 실시예들에 따른, AR 디바이스(200)를 교정하기 위한 방법(800)을 예시한다. 방법(800)의 수행은 도 8에서 도시된 단계들보다 더 많거나 또는 더 적은 단계들을 수행하는 것을 포함할 수 있고, 방법(800)의 단계들은 도시된 순서대로 수행될 필요는 없다. 방법(800)이 AR 디바이스를 교정하는 것을 참조하여 설명되지만, 방법은, 병진 파라미터 및 회전 파라미터를 갖는 교정 프로파일에 의해 모델링되는 공간 관계를 갖는 2 개의 센서들을 가지는 임의의 디바이스를 교정하기 위해 사용될 수 있다.
[0062] 일부 실시예들에서, 방법(800)은, 센서 데이터(220)가 센서들(206)에 의해 캡처되는 블록(802)에서 시작한다. 일부 실시예들에서, 센서 데이터(220)는 센서들(206) 중 제1 센서 및 제2 센서에 의해 캡처될 수 있다. 예컨대, 센서 데이터(220)는, 제1 센서에 의해 캡처된 하나 이상의 제1 이미지들, 및 제2 센서에 의해 캡처된 하나 이상의 제2 이미지들을 포함할 수 있다. 일부 실시예들에서, 제1 이미지들 및 제2 이미지들 양자 모두는 카메라 이미지들이다. 일부 실시예들에서, 제1 이미지들 및 제2 이미지들 양자 모두는 깊이 이미지들(즉, 깊이 맵들)이다. 일부 실시예들에서, 제1 이미지들은 카메라 이미지들이고, 제2 이미지들은 깊이 이미지들이다. 일부 실시예들에서, 제1 이미지들은 깊이 이미지들이고, 제2 이미지들은 카메라 이미지들이다. 센서 데이터(220)가 센서들(206)에 의해 캡처된 후에, 센서 데이터(220)는 프로세싱 모듈(250)에 전송될 수 있다.
[0063] 블록(804)에서, 교정 프로파일(254)과 연관된 교정 레벨이 결정된다. 일부 실시예들에서, 교정 레벨은, 예컨대 하나 이상의 제1 이미지들 및 하나 이상의 제2 이미지들 중 하나 또는 양자 모두를 분석함으로써 센서 데이터(220)에 기반하여 결정된다. 예컨대, 하나 이상의 제1 이미지들은 하나 이상의 제2 이미지들과 비교될 수 있고, 교정 레벨은 비교에 기반하여 결정될 수 있다. 다른 예로서, 제2 센서와 관련한 제1 센서의 변형량(D)이 비교에 기반하여 결정될 수 있고, 변형량(D)은 교정 레벨(더 높은 변형량들이 더 낮은 신뢰도 레벨들에 대응함)로서 사용될 수 있다. 일부 실시예들에서, 교정 레벨은, 도 4a, 도 4b 및 도 4c 및/또는 도 5a, 도 5b 및 도 5c를 참조하여 설명된 단계들을 수행함으로써 결정된다. 일부 실시예들에서, 블록(804)은 프로세싱 모듈(250)에 의해 수행된다.
[0064] 일부 실시예들에서, 교정 레벨을 결정하는 것은, AR 디바이스(200)와 연관된 머리 포즈 알고리즘이 현재 이용가능한지 여부 및/또는 정확한 데이터를 현재 생성하고 있는지 여부를 결정하는 것을 포함한다. 일부 실시예들에서, 머리 포즈 알고리즘은, 센서들(206)에 의해 캡처된 센서 데이터(220)로부터 맵 지점들(3D 지점들)을 생성하기 위해 사용될 수 있다. 예컨대, 머리 포즈 알고리즘은 한 쌍의 이미지들을 수신하고 이 한 쌍의 이미지들을 프로세싱함으로써 맵 지점들을 생성할 수 있다. AR 디바이스(200)가 너무 변형되면, 머리 포즈 알고리즘은 수렴할 수 없을 것이거나 또는 정확한 맵 지점들을 생성할 수 없을 것이다. 어느 경우이든, 머리 포즈 알고리즘은 "이용불가능한" 것으로 간주될 수 있다. 일부 실시예들에서, 예컨대, 이용가능할 때 제1 값(예컨대, 1)을 갖고 이용불가능할 때 제2 값(예컨대, 0)을 가짐으로써, 또는 일부 실시예들에서 이용가능성 레벨을 표시하는, 제1 값과 제2 값 사이의 값(예컨대, 0.5)을 가짐으로써, 교정 레벨은 머리 포즈 알고리즘이 이용가능한지 여부와 연관될 수 있다.
[0065] 블록(806)에서, 교정 레벨에 기반하여 제1 교정 프로세스를 수행할지, 제2 교정 프로세스를 수행할지, 또는 어느 것도 수행하지 않을지가 결정된다. 예컨대, 교정 레벨은 하나 이상의 교정 임계치들과 비교될 수 있는 단일 값을 가질 수 있다. 일부 사례들에서, 교정 레벨은 0과 1 사이의 값을 갖도록 정규화될 수 있다. 일 예에서, 제1 교정 프로세스가 수행되어야 하는지 또는 제2 교정 프로세스가 수행되어야 하는지를 결정하기 위해, 교정 레벨은 제1 교정 임계치(807-1)와 비교될 수 있다. 교정 레벨이 제1 교정 임계치(807-1)를 초과할 때 제1 교정 프로세스를 수행하고, 교정 레벨이 제1 교정 임계치(807-1) 미만일 때 제2 교정 프로세스를 수행하는 것으로 결정될 수 있거나, 또는 그 반대로도 가능하다. 일부 실시예들에서, 교정 레벨이 제1 교정 임계치(807-1)보다 더 높을 수 있는 제2 교정 임계치(807-2)를 초과할 때 어느 교정 프로세스도 수행하지 않는 것으로 결정될 수 있다. 대안적으로 또는 부가적으로, 교정 레벨이 값들의 범위 내에 있는지 여부, 교정 레벨이 값들의 목록에 포함되는지 여부, 교정 레벨이 이전에 결정된 교정 레벨보다 어떤 임계량만큼 초과하거나 또는 미만인지 여부, 교정 레벨이 특정 시간량(예컨대, 250 밀리초) 동안 임계치 미만인지 여부 등이 결정될 수 있다. 일부 실시예들에서, 블록(806)은 프로세싱 모듈(250)에 의해 수행된다.
[0066] 교정 레벨로서 변형량(D)이 사용되는 다른 예에서, 제1 교정 프로세스가 수행되어야 하는지 또는 제2 교정 프로세스가 수행되어야 하는지를 결정하기 위해, 변형량(D)은 제1 변형 임계치와 비교될 수 있다. 변형량(D)이 제1 변형 임계치 미만일 때 제1 교정 프로세스를 수행하고, 변형량(D)이 제1 변형 임계치를 초과할 때 제2 교정 프로세스를 수행하는 것으로 결정될 수 있거나, 또는 그 반대로도 가능하다. 일부 실시예들에서, 변형량(D)이 제1 변형 임계치보다 더 낮을 수 있는 제2 변형 임계치 미만일 때 어느 교정 프로세스도 수행하지 않는 것으로 결정될 수 있다. 대안적으로 또는 부가적으로, 변형량(D)이 값들의 범위 내에 있는지 여부, 변형량(D)이 값들의 목록에 포함되는지 여부, 변형량(D)이 이전에 결정된 변형량(D)보다 어떤 임계량만큼 초과하거나 또는 미만인지 여부, 변형량(D)이 특정 시간량(예컨대, 250 밀리초) 동안 임계치를 초과하는지 여부 등이 결정될 수 있다.
[0067] 블록(806)에서 제1 교정 프로세스가 수행될 것으로 결정되면, 예컨대, 교정 레벨이 제1 교정 임계치(807-1) 미만이면, 방법(800)은 블록(808)으로 진행한다. 블록(808)에서, 병진 파라미터(T)가 수정되지 않는 한편 회전 파라미터(R)를 교정하는 것을 포함하는 제1 교정 프로세스가 수행되는데, 즉, 회전 파라미터(R)만이 교정된다. 제1 교정 프로세스를 수행하는 것은, 회전 파라미터(R)를 대체 및/또는 업데이트하기 위해 사용될 교정된 회전 파라미터(R')를 생성하는 것을 포함할 수 있다. 일부 실시예들에서, 제1 교정 프로세스는 센서 데이터(220)를 사용하여 수행된다. 제1 교정 프로세스는 오차 방정식을 최소화하는 것을 포함할 수 있고, 여기서, 병진 파라미터(T)는 (자신의 가장 최근의 값으로) 일정하게 유지되고, 회전 파라미터(R)는 가능한 값들의 범위에 걸쳐 변화(예컨대, 변동)된다. 오차 방정식이 최소화되도록 하는 회전 파라미터(R)의 값은 교정된 회전 파라미터(R')로서 세팅된다. 일부 실시예들에서, 블록(808)은 프로세싱 모듈(250)에 의해 수행된다.
[0068] 블록(806)에서 제2 교정 프로세스가 수행될 것으로 결정되면, 예컨대, 교정 레벨이 제1 교정 임계치(807-1)를 초과하면(그러나, 제2 교정 임계치(807-2) 미만임), 방법(800)은 블록(810)으로 진행한다. 블록(810)에서, 병진 파라미터(T) 및 회전 파라미터(R) 둘 모두를 교정하는 것을 포함하는 제2 교정 프로세스가 수행되며, 이는, 각각, 병진 파라미터(T) 및 회전 파라미터(R)를 대체 및/또는 업데이트하기 위해 사용될 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')를 생성하는 것을 포함할 수 있다. 제2 교정 프로세스는 오차 방정식을 최소화하는 것을 포함할 수 있고, 여기서, 병진 파라미터(T) 및 회전 파라미터(R) 둘 모두는 가능한 값들의 범위에 걸쳐 변화된다. 오차 방정식이 최소화되도록 하는 병진 파라미터(T) 및 회전 파라미터(R)의 값들은, 각각, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')로서 세팅된다. 일부 실시예들에서, 블록(810)은 프로세싱 모듈(250)에 의해 수행된다.
[0069] 도 9는 본 발명의 일부 실시예들에 따른, AR 디바이스(200)를 교정하기 위한 방법(900)을 예시한다. 방법(900)의 수행은 도 9에서 도시된 단계들보다 더 많거나 또는 더 적은 단계들을 수행하는 것을 포함할 수 있고, 방법(900)의 단계들은 도시된 순서대로 수행될 필요는 없다. 방법(900)의 하나 이상의 단계들은 방법(800)의 하나 이상의 단계들에 대응할 수 있다. 방법(900)이 AR 디바이스를 교정하는 것을 참조하여 설명되지만, 방법은, 병진 파라미터 및 회전 파라미터를 갖는 교정 프로파일에 의해 모델링되는 공간 관계를 갖는 2 개의 센서들을 가지는 임의의 디바이스를 교정하기 위해 사용될 수 있다.
[0070] 일부 실시예들에서, 방법(900)은, 센서 데이터(220)(즉, 제1 센서 데이터)가 센서들(206)에 의해 캡처되는 블록(902)에서 시작한다. 블록(902)은 블록(802)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다.
[0071] 블록(903)에서, 부가 센서(207)에 의해 부가 센서 데이터(221)(즉, 제2 센서 데이터)가 캡처된다. 부가 센서(207)는 센서들(206)과는 별개의 센서일 수 있다. 일 예에서, 부가 센서(207)는 AR 디바이스(200)에 대한 스트레인을 결정하기 위한, AR 디바이스(200)의 일부분 위에 포지셔닝된(예컨대, 센서들(206) 중 2 개의 센서들 사이에서 연장되는) 스트레인 게이지이다.
[0072] 블록(904)에서, 부가 센서 데이터(221)(즉, 제2 센서 데이터)에 기반하여, 교정 프로파일(254)과 연관된 교정 레벨이 결정된다. 일부 실시예들에서, 교정 레벨은, 부가 센서 데이터(221)의 하나 이상의 이미지들을 분석함으로써 결정된다. 블록(904)은 블록(804)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(904)은 프로세싱 모듈(250)에 의해 수행된다.
[0073] 블록(906)에서, 교정 레벨에 기반하여 제1 교정 프로세스를 수행할지, 제2 교정 프로세스를 수행할지, 또는 어느 것도 수행하지 않을지가 결정된다. 블록(906)은 블록(806)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(906)은 프로세싱 모듈(250)에 의해 수행된다.
[0074] 블록(906)에서 제1 교정 프로세스가 수행될 것으로 결정되면, 방법(900)은 블록(908)으로 진행한다. 블록(908)에서, 병진 파라미터(T)가 수정되지 않는 한편 센서 데이터(220)(즉, 제1 센서 데이터)를 사용하여 회전 파라미터(R)를 교정하는 것을 포함하는 제1 교정 프로세스가 수행된다. 블록(908)은 블록(808)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(908)은 프로세싱 모듈(250)에 의해 수행된다.
[0075] 블록(906)에서 제2 교정 프로세스가 수행될 것으로 결정되면, 방법(900)은 블록(910)으로 진행한다. 블록(910)에서, 센서 데이터(220)(즉, 제1 센서 데이터)를 사용하여 병진 파라미터(T) 및 회전 파라미터(R) 둘 모두를 교정하는 것을 포함하는 제2 교정 프로세스가 수행된다. 블록(910)은 블록(810)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(910)은 프로세싱 모듈(250)에 의해 수행된다.
[0076] 도 10은 본 발명의 일부 실시예들에 따른, AR 디바이스(200)를 교정하기 위한 방법(1000)을 예시한다. 방법(1000)의 수행은 도 10에서 도시된 단계들보다 더 많거나 또는 더 적은 단계들을 수행하는 것을 포함할 수 있고, 방법(1000)의 단계들은 도시된 순서대로 수행될 필요는 없다. 방법(1000)의 하나 이상의 단계들은 방법들(800, 900)의 하나 이상의 단계들에 대응할 수 있다. 예컨대, 방법(1000)은, 블록(808)을 참조하여 설명된 하나 이상의 단계들에 대응할 수 있는 등극 교정(1050) 및 블록(810)을 참조하여 설명된 하나 이상의 단계들에 대응할 수 있는 온라인 교정(1052)을 포함할 수 있다. 방법(1000)이 AR 디바이스를 교정하는 것을 참조하여 설명되지만, 방법은, 병진 파라미터 및 회전 파라미터를 갖는 교정 프로파일에 의해 모델링되는 공간 관계를 갖는 2 개의 센서들을 가지는 임의의 디바이스를 교정하기 위해 사용될 수 있다.
[0077] 일부 실시예들에서, 방법(1000)은, 센서 데이터(220)가 센서들(206)에 의해 캡처되는 블록(1002)에서 시작한다. 블록(1002)은 블록(802)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다.
[0078] 블록(1004)에서, 교정 프로파일(254)과 연관된 교정 레벨이 결정된다. 블록(1004)은 블록들(804, 904)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(1004)은 프로세싱 모듈(250)에 의해 수행된다.
[0079] 블록(1006)에서, 교정 레벨에 기반하여 제1 교정 프로세스를 수행할지, 제2 교정 프로세스를 수행할지, 또는 어느 것도 수행하지 않을지가 결정된다. 블록(1006)은 블록(806)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(1006)은 프로세싱 모듈(250)에 의해 수행된다.
[0080] 블록(1006)에서 제1 교정 프로세스가 수행될 것으로 결정되면, 방법(1000)은 블록(1008)으로 진행한다. 블록(1008)에서, 병진 파라미터(T)가 (교정 프로파일(254)에서 자신의 가장 최근에 업데이트된 값으로) 일정하게 유지되는 한편, 가능한 값들의 범위에 걸쳐 회전 파라미터(R)를 변화(예컨대, 변동)시킴으로써 제1 방정식(EQ.1)이 최소화된다. 제1 방정식(EQ.1)에 대해 다양한 오차 방정식들이 사용될 수 있지만, 일부 구현들에서, Sampson 오차의 변형이 다음과 같이 사용될 수 있다:
Figure pct00001
여기서,
Figure pct00002
는 벡터의 k-번째 성분을 나타내고,
Figure pct00003
은 기본 행렬이며, x와 x'는 정규화된 이미지 좌표들에서 좌측 이미지 및 우측 이미지로부터의 대응하는 피처들이다. EQ.1에서 Sampson 오차의 이 변형을 사용하는 장점들은 다음을 포함한다: (1) 사용되는 피처 좌표들이 정규화된 이미지 좌표들에 있고, (2) 기본 행렬(E)이 기초 행렬보다 더욱 계산적으로 효율적이며, 그리고 (3) 카메라들 중 내적(intrinsic) 카메라들은 변경되지 않는 것으로 가정된다. 일 특정 구현에서, 기본 행렬(E)은 3×3 행렬이다. 일단 EQ.1이 최소화되면, 이 방정식이 최소화되도록 하는 회전 파라미터(R)의 값은 교정된 회전 파라미터(R')로서 세팅 및 출력된다.
[0081] 블록(1006)에서 제2 교정 프로세스가 수행될 것으로 결정되면, 방법(1000)은, 온라인 교정(1052)이 수행되는 블록(1010)으로 진행한다. 온라인 교정(1052)은 센서들(예컨대, 카메라들)의 회전 및 병진에 대하여 관찰된 이미지 지점과 예측된 이미지 지점 사이의 재투사 오차를 최소화하는 것을 목표로 한다. 블록(1010)에서, 가능한 값들의 범위에 걸쳐 병진 파라미터(T) 및 회전 파라미터(R)를 변화(예컨대, 변동)시킴으로써 제2 방정식(EQ.2)이 최소화된다. 제2 방정식(EQ.2)에 대해 다양한 오차 방정식들이 사용될 수 있지만, 일부 구현들에서, 다음의 오차 방정식이 사용될 수 있다:
Figure pct00004
여기서, i는 지점들에 대한 인덱스이고, j는 키프레임들에서의 리그(rig) 포지션들에 대한 인덱스이고, k는 카메라들에 대한 인덱스이고,
Figure pct00005
는 카메라들의 세트이고,
Figure pct00006
은 리그로부터 센서(k)(예컨대, 카메라(k))로의 외적(extrinsic) 변환이고,
Figure pct00007
은 리그(j)에서의 센서(k)에 대한 투사 함수이고,
Figure pct00008
은 센서(k)에서 3D 지점(pi)의 측정이고, P는 2 개의 지점들 사이의 재투사 오차 벡터를 컴퓨팅하기 위한 함수이며, 그리고 Vij는 키프레임 포지션(j)에 위치된, 센서(k)를 통한 지점(i)의 가시성에 기반한 0 또는 1의 값이다(가시적이면 1과 동일하고, 가시적이지 않으면 0과 동일함). 투사 함수(
Figure pct00009
)는 병진 파라미터(T) 및 회전 파라미터(R)에 따라 좌우되는데, 그 이유는 리그 중심점으로부터 각각의 센서로의 변환이 각각의 센서에 대한 T 및 R과 관련되기 때문이다. 일단 EQ.2가 최소화되면, 이 방정식이 최소화되도록 하는 병진 파라미터(T) 및 회전 파라미터(R)의 값들은, 각각, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')로서 세팅 및 출력된다. 리그로부터 카메라로의 외적 변환에 대한 부가적인 설명이 도 15에서 예시된다.
[0082] 블록(1012)에서, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R') 중 하나 또는 둘 모두가, 각각, 병진 파라미터(T) 및 회전 파라미터(R)를 대체 및/또는 업데이트하기 위해 사용된다. 등극 교정(1050)이 수행되면, 회전 파라미터(R)가 대체 및/또는 업데이트된다. 온라인 교정(1052)이 수행되면, 병진 파라미터(T) 및 회전 파라미터(R) 둘 모두가 대체 및/또는 업데이트된다. 블록(1012)의 수행 후에, 방법(1000)은 블록(1002)으로 진행하여서, 설명된 단계들을 반복한다.
[0083] 도 11은 본 발명의 일부 실시예들에 따른, AR 디바이스(200)를 교정하기 위한 방법(1100)을 예시한다. 방법(1100)의 수행은 도 11에서 도시된 단계들보다 더 많거나 또는 더 적은 단계들을 수행하는 것을 포함할 수 있고, 방법(1100)의 단계들은 도시된 순서대로 수행될 필요는 없다. 방법(1100)의 하나 이상의 단계들은 방법들(800, 900, 1000)의 하나 이상의 단계들에 대응할 수 있다. 예컨대, 방법(1100)은, 블록들(808 및 1008)을 참조하여 설명된 하나 이상의 단계들에 대응할 수 있는 등극 교정(1150) 및 블록들(810 및 1010)을 참조하여 설명된 하나 이상의 단계들에 대응할 수 있는 온라인 교정 경로(1152)를 포함할 수 있다. 방법(1100)이 AR 디바이스를 교정하는 것을 참조하여 설명되지만, 방법은, 병진 파라미터 및 회전 파라미터를 갖는 교정 프로파일에 의해 모델링되는 공간 관계를 갖는 2 개의 센서들을 가지는 임의의 디바이스를 교정하기 위해 사용될 수 있다.
[0084] 일부 실시예들에서, 방법(1100)은, 센서 데이터(220)가 센서들(206)에 의해 캡처되는 블록(1102)에서 시작한다. 블록(1102)은 블록(802)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다.
[0085] 블록(1104)에서, 센서 데이터(220)의 교정 레벨이 결정된다. 블록(1104)은 블록들(804, 904)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(1104)은 프로세싱 모듈(250)에 의해 수행된다.
[0086] 블록(1106)에서, 교정 레벨에 기반하여 제1 교정 프로세스를 수행할지, 제2 교정 프로세스를 수행할지, 또는 어느 것도 수행하지 않을지가 결정된다. 블록(1106)은 블록(806)을 참조하여 설명된 하나 이상의 단계들을 포함할 수 있다. 일부 실시예들에서, 블록(1106)은 프로세싱 모듈(250)에 의해 수행된다.
[0087] 블록(1106)에서 제1 교정 프로세스가 수행될 것으로 결정되면, 방법(1100)은 블록(1108)으로 진행한다. 블록(1108)에서, 센서들(206A, 206B)에 의해 캡처된 페어링된 이미지들에 대해 이미지 분석 및 피처 검출이 수행된다. 일부 실시예들에서, 페어링된 이미지들 사이의 매칭된 피처들이 검출되거나, 또는 다른 실시예들에서, 매칭된 피처들은 외부 소스로부터 블록(1108)의 수행 동안 또는 수행 전에 수신된다. 매칭된 피처들 및 페어링된 이미지들을 획득한 후에, 페어링된 이미지들 각각은 복수의 빈들로 파티셔닝되고, 빈들 각각에 위치되는 매칭된 피처들의 수량이 결정된다. 다양한 실시예들에서, 페어링된 이미지들 각각은 동일한 수의 빈들로 파티셔닝되거나, 또는 상이한 수들의 빈들로 파티셔닝되거나, 또는 페어링된 이미지들 각각의 상이한 구역들을 커버하는 빈들로 파티셔닝된다. 일 특정 실시예에서, 빈들은 이미지들 상에 오버레이된 3x3 그리드에 의해 정의될 수 있다. 각각의 빈에 대한 매칭된 피처들의 수량을 결정한 후에, 수량들은 출력되고, 방법(1100)은 블록(1110)으로 진행한다.
[0088] 블록(1110)에서, 빈들 각각에 위치된 매칭된 피처들의 수량들이 하나 이상의 피처 임계치들을 만족하는지 여부가 결정된다. 예컨대, 매칭된 피처들의 수량들 각각이 피처 임계치, 예컨대, 1 개, 10 개, 100 개, 1,000 개 등을 초과하는지 여부가 결정될 수 있다. 일부 실시예들에서, 이 조회(inquiry)가 빈 단위로 수행될 수 있어서, 방법(1100)은 매칭된 피처들의 수량들 각각이 피처 임계치를 초과할 때에만 블록(1112)으로 진행한다. 다른 실시예들에서, 방법(1100)은, 대다수의 또는 일부 필수 퍼센티지의 빈들이 피처 임계치를 초과하는 매칭된 피처들의 수량을 포함할 때, 블록(1112)으로 진행할 수 있다. 일부 실시예들에서, 매칭된 피처들의 수량들 각각이 제2 피처 임계치, 예컨대, 1,000 개, 10,000 개 등의 미만인지 여부가 또한 결정될 수 있다. 이 단계는, 매칭된 피처들이 페어링된 이미지들 전체에 걸쳐 균등하게 퍼져 있는지 여부를 결정할 수 있다. 매칭된 피처들의 수량들 각각이 제1 피처 임계치를 초과하고 제2 피처 임계치 미만인 것으로 결정되면, 방법(1100)은 블록(1112)으로 진행할 수 있다. 그렇지 않으면, 방법(1100)은 블록(1108)으로 복귀하고, 여기서, 제2 세트의 페어링된 이미지들, 예컨대, 후속 프레임에 대응하는 페어링된 이미지들이 분석된다.
[0089] 블록(1112)에서, 페어링된 이미지들 및/또는 매칭된 피처들을 사용하여, 블록(1008)을 참조하여 설명된 단계들이 수행된다. 일단 EQ.1이 최소화되면, 이 방정식이 최소화되도록 하는 회전 파라미터(R)의 값은 교정된 회전 파라미터(R')로서 세팅 및 출력된다.
[0090] 블록(1106)으로 복귀하면, 블록(1106)에서 제2 교정 프로세스가 수행될 것으로 결정되면, 방법(1100)은 온라인 교정 경로(1152)로 진행한다. 온라인 교정 경로(1152)는 다수의 모듈들, 이를테면, 예컨대, 환경 재조정 모듈(1111) 및 온라인 교정 모듈(1113)을 포함할 수 있다. 환경 재조정 모듈(1111)은, 미리 결정된 시간 기간에 걸쳐 AR 디바이스(200)에 의해 수집된 3D 지점 클라우드 데이터가 정렬됨을 보장하기 위한 단계들을 포함할 수 있다. 블록(1114)에서, 키프레임이 발생했을 때마다 희소 맵(AR 디바이스(200)의 키프레임 포지션들 및 맵 지점들의 그룹)을 최적화함으로써, 번들 조정이 수행된다. 이에 따라서, 블록(1114)에서 임의의 나머지 단계들을 수행하기 전에, 키프레임이 발생했는지 여부가 먼저 결정될 수 있다. AR 디바이스(200)의 동작 동안, 센서 데이터(220)에 기반하여, 안정적인 최적화를 보증하기에 충분한 새로운 정보가 존재한다고 결정될 때 키프레임이 발생하며, 이는, AR 디바이스(200)가 병진 임계치를 초과하여 병진했고 회전 임계치를 초과하여 회전했다고 결정하는 것(중심점(302)이 AR 디바이스(200)의 위치로서 사용됨)에 대응한다. 예로서, 병진 임계치는 10 cm일 수 있고, 회전 임계치는 10 도일 수 있다.
[0091] 희소 맵은 센서들(206)로부터 수집된 맵 지점들을 포함할 수 있다. 맵 지점들은 시야에서의 상이한 피처들을 따라 센서들(206)에 의해 캡처될 수 있고, 각각의 맵 지점은, 맵 지점이 캡처되었을 때 (중심점(302)을 사용하여) AR 디바이스(200)의 알려진 포지션과 연관된다. 이는, 환경의 3D 모델이 정확하게 재구성되고 적절하게 해석될 수 있도록, 수집되는 맵 지점들에 대한 콘텍스트를 제공한다. 번들 조정이 수행될 때, 지점들 사이의 정렬 오차를 최소화하는 알고리즘을 사용하여 희소 맵에 포함된 맵 지점들을 정렬함으로써, 희소 맵은 최적화된다. 희소 맵이 최적화된 후에, 방법(1100)은 온라인 교정 모듈(1113)로 진행한다.
[0092] 온라인 교정 모듈(1113)은 여러 서브-프로세스들 또는 단계들을 포함할 수 있다. 블록(1116)에서, 온라인 교정 트리거가 충족되었는지 여부가 결정된다. 온라인 교정 트리거는 하나 이상의 조건들, 이를테면, 키프레임이 발생했는지 여부, 연속적인 키프레임들이 발생했는지 여부, 번들 조정이 성공적이었는지 여부, 연속적인 번들 조정들이 성공적이었는지 여부, AR 디바이스(200)의 키프레임 포즈들 사이의 최대 거리가 임계 기준선(예컨대, 1.5 미터)을 초과하여 병진했는지 여부, AR 디바이스(200)의 키프레임 포즈들 사이의 최대 회전이 임계 각도(예컨대, 90 도)를 초과하여 회전했는지 여부, 검출된 피처들이 시야에 걸쳐 균등하게 분산되어 있는지 여부, 검출된 피처들이 (깊이에 대응하는) z-차원에서 균등하게 분산되어 있는지 여부 등을 포함(그러나, 이들에 제한되지는 않음)할 수 있다. 온라인 교정 트리거에 포함된 하나 이상의 조건들이 충족되지 않으면, 방법(1100)은 블록(1102)으로 복귀한다. 조건들이 충족되면, 방법(1100)은 블록(1118)으로 진행한다.
[0093] 블록(1118)에서, 최적화된 희소 맵을 사용하여, 블록(1010)을 참조하여 설명된 단계들이 수행된다. 일부 실시예들에서, 블록(1118)의 수행은 번들 조정에 사용되는 것보다 더 큰 데이터 세트를 사용할 수 있다. 예컨대, 번들 조정은 희소 맵을 최적화하기 위해 가장 최근의 10 개의 키프레임들 및 카메라 포즈 포지션들에 의해 관찰된 가장 최근의 10 개의 맵 지점 세트들을 사용할 수 있는 한편, 블록(1118)은 마지막 100 개의 맵 지점 세트들 및 카메라 포즈 포지션들을 사용할 수 있다. 일단 EQ.2가 최소화되면, 이 방정식이 최소화되도록 하는 병진 파라미터(T) 및 회전 파라미터(R)의 값들은, 각각, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')로서 세팅 및 출력된다.
[0094] 블록(1120)에서, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')는 미리 선택된 수용 기준들과 비교된다. 일부 실시예들에서, 수용 기준들은, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')가, 각각, 병진 파라미터(T) 및 회전 파라미터(R)와는 충분히 상이할 것을 요구할 수 있다. 일부 실시예들에서, 차이들(T'-T 및 R'-R)은 임계치들과 비교될 수 있다. 수용 기준들이 만족되는 것으로 결정되면, 방법(1100)은 블록(1122)으로 진행할 수 있다.
[0095] 블록(1122)에서, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R') 중 하나 또는 둘 모두가, 각각, 병진 파라미터(T) 및 회전 파라미터(R)를 대체 및/또는 업데이트하기 위해 사용된다. 등극 교정(1150)이 수행되면, 회전 파라미터(R)가 대체 및/또는 업데이트된다. 온라인 교정 경로(1152)가 수행되면, 병진 파라미터(T) 및 회전 파라미터(R) 둘 모두가 대체 및/또는 업데이트된다. 블록(1122)의 수행 후에, 방법(1100)은 블록(1102)으로 진행하여서, 설명된 단계들을 반복한다.
[0096] 일부 실시예들에서, 방법(1100)의 수행은, 등극 교정(1150)(즉, 제1 교정 프로세스)만을 수행하는 것 또는 온라인 교정 경로(1152)(즉, 제2 교정 프로세스)만을 수행하는 것을 포함할 수 있다. 일부 실시예들에서, 온라인 교정 경로(1152)는 제1 시간(즉, t1)에 수행되고, 등극 교정(1150)은 제2 시간(즉, t2)에 수행된다. 반대로, 일부 실시예들에서, 등극 교정(1150)은 제1 시간(즉, t1)에 수행되고, 온라인 교정 경로(1152)는 제2 시간(즉, t2)에 수행된다. 일부 실시예들에서, 온라인 교정 경로(1152)는 등극 교정(1150)의 수행 없이 연속적으로 2 회(즉, 시간들(t1 및 t2)에) 수행된다. 유사하게, 일부 실시예들에서, 등극 교정(1150)은 온라인 교정 경로(1152)의 수행 없이 연속적으로 2 회(즉, 시간들(t1 및 t2)에) 수행된다. 본원에서 설명된 바와 같이, 제1 시간(즉, t1)은 제2 시간(즉, t2)에 앞서거나 또는 그 뒤에 있을 수 있다.
[0097] 당업자는, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')가 많은 방식들로 AR 디바이스(200)에 의해 사용될 수 있다는 것을 인식할 것이다. 일 실시예에서, T' 및 R'는 하나 이상의 센서들(예컨대, 센서들(206))의 포지션 및/또는 배향을 물리적으로 조정하기 위한 기초로서 사용될 수 있다. 하나 이상의 센서들의 포지션 및/또는 배향을 조정하는 것은, AR 디바이스(200) 상의 다른 컴포넌트들 및/또는 다른 센서들에 대한 적어도 하나의 센서의 포지션 및/또는 배향을 제어함으로써 AR 디바이스(200)의 전체 성능을 개선시킬 수 있다.
[0098] 도 3을 다시 한번 참조하면, 교정된 병진 파라미터(T') 및 교정된 회전 파라미터(R')는 중심점(302)에 대하여 결정될 수 있다. 그러나, 시스템의 임의의 다른 부분에 대하여 교정하는 것이 가능하다. 예컨대, 일부 실시예들에서, 단일 센서가 모든 교정 정정들의 기반이 되는 기준 센서로서 선택되어서, 기준 센서와 관련된 파라미터들은 조정되지 않지만, 다른 모든 센서들의 파라미터들은 기준 센서와 관련하여 조정된다. AR 디바이스(200) 상의 다른 상당한 지점들이 또한, 교정된 파라미터들을 계산하도록 하기 위한 기준 지점으로서 사용될 수 있다.
[0099] 도 12는 본 발명의 일부 실시예들에 따른, 좌측 이미지(1204)와 우측 이미지(1206)(즉, 페어링된 이미지들) 사이의 하나 이상의 매칭된 피처들(1202)을 검출하기 위한 다양한 단계들을 예시한다. 예컨대, 도 12는 도 11을 참조하여 설명된 블록(1108)과 관련하여 하나 이상의 단계들을 예시할 수 있다. 좌측 이미지(1204) 내의 각각의 검출된 매칭된 피처는 우측 이미지(1206) 내의 검출된 매칭된 피처에 매핑되고, 그 반대로도 가능하다. 매칭된 피처들은 다양한 종래의 이미지 프로세싱 기법들 중 임의의 하나 또는 코너 검출 기법들에 기반하여 검출될 수 있다.
[0100] 도 13은 본 발명의 일부 실시예들에 따른, 좌측 이미지(1304) 및 우측 이미지(1306)를 복수의 빈들(1308)로 파티셔닝하고 빈들(1308) 각각에 위치된 매칭된 피처들(1302)의 수량을 결정하기 위한 다양한 단계들을 예시한다. 예컨대, 도 13은 도 11을 참조하여 설명된 블록들(1108 및 1110)과 관련하여 하나 이상의 단계들을 예시할 수 있다. 좌측 이미지(1304) 및 우측 이미지(1306)는 다른 가능성들 중에서 카메라 이미지들, 깊이 이미지들일 수 있다. 도 13에서 도시된 특정 구현에서, 좌측 이미지(1304) 및 우측 이미지(1306) 각각은 3×3 어레인지먼트(arrangement)로 9 개의 빈들로 파티셔닝된다. 다른 실시예들에서, 상이한 수들의 빈들 및 상이한 어레인지먼트들의 빈들이 가능하다. 예컨대, 좌측 이미지(1304) 및 우측 이미지(1306) 각각은 다양한 형상들(예컨대, 직사각형, 삼각형, 원형 등)을 갖는 임의의 수(예컨대, 4 개, 16 개, 25 개, 36 개 등)의 빈들로 파티셔닝될 수 있다. 빈들은 오버랩되거나 또는 오버랩되지 않을 수 있으며, 좌측 이미지(1304) 및 우측 이미지(1306)에 대한 빈들의 어레인지먼트들이 동일할 필요는 없다. 예컨대, 좌측 이미지(1304)는 2×2 어레인지먼트로 4 개의 빈들로 파티셔닝될 수 있고, 우측 이미지(1306)는 2×3 어레인지먼트로 6 개의 빈들로 파티셔닝될 수 있다.
[0101] 특정 수량의 매칭된 피처들이 각각의 빈에 그리고/또는 빈들의 그룹에 존재할 것을 요구하는 하나 이상의 피처 임계치들이 정의될 수 있다. 예로서, 피처 임계치들은, 빈들(1308) 각각이 매칭된 피처들(1302) 중 5 개 이상을 포함할 것을 요구할 수 있다. 예시된 실시예에서, 각각의 빈에서의 매칭된 피처들의 수량은 빈 번호의 우측에 괄호 안에 표시된다. 빈들(1308) 중 여러 빈들이 피처 임계치를 충족시키지 못하기 때문에(예컨대, 빈들(4, 7, 8, 9, 12, 14, 15, 17 및 18) 각각은 5 개 미만의 매칭된 피처들을 가짐), 피처 임계치들은 만족되지 않는다. 결과적으로, 현재 이미지 쌍인 이미지들(1304 및 1306)은 선택적으로, 폐기될 수 있는 한편, 이미지 쌍으로부터의 대응하는 피처들은 유지될 수 있다. 후속 이미지 쌍들이 동일한 방식으로 검색 및 분석됨에 따라, 피처 임계치들 각각이 만족될 때까지, 피처들은 축적된다. 다른 예로서, 피처 임계치들은, 2x2 어레인지먼트에서의 4 개의 인접한 빈들의 각각의 그룹핑이 10 개 이상의 매칭된 피처들을 포함할 것을 요구할 수 있다. 빈들(14, 15, 17 및 18)의 그룹핑이 단지 5 개의 매칭된 피처들을 포함하기 때문에, 피처 임계치들은 만족되지 않는다.
[0102] 도 14a 및 도 14b는 본 발명의 일부 실시예들에 따른, 좌측 이미지(1404) 및 우측 이미지(1406)를 3-차원 공간에서의 복수의 빈들(1408)로 파티셔닝하고 빈들(1408) 각각에 위치된 매칭된 피처들(1402)의 수량을 결정하기 위한 다양한 단계들을 예시한다. 예컨대, 도 14a 및 도 14b는 도 11을 참조하여 설명된 블록들(1108 및 1110)과 관련하여 하나 이상의 단계들을 예시할 수 있다. 좌측 이미지(1404) 및 우측 이미지(1406)는 다른 가능성들 중에서 카메라 이미지들, 깊이 이미지들일 수 있다. 좌측 이미지(1404) 및 우측 이미지(1406) 각각은 3×3×3 어레인지먼트로 27 개의 빈들로 파티셔닝된다. 다른 실시예들에서, 상이한 수들, 어레인지먼트들 및 형상들의 빈들이 가능하다. 빈들은 오버랩되거나 또는 오버랩되지 않을 수 있으며, 좌측 이미지(1404) 및 우측 이미지(1406)에 대한 빈들의 어레인지먼트들이 동일할 필요는 없다.
[0103] 도 14a를 참조하면, 빈들의 그룹들에 대해 피처 임계치들이 정의되고, 각각의 그룹은 3 개의 차원들 중 2 개의 차원들에서 연장되는 평면을 형성하는 빈들을 포함한다. 예컨대, 피처 임계치들은, (Z 차원에 대하여) 니어 필드, 미드-필드 및 파 필드에서 평면들을 형성하는 빈들의 그룹들 각각이 매칭된 피처들(1402) 중 5 개 이상을 포함할 것을 요구한다. 피처 임계치들은 또한, X 차원에 대하여 평면들을 형성하는 빈들의 그룹들 각각이 8 개 이상의 매칭된 피처들을 포함하고 Y 차원에 대하여 평면들을 형성하는 빈들의 그룹 각각이 7 개 이상의 매칭된 피처들을 포함할 것을 요구한다. 도 14b는 각각의 개별적인 빈이 2 개 이상의 매칭된 피처들을 포함할 것을 요구하는 부가 피처 임계치들을 예시한다. 이에 따라서, 매칭된 피처들(1402)의 적절한 공간 분포를 보장하기 위해, 개별적인 빈들 및/또는 빈들의 그룹들에 대해 피처 임계치들이 정의될 수 있다.
[0104] 도 15는 본 발명의 일부 실시예들에 따른, 번들 조정을 수행하기 위한 다양한 단계들을 예시한다. 다양한 카메라 포즈들(1504)에 의해 보여지는 맵 지점들(1502)이 도 15에서 도시된다. 맵 지점들(1502)은 시야에서의 상이한 피처들을 따라 센서들(206A, 206B)(그리고 일부 실시예들에서, 센서들(206C, 206D))에 의해 캡처되고, 맵 지점들(1502) 각각은, 맵 지점이 캡처되었을 때 AR 디바이스(200)의 알려진 포지션(중심점(302))과 연관된다. 집합적으로, 카메라 포즈들(1504)로부터 볼 때의 맵 지점들(1502)은 희소 맵을 구성한다. 희소 맵은, 희소 맵에 포함된 맵 지점들의 계산된 투사와 맵 지점들의 대응하는 관찰된 피처 사이의 정렬 오차를 최소화하는 알고리즘을 사용하여, 이 계산된 투사를 이 관찰된 피처와 정렬함으로써 최적화된다.
[0105] 전술된 설명이 AR 디바이스(200) 및 모델(300)을 참조하여 제공되었지만, 다른 시스템 구성들이 또한, 설명된 교정 방법으로부터 이득을 얻을 수 있다. 예컨대, 적어도 부분적으로 오버랩된 시야들을 갖는 2 개의 센서들을 가지는 임의의 디바이스가, 설명된 모델을 사용하여 교정될 수 있다. 2 개의 센서들은 디바이스의 동일한 면 상에 또는 상이한 면들 상에 위치될 수 있다. 2 개의 센서들은 x-차원, y-차원 및 z-차원 중 임의의 차원, 또는 이들의 조합으로 서로 변위될 수 있다. 부가 센서들이 시스템에 부가되고, 개시된 방법들을 사용하여 교정될 수 있다. 부가 센서들은, 처음 2 개의 센서들과 오버랩되는 시야들을 가질 필요는 없다. 2 개, 3 개, 4 개 또는 그 이상의 부가 센서들이 시스템에 부가될 수 있고, 설명된 방법을 사용하여 교정될 수 있다는 것이 인식될 것이다.
[0106] 도 16은 본 발명의 실시예에 따른 단순화된 컴퓨터 시스템(1600)을 예시한다. 도 16에서 예시된 컴퓨터 시스템(1600)은 본원에서 설명된 AR 디바이스(200)와 같은 디바이스들에 통합될 수 있다. 도 16은 다양한 실시예들에 의해 제공된 방법들의 단계들 중 일부 또는 전부를 수행할 수 있는 컴퓨터 시스템(1600)의 일 실시예의 개략적인 예시를 제공한다. 도 16이 단지 다양한 컴포넌트들의 일반화된 예시만을 제공하는 것으로 여겨지며, 이 컴포넌트들 중 임의의 컴포넌트 또는 모든 컴포넌트들은 적절할 때 활용될 수 있다는 것이 주목되어야 한다. 그러므로, 도 16은 개별적인 시스템 엘리먼트들이 비교적 분리된 또는 비교적 더욱 통합된 방식으로 어떻게 구현될 수 있는지를 광범위하게 예시한다.
[0107] 버스(1605)를 통해 전기적으로 커플링될 수 있거나 또는 그렇지 않으면 적절할 때 통신할 수 있는 하드웨어 엘리먼트들을 포함하는 컴퓨터 시스템(1600)이 도시된다. 하드웨어 엘리먼트들은, 하나 이상의 범용 프로세서들 및/또는 하나 이상의 특수-목적 프로세서들, 이를테면, 디지털 신호 프로세싱 칩들, 그래픽스 가속 프로세서들 등을 포함(이들에 제한되지는 않음)하는 하나 이상의 프로세서들(1610); 마우스, 키보드, 카메라 등을 포함(이들에 제한되지는 않음)할 수 있는 하나 이상의 입력 디바이스들(1615); 및 디스플레이 디바이스, 프린터 등을 포함(이들에 제한되지는 않음)할 수 있는 하나 이상의 출력 디바이스들(1620)을 포함할 수 있다.
[0108] 컴퓨터 시스템(1600)은, 로컬 및/또는 네트워크 액세스가능한 스토리지를 포함(이에 제한되지는 않음)할 수 있고 그리고/또는 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 솔리드-스테이트 저장 디바이스, 이를테면, 랜덤 액세스 메모리(random access memory)("RAM") 및/또는 판독-전용 메모리(read-only memory)("ROM")(프로그램가능하고, 플래시-업데이트가능한 식일 수 있음)를 포함(이에 제한되지는 않음)할 수 있는 하나 이상의 비-일시적인 저장 디바이스들(1625)을 더 포함하고 그리고/또는 이들과 통신할 수 있다. 그러한 저장 디바이스들은, 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함(이에 제한되지는 않음)하여, 임의의 적절한 데이터 스토어들을 구현하도록 구성될 수 있다.
[0109] 컴퓨터 시스템(1600)은 또한, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스, 및/또는 칩셋, 이를테면, 블루투스TM 디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등을 포함(이에 제한되지는 않음)할 수 있는 통신 서브시스템(1630)을 포함할 수 있다. 통신 서브시스템(1630)은 네트워크, 이를테면, 일 예를 들자면 아래에서 설명되는 네트워크, 다른 컴퓨터 시스템들, 텔레비전, 및/또는 본원에서 설명된 임의의 다른 디바이스들과 데이터가 교환될 수 있게 하기 위한 하나 이상의 입력 및/또는 출력 통신 인터페이스들을 포함할 수 있다. 원하는 기능성 및/또는 다른 구현 관심사들에 따라, 휴대용 전자 디바이스 또는 유사한 디바이스는 통신 서브시스템(1630)을 통해 이미지 및/또는 다른 정보를 통신할 수 있다. 다른 실시예들에서, 휴대용 전자 디바이스, 예컨대, 제1 전자 디바이스가 컴퓨터 시스템(1600), 예컨대, 전자 디바이스에 입력 디바이스(1615)로서 통합될 수 있다. 일부 실시예들에서, 컴퓨터 시스템(1600)은 위에서 설명된 RAM 또는 ROM 디바이스를 포함할 수 있는 작업(working) 메모리(1635)를 더 포함할 것이다.
[0110] 컴퓨터 시스템(1600)은 또한, 운영체제(1640), 디바이스 드라이버들, 실행가능한 라이브러리들, 및/또는 다른 코드, 이를테면, 하나 이상의 애플리케이션 프로그램들(1645)을 포함하는 작업 메모리(1635) 내에 현재 위치되어 있는 것으로서 도시된 소프트웨어 엘리먼트들을 포함할 수 있으며, 이 하나 이상의 애플리케이션 프로그램들(1645)은, 본원에서 설명된 바와 같이, 다양한 실시예들에 의해 제공된 컴퓨터 프로그램들을 포함할 수 있고, 그리고/또는 다른 실시예들에 의해 제공된 시스템들을 구성하도록 그리고/또는 방법들을 구현하도록 설계될 수 있다. 단지 예로서, 도 16과 관련하여 설명된 것들과 같은, 위에서 논의된 방법들에 대하여 설명된 하나 이상의 절차들은, 컴퓨터 및/또는 컴퓨터 내의 프로세서에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수 있고; 그런 다음, 양상에서, 그러한 코드 및/또는 명령들은, 설명된 방법들에 따라 하나 이상의 동작들을 수행하도록 범용 컴퓨터 또는 다른 디바이스를 구성 및/또는 적응시키기 위해 사용될 수 있다.
[0111] 이들 명령들 및/또는 코드의 세트는 비-일시적인 컴퓨터-판독가능 저장 매체, 이를테면, 위에서 설명된 저장 디바이스(들)(1625) 상에 저장될 수 있다. 일부 경우들에서, 저장 매체는 컴퓨터 시스템, 이를테면, 컴퓨터 시스템(1600) 내에 통합될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템과는 별개일 수 있는데, 예컨대, 제거가능 매체, 이를테면, 컴팩트 디스크일 수 있고 그리고/또는 설치 패키지로 제공될 수 있어서, 저장 매체는 명령들/코드가 저장되어 있는 범용 컴퓨터를 프로그램, 구성 및/또는 적응시키기 위해 사용될 수 있다. 이들 명령들은 컴퓨터 시스템(1600)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고, 그리고/또는 소스 및/또는 설치가능 코드의 형태를 취할 수 있으며, 이후 이러한 소스 및/또는 설치가능 코드는 예컨대 다양한 일반적으로 이용가능한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중에서 임의의 것을 사용하여 컴퓨터 시스템(1600) 상에서의 컴파일링 시에 그리고/또는 설치 시에 실행가능 코드의 형태를 취한다.
[0112] 특정 요건들에 따라 실질적인 변화들이 이루어질 수 있다는 것이 당업자들에게 자명할 것이다. 예컨대, 맞춤화된 하드웨어가 또한 사용될 수 있고, 그리고/또는 특정 엘리먼트들이 하드웨어, 애플릿들과 같은 휴대용 소프트웨어 등을 포함하는 소프트웨어, 또는 둘 모두로 구현될 수 있다. 추가로, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들에 대한 연결이 이용될 수 있다.
[0113] 위에서 언급된 바와 같이, 일 양상에서, 일부 실시예들은 본 기술의 다양한 실시예들에 따른 방법들을 수행하기 위해 컴퓨터 시스템(1600)과 같은 컴퓨터 시스템을 이용할 수 있다. 실시예들의 세트에 따르면, 그러한 방법들의 절차들 중 일부 또는 전부는, 작업 메모리(1635)에 포함된 운영체제(1640) 및/또는 다른 코드, 이를테면, 애플리케이션 프로그램(1645)에 통합될 수 있는 하나 이상의 명령들의 하나 이상의 시퀀스들을 프로세서(1610)가 실행하는 것에 대한 응답으로, 컴퓨터 시스템(1600)에 의해 수행된다. 그러한 명령들은 다른 컴퓨터-판독가능 매체, 이를테면, 저장 디바이스(들)(1625) 중 하나 이상으로부터 작업 메모리(1635)로 판독될 수 있다. 단지 예로서, 작업 메모리(1635)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(1610)로 하여금 본원에서 설명된 방법들의 하나 이상의 절차들을 수행하게 할 수 있다. 부가적으로 또는 대안적으로, 본원에서 설명된 방법들의 일부분들은 전문화된 하드웨어를 통해 실행될 수 있다.
[0114] 본원에서 사용된 바와 같이, "머신-판독가능 매체" 및 "컴퓨터-판독가능 매체"란 용어들은 머신으로 하여금 특정 방식으로 동작하게 하는 데이터를 제공하는 것에 참여하는 임의의 매체를 지칭한다. 컴퓨터 시스템(1600)을 사용하여 구현된 실시예에서, 다양한 컴퓨터-판독가능 매체는, 실행을 위해 프로세서(들)(1610)에 명령들/코드를 제공하는 것에 수반될 수 있고, 그리고/또는 그러한 명령들/코드를 저장 및/또는 운반하기 위해 사용될 수 있다. 많은 구현들에서, 컴퓨터-판독가능 매체는 물리적인 그리고/또는 유형의 저장 매체이다. 그러한 매체는 비-휘발성 매체 또는 휘발성 매체의 형태를 취할 수 있다. 비-휘발성 매체는 예컨대 광학 및/또는 자기 디스크들, 이를테면, 저장 디바이스(들)(1625)를 포함한다. 휘발성 매체는 동적 메모리, 이를테면, 작업 메모리(1635)를 포함(이에 제한되지는 않음)한다.
[0115] 물리적인 그리고/또는 유형의 컴퓨터-판독가능 매체의 흔한 형태들은 예컨대 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치카드들, 페이퍼테이프들, 홀들의 패턴들을 갖는 임의의 다른 물리적인 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
[0116] 다양한 형태들의 컴퓨터-판독가능 매체는, 실행을 위해 하나 이상의 명령들의 하나 이상의 시퀀스들을 프로세서(들)(1610)에 운반하는 것에 수반될 수 있다. 단지 예로서, 명령들은 초기에, 원격 컴퓨터의 자기 디스크 및/또는 광학 디스크 상에서 운반될 수 있다. 원격 컴퓨터는, 명령들을 자신의 동적 메모리에 로딩하고, 컴퓨터 시스템(1600)에 의해 수신 및/또는 실행되도록 송신 매체를 통해 신호들로서 명령들을 전송할 수 있다.
[0117] 통신 서브시스템(1630) 및/또는 그 컴포넌트들은 일반적으로, 신호들을 수신할 것이고, 그런 다음, 버스(1605)는 신호들 및/또는 신호들에 의해 운반된 데이터, 명령들 등을 작업 메모리(1635)에 운반할 수 있으며, 이 작업 메모리(1635)로부터, 프로세서(들)(1610)는 명령들을 검색 및 실행한다. 작업 메모리(1635)에 의해 수신된 명령들은 선택적으로, 프로세서(들)(1610)에 의한 실행 전에 또는 그 후에, 비-일시적인 저장 디바이스(1625) 상에 저장될 수 있다.
[0118] 위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 구성들은 다양한 절차들 또는 컴포넌트들을 적절할 때 생략, 치환 또는 부가할 수 있다. 예컨대, 대안적인 구성들에서, 방법들은 설명된 것과는 상이한 순서로 수행될 수 있으며, 그리고/또는 다양한 단계들은 부가, 생략 및/또는 결합될 수 있다. 또한, 특정 구성들에 대하여 설명된 특징들은 다양한 다른 구성들로 결합될 수 있다. 구성들의 상이한 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 또한, 기술은 진화하며, 따라서 엘리먼트들 중 많은 엘리먼트들은 예들이고, 본 개시내용 또는 청구항들의 범위를 제한하지 않는다.
[0119] 특정 세부사항들은, 구현들을 포함하는 예시적인 구성들의 완전한 이해를 제공하기 위해 설명에서 제공된다. 그러나, 구성들은 이들 특정 세부사항들 없이 실시될 수 있다. 예컨대, 잘-알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 구성들을 불명료하게 하는 것을 회피하기 위하여 불필요한 세부사항 없이 도시되었다. 이러한 설명은 예시적인 구성들만을 제공하며, 청구항들의 범위, 적용가능성 또는 구성들을 제한하지 않는다. 오히려, 구성들의 이전 설명은, 설명된 기법들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 다양한 변경들이 본 개시내용의 사상 또는 범위를 벗어나지 않고 엘리먼트들의 기능 및 어레인지먼트에서 이루어질 수 있다.
[0120] 또한, 구성들은, 개략적인 흐름도 또는 블록 다이어그램으로서 묘사되는 프로세스로서 설명될 수 있다. 각각이 순차적인 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 많은 동작들은 동시에 또는 병렬로 수행될 수 있다. 부가하여, 동작들의 순서는 재배열될 수 있다. 프로세스는, 도면에 포함되지 않은 부가적인 단계들을 가질 수 있다. 또한, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션(description) 언어들 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 비-일시적인 컴퓨터-판독가능 매체, 이를테면, 저장 매체에 저장될 수 있다. 프로세서들은 설명된 태스크들을 수행할 수 있다.
[0121] 여러 예시적인 구성들을 설명했지만, 다양한 수정들, 대안적인 구성들 및 등가물들은 본 개시내용의 사상을 벗어나지 않고 사용될 수 있다. 예컨대, 위의 엘리먼트들은 더 큰 시스템의 컴포넌트들일 수 있으며, 여기서, 다른 규칙들이 본 기술의 애플리케이션에 우선할 수 있거나 또는 그렇지 않으면 본 기술의 애플리케이션을 수정할 수 있다. 또한, 위의 엘리먼트들이 고려되기 전에, 그 동안에 또는 그 이후에 다수의 단계들이 착수될 수 있다. 이에 따라서, 위의 설명은 청구항들의 범위를 속박하지 않는다.
[0122] 본원에서 그리고 첨부된 청구항들에서 사용된 바와 같이, 문맥이 달리 명확하게 지시하지 않는 한, 단수 형태들은 복수의 참조들을 포함한다. 따라서, 예컨대, "사용자"에 대한 참조는 복수의 그러한 사용자들을 포함하고, "프로세서"에 대한 참조는 당업자들에게 알려진 하나 이상의 프로세서들 및 이들의 등가물들에 대한 참조를 포함하는 식이다.
[0123] 또한, 본 명세서에서 그리고 다음의 청구항들에서 사용될 때, "포함하다(comprise)", "포함하는(comprising)", "포함하다(contain)", "포함하는(containing)", "포함하다(include(s))" 및 "포함하는(including)"이란 단어들은 진술된 특징들, 정수들, 컴포넌트들 또는 단계들의 존재를 특정하는 것으로 의도되지만, 이들은 하나 이상의 다른 특징들, 정수들, 컴포넌트들, 단계들, 행동들 또는 그룹들의 존재 또는 부가를 배제하지 않는다.
[0124] 또한, 본원에서 설명된 예들 및 실시예들은 예시적인 목적들만을 위한 것이며, 이를 고려한 다양한 수정들 또는 변경들이 당업자들에게 제안될 것이며 본 출원의 사상 및 권한 그리고 첨부된 청구항들의 범위 내에 포함되어야 한다는 것이 이해된다.

Claims (20)

  1. 제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법으로서,
    상기 제1 센서 및 상기 제2 센서를 사용하여 센서 데이터를 캡처하는 단계 ―상기 디바이스는 상기 제1 센서와 상기 제2 센서 사이의 공간 관계를 모델링하기 위한 교정 프로파일을 유지하고, 상기 교정 프로파일은 병진(translation) 파라미터 및 회전 파라미터를 포함함―;
    제1 시간에 상기 교정 프로파일과 연관된 교정 레벨을 결정하는 단계;
    상기 교정 레벨에 기반하여, 교정 프로세스를 수행하도록 결정하는 단계; 및
    교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고
    상기 병진 파라미터 및 상기 회전 파라미터 중 하나 또는 둘 모두를, 상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 단계
    를 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  2. 제1 항에 있어서,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 단계는,
    상기 회전 파라미터만을 상기 교정된 회전 파라미터로 대체하는 단계
    를 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  3. 제2 항에 있어서,
    제2 시간에 상기 교정 프로파일과 연관된 제2 교정 레벨을 결정하는 단계;
    상기 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 단계; 및
    제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터를 생성함으로써, 그리고
    상기 병진 파라미터 및 상기 회전 파라미터를, 상기 제2 교정된 병진 파라미터 및 상기 제2 교정된 회전 파라미터로 대체함으로써,
    상기 제2 시간에 상기 제2 교정 프로세스를 수행하는 단계
    를 더 포함하며,
    상기 교정 레벨은 제1 교정 레벨이고, 상기 교정 프로세스는 제1 교정 프로세스이며, 상기 회전 파라미터는 제1 교정된 회전 파라미터인,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  4. 제3 항에 있어서,
    상기 제1 교정 레벨에 기반하여, 상기 제1 교정 프로세스를 수행하도록 결정하는 단계는, 상기 제1 교정 레벨이 교정 임계치를 초과한다고 결정하는 단계를 포함하며, 그리고
    상기 제2 교정 레벨에 기반하여, 상기 제2 교정 프로세스를 수행하도록 결정하는 단계는, 상기 제2 교정 레벨이 상기 교정 임계치 미만이라고 결정하는 단계를 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  5. 제1 항에 있어서,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 단계는,
    상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 둘 모두를 생성하는 단계, 및
    상기 병진 파라미터 및 상기 회전 파라미터 둘 모두를, 상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터로 대체하는 단계
    를 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  6. 제1 항에 있어서,
    상기 센서 데이터는,
    상기 제1 센서를 사용하여 캡처된 하나 이상의 제1 이미지들, 및
    상기 제2 센서를 사용하여 캡처된 하나 이상의 제2 이미지들
    을 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  7. 제1 항에 있어서,
    상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 중 하나 또는 둘 모두는, 상기 센서 데이터를 사용하여 생성되는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  8. 제1 항에 있어서,
    상기 교정 레벨은 상기 센서 데이터에 기반하여 결정되는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  9. 제1 항에 있어서,
    상기 제1 센서 및 상기 제2 센서와 별개인 부가 센서를 사용하여 부가 센서 데이터를 캡처하는 단계
    를 더 포함하고,
    상기 교정 레벨은 상기 부가 센서 데이터에 기반하여 결정되는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 방법.
  10. 디바이스로서,
    센서 데이터를 캡처하도록 구성된 제1 센서 및 제2 센서;
    상기 제1 센서와 상기 제2 센서 사이의 공간 관계를 모델링하는 교정 프로파일을 저장하도록 구성된 메모리 디바이스 ―상기 교정 프로파일은 병진 파라미터 및 회전 파라미터를 포함함―; 및
    상기 제1 센서, 상기 제2 센서 및 상기 메모리 디바이스에 커플링된 프로세서
    를 포함하고,
    상기 프로세서는,
    제1 시간에 상기 교정 프로파일과 연관된 교정 레벨을 결정하는 동작;
    상기 교정 레벨에 기반하여, 교정 프로세스를 수행하도록 결정하는 동작; 및
    교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고
    상기 병진 파라미터 및 상기 회전 파라미터 중 하나 또는 둘 모두를, 상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 동작
    을 포함하는 동작들을 수행하도록 구성되는,
    디바이스.
  11. 제10 항에 있어서,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 동작은,
    상기 회전 파라미터만을 상기 교정된 회전 파라미터로 대체하는 동작
    을 포함하는,
    디바이스.
  12. 제11 항에 있어서,
    상기 동작들은,
    제2 시간에 상기 교정 프로파일과 연관된 제2 교정 레벨을 결정하는 동작;
    상기 제2 교정 레벨에 기반하여, 제2 교정 프로세스를 수행하도록 결정하는 동작; 및
    제2 교정된 병진 파라미터 및 제2 교정된 회전 파라미터를 생성함으로써, 그리고
    상기 병진 파라미터 및 상기 회전 파라미터를, 상기 제2 교정된 병진 파라미터 및 상기 제2 교정된 회전 파라미터로 대체함으로써,
    상기 제2 시간에 상기 제2 교정 프로세스를 수행하는 동작
    을 더 포함하며,
    상기 교정 레벨은 제1 교정 레벨이고, 상기 교정 프로세스는 제1 교정 프로세스이며, 상기 회전 파라미터는 제1 교정된 회전 파라미터인,
    디바이스.
  13. 제12 항에 있어서,
    상기 제1 교정 레벨에 기반하여, 상기 제1 교정 프로세스를 수행하도록 결정하는 동작은, 상기 제1 교정 레벨이 교정 임계치를 초과한다고 결정하는 동작을 포함하며, 그리고
    상기 제2 교정 레벨에 기반하여, 상기 제2 교정 프로세스를 수행하도록 결정하는 동작은, 상기 제2 교정 레벨이 상기 교정 임계치 미만이라고 결정하는 동작을 포함하는,
    디바이스.
  14. 제10 항에 있어서,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 동작은,
    상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 둘 모두를 생성하는 동작, 및
    상기 병진 파라미터 및 상기 회전 파라미터 둘 모두를, 상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터로 대체하는 동작
    을 포함하는,
    디바이스.
  15. 제10 항에 있어서,
    상기 센서 데이터는,
    상기 제1 센서를 사용하여 캡처된 하나 이상의 제1 이미지들, 및
    상기 제2 센서를 사용하여 캡처된 하나 이상의 제2 이미지들
    을 포함하는,
    디바이스.
  16. 제10 항에 있어서,
    상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 중 하나 또는 둘 모두는, 상기 센서 데이터를 사용하여 생성되는,
    디바이스.
  17. 제10 항에 있어서,
    상기 교정 레벨은 상기 센서 데이터에 기반하여 결정되는,
    디바이스.
  18. 제10 항에 있어서,
    부가 센서 데이터를 캡처하도록 구성된 부가 센서
    를 더 포함하고,
    상기 부가 센서는 상기 제1 센서 및 상기 제2 센서와 별개이며, 상기 교정 레벨은 상기 부가 센서 데이터에 기반하여 결정되는,
    디바이스.
  19. 제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 비-일시적인 컴퓨터-판독가능 매체로서,
    상기 비-일시적인 컴퓨터-판독가능 매체는, 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하는 명령들을 포함하고,
    상기 동작들은,
    상기 제1 센서 및 상기 제2 센서를 사용하여 센서 데이터를 캡처하는 동작 ―상기 디바이스는 상기 제1 센서와 상기 제2 센서 사이의 공간 관계를 모델링하기 위한 교정 프로파일을 유지하고, 상기 교정 프로파일은 병진 파라미터 및 회전 파라미터를 포함함―;
    제1 시간에 상기 교정 프로파일과 연관된 교정 레벨을 결정하는 동작;
    상기 교정 레벨에 기반하여, 교정 프로세스를 수행하도록 결정하는 동작; 및
    교정된 병진 파라미터 및 교정된 회전 파라미터 중 하나 또는 둘 모두를 생성함으로써, 그리고
    상기 병진 파라미터 및 상기 회전 파라미터 중 하나 또는 둘 모두를, 상기 교정된 병진 파라미터 및 상기 교정된 회전 파라미터 중 하나 또는 둘 모두로 대체함으로써,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 동작
    을 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 비-일시적인 컴퓨터-판독가능 매체.
  20. 제19 항에 있어서,
    상기 제1 시간에 상기 교정 프로세스를 수행하는 동작은,
    상기 회전 파라미터만을 상기 교정된 회전 파라미터로 대체하는 동작
    을 포함하는,
    제1 센서 및 제2 센서를 갖는 디바이스를 교정하기 위한 비-일시적인 컴퓨터-판독가능 매체.
KR1020207019785A 2017-12-21 2018-12-21 증강 현실 디바이스를 교정하기 위한 방법 KR102627352B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762609242P 2017-12-21 2017-12-21
US62/609,242 2017-12-21
PCT/US2018/067214 WO2019126714A1 (en) 2017-12-21 2018-12-21 Method for calibrating an augmented reality device

Publications (2)

Publication Number Publication Date
KR20200100102A true KR20200100102A (ko) 2020-08-25
KR102627352B1 KR102627352B1 (ko) 2024-01-18

Family

ID=66951379

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207019785A KR102627352B1 (ko) 2017-12-21 2018-12-21 증강 현실 디바이스를 교정하기 위한 방법

Country Status (9)

Country Link
US (2) US10854165B2 (ko)
EP (1) EP3729693B1 (ko)
JP (1) JP7046189B2 (ko)
KR (1) KR102627352B1 (ko)
CN (1) CN111512574B (ko)
AU (1) AU2018389234B2 (ko)
CA (1) CA3083350A1 (ko)
IL (1) IL275383B1 (ko)
WO (1) WO2019126714A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244649B2 (en) 2017-12-21 2022-02-08 Magic Leap, Inc. Calibration of augmented reality device

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552497B2 (en) 2016-08-16 2020-02-04 International Business Machines Corporation Unbiasing search results
US20190057180A1 (en) * 2017-08-18 2019-02-21 International Business Machines Corporation System and method for design optimization using augmented reality
WO2020014700A1 (en) 2018-07-13 2020-01-16 Magic Leap, Inc. Systems and methods for display binocular deformation compensation
WO2020131277A1 (en) 2018-12-20 2020-06-25 Snap Inc. Flexible eyewear device with dual cameras for generating stereoscopic images
US10827116B1 (en) * 2019-08-26 2020-11-03 Juan Ramon Terven Self calibration system for moving cameras
US11846782B1 (en) * 2020-04-13 2023-12-19 Apple Inc. Electronic devices with deformation sensors
EP3901913A1 (en) * 2020-04-22 2021-10-27 Continental Automotive GmbH Single camera calibration
US11391596B2 (en) * 2020-04-28 2022-07-19 Vgis Inc. System and method for converging mediated reality positioning data and geographic positioning data
WO2022066486A1 (en) * 2020-09-23 2022-03-31 Magic Leap, Inc. Joint camera and inertial measurement unit calibration
US20240106998A1 (en) * 2020-12-04 2024-03-28 Magic Leap, Inc. Miscalibration detection for virtual reality and augmented reality systems
CN114765667A (zh) * 2021-01-13 2022-07-19 安霸国际有限合伙企业 用于多视图拼接的固定图案校准
KR102603467B1 (ko) * 2021-07-12 2023-11-17 클레이웍스 주식회사 디지털 트윈 연동 증강현실 카메라를 통한 공간 형성 및 측위 오차 보정 시스템 및 그 방법
WO2023150614A1 (en) * 2022-02-02 2023-08-10 Google Llc Case for smartglasses with calibration capabilities
US11887513B2 (en) 2022-02-02 2024-01-30 Google Llc Case for smartglasses with calibration capabilities

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160217614A1 (en) * 2015-01-28 2016-07-28 CCP hf. Method and System for Receiving Gesture Input Via Virtual Control Objects
US20170295358A1 (en) * 2016-04-06 2017-10-12 Facebook, Inc. Camera calibration system
US20170292828A1 (en) * 2014-09-10 2017-10-12 Faro Technologies, Inc. Method for optically measuring three-dimensional coordinates and calibration of a three-dimensional measuring device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000182026A (ja) * 1998-12-14 2000-06-30 Ricoh Co Ltd 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4807194B2 (ja) * 2006-09-06 2011-11-02 カシオ計算機株式会社 画像処理装置及びプログラム
EP2154650A1 (en) 2008-08-12 2010-02-17 IEE INTERNATIONAL ELECTRONICS & ENGINEERING S.A. 3D time-of-flight camera system and position/orientation calibration method therefor
US10198865B2 (en) 2014-07-10 2019-02-05 Seiko Epson Corporation HMD calibration with direct geometric modeling
US9876954B2 (en) * 2014-10-10 2018-01-23 Iec Infrared Systems, Llc Calibrating panoramic imaging system in multiple dimensions
US10152119B2 (en) * 2014-12-11 2018-12-11 Htc Corporation Head-mounted display apparatus and calibration method thereof
US10762651B2 (en) 2016-09-30 2020-09-01 Magic Leap, Inc. Real time calibration for time-of-flight depth measurement
JP7046189B2 (ja) 2017-12-21 2022-04-01 マジック リープ, インコーポレイテッド 拡張現実デバイスを較正する方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170292828A1 (en) * 2014-09-10 2017-10-12 Faro Technologies, Inc. Method for optically measuring three-dimensional coordinates and calibration of a three-dimensional measuring device
US20160217614A1 (en) * 2015-01-28 2016-07-28 CCP hf. Method and System for Receiving Gesture Input Via Virtual Control Objects
US20170295358A1 (en) * 2016-04-06 2017-10-12 Facebook, Inc. Camera calibration system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244649B2 (en) 2017-12-21 2022-02-08 Magic Leap, Inc. Calibration of augmented reality device

Also Published As

Publication number Publication date
US11244649B2 (en) 2022-02-08
US20190197982A1 (en) 2019-06-27
AU2018389234A1 (en) 2020-06-04
IL275383A (en) 2020-07-30
JP7046189B2 (ja) 2022-04-01
KR102627352B1 (ko) 2024-01-18
EP3729693B1 (en) 2023-09-06
WO2019126714A1 (en) 2019-06-27
CA3083350A1 (en) 2019-06-27
EP3729693A4 (en) 2021-01-20
US20210118401A1 (en) 2021-04-22
IL275383B1 (en) 2024-04-01
AU2018389234B2 (en) 2023-06-01
JP2021507393A (ja) 2021-02-22
CN111512574B (zh) 2023-04-11
US10854165B2 (en) 2020-12-01
CN111512574A (zh) 2020-08-07
EP3729693A1 (en) 2020-10-28

Similar Documents

Publication Publication Date Title
KR102627352B1 (ko) 증강 현실 디바이스를 교정하기 위한 방법
JP7068562B2 (ja) 拡張現実データを記録するための手法
US10896497B2 (en) Inconsistency detecting system, mixed-reality system, program, and inconsistency detecting method
EP1708139B1 (en) Calibration method and apparatus
JP6008397B2 (ja) 光学式シースルー型hmdを用いたarシステム
JP2018009836A (ja) プログラム、頭部装着型表示装置、キャリブレーション方法
JP2018106661A (ja) 不整合検出システム、複合現実システム、プログラム及び不整合検出方法
JP6061334B2 (ja) 光学式シースルー型hmdを用いたarシステム
US20240061251A1 (en) Low motion to photon latency rapid target acquisition
CN110969706B (zh) 增强现实设备及其图像处理方法、系统以及存储介质
JP4926598B2 (ja) 情報処理方法、情報処理装置
JP6975001B2 (ja) 傾き測定装置及び傾き測定方法
KR20150081975A (ko) 하이브리드 센서를 이용한 착용형 디스플레이 장치의 자세 예측 장치
US11854227B2 (en) Depth-from-stereo bending correction using visual inertial odometry features
US20230112148A1 (en) Frame Selection for Image Matching in Rapid Target Acquisition
JP2024034143A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant