KR20220009393A - 이미지 기반 로컬화 - Google Patents
이미지 기반 로컬화 Download PDFInfo
- Publication number
- KR20220009393A KR20220009393A KR1020217037729A KR20217037729A KR20220009393A KR 20220009393 A KR20220009393 A KR 20220009393A KR 1020217037729 A KR1020217037729 A KR 1020217037729A KR 20217037729 A KR20217037729 A KR 20217037729A KR 20220009393 A KR20220009393 A KR 20220009393A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- camera device
- pose
- images
- remote device
- Prior art date
Links
- 230000004807 localization Effects 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000033001 locomotion Effects 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G06K9/6201—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
이미지 기반 로컬화를 위한 방법은 카메라 디바이스에서, 현실 세계 환경의 복수의 이미지를 캡처하는 단계를 포함한다. 복수의 이미지 중 제1 이미지에서 이미지 피처의 제1 세트가 검출된다. 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출되기 전에, 복수의 이미지에서 검출된 이미지 피처에 기초하여 카메라 디바이스의 포즈를 추정하도록 구성된 원격 디바이스에 이미지 피처의 제1 세트가 전송된다. 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출됨에 따라, 이미지 피처의 추가 세트가 원격 디바이스에 전송된다. 원격 디바이스로부터 카메라 디바이스의 추정 포즈가 수신된다.
Description
이미지 기반 로컬화 기법은 모바일 컴퓨팅 디바이스, 로봇, 드론 및 기타 디바이스에 의해 활용되어 물리적 환경에서 그들의 위치와 방향을 추정할 수 있다. 예를 들어, 디바이스에 의해 캡처된 하나 이상의 이미지는 공간의 3D 재구성을 나타내는 사전 컴퓨팅된 맵과 비교될 수 있다.
이 요약은 아래의 상세한 설명에서 추가로 설명되는 단순화된 형식으로 개념 선택을 소개하기 위해 제공된다. 이 요약은 청구된 출원 대상의 주요 기능 또는 필수 특징을 식별하기 위한 것이 아니며, 청구된 출원 대상의 범위를 제한하는 데 사용되기 위한 것도 아니다. 더욱이, 청구된 출원 대상은 본 개시의 임의의 부분에서 언급된 임의의 또는 모든 단점을 해결하는 구현으로 제한되지 않는다.
이미지 기반 로컬화를 위한 방법은 카메라 디바이스에서 현실 세계 환경의 복수의 이미지를 캡처하는 단계를 포함합니다. 복수의 이미지 중 첫 번째 이미지에서 이미지 특징의 첫 번째 세트가 감지됩니다. 이미지 특징의 추가 세트가 복수의 다른 이미지에서 검출되기 전에, 이미지 특징의 제1 세트는 복수의 이미지에서 검출된 이미지 특징에 기초하여 카메라 디바이스의 포즈를 추정하도록 구성된 원격 디바이스로 전송된다. 이미지 특징의 추가 세트가 복수의 다른 이미지에서 검출됨에 따라, 이미지 특징의 추가 세트가 원격 디바이스로 전송된다. 원격 디바이스에서 카메라 디바이스의 예상 포즈를 수신합니다.
도 1a 및 도 1b는 현실 세계 환경의 복수의 이미지를 캡처하는 것을 개략적으로 도시한다.
도 2는 이미지 기반 로컬화를 위한 예시적인 방법을 도시한다.
도 3은 카메라 디바이스와 원격 디바이스 간의 데이터 교환을 개략적으로 도시한다.
도 4는 이미지 기반 로컬화를 위한 예시적인 흐름도를 도시한다.
도 5는 이미지 기반 로컬화 동안 카메라 디바이스와 원격 디바이스 간에 교환되는 데이터의 예를 개략적으로 도시한다.
도 6은 예시적인 컴퓨팅 시스템을 개략적으로 도시한다.
도 2는 이미지 기반 로컬화를 위한 예시적인 방법을 도시한다.
도 3은 카메라 디바이스와 원격 디바이스 간의 데이터 교환을 개략적으로 도시한다.
도 4는 이미지 기반 로컬화를 위한 예시적인 흐름도를 도시한다.
도 5는 이미지 기반 로컬화 동안 카메라 디바이스와 원격 디바이스 간에 교환되는 데이터의 예를 개략적으로 도시한다.
도 6은 예시적인 컴퓨팅 시스템을 개략적으로 도시한다.
다양한 디바이스 및 관련 기술이 이미지 기반 로컬화 기법을 활용할 수 있다. 예는 증강 현실 및/또는 가상 현실 경험을 제공하는 헤드 장착형 디스플레이(head-mounted display: HMD) 디바이스와 같은 착용형 컴퓨팅 디바이스, 모바일 디바이스(예컨대, 스마트폰, 태블릿), 로봇 머신 및 자율 주행 차량을 포함할 수 있다. 이들 및 다른 디바이스는 이미지 기반 로컬화 기법을 사용하여 현실 세계 환경에서 그들의 위치 및 방향(즉, 포즈)을 결정할 수 있다. 본 명세서에서, 이러한 디바이스는 "카메라 디바이스"로서 지칭될 것이다. 카메라 디바이스는 전형적으로 적어도 하나의 카메라를 포함하거나 이와 인터페이싱하도록 구성될 것이지만, 카메라 디바이스는 임의의 적절한 하드웨어 구성을 가질 수 있다.
이미지 기반 로컬화에 대한 일부 접근 방식은 현실 세계 환경의 이전의 디지털 3차원(3D) 맵 또는 장면 모델에 대한 지식을 활용한다. 디지털 환경 맵은 본질적으로 기하학적 데이터를 포함하는 공간 데이터베이스이다. 몇몇 예에서, 기하학적 데이터는 현실 세계 환경의 3D 포인트 클라우드 재구성을 형성하기 위해 3D 공간 전체에 분포된 3차원(예를 들어, x, y, z)으로 정의된 포인트를 포함한다. 3D 포인트는 맵을 구성하는 데 사용되는 소스 이미지 또는 비디오로부터 추출된 피처 디스크립터(예컨대, 다차원 벡터)와 연관될 수 있다. 따라서, 3차원 포인트는 디지털 환경 맵의 맵 피처로서 지칭될 수 있다.
현실 세계 환경의 디지털 환경 맵이 주어지고 카메라 디바이스에 의해 캡처된 하나 이상의 이미지 또는 비디오를 사용하면, 이미지 기반 로컬화 작업은 3D 위치(x, y, z) 및 3D 방향(롤(roll), 피치(pitch), 요(yaw))을 추정할 수 있다. 카메라 로컬화 알고리즘은 이 작업을 두 단계로 해결할 수 있는데, 첫 번째는 캡처된 이미지(들)의 2D 포인트 피처를 3D 맵에 3D 포인트로서 저장된 3D 맵 피처에 매칭하는 것이다. 다음으로, 카메라의 6 자유도(6DOF) 포즈는 2D 포인트 대 3D 포인트 매칭 및 기본 좌표를 사용하여 컴퓨팅될 수 있다.
몇몇 경우에, 카메라 로컬화는 이미지를 캡처하는 데 사용되는 카메라 디바이스가 아닌 다른 디바이스에 의해 수행될 수 있으며, 이는 잠재적으로 카메라 디바이스의 처리, 배터리 및/또는 저장 리소스를 보존한다. 예를 들어, 카메라 디바이스에 의해 캡처된 이미지는 현실 세계 환경의 디지털 환경 맵에 액세스하고 카메라 디바이스의 포즈를 추정하는 데 사용되는 처리 단계를 수행하는 원격 디바이스(예컨대, 서버)로 전송될 수 있다. 또한, 원격 디바이스로 이미지를 전송하면 디지털 환경 맵을 제3자와 공유해야 할 필요성이 줄어든다.
본 개시는 이러한 맥락에서 이미지 기반 로컬화를 주로 설명하며, 여기서 이미지는 카메라 디바이스로부터 원격 디바이스로 전송되어 카메라 디바이스의 포즈를 추정한다. 그러나, 본 명세서에 설명된 이미지 기반 로컬화 기법은 현실 세계 환경의 이미지를 캡처하고, 디지털 환경 맵을 유지하며, 자신의 포즈를 추정하기 위해 이미지 기반 로컬화를 수행하는 단일 디바이스에서 구현될 수 있다.
때때로 단일 이미지를 기반으로 이미지 기반 로컬화를 수행하는 것이 가능하지만, 보통은 동시에(예컨대, 상이한 관점에서) 및/또는 연속적으로(예컨대, 동일한 관점에서) 캡처된 몇몇 상이한 이미지를 사용하는 것이 바람직하다. 이는 카메라 디바이스에 대한 보다 정확한 포즈 추정을 출력하는 데 사용할 수 있는 추가 데이터를 제공할 수 있다. 예를 들어, 현실 세계 환경의 단일 이미지는 경우에 따라서는 적절하게 높은 신뢰도로 하나의 특정 포즈로 카메라 디바이스를 리졸브(resolve)하기에 충분한 세부사항을 (예컨대, 고유한 이미지 피처의 형태로) 포함하지 않을 수 있다. 이미지 기반 로컬화에 현실 세계 환경의 이미지를 더 많이 사용함으로써, 이미지가 상대적으로 높은 신뢰도로 카메라 디바이스의 포즈를 추정하기에 충분한 세부사항을 집합적으로 포함할 가능성이 비교적 높다. 이 문제는 소정의 현실 세계 환경에서 특히 두드러질 수 있다. 예를 들어, 시각적으로 유사한 복수의 행의 창문을 포함하는 건물 외관 앞에서 촬영한 이미지는 추가 세부사항 없이는 어떠한 특정 포즈와도 조화를 이루기가 어려울 수 있다.
그러나, 동일한 현실 세계 환경의 여러 이미지를 기반으로 이미지 기반 로컬화를 수행하면 상이한 문제 세트가 발생할 수 있다. 예를 들어, 단일 이미지 시나리오에서, 카메라 디바이스는 이미지를 캡처하고, 이미지로부터 이미지 피처를 추출하며, 이미지(또는 이미지 피처)를 원격 디바이스로 전송할 수 있으며, 그 후 원격 디바이스가 카메라 디바이스의 포즈를 추정할 수 있다. 이와 대조적으로, 다중 이미지 시나리오에서는, 여러 이미지를 캡처하고, 여러 이미지 각각으로부터 이미지 피처를 추출하며, 각 이미지(또는 이미지 피처 세트)를 원격 디바이스로 전송하는 데 상대적으로 더 많은 시간이 걸릴 수 있으며, 그 후 더 많은 이미지 피처가 제공되면 더 많은 계산이 필요할 수 있으므로, 카메라 디바이스의 포즈를 추정하는 데 상대적으로 더 오래 걸릴 수 있다.
따라서, 본 개시는 카메라 디바이스의 포즈를 추정하는 데 현실 세계 환경의 복수의 이미지를 사용하는 이미지 기반 로컬화를 위한 기법에 관한 것이다. 그러나, 보다 상세하게 논의되는 바와 같이, 이미지 기반 로컬화 프로세스에 필요한 시간은, 엄격하고 겹치지 않게 연속적으로 모든 단계를 수행하기보다는 프로세스의 단계를 동시에 수행함으로써 본 개시의 실시예를 사용하여 감소될 수 있다. 다시 말해, 하나의 비제한적인 예에서, 카메라 디바이스는 현실 세계 환경의 복수의 이미지를 촬영하고, 다른 이미지가 캡처되기 전에 특정 이미지로부터 이미지 피처 추출을 시작하며, 이미지 피처가 모든 이미지에 대해 추출된 이후보다는 이미지 피처가 검출되자마자 이들을 원격 디바이스로 전송할 수 있다. 유사하게, 원격 디바이스는 카메라 디바이스가 현실 세계 환경의 이미지로부터 추가 이미지 피처를 여전히 추출하고 있는 경우에도 적어도 몇몇 이미지 피처를 수신하면 카메라 디바이스의 포즈를 추정하려는 시도를 시작할 수 있다. 특히, 이는 이미지 피처가 카메라 디바이스, 원격 디바이스 또는 기타 적절한 디바이스에서 추출되는지 여부에 관계없이 수행될 수 있다. 더욱이, 원격 디바이스는 단일 특정 이미지에서 모든 이미지 피처가 검출되기를 기다리지 않고, 심지어 단일 이미지 피처가 검출되자마자 카메라 디바이스의 포즈 추정을 시도하기 시작할 수 있다.
이러한 방식으로, 이미지 기반 로컬화는 잠재적인 단점(예컨대, 추정된 포즈를 반환하기 전에 잠재적으로 더 높은 지연)을 적어도 부분적으로 완화하면서 복수의 이미지를 사용하는 이점(예컨대, 더 높은 정확도의 포즈 추정)을 실현할 수 있다. 예를 들어, 본 명세서에 설명된 이미지 기반 로컬화 기법은 카메라 디바이스의 포즈를 정확하게 결정하기 위해 카메라 디바이스에 대한 더 적은 로컬 처리 단계가 필요하기 때문에 카메라 디바이스의 작동 효율성을 향상시킬 수 있다. 이것은 카메라 디바이스의 전력과 처리 능력을 모두 보존할 수 있어 이러한 전력이 다른 작업에 대신 인가될 수 있다. 더욱이, 본 명세서에 설명된 기법을 통해, 현실 세계 환경의 모든 캡처된 이미지가 처리되기 전에 포즈 추정이 생성될 수 있기 때문에 카메라 디바이스의 포즈를 결정하는 데 필요한 시간도 감소될 수 있다. 몇몇 경우에, 현실 세계 환경의 단일 이미지기 처리되기 전에도 포즈 추정이 생성될 수 있다.
도 1a는 구조체(104)를 포함하는 현실 세계 환경(102)의 사용자(100)를 개략적으로 도시한다. 사용자(100)는 하나 이상의 카메라(108)가 장착된 카메라 디바이스(106)를 가지고 있다. 이 예에서, 카메라 디바이스는 HMD의 형태를 취한다. 그러나, 위에서 논의된 바와 같이, 카메라 디바이스는 임의의 적절한 형태를 취할 수 있고 임의의 적절한 하드웨어 리소스 세트를 포함할 수 있다.
도 1b는 현실 세계 환경(102)의 복수의 이미지(110A-11OC)를 도시한다. 이러한 이미지는 현실 세계 환경에 대한 카메라 디바이스의 포즈를 추정하는 데 사용될 수 있다. 카메라 디바이스가 증강 또는 가상 현실 디바이스인 경우, 이는 예를 들어, 현실 세계 환경 내에서 고정된 위치(즉, 세계 고정)를 가정하는 것 같은 또는 사용자에 대해 고정된 위치(즉, 신체 고정)를 유지하는 것 같이, 카메라 디바이스가 원하는 현실 세계 인식 포지셔닝으로 가상 이미지를 표시할 수 있게 할 수 있다. 그러나, 임의의 적절한 카메라 디바이스가 사용될 수 있고, 그러한 카메라 디바이스는 임의의 적절한 목적을 위해 추정된 카메라 포즈를 사용할 수 있다.
또한, 이미지(110A)는 복수의 이미지 피처를 포함하는 것으로 도시되며, 검은색 원(112)으로 표시된다. 아래에서 더 자세히 설명되는 바와 같이, 그러한 이미지 피처는 임의의 적절한 방식으로 이미지에서 검출될 수 있다. 또한, 본 명세서에서 사용되는 "이미지 피처"라는 용어는 이미지의 하나 이상의 부분을 설명하거나 달리 표현하는 컴퓨터 데이터를 지칭한다. 즉, 검은색 원은 이미지(110A)에서 이미지 피처가 검출되는 위치를 나타내는 데 사용되지만, 이는 단지 시각적 명확성을 위한 것일 뿐이다. 실제 구현에서 "이미지 피처"는 임의의 포인트에서 자체적으로 표시되거나 그래픽으로 표현되지 않고 단지 이미지의 시각적 콘텐츠를 설명할 수 있다.
위에서 논의된 바와 같이, 카메라 디바이스(106)에 의해 캡처된 현실 세계 환경(102)의 이미지(110A-110C)는 카메라 포즈 추정을 위해 원격 디바이스(예를 들어, 서버)로 전송될 수 있다. 예를 들어, 원격 디바이스는 현실 세계 환경의 디지털 환경 맵을 미리 획득했을 수 있으며, 맵은 복수의 맵 피처를 포함한다. 맵 피처는 현실 세계 환경의 재구성을 나타내는 3D 포인트 클라우드로서 특징지어질 수 있다. 디지털 환경 맵의 맵 피처와 이미지에서 검출된 이미지 피처 간의 대응 관계를 결정함으로써, 이미지(110A-110C)가 캡처되었던 시간에 카메라 디바이스의 포즈가 추정될 수 있다.
그러나, 위에서 논의한 바와 같이, 카메라 디바이스의 포즈를 추정하는 데 복수의 이미지를 사용하면 결과적인 포즈 추정의 정확도가 증가할 수 있는 한편, 복수의 이미지를 사용하면 프로세스를 완료하는 데 필요한 전체 시간도 증가할 수 있다. 이에 따라, 도 2는 사용될 때 복수의 이미지로부터 카메라 디바이스의 포즈를 추정하는 데 필요한 시간을 적어도 부분적으로 감소시킬 수 있는 이미지 기반 로컬화를 위한 예시적인 방법(200)을 도시한다. 방법(200)은 카메라 디바이스와 원격 디바이스 간의 통신을 포함한다. 그러나, 특히 카메라 디바이스와 원격 디바이스는 모두 임의의 적절한 하드웨어 구성과 폼 팩터를 가질 수 있다. 또한, 많은 경우에, 카메라 디바이스와 원격 디바이스에서 수행되는 동작이 실질적으로 동시에 발생할 수 있다. 아래에서 더 자세히 논의되는 바와 같이, 이미지 캡처, 이미지 피처의 검출 및 카메라 포즈의 추정이 적어도 부분적으로 겹칠 수 있으므로 실제 세계의 모든 이미지가 캡처되기 전에 또는 캡처된 이미지의 모든 이미지 피처가 검출되기 전에 카메라 디바이스에 대한 포즈가 추정된다.
또한, "원격 디바이스"라는 용어는 카메라 디바이스와 인터페이싱하고 이미지 기반 로컬화를 수행하여 카메라 디바이스의 포즈를 추정하도록 구성된 임의의 적절한 컴퓨팅 디바이스를 지칭한다. 카메라 디바이스와 원격 디바이스 사이에 임의의 적합한 물리적 분리가 있을 수 있다. 카메라 디바이스와 원격 디바이스 간의 통신은 임의의 적절한 방식으로 달성될 수 있다. 예로서, 카메라 디바이스와 원격 디바이스는 유선 연결을 사용하여 통신 가능하게 결합될 수 있거나, Wi-Fi, 블루투스, 또는 임의의 다른 적절한 무선 통신 프로토콜을 통한 무선 연결을 사용할 수 있다. 네트워크를 통해 통신이 발생하는 경우, 네트워크는 LAN(Local Area Network), WAN(Wide Area Network), 유선 네트워크, 무선 네트워크, 개인 영역 네트워크, 셀룰러 네트워크 또는 이들의 조합의 형태를 취할 수 있으며, 인터넷을 포함할 수 있다. 또한, 위에서 논의한 바와 같이, 몇몇 경우에 이미지 기반 로컬화는 추가 디바이스를 포함하지 않고 단일 디바이스(예컨대, 카메라 디바이스)에서 수행될 수 있다.
202에서, 방법(200)은 현실 세계 환경의 복수의 이미지를 캡처하는 단계를 포함한다. 이것은 카메라 디바이스(106)는 현실 세계 환경(102)의 복수의 이미지(110A-110C)를 캡처하는 도 1에 관하여 예시된다. 또한, 도 3은 복수의 이미지(304A 및 304B)를 캡처하기 위해 하나 이상의 카메라(302)를 사용하도록 구성된 예시적인 카메라 디바이스(300)를 개략적으로 도시한다.
몇몇 예에서, 카메라(들)(302)는 하나 이상의 RGB 카메라, IR 카메라, 및/또는 깊이 카메라(예를 들어, 비행 시간(time-of-flight), 구조화 광, 또는 다른 형태의 깊이 카메라)를 포함할 수 있다. 카메라 디바이스는 단일 카메라, 카메라 쌍(예컨대, 입체 카메라 쌍), 복수의 카메라를 포함하는 카메라 어레이 등을 포함하는 임의의 적절한 수의 카메라를 포함할 수 있다. 또한, 카메라 디바이스는 복수의 개별 유형의 카메라, 예컨대, RGB 카메라 및 깊이 카메라를 포함할 수 있다.
몇몇 경우에, 카메라 디바이스에 의해 캡처된 복수의 이미지는 실질적으로 한 번에 캡처될 수 있다. 예를 들어, 4개의 온보드 카메라가 있는 디바이스에서, 4개의 카메라 모두가 실질적으로 동시에 활성화되어 서로 다른 관점의 4개의 상이한 이미지가 동시에 캡처될 수 있다. 이러한 이미지는 적절한 이미지 편집 기법을 사용하여 선택적으로 단일 합성 이미지로 결합될 수 있습니다. 카메라 디바이스의 다양한 하드웨어 구성요소가 약간 다른 속도로 작동하거나 관련된 지연 요구사항이 약간 다를 수 있다는 점을 고려하면, 복수의 이미지를 정확히 동시에 캡처할 필요는 없으며 오히려 함께 충분히 가깝게 캡처되어 카메라 디바이스의 포즈가 다양한 이미지의 캡처 간에 의미 있게 변경될 가능성이 거의 없다. 예를 들어, 1/1000 초의 기간에, 카메라 디바이스의 포즈가 다운스트림 포즈 추정 단계를 방해할 정도로 변경될 가능성은 거의 없다. 몇몇 구현에서, 1/10 초 간격으로 캡처된 이미지조차도 최종 추정된 포즈에 대한 정밀도 요구사항에 따라 "실질적으로 동시에" 캡처된 것으로 설명될 수 있다.
카메라 디바이스가 복수의 카메라를 포함하는 경우, 복수의 카메라는 서로에 대해 그리고 카메라 디바이스의 다른 하드웨어 구성요소에 대해 임의의 적절한 공간 관계를 가질 수 있다. 전형적으로, 복수의 카메라의 공간적 배열은 어떤 식으로든 카메라 디바이스에 알려질 것이다. 예를 들어, 카메라 디바이스는 카메라 디바이스의 복수의 카메라 각각의 상대적인 3D 위치를 나타내는 제조자 교정 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, 복수의 카메라의 공간적 배열은 다른 적절한 방식으로 - 예를 들어, 수동 교정 프로세스 동안 사용자에 의해 지정될 수 있다. 복수의 카메라의 공간적 배열에 관한 몇몇 정보는 일부 경우에 아래에서 더 자세히 논의되는 바와 같이 원격 디바이스로 전송될 수 있다.
추가적으로 또는 대안적으로, 현실 세계 환경의 카메라 디바이스에 의해 캡처된 복수의 이미지는 동일한 카메라 및/또는 복수의 상이한 카메라에 의해 순차적으로 캡처될 수 있다. 임의의 적절한 간격이 사용될 수 있지만, 순차적 이미지의 캡처 사이의 시간 간격은 몇몇 경우에 비교적 작을 수 있다(예컨대, 몇 분의 1초 정도). 또한, 순차적 이미지 캡처 사이의 간격이 일정할 필요는 없다. 어떤 경우에는 이미지가 순차적으로 그리고 동시에 캡처될 수 있는데, 예를 들어, 복수의 카메라가 장착된 디바이스가 2개 이상의 카메라를 동시에 여러 번 순차적으로 트리거할 수 있다.
간단히 도 2로 돌아가서, 204에서, 방법(200)은 복수의 이미지 중 제1 이미지에서 제1 세트의 이미지 피처를 검출하는 단계를 포함한다. 이것은 도 3에 카메라 디바이스(300)가 이미지(304A) 및 이미지 피처(306A)의 관련 세트를 포함하는 것으로 도시되어 있다. 또한, 도 1b에서, 이미지 피처가 검출된 위치는 검은색 원(112)으로 표시된다. 도 1b에 도시된 각각의 검은색 원은 연관된 이미지 피처를 가질 수 있으며, 카메라 디바이스에 의해 캡처된 각각의 개별 이미지는 임의의 수(예컨대, 수십, 수백, 수천 또는 그 이상)의 이러한 피처를 가질 수 있다는 것이 이해될 것이다.
도 1b에 도시된 바와 같이, 이미지 피처의 2차원 분포는 이미지가 촬영되었던 시간에 물리적 환경에 존재하는 물체의 기하학적 속성 및 시각적 외관을 반영할 수 있다. 본 예에서, 이미지 피처는 구조체(104)의 형상, 치수 및 기타 특징에 대응하는 특징을 포함한다.
이미지 피처는 다양한 적절한 형태를 취할 수 있고 다양한 적절한 방식으로 검출될 수 있다. 일례로서, 이미지 피처는 스케일 불변 피처 변환(scale invariant feature transform: SIFT) 피처일 수 있다. SIFT 피처는 피처의 2D 위치, 스케일 및 1차원 각도 방향을 포함하는 피처와 관련된 기하학적 정보를 저장하는 SIFT 키포인트를 포함한다. SIFT 피처는 128 차원 벡터로서 구현되는 피처 디스크립터도 포함한다. 다단계 프로세스를 사용하여 이미지에서 SIFT 피처를 검출할 수 있다. 그러나, 이미지 피처를 추출하는 데 임의의 적절한 접근 방식이 사용될 수 있고, 그러한 이미지 피처가 SIFT 피처일 필요는 없다는 것이 이해될 것이다. 다른 예로서, 검출된 이미지 피처는 SURF(speeded-up robust feature)일 수 있다. 전형적으로, 이미지 피처는 이미지 피처가 연관되는(예를 들어, 피처 벡터로 표현된) 기본 이미지 데이터에 대한 일부 설명 및 현실 세계 환경의 해당 이미지에서 식별되었던 2차원(2D) 픽셀 위치의 표시를 포함할 것이다.
간단히 도 2로 돌아가면, 206에서, 방법(200)은 카메라 디바이스에 의해 캡처된 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출되기 전에, 제1 세트의 이미지 피처를 원격 디바이스로 전송하는 단계를 포함한다. 특히, 제1 이미지에서 검출된 이미지 피처 세트가 원격 디바이스로 한 번에 모두 전송될 필요는 없다. 오히려, 몇몇 예에서, 이미지 피처의 전송은 심지어 단일 이미지 피처가 제1 이미지에서 검출되자마자 시작될 수 있다. 또한, 제1 이미지에서 검출된 이미지 피처는 임의의 적합한 순서로 전송될 수 있다. 이는 이미지 피처가 검출되었던 순서, 공간적으로 인접한 이미지 피처를 함께 그룹화하는 순서, 포즈 추정을 위해 더 유용하거나 구별되는 것으로 예측되는 이미지 피처의 우선순위를 지정하는 순서(예컨대, 각각의 이미지 피처의 "고유성" 때문에) 등을 포함할 수 있다. 다음으로, 208에서, 방법(200)은 이미지 피처의 추가 세트가 복수의 이미지의 다른 이미지에서 검출됨에 따라, 추가 세트의 이미지를 원격 디바이스로 전송하는 단계를 포함한다. 이러한 추가 세트의 이미지 피처는 언제든지 임의의 순서로 유사하게 전송될 수 있다.
원격 디바이스는 복수의 이미지에서 검출된 이미지 피처에 기초하여 카메라 디바이스의 포즈를 추정하도록 구성될 수 있다. 더욱이, 원격 디바이스는, 비록 그러한 이미지 피처가 충분히 높은 신뢰도를 갖는 카메라 디바이스에 대한 포즈를 추정하기에 불충분하더라도, 임의의 이미지 특징이 수신되자마자 카메라 디바이스의 포즈 추정을 시도하기 시작하도록 구성될 수 있다. 따라서, 원격 디바이스가 카메라 디바이스로부터 이미지 피처를 계속 수신함에 따라, 결국 카메라 디바이스에 보고하기에 충분히 높은 신뢰도를 갖는 하나 이상의 포즈가 추정될 때까지, 원격 디바이스는 카메라 디바이스에 대한 추가 포즈를 점진적으로 추정할 수 있다. 특히, 몇몇 경우에, 원격 디바이스는 카메라 디바이스에 의해 캡처된 모든 이미지에 대한 이미지 피처를 수신하기 전에 카메라 디바이스에 대해 충분히 높은 신뢰도 포즈를 추정할 수 있다. 따라서 이것은 모든 캡처된 이미지로부터 이미지 피처가 추출되고 분석될 때까지 포즈가 추정되지 않는 다른 다중 이미지 로컬화 기법에 비해 시간을 절약할 수 있다.
이는 도 3에서 카메라 디바이스(300)가 2개의 상이한 이미지(304A/304B)를 포함하고, 각각은 연관된 이미지 피처(306A/306B)의 세트를 갖는 것으로 도시된다. 이러한 정보는 카메라 포즈 추정을 위해 원격 디바이스(308)로 전송될 수 있다. 그러나, 위에서 논의된 바와 같이, 카메라 디바이스는 이미지 피처가 캡처된 모든 이미지에서 검출될 때까지 기다리는 것 대신에, 세트의 이미지 피처(306A)가 검출되자마자 또는 심지어 단일 이미지 피처가 이미지(304A)에서 검출되자마자 원격 디바이스에 이미지 피처를 전송하기 시작할 수 있다. 다시 말해서, 원격 디바이스는 모든 이미지 피처(306B)가 검출되기 전에, 또는 심지어 이미지(304B)가 캡처되기 전에 하나 이상의 이미지 피처(306A)에 기초하여 카메라 디바이스(300)의 포즈를 추정하려고 시도하기 시작할 수 있다.
도 4는 이미지 기반 로컬화를 위한 예시적인 흐름도를 도시한다. 400에서, 카메라 디바이스(300)는 도 1에 도시된 환경(102)과 같은 현실 세계 환경의 하나 이상의 이미지를 캡처한다. 위에서 논의된 바와 같이, 카메라 디바이스(300)는 몇몇 경우에 실질적으로 동시에 복수의 이미지를 캡처할 수 있고/있거나 하나 이상의 이미지를 순차적으로 캡처할 수 있다. 402에서, 카메라 디바이스(300)는 400에서 캡처된 이미지로부터 이미지 피처를 선택적으로 추출할 수 있다. 특히, 이미지 피처는 카메라 디바이스에서 항상 검출될 필요는 없다. 다시 말해서, 이미지 피처는 카메라 디바이스, 원격 디바이스, 또는 임의의 다른 적절한 디바이스에서 검출될 수 있다.
계속해서 도 4에서, 404에서 카메라 디바이스(300)는 원격 디바이스(308)에 정보를 전송한다. 카메라 디바이스에 의해 전송된 특정 정보는 이미지 피처가 카메라 디바이스에서 검출되는지 또는 원격 디바이스에서 검출되는지에 따라 다를 수 있다. 카메라 디바이스에서 이미지 피처가 검출되는 경우, 카메라 디바이스에 의해 전송된 정보는 이미지 피처를 포함할 수 있으며, 피처가 검출되었된 실제 이미지도 포함하거나 포함하지 않을 수 있다. 그러나, 원격 디바이스에서 이미지 피처가 검출되는 경우, 카메라 디바이스는 먼저 어떠한 이미지 피처도 검출하지 않고 현실 세계 환경의 이미지를 전송할 수 있다.
도 5는 카메라 디바이스로부터 원격 디바이스로 전송될 수 있는 정보(500)의 특정 예를 개략적으로 도시한다. 그러한 정보는 임의의 적절한 방식으로 패키징되거나 형식화될 수 있다. 정보(500)는 임의의 적절한 수의 개별 데이터 패킷 또는 전송 사이에 분할될 수 있다. 또한, 도 5에 포함된 특정 데이터가 비제한적인 예로서 제시된다는 것이 이해될 것이다. 다양한 구현에서, 카메라 디바이스는 원격 디바이스에 더 많은 정보, 더 적은 정보 및/또는 상이한 정보를 전송할 수 있다.
도 5의 예에서, 정보(500)는 카메라 디바이스에 의해 캡처된 현실 세계 환경의 이미지(502)를 포함한다. 그러나, 구현에 따라, 카메라 디바이스는 전체 캡처된 이미지를 원격 디바이스로 전송할 수도 전송하지 않을 수도 있다. 예를 들어, 이미지 피처가 카메라 디바이스에서 검출되는 경우에, 카메라 디바이스에서 원격 디바이스로 전송된 데이터는 그러한 이미지에서 검출된 이미지 피처를 위해 현실 세계 환경의 전체 이미지를 선택적으로 생략할 수 있다. 이미지 피처가 원격 디바이스에서 검출되는 경우에, 카메라 디바이스는 전형적으로 현실 세계 환경의 캡처된 이미지를 원격 디바이스로 전송하여 이미지 피처가 원격 디바이스에 의해 검출될 수 있도록 할 것이다.
정보(500)는 이미지(502)에 대응하는 이미지 피처(504)의 세트도 포함한다. 따라서, 도 5의 예에서, 이미지 피처는 카메라 디바이스에 의해 검출된다. 각각의 이미지 피처는 디스크립터(506)뿐만 아니라 이미지 피처가 이미지(502)에서 검출되었던 2D 픽셀 위치(508)도 포함한다. 각각의 디스크립터(506)는 대응하는 이미지 피처가 검출되었던 이미지(502)의 시각적 콘텐츠의 일부 표현 - 예를 들어, 다차원 피처 벡터의 형태를 취함 - 을 포함할 것이다.
정보(500)는 또한 이미지(502)를 캡처하는 데 사용되는 카메라 디바이스의 카메라에 적용되는 임의의 적절한 메트릭 또는 사양을 참조할 수 있는 카메라 정보(510)를 포함한다. 예로서, 카메라 정보(510)는 카메라의 유형(예를 들어, RGB, IR, 제조사/모델), 카메라의 줌 파라미터, 카메라 디바이스의 다른 카메라에 대한 카메라의 공간적 관계 등을 명시할 수 있다. 예를 들어, 위에서 논의된 바와 같이, 몇몇 경우에 카메라 디바이스는 실질적으로 한 번에 현실 세계 환경의 복수의 이미지를 캡처하는 데 복수의 카메라를 사용하도록 구성될 수 있다. 이러한 경우에, 원격 디바이스로 전송되는 정보는 서로에 대한 카메라 디바이스의 서로 다른 제각기의 카메라 각각의 공간적 관계를 나타내는 몇몇 정보를 포함할 수 있다. 이것은 임의의 적절한 형태를 취할 수 있다. 예를 들어, 카메라 정보(510)는 카메라 디바이스의 다른 카메라, 및/또는 다른 적절한 디바이스 구성요소 또는 참조 프레임에 대한 이미지(502)를 캡처하는 데 사용되는 카메라의 물리적 거리 및 방향을 명시할 수 있다. 다른 예로서, 카메라 정보(510)는 원격 디바이스가 카메라 디바이스의 기하형상 및 구성에 관한 정보를 가진 경우에 유용할 수 있는 "내부 카메라" 또는 "좌측 카메라"와 같이 이미지(502)를 캡처하는 데 사용되는 카메라에 대한 참조 이름 또는 라벨을 포함할 수 있다.
도시된 바와 같이, 정보(500)는 이미지(502)에 대한 캡처 시간(512)을 포함한다. 캡처 시간은 임의의 적절한 방식으로 표현될 수 있다. 예를 들어, 캡처 시간은 카메라 디바이스의 시스템 클록, 카메라 디바이스와 원격 디바이스 간에 공유되는 참조 시간, 특정 프로세스의 시작 이후 경과된 시간(예컨대, 제1 전송이 다음 시간 0에 발생할 수 있음) 등에 대해 정의될 수 있다.
정보(500)는 또한 이미지(502)가 캡처되었던 시간에 카메라 디바이스에 대한 이미지별 상대 포즈(514)를 포함한다. 전형적으로, 카메라 디바이스가 현실 세계 환경의 이미지를 순차적으로 캡처하는 경우, 카메라 디바이스의 포즈는 순차적인 이미지 캡처 간에 변경될 수 있다. 따라서, 원격 디바이스에 의한 보다 효율적인 포즈 추정을 용이하게 하기 위해, 카메라 디바이스는 몇몇 내부 참조 프레임에 대한 자신의 포즈를 추적하고 이러한 정보를 원격 디바이스에 전송할 수 있다. 본 명세서에서 사용되는 바와 같이, "상대 포즈"라는 용어는 전형적으로 주변 현실 세계 환경에 대한 절대 위치를 완전히 리졸브하지 않고 카메라 디바이스에 의해 추적된 포즈를 지칭한다. 예를 들어, 현실 세계 환경의 제1 이미지를 캡처한 후, 카메라 디바이스는 현실 세계 환경의 순차적인 이미지의 캡처 사이의 자신의 움직임을 추적하고 이러한 정보를 원격 디바이스에 전송할 수 있다. 따라서 "상대 포즈"는 상이한 참조 프레임(예컨대, 현실 세계 환경에 대응하는 세계 고정 좌표 시스템 또는 다른 적절한 참조 프레임)에 대한 카메라 디바이스의 위치 및 방향을 정의하는 원격 디바이스에 의해 출력된 "추정 포즈" 또는 "절대 포즈"와 다르다.
카메라 디바이스의 상대 포즈는 임의의 적절한 방식으로 결정되고 지정될 수 있다. 도 5는 현실 세계 환경의 이미지를 캡처할 때 카메라 디바이스에 의해 움직임을 추적하는 데 사용될 수 있는 상이한 유형의 정보의 다양한 예를 포함한다. 구체적으로, 정보(500)는 카메라 디바이스의 관성 측정 유닛(IMU)으로부터의 데이터(516)뿐만 아니라 자력계로부터의 데이터(520) 및 GPS(global positioning system) 수신기로부터의 데이터(522)도 포함한다. 카메라 디바이스의 움직임은 추가로 또는 대안으로 카메라 디바이스가 움직일 때 하나 이상의 카메라에 의해 관찰되는 광학 흐름(518)에 기초하여 추적될 수 있다. 예를 들어, 주변의 현실 세계 환경이 정지된 상태에서 카메라 디바이스가 움직이면, 카메라 디바이스의 카메라에 보이는 현실 세계 물체의 크기, 위치 또는 방향의 임의의 변경은 카메라 디바이스의 움직임에 기인할 수 있고 이러한 움직임을 추정하는 데 사용될 수 있다. 추가 예로서, 카메라 디바이스의 움직임은 카메라 디바이스의 움직임에 대응할 수 있는 현실 세계 환경에서 임의의 Wi-Fi/셀룰러/기타 신호의 변화를 나타내는 데이터(524 및/또는 526)에 기초하여 추정될 수 있다.
특히, 카메라 디바이스의 상대 포즈는 카메라 디바이스 자체에 의해 계산될 필요가 없다. 오히려, 상대 포즈를 계산하는 데 사용되는 정보(예를 들어, IMU 데이터(516), 광 흐름 데이터(518), 자력계 데이터(520), GPS 데이터(522), Wi-Fi 데이터(524), 및/또는 셀룰러 데이터(526))가 다른 적절한 디바이스로 전송될 수 있고, 카메라 디바이스의 상대 포즈를 계산하는 데 이러한 정보를 사용할 수 있다. 따라서, 몇몇 예에서, 원격 디바이스가 카메라 디바이스에 대한 절대 포즈를 출력하기 위해 작업하고 있는 경우에도, 카메라 디바이스의 상대 포즈는 카메라 디바이스로부터 수신된 정보에 기초하여 원격 디바이스에 의해 계산될 수도 있다. 특히, 카메라 디바이스의 상대 포즈는 어떤 디바이스(들)가 계산을 수행하는지에 관계없이 임의의 적절한 방식으로 및 임의의 적절한 정보에 기초하여 계산될 수 있다. 예를 들어, 카메라 디바이스의 상대 포즈는 임의의 다른 관련 정보에 더하여 또는 그 대신에, 캡처된 이미지 피처 및/또는 이미지에서 검출된 임의의 이미지 피처에 기초하여 원격 디바이스에 의해 계산될 수 있다.
도 4로 돌아가면, 404에서 카메라 디바이스가 원격 디바이스로 정보를 보낸 후, 406에서 카메라 디바이스는 현실 세계 환경의 더 많은 이미지가 캡처되어야 하는지 여부를 결정한다. 예이면, 400에서 카메라 디바이스는 다른 이미지를 캡처한다. 아니오이면, 408에서 카메라 디바이스는 이미지 캡처를 중단한다. 사전결정된 수의 이미지가 캡처된 후, 사전결정된 시간이 경과한 후, 사용자 커맨드 후, 카메라 디바이스가 저전력 또는 오프 모드에 진입한 후, 카메라 디바이스가 다른 디바이스(예를 들어, 원격 디바이스)로부터 명령을 수신한 후, 카메라 디바이스가 신뢰 임계값을 초과하는 추정 포즈를 수신한 후, 및/또는 임의의 다른 적절한 이유로 이미지 캡처가 중단될 수 있다. 더욱이, 408에서 이미지 캡처가 중단된 후, 임의의 적절한 트리거(예를 들어, 임계값 신뢰도 아래로 떨어지는 디바이스 포즈 추정)에 응답하여 400에서 새로운 이미지가 후속적으로 캡처될 수 있다.
간단히 도 2를 참조하면, 210에서, 방법(200)은 카메라 디바이스의 추정 포즈를 수신하는 단계를 포함한다. 위에서 논의한 바와 같이, 추정 포즈는 현실 세계 환경의 이미지가 캡처되었을 때 카메라 디바이스의 위치 및/또는 방향을 지정한다.
카메라 디바이스의 포즈는 원격 디바이스에 의해 임의의 적절한 방식으로 추정될 수 있다. 포즈 추정을 위한 하나의 특정 프로세스가 이제 도 4와 관련하여 설명될 것이다. 404에서 카메라 디바이스가 도 5와 관련하여 위에서 논의된 정보의 일부 또는 전부를 포함할 수 있는 정보를 전송한 후, 410에서 원격 디바이스는 정보를 수신한다. 412에서, 원격 디바이스는 원격 디바이스에서 이미지 피처의 검출이 발생하는 경우, 카메라 디바이스에 의해 전송된 현실 세계 환경의 이미지에서 이미지 피처를 검출할 수 있다. 특히, 원격 디바이스가 카메라 디바이스로부터 계속 정보(예컨대, 추가 이미지)를 수신하고 있을 때에도 원격 디바이스에서 이미지 피처의 검출이 수행될 수 있다.
414에서, 원격 디바이스는 현실 세계 환경의 복수의 이미지에서 검출된 이미지 피처를 현실 세계 환경을 나타내는 디지털 환경 맵 내의 하나 이상의 맵 피처에 매칭시킨다. 도 3에서, 디지털 환경 맵(310) 및 대응하는 맵 피처(312)의 세트를 포함하는 원격 디바이스(308)가 도시된다. 검출된 이미지 피처와 디지털 환경 맵의 맵 피처 사이의 대응관계를 식별함으로써, 원격 디바이스는 카메라 디바이스의 포즈를 추정할 수 있으며, 이는 도 3에 포즈 추정(314)으로 도시된다.
몇몇 예에서, 디지털 환경 맵의 맵 피처는 현실 세계 환경의 재구성을 나타내는 3D 포인트 클라우드의 형태를 취할 수 있다. 디지털 환경 맵은 임의의 적절한 수의 포인트를 포함할 수 있으며, 일부 예에서, 3D 포인트 클라우드는 현실 세계 환경 내 표면 상의 다양한 위치를 나타내는 20,000, 30,000 또는 그 이상의 3D 포인트를 포함할 수 있다.
이러한 디지털 환경 맵은 임의의 적절한 방식으로 생성될 수 있다. 일반적으로, 현실 세계 환경은 상이한 위치로부터 현실 세계 환경의 복수의 이미지 또는 비디오를 캡처하는 적절한 이미징 디바이스를 사용하여 매핑된다. 이들 이미지는 그레이스케일 이미지, 컬러 이미지, 깊이 이미지 등일 수 있다. 이미지 피처는 위에서 논의한 바와 같이 각각의 이미지에서 검출될 수 있다. 캡처된 이미지 중 하나 이상에 공통인 이미지 피처를 검출함으로써, 이미지 간의 공간적 관계가 결정될 수 있다. 각각의 이미지 피처와 이미징 시스템 사이의 거리는 동일한 이미지 피처가 상이한 위치로부터 캡처된 복수의 이미지에서 검출될 때 관찰된 시차 이동으로부터 추론될 수 있다. 추가적으로 또는 대안적으로, 깊이 카메라로부터의 깊이 정보는 현실 세계 환경의 차원 및 이미징 시스템과 각각의 이미지 피처 사이의 거리를 식별하는 데 사용될 수 있다. 몇몇 구현에서, 이미징 시스템의 포즈는 복수의 이미지를 캡처할 때 추적되어, 복수의 이미지를 현실 세계 환경의 3D 표현으로 스티칭하는 데 사용될 수 있는 추가 정보를 제공할 수 있다.
위에서 언급한 바와 같이, 맵 피처 각각은 3D 맵을 구성하는 데 사용되는 소스 이미지로부터 추출된 피처 디스크립터와 연관된다. 피처 디스크립터는 3D 맵 피처 주변의 표면 모양을 인코딩하는 다차원 벡터를 포함할 수 있다. 예를 들어, 맵 피처가 검출되는 주어진 픽셀 주변의 이미지 패치(예컨대, 32 x 32 픽셀)는 해당 포인트 주변의 표면 모양을 더 컴팩트한 피처 디스크립터로 인코딩할 수 있다.
3D 포인트 클라우드의 모든 3D 맵 피처에서 피처 디스크립터를 생성할 필요는 없다. 몇몇 예에서, 피처 디스크립터는 코너, 고도로 텍스처링된 영역 등과 같은 맵의 구별되는 피처에서 선택적으로 생성될 수 있다. 추가적으로, 몇몇 예에서 초기에 생성된 포인트 클라우드는 클라우드에 포함된 맵 피처의 밀도를 감소시키기 위해 제거될 수 있다. 예를 들어, 포인트 클라우드에서 대표 맵 피처의 서브세트가 선택될 수 있고, 선택된 3D 맵 피처의 사전결정된 거리 내의 선택되지 않은 피처는 폐기될 수 있다. 이러한 방식으로, 결과적으로 제거된 3D 포인트 클라우드는 원격 디바이스에 의해 더 빨리 로딩되고 더 쉽게 처리될 수 있다.
추가적으로 또는 대안적으로, 3D 맵은 현실 세계 환경을 설명하는 다른 적절한 정보를 포함할 수 있다. 예로서, 이러한 정보는 라인, 평면 및/또는 기타 상위 레벨 객체, Wi-Fi/Bluetooth 식별자 및/또는 신호 강도 GPS 좌표, 중력 벡터, 기본 방향 벡터(예컨대, 자북), 및/또는 현실 세계 환경에 대한 카메라 디바이스의 위치를 분석하는 데 사용될 수 있는 임의의 다른 적절한 정보를 포함할 수 있다.
카메라 디바이스의 포즈를 추정하는 것은 현실 세계 환경의 이미지의 2D 픽셀 위치에서 검출된 이미지 피처와 디지털 환경 맵에서 3D 맵 위치를 갖는 맵 피처 사이의 대응관계를 결정하는 것을 포함할 수 있다. 이것은 각각의 이미지 피처와 연관된 피처 디스크립터에 대한 3D 맵을 검색하고 3D 포인트 클라우드에서 가장 유사한 피처 디스크립터를 갖는 3D 맵 피처를 식별함으로써 수행될 수 있다. 다시 말해서, 대응관계를 결정하는 것은 3D 맵에서 3D 맵 피처의 피처 디스크립터와 매칭되는 피처 디스크립터를 갖는 이미지 피처의 세트를 식별하는 것을 포함할 수 있다. 그 결과, 현실 세계 환경의 이미지에서 검출된 2D 포인트는 3D 맵 피처와 연관된 3D 포인트에 대응하여 2D 포인트 대 3D 포인트 대응관계 세트를 제공한다. 이 피처 디스크립터 매칭 단계는 다수의 최근접 이웃 매칭 기법 중 하나를 사용하여 구현될 수 있다. 디스크립터 벡터 간의 L2-거리는 쌍별 피처 유사도를 계산하는 데 사용될 수 있다.
특히, 결정된 모든 대응관계가 반드시 정확한 것은 아니다. 실제로, 일부 부정확한 대응관계가 결정될 수 있다. 이는 기본 피처 디스크립터가 모호할 수 있고 이미지 피처의 피처 디스크립터와 맵 내의 3D 포인트와 연관된 복수의 피처 디스크립터 간에 항상 충분한 구별을 허용하지 않기 때문이다.
또한, 현실 세계 환경의 각 이미지는 현실 세계 환경이 매핑되었을 때 존재하지 않았던 아이템, 사물, 사람 등을 포함할 수 있다. 따라서, 디지털 환경 맵에 표시되지 않는, 카메라 디바이스에 의해 캡처된 다양한 이미지에서 하나 이상의 이미지 피처가 검출될 수 있다. 전형적으로, 이러한 이미지 피처는 어떤 3D 맵 피처에도 대응하지 않을 것이다. 이는 몇몇 시나리오에서 유리할 수 있는데, 이는 복수의 이미지에 묘사된 임의의 개인 세부사항이 디지털 환경 맵 내의 임의의 3D 맵 피처에 대응하지 않을 가능성이 있으므로 원격 디바이스가 개인 세부사항에 대해 추론할 수 있는 정보의 양을 제한하기 때문이다. 또한, 복수의 이미지 내의 이미지 피처 중 어느 것과도 매칭되지 않는 맵의 몇 가지 맵 피처가 있을 수 있다.
다시 도 4를 참조하면, 414에서 이미지 피처와 맵 피처 사이의 대응관계가 식별되면, 416에서 그러한 대응관계는 카메라 디바이스에 대한 포즈를 추정하도록 구성된 다른 프로세스 또는 애플리케이션으로 전달된다. 특히, 본 명세서에 설명된 이미지 기반 로컬화 프로세스의 다른 단계에서와 같이, 이미지 피처는 지도 피처에 매칭되고 임의의 적절한 시간에 포즈 추정을 위해 전달될 수 있다. 다시 말해, 특정 이미지의 모든 이미지 피처가 매칭되거나 심지어 추출되기 전에, 현실 세계 환경의 모든 이미지가 전송되거나 캡처되기 전 등의 경우에 식별된 대응관계가 포즈 추정을 위해 전달될 수 있다.
이와 같이, 418에서, 원격 디바이스는 디지털 환경 맵의 맵 피처와 매칭될 추가 이미지 피처가 있는지 여부를 결정한다. 예이면, 414에서 원격 디바이스는 이러한 이미지 피처들을 매칭시킨다. 아니오이면, 420에서 원격 디바이스는 이미지 피처의 매칭을 중단한다. 특히, 임의의 매칭된 이미지 피처가 카메라 디바이스의 포즈를 추정하는 데 사용될 수 있으므로, 420에서 이미지 피처의 매칭을 중단하는 것은 전체 이미지 기반 로컬화 프로세스의 종료를 나타내지 않는다. 또한, 추가 이미지 및/또는 이미지 피처가 카메라 디바이스로부터 수신되는 경우, 414에서 원격 디바이스는 이미지 피처 매칭을 재개할 수 있다.
이미지 피처와 맵 피처 간의 대응관계가 식별되면, 422에서 이러한 대응관계는 카메라 디바이스의 포즈를 추정하는 데 사용될 수 있다. 포즈 추정은 임의의 적절한 방식으로 수행될 수 있다. 몇몇 예에서, 카메라 디바이스의 포즈를 추정하는 것은 이미지 피처의 2D 픽셀 위치와 맵 피처의 3D 맵 위치 사이의 대응관계가 복수의 후보 카메라 디바이스 포즈에 대해 식별되는 반복적 랜덤화 프로세스일 수 있고, 이들 후보 카메라 디바이스 포즈는 기본 대응관계 데이터와의 일관성에 대해 평가된다. 하나의 예시적인 절차에서, 카메라의 포즈는 RANSAC(random sample consensus) 방법을 사용하여 결정된 대응관계로부터 추정될 수 있다. 그러한 경우에, 결정된 대응관계의 서브세트로부터 복수의 후보 카메라 디바이스 포즈를 계산하기 위해 최소 또는 비최소 솔버(solver)가 사용될 수 있다. 그러나 다른 적절한 접근방식을 사용하여 RANSAC 프레임워크를 사용하지 않는 카메라 포즈를 추정할 수 있음을 이해할 것이다.
시작하기 위해, 원격 디바이스는 결정된 2D 이미지 피처와 3D 맵 피처 대응관계의 전체 세트로부터 대응관계의 서브세트를 식별할 수 있다. 몇몇 경우에, 식별된 서브세트의 대응관계의 수는 최소 솔버로서 알려진 방법을 사용하여 유한 수의 솔루션을 계산하는 데 필요한 최소 데이터 포인트 수에 대응할 수 있다. 예를 들어, 2D 라인을 2D 포인트 세트에 맞출 때, 2D 포인트를 정확히 통과하는 고유한 2D 라인(단일 솔루션)을 찾으려면 최소 2개의 고유 데이터 포인트가 필요하다. 반면에 단일 데이터 포인트는 무한 수의 잠재적 솔루션과 일치할 수 있다. 따라서, 이 라인 맞춤 예의 경우, 2개의 데이터 포인트는 최소 솔버에 필요한 최소 개수이다. 반대로, 비최소 솔버는 2개 초과의 데이터 포인트를 사용할 수 있다.
2D 라인 맞춤 예를 계속하면, 2D 데이터 포인트 쌍의 복수의 서브세트가 선택될 수 있다. RANSAC 프레임워크에서, 이들 서브세트는 랜덤으로 선택된다. 각각의 서브세트(즉, 2D 포인트 쌍)에 최소 솔버를 적용하면, 각각의 서브세트로부터 서로 다른 잠재적 솔루션을 찾을 수 있다. 그러나, 몇몇 잠재적 솔루션(2D 라인)은 다른 잠재적 솔루션보다 입력 데이터와 더 일관성이 있다. 즉, 몇몇 잠재적 라인은 다른 것보다 데이터세트에서 더 많은 2D 포인트를 통과할 것이다. RANSAC에서, 최소 솔버에 의해 식별된 각 잠재적 솔루션에 대해, 솔루션(즉, 2D 라인)은 데이터세트의 다른 2D 데이터 포인트와 비교되어 어느 포인트가 제안된 솔루션과 일치하는지(즉, "인라이어(inlier)") 대 어느 포인트가 제안된 솔루션과 일치하지 않는지(즉, "아웃라이어(outlier)")를 결정한다. 인라이어 대 아웃라이어 비율이 가장 높거나 적어도 임계 수의 총 인라이어를 가진 임의의 솔루션은 실제 솔루션(예컨대, 2D 포인트 세트에 가장 잘 맞는 2D 라인)으로서 허용될 수 있다.
카메라 포즈 추정 문제로 돌아가서, 이용 가능한 정보에 따라, RANSAC 솔버는 식별된 대응관계의 서브세트로부터 유한 수의 솔루션 또는 잠재적 포즈 후보를 출력할 수 있다. 다시 말해서, 각각의 식별된 대응관계의 서브세트에 대해, 원격 디바이스는 대응관계의 서브세트를 만족하는 후보 카메라 디바이스 포즈의 세트를 계산할 수 있다.
카메라의 포즈에 대한 몇몇 정보가 이미 알려진 경우 최소 솔버에 필요한 대응관계의 수는 몇몇 경우에 감소할 수 있다. 예를 들어, 현실 세계 환경의 복수의 이미지를 캡처할 때, 카메라 디바이스는 (예를 들어, 온보드 3축 가속도계를 통해) 현재 포즈에 대한 중력 벡터를 검출할 수 있다. 몇몇 경우에 이 중력 벡터는 카메라 디바이스에 의해 원격 디바이스로 전송된 정보에 포함될 수 있다. 따라서, 카메라의 3D 방향(롤 및 피치에 해당)의 2개의 자유도를 이미 알고 있을 수 있으며, 이는 나머지 자유도를 추정하는 복잡도를 줄일 수 있다.
또한, 현실 세계 환경의 복수의 이미지가 순차적으로 캡처되고 카메라 디바이스가 도 5와 관련하여 위에서 논의된 바와 같이 상대 포즈 정보를 전송하는 경우에, 이러한 상대 포즈 정보는 카메라 디바이스에 대한 포즈를 추정할 때 사용될 수 있다. 다시 말해서, 카메라 디바이스에 의해 캡처된 각각의 이미지에 대해 독립적으로 포즈를 추정하는 것보다, 원격 디바이스는 상대 포즈 정보를 사용하여 카메라 디바이스에 대한 추정된 포즈의 잠재적 세트를 더 좁힐 수 있다. 예를 들어, 카메라 디바이스에 대한 높은 신뢰도의 포즈는 원격 디바이스로 전송된 각각의 이미지뿐만 아니라 이미지 캡처 사이에 카메라 디바이스의 움직임과도 일치할 것이다.
대응관계의 각각의 서브세트에 대해 후보 카메라 디바이스 포즈가 계산되면, 원격 디바이스는 모든 후보 카메라 디바이스 포즈의 세트로부터 최상의 전체 카메라 디바이스 포즈를 식별할 수 있다. 다시 말해서, 여러 카메라 디바이스 포즈 가설이 원격 디바이스에 의해 식별되며, 그 중 적어도 하나는 카메라 디바이스의 실제 포즈에 해당할 가능성이 있다. 일반적으로, 최상의 전체 카메라 디바이스 포즈는 다른 후보 카메라 디바이스 포즈보다 전체 대응관계 세트와 더 일관성이 있을 것이다. 다시 말해서, 원격 디바이스는 각각의 후보 카메라 디바이스 포즈에 대해, 결정된 대응관계 중 인라이어가 몇 개이고 아웃라이어가 몇 개인지를 결정할 수 있고, 최상의 전체 카메라 디바이스 포즈가 이에 기초하여 식별될 수 있다.
구현 및 사용된 특정 포즈 추정 기법에 따라, 각각의 추정된 카메라 디바이스 포즈는 대응하는 신뢰도 값을 포함할 수 있다. RANSAC의 경우, 이 신뢰도 값은 위에서 설명한 인라이어/아웃라이어 비율에 비례할 수 있으며, 여기서 인라이어를 더 많이 갖는(예를 들어, 포즈와 일치하지 않는 것보다 포즈와 일치하는 대응관계가 더 많은) 포즈 추정은 상대적으로 더 높은 신뢰도 값을 갖는다. 또한, 원격 디바이스는 카메라 디바이스의 단일 포즈를 추정한 후 정지할 필요가 없다. 오히려, 원격 디바이스가 카메라 디바이스로부터 추가적인 이미지 및/또는 이미지 피처를 수신함에 따라, 원격 디바이스는 이미지 피처와 맵 피처 사이의 식별된 대응관계에 기초하여 카메라 디바이스의 복수의 추정 포즈를 계속해서 출력할 수 있다. 추가 이미지를 수신하는 것이 일반적으로 더 정확한 포즈 추정을 생성하는 데 사용할 수 있는 더 많은 데이터를 원격 디바이스에 제공할 것이므로, 각각의 추정 포즈는 각각의 제각기의 추정된 포즈가 출력될 때 식별된 대응관계의 수량에 비례하는 대응 신뢰도 값을 가질 수 있다.
따라서, 다양한 시간에, 원격 디바이스는 카메라 디바이스에 대한 임의의 수의 상이한 포즈 추정을 생성할 수 있고, 이들 중 일부 또는 전부는 카메라 디바이스로 전송될 수 있다. 다시 말해서, 몇몇 경우에 카메라 디바이스에 의해 수신된 추정 포즈는 추후 더 높은 신뢰도의 최종 포즈 추정치를 수신하기 전에 수신된 예비 추정 포즈일 수 있다. 예비 추정 포즈는 원격 디바이스에 의해 생성되고, 카메라 디바이스가 현실 세계 환경의 이미지 캡처를 완료하기 전에, 이미지 피처의 세트가 카메라 디바이스에 의해 캡처된 현실 세계 환경의 모든 이미지에 대해 검출되기 전에, 검출된 모든 이미지 피처가 대응하는 맵 피처와 매칭되기 전에 등을 포함하여 임의의 적절한 시간에 카메라 디바이스에 의해 수신될 수 있다.
몇몇 예에서, 원격 디바이스는 현실 세계 환경의 단일 이미지가 이미지 피처를 검출하기 위해 완전히 분석되기 전에도 카메라 디바이스에 대한 포즈 추정을 출력할 수 있다. 즉, 현실 세계 환경의 단일 이미지를 캡처할 때, 카메라 디바이스 또는 원격 디바이스에서 이미지로부터 이미지 피처가 추출될 수 있다. 그 다음 원격 디바이스는 이미지 내의 모든 이미지 피처가 검출되거나 그렇지 않으면 원격 디바이스에 의해 수신되기 전에 카메라 디바이스의 절대 포즈를 결정하려고 시도하기 시작할 수 있다. 이러한 방식으로, 본 명세서에 논의된 이미지 기반 로컬화를 위한 기법은 단일의 캡처된 이미지가 이미지 피처를 검출하기 위해 완전히 분석될 때까지 전형적으로 포즈 추정을 생성하기 시작하지 않는 종래의 단일 이미지 포즈 추정 기법보다 더 빠른 포즈 추정을 초래할 수 있다.
위에서 논의된 바와 같이, 예비 추정 포즈는 예비 추정 포즈가 추정되기 전에 원격 디바이스로 전송된 이미지 피처의 수량에 비례하는 연관된 신뢰도 값을 가질 수 있다. 그러나, 예비 추정 포즈가 카메라 디바이스로 전송되는지 여부는 예비 추정 포즈와 연관된 신뢰도 값이 하나 이상의 신뢰도 임계값을 초과하는지 여부에 의존할 수 있다.
도 4로 돌아가서, 422에서 원격 디바이스가 카메라 디바이스 포즈를 추정한 후, 424에서 원격 디바이스는 추정 포즈가 최종 신뢰도 임계값을 초과하는지 여부를 판정한다. 이 임계값은 상대적으로 높을 수 있어서 최종 신뢰도 임계값보다 더 높은 신뢰도 값을 갖는 임의의 추정 포즈가 최종 추정 포즈로 지정되며, 이 포인트에서 이미지 기반 로컬화가 중단될 수 있다.
추정 포즈의 신뢰도 값이 최종 신뢰도 임계값을 초과하지 않는 경우, 원격 디바이스는 신뢰도 값이 하나 이상의 더 낮은 신뢰도 임계값을 초과하는지 여부를 판정할 수 있다. 예를 들어, 426에서, 원격 디바이스는 추정 포즈가 예비 신뢰도 임계값을 초과하는지 여부를 판정한다. 아니오이면, 428에서 추정 포즈는 이 시간에 카메라 디바이스로 전송되지 않고, 원격 디바이스는 예비 신뢰도 임계값을 초과하는 포즈가 추정되거나 다른 이유로 프로세스가 중지될 때까지 선택적으로 포즈 추정치를 계속 생성할 수 있다. 예이면, 추정 포즈는 예비 추정 포즈로서 지정되고, 430에서 카메라 디바이스로 전송되며, 432에서 카메라 디바이스에 의해 수신될 수 있다.
특히, 예비 포즈 추정을 카메라 디바이스로 보낸 후에도 원격 디바이스는 카메라 디바이스로부터 이미지 및/또는 이미지 피처를 계속 수신하고 새로운 포즈 추정을 계속 생성할 수 있다. 따라서, 예비 포즈 추정을 수신한 후에도, 카메라 디바이스는 예비 추정 포즈보다 더 많은 검출된 이미지 피처에 기초하여 추정된 하나 이상의 추가 추정 포즈를 수신할 수 있다. 이와 같이, 하나 이상의 추가 추정 포즈는 이에 대응하여 더 높은 신뢰도 값을 가질 수 있다. 결국 원격 디바이스는 424에서 최종 신뢰도 임계값을 초과하는 신뢰 값을 갖는 카메라 디바이스에 대한 포즈를 추정할 수 있다. 그 후 이 최종 추정 포즈는 434에서 카메라 디바이스로 전송되고 436에서 카메라 디바이스에서 수신될 수 있다.
특히, 현실 세계 환경의 이미지 캡처와 해당 포즈 추정의 수신 사이에, 카메라 디바이스의 실제 포즈가 변경될 수 있다. 즉, 카메라 디바이스가 원격 디바이스로부터 추정 포즈를 수신할 때쯤에는 카메라 디바이스의 움직임으로 인해 추정 포즈가 더 이상 정확하지 않을 수 있다. 따라서, 일부 시나리오에서, 원격 디바이스는 추정 포즈가 기반으로 하는 현실 세계 환경의 하나 이상의 이미지의 캡처 시간과 관련하여 타임스탬프 또는 시간 경과의 다른 표시자와 함께 추정된 카메라 포즈를 보고할 수 있다. 그 다음, 카메라 디바이스는 예를 들어, 도 5와 관련하여 위에서 설명된 상대 포즈 데이터 중 임의의 것을 포함하는 자신의 내부 움직임 추적 데이터에 기초하여 추정 포즈를 업데이트할 수 있다. 예를 들어, 원격 디바이스가 추정 포즈가 과거 0.25초의 시점에 특정하다고 표시하고, 카메라 디바이스가 그 시간에 3mm 앞으로 이동했다고 결정하면, 추정 포즈가 3mm 앞으로 조정될 수 있다.
추가적으로 또는 대안적으로, 원격 디바이스는 포즈를 추정할 때 카메라 디바이스의 움직임을 예상할 수 있다. 예를 들어, 카메라 디바이스로부터 수신된 장보(예를 들어, 상대 포즈 정보) 및/또는 포즈 추정 동안 추론된 정보에 기초하여, 원격 디바이스는 카메라 디바이스가 특정 속도로 특정 방향으로 이동하고 있다고 결정할 수 있다. 원격 디바이스와 카메라 디바이스 사이에서 측정되거나 추정된 네트워크 지연을 사용함으로써, 원격 디바이스는 예를 들어, 추정 포즈가 카메라 디바이스에 도달하는 데 0.25 초가 걸릴 것이라고 결정할 수 있다. 따라서, 원격 디바이스는 0.25 초의 지연 윈도우 동안 카메라 디바이스의 움직임을 설명하기 위해 추정 포즈를 수정할 수 있다. 예를 들어, 원격 디바이스가 카메라 디바이스가 소정 속도로 오른쪽으로 패닝하고 있다고 결정하면, 원격 디바이스는 관찰된 네트워크 지연에 비례하여 추론된 우측 움직임을 포함하는 카메라 디바이스에 대한 포즈를 추정할 수 있다. 추정 포즈가 기반으로 하는 현실 세계 환경의 이미지의 캡처 시간 이후 카메라 디바이스의 움직임을 설명하기 위해 추정 포즈를 업데이트하는 데 유사한 추론이 사용될 수 있다.
최종 추정 포즈가 수신되면, 카메라 디바이스는 몇몇 경우에 이미지 기반 로컬화 프로세스를 종료할 수 있다. 예를 들어, 카메라 디바이스는 현실 세계 환경의 새로운 이미지를 캡처하는 것, 이미지 피처의 세트를 검출하거나 원격 디바이스로 전송하는 것, 및 원격 디바이스로부터 포즈 추정을 수신하는 것을 중단할 수 있다. 이와 유사하게, 원격 디바이스는 카메라 디바이스로부터 이미지 및/또는 이미지 피처의 수신을 중단할 수 있고 새로운 포즈 추정 생성을 중단할 수 있다. 이 포인트에서, 카메라 디바이스의 포즈 추적은 예를 들어, 카메라 디바이스의 적절한 위치/방향 센서를 통해 카메라 자체에 의해 수행될 수 있다.
그러나, 다른 경우에 임의의 특정 추정 포즈가 카메라 디바이스로 전송된 후 이미지 기반 로컬화를 중지할 필요가 없다. 오히려, 이미지 기반 로컬화는 잠재적으로 무기한 계속될 수 있는데, 예를 들어, 카메라 디바이스가 사용 중인 한 계속해서 현실 세계 환경의 새로운 이미지를 캡처하고 원격 디바이스로부터 새로운 포즈 추정을 수신할 수 있다. 이것은 IMU와 같은 다른 온보드 움직임 센서가 없는 카메라 디바이스에 대해 잠재적으로 높은 정확도의 포즈 추적을 용이하게 할 수 있다. 이와 달리, 이미지 기반 로컬화는 선택적으로 중단되고 다시 계속될 수 있으며, 예를 들어, 원격 디바이스는 카메라 디바이스가 절대 포즈가 불확실하게 될 때마다 더 확실한 카메라 포즈를 재설정하는 데 사용될 수 있다.
본 명세서에 설명된 방법 및 프로세스는 하나 이상의 컴퓨팅 디바이스의 컴퓨팅 시스템에 연결될 수 있다. 특히, 이러한 방법 및 프로세스는 실행 가능한 컴퓨터 애플리케이션 프로그램, 네트워크 액세스 가능한 컴퓨팅 서비스, 애플리케이션 프로그래밍 인터페이스(API), 라이브러리, 또는 앞에서 열거된 것 및/또는 다른 컴퓨팅 리소스의 조합으로 구현될 수 있다.
도 6은 본 명세서에 설명된 컴퓨팅 기능 모두에 임의의 것을 제공하도록 구성된 컴퓨팅 시스템(600)의 단순화된 표현을 개략적으로 도시한다. 컴퓨팅 시스템(600)은 하나 이상의 카메라 디바이스, 가상/증강/혼합 현실 컴퓨팅 디바이스, 모바일 통신 디바이스(예컨대, 스마트폰), 태블릿 컴퓨터, 홈 엔터테인먼트 컴퓨터, 게임 디바이스, 모바일 컴퓨팅 디바이스, 착용형 컴퓨팅 디바이스, 사물 인터넷(IoT) 디바이스, 내장형 컴퓨팅 디바이스, 개인용 컴퓨터, 네트워크 액세스 가능한 서버 컴퓨터 및/또는 기타 컴퓨팅 디바이스의 형태를 취할 수 있다. 컴퓨팅 시스템(600)의 비제한적인 예는 카메라 디바이스(106 및 300)뿐만 아니라 원격 디바이스(308)도 포함할 수 있다.
컴퓨팅 시스템(600)은 로직 서브시스템(602) 및 저장 서브시스템(604)을 포함한다. 컴퓨팅 시스템(600)은 디스플레이 서브시스템(606), 입력 서브시스템(608), 통신 서브시스템(610), 및/또는 도 6에 도시되지 않은 다른 서브시스템을 선택적으로 포함할 수 있다.
로직 서브시스템(602)은 명령어를 실행하도록 구성된 하나 이상의 물리적 디바이스를 포함한다. 예를 들어, 로직 서브시스템은 하나 이상의 애플리케이션, 서비스 또는 다른 로직 구성의 일부인 명령어를 실행하도록 구성될 수 있다. 로직 서브시스템은 소프트웨어 명령어를 실행하도록 구성된 하나 이상의 하드웨어 프로세서를 포함할 수 있다. 추가적으로, 또는 대안적으로, 로직 서브시스템은 하드웨어 또는 펌웨어 명령어를 실행하도록 구성된 하나 이상의 하드웨어 또는 펌웨어 디바이스를 포함할 수 있다. 로직 서브시스템의 프로세서는 단일 코어 또는 다중 코어일 수 있고, 그 위에서 실행되는 명령어는 순차, 병렬 및/또는 분산 처리를 위해 구성될 수 있다. 로직 서브시스템의 개별 구성요소는 선택적으로 2개 이상의 개별 디바이스에 분산될 수 있으며, 이는 원격으로 위치되고/되거나 처리 조정을 위해 구성될 수 있다. 로직 서브시스템의 양상은 클라우드 컴퓨팅 구성으로 구성된 원격 액세스 가능한 네트워킹 컴퓨팅 디바이스에 의해 가상화되고 실행될 수 있다.
저장 서브시스템(604)은 로직 서브시스템에 의해 실행 가능한 데이터 및 명령어와 같은 컴퓨터 정보를 일시적으로 및/또는 영구적으로 보유하도록 구성된 하나 이상의 물리적 디바이스를 포함한다. 저장 서브시스템이 두 개 이상의 디바이스를 포함하는 경우, 디바이스들은 같은 곳에 배치되고/되거나 원격으로 배치될 수 있다. 저장 서브시스템(604)은 휘발성, 비휘발성, 동적, 정적, 읽기/쓰기, 읽기 전용, 랜덤 액세스, 순차 액세스, 위치 어드레싱 가능, 파일 어드레싱 가능 및/또는 콘텐츠 어드레싱 가능 디바이스를 포함할 수 있다. 저장 서브시스템(604)은 착탈식 및/또는 내장형 디바이스를 포함할 수 있다. 로직 서브시스템이 명령어를 실행할 때, 저장 서브시스템(604)의 상태는 예를 들어, 상이한 데이터를 보유하기 위해 변환될 수 있다.
로직 서브시스템(602) 및 저장 서브시스템(604)의 양상은 하나 이상의 하드웨어-논리 구성요소로 함께 통합될 수 있다. 이러한 하드웨어 로직 구성요소는 예컨대, 프로그램 및 애플리케이션 특정 집적 회로(PASIC/ASIC), 프로그램 및 애플리케이션 특정 표준 제품(PSSP/ASSP), 시스템 온 칩(SOC) 및 복잡한 프로그래밍 가능 로직 디바이스(CPLD)를 포함될 수 있습니다.
로직 서브시스템과 저장 서브시스템은 하나 이상의 로직 머신을 인스턴스화하기 위해 협력할 수 있다. 본 명세서에서 사용된 용어 "머신"은 하드웨어, 펌웨어, 소프트웨어, 명령어 및/또는 컴퓨터 기능을 제공하기 위해 협력하는 기타 구성요소의 조합을 총괄하여 지칭하는 데 사용된다. 즉, "머신"은 결코 추상적인 개념이 아니며 항상 유형의 형태를 가지고 있다. 머신은 단일 컴퓨팅 디바이스에 의해 인스턴스화될 수 있거나 또는 머신은 2개 이상의 상이한 컴퓨팅 디바이스에 의해 인스턴스화되는 2개 이상의 하위 구성요소를 포함할 수 있다. 몇몇 구현에서, 머신은 원격 구성요소(예를 들어, 서버 컴퓨터의 네트워크에 의해 제공되는 클라우드 컴퓨팅 서비스)와 협력하는 로컬 구성요소(예를 들어, 컴퓨터 프로세서에 의해 실행되는 소프트웨어 애플리케이션)를 포함한다. 특정 머신에 기능을 제공하는 소프트웨어 및/또는 기타 명령어는 하나 이상의 적절한 저장 디바이스에 하나 이상의 실행되지 않은 모듈로서 선택적으로 저장될 수 있다.
포함되는 경우, 디스플레이 서브시스템(606)은 저장 서브시스템(604)에 의해 보유된 데이터의 시각적 표현을 제시하는 데 사용될 수 있다. 이 시각적 표현은 그래픽 사용자 인터페이스(GUI)의 형태를 취할 수 있다. 디스플레이 서브시스템(606)은 사실상 어떠한 유형의 기술도 활용하는 하나 이상의 디스플레이 디바이스를 포함할 수 있다. 몇몇 구현에서, 디스플레이 서브시스템은 하나 이상의 가상, 증강 또는 혼합 현실 디스플레이를 포함할 수 있다.
포함되는 경우, 입력 서브시스템(608)은 하나 이상의 입력 디바이스를 포함하거나 이들과 인터페이싱할 수 있다. 입력 디바이스는 센서 디바이스 또는 사용자 입력 디바이스를 포함할 수 있다. 사용자 입력 디바이스의 예는 키보드, 마우스, 터치 스크린 또는 게임 컨트롤러를 포함한다. 몇몇 실시예에서, 입력 서브시스템은 선택된 자연 사용자 입력(NUI) 구성요소를 포함하거나 이와 인터페이싱할 수 있다. 이러한 구성요소는 통합되거나 주변 디바이스일 수 있으며, 입력 작업의 변환 및/또는 처리는 온보드 또는 오프보드로 처리될 수 있다. 예시적인 NUI 구성요소는 스피치 및/또는 음성 인식을 위한 마이크로폰; 머신 비전 및/또는 제스처 인식을 위한 적외선, 컬러, 입체 및/또는 깊이 카메라; 움직임 검출 및/또는 의도 인식을 위한 헤드 트래커, 아이 트래커, 가속도계 및/또는 자이로스코프를 포함할 수 있다.
포함되는 경우, 통신 서브시스템(610)은 컴퓨팅 시스템(600)을 하나 이상의 다른 컴퓨팅 디바이스와 통신 가능하게 결합하도록 구성될 수 있다. 통신 서브시스템(610)은 하나 이상의 상이한 통신 프로토콜과 호환 가능한 유선 및/또는 무선 통신 디바이스를 포함할 수 있다. 통신 서브시스템은 개인, 근거리 및/또는 광역 네트워크를 통한 통신을 위해 구성될 수 있다.
본 명세서에 개시된 방법 및 프로세스는 사용자 및/또는 임의의 다른 인간에게 예를 들어, 카메라 디바이스에 의해 캡처된 이미지 및 카메라 디바이스에 대해 추정된 포즈를 포함하는 임의의 개인 및/또는 잠재적으로 민감한 데이터에 대한 제어를 제공하도록 구성될 수 있다. 데이터가 저장, 액세스 및/또는 처리될 때마다, 데이터는 프라이버시 및/또는 보안 표준에 따라 처리될 수 있다. 사용자 데이터가 수집될 때, 사용자 또는 기타 이해 관계자는 데이터를 사용 및/또는 저장하는 방법을 지정할 수 있다. 어떤 목적으로든 사용자 데이터가 수집될 때마다, 사용자 데이터는 사용자 프라이버시를 최대한 존중해서만 수집될 수 있다(예컨대, 사용자 데이터는 데이터를 소유한 사용자가 긍정적인 동의를 제공하고/하거나 데이터를 소유한 사용자가 사용자 데이터가 수집될 때마다 통지를 받을 수 있는 경우에만 수집될 수 있다). 사용자가 아닌 다른 사람이 액세스할 수 있도록 데이터가 공개되거나 의사 결정 프로세스에 사용되는 경우, 데이터를 사용 및/또는 공개하기 전에 사용자의 동의가 수집될 수 있다. 사용자는 언제든지 데이터 수집을 옵트인(opt-in) 및/또는 옵트아웃(opt-out)할 수 있다. 데이터가 수집된 후, 사용자는 데이터 삭제 및/또는 데이터 액세스 제한을 위한 커맨드를 내릴 수 있다. 잠재적으로 민감한 모든 데이터는 선택적으로 암호화되고/되거나 가능한 경우 익명화되어 사용자 프라이버시를 추가로 보호할 수 있다. 사용자는 예를 들어, 추가 처리를 위해 다른 당사자에게 공개할 데이터, 메타데이터 또는 처리 데이터의 통계/결과의 일부를 지정할 수 있다. 개인 및/또는 기밀 데이터는 완전히 비공개로 유지될 수 있으며, 예를 들어, 처리를 위해 일시적으로만 복호화되거나 사용자 디바이스에서 처리하기 위해서만 복호화되고 그렇지 않으면 암호화된 형태로 저장된다. 사용자는 암호화된 데이터에 대한 암호화 키를 보유하고 제어할 수 있다. 대안적으로 또는 추가적으로, 사용자는 예를 들어, 적절한 인증 프로토콜에 따라 사용자에게 데이터에 대한 액세스를 제공하기 위해 암호화된 데이터에 대한 암호화 키를 보유하고 제어할 신뢰할 수 있는 제3자를 지정할 수 있다.
일 예에서, 이미지 기반 로컬화를 위한 방법은, 카메라 디바이스에서, 현실 세계 환경의 복수의 이미지를 캡처하는 단계와, 복수의 이미지 중 제1 이미지에서 이미지 피처의 제1 세트를 검출하는 단계와, 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출되기 전에, 복수의 이미지에서 검출된 이미지 피처에 기초하여 카메라 디바이스의 포즈를 추정하도록 구성된 원격 디바이스에 이미지 피처의 제1 세트를 전송하는 단계와, 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출됨에 따라, 이미지 피처의 추가 세트를 원격 디바이스에 전송하는 단계와, 원격 디바이스로부터, 카메라 디바이스의 추정 포즈를 수신하는 단계를 포함한다. 이 예에 또는 임의의 다른 예에서, 현실 세계 환경의 복수의 이미지는 실질적으로 동시에 캡처된다. 이 예에 또는 임의의 다른 예에서, 복수의 이미지 중 각각의 이미지는 카메라 디바이스의 서로 다른 제각기의 카메라에 의해 캡처되고, 방법은 카메라 디바이스의 서로 다른 제각기의 카메라 각각의 서로에 대한 공간적 관계를 나타내는 정보를 원격 디바이스로 전송하는 단계를 더 포함한다. 이 예에 또는 임의의 다른 예에서, 현실 세계 환경의 복수의 이미지는 순차적으로 캡처된다. 이 예에 또는 임의의 다른 예에서, 방법은 복수의 이미지 중 순차적인 이미지를 캡처하는 사이에 카메라 디바이스의 움직임에 관한 정보를 원격 디바이스로 전송하는 단계를 더 포함한다. 이 예에 또는 임의의 다른 예에서, 카메라 디바이스의 추정 포즈는 원격 디바이스로 전송된 이미지 피처와 현실 세계 환경에 대응하는 디지털 환경 맵 내의 맵 피처 사이의 식별된 대응관계에 기초하여 추정된다. 이 예에 또는 임의의 다른 예에서, 각각의 검출된 이미지 피처는 이미지 피처가 현실 세계 환경의 대응하는 이미지에서 식별되었던 2차원(2D) 픽셀 위치의 표시를 포함하고, 식별된 대응관계는 원격 디바이스로 전송된 이미지 피처의 2D 픽셀 위치와 디지털 환경 맵 내의 맵 피처의 3차원(3D) 맵 위치 간에 식별되는 것이다. 이 예에 또는 임의의 다른 예에서, 2D 픽셀 위치와 3D 맵 위치 사이의 식별된 대응관계는 카메라 디바이스의 추정 포즈를 출력하는 RANSAC(random sample consensus) 솔버(solver)에 입력된다. 이 예에 또는 임의의 다른 예에서, 카메라 디바이스의 추정 포즈는 예비 추정 포즈이고 복수의 이미지의 모든 이미지에 대해 이미지 피처의 추가 세트가 검출되기 전에 수신되며, 예비 추정 포즈는 예비 추정 포즈가 추정되기 전에 원격 디바이스로 전송된 이미지 피처의 수량에 비례하는 관련 신뢰도 값을 갖는다. 이 예에 또는 임의의 다른 예에서, 예비 추정 포즈 이후에 하나 이상의 추가 추정 포즈를 수신하는 단계를 더 포함하되, 하나 이상의 추가 추정 포즈는 예비 추정 포즈보다 더 많은 검출된 이미지 피처에 기초하여 추정되고 이에 대응하여 더 높은 신뢰도 값을 갖는다. 이 예에 또는 임의의 다른 예에서, 방법은 최종 신뢰도 임계값을 초과하는 대응하는 신뢰도 값을 갖는 최종 추정 포즈를 수신하고, 최종 추정 포즈를 수신한 후에, 이미지 피처의 추가 세트를 원격 디바이스로 전송하는 것을 중단하는 단계를 더 포함한다.
일 예에서, 컴퓨팅 디바이스는 하나 이상의 카메라와, 로직 머신을 포함하되, 로직 머신은 하나 이상의 카메라를 통해 현실 세계 환경의 복수의 이미지를 캡처하고, 복수의 이미지 중 제1 이미지에서 이미지 피처의 제1 세트를 검출하며, 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출되기 전에, 복수의 이미지에서 검출된 이미지 피처에 기초하여 카메라 디바이스의 포즈를 추정하도록 구성된 원격 디바이스에 이미지 피처의 제1 세트를 전송하고, 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출됨에 따라, 이미지 피처의 추가 세트를 원격 디바이스에 전송하며, 원격 디바이스로부터, 카메라 디바이스의 추정 포즈를 수신하도록 구성된다. 이 예 또는 임의의 다른 예에서, 현실 세계 환경의 복수의 이미지는 카메라 디바이스의 서로 다른 제각기의 카메라에 의해 실질적으로 동시에 캡처되고, 로직 머신은 또한 카메라 디바이스의 서로 다른 제각기의 카메라 각각의 서로에 대한 공간적 관계를 나타내는 정보를 원격 디바이스로 전송하도록 구성된다. 이 예 또는 임의의 다른 예에서, 현실 세계 환경의 복수의 이미지는 순차적으로 캡처되고, 로직 머신은 또한 복수의 이미지 중 순차적인 이미지를 캡처하는 사이에 카메라 디바이스의 움직임에 관한 정보를 원격 디바이스로 전송하도록 구성된다. 이 예에 또는 임의의 다른 예에서, 카메라 디바이스의 추정 포즈는 원격 디바이스로 전송된 이미지 피처와 현실 세계 환경에 대응하는 디지털 환경 맵 내의 맵 피처 사이의 식별된 대응관계에 기초하여 추정된다. 이 예 또는 임의의 다른 예에서, 각각의 검출된 이미지 피처는 이미지 피처가 현실 세계 환경의 대응하는 이미지에서 식별되었던 2차원(2D) 픽셀 위치의 표시를 포함하고, 식별된 대응관계는 원격 디바이스로 전송된 이미지 피처의 2D 픽셀 위치와 디지털 환경 맵 내의 맵 피처의 3차원(3D) 맵 위치 간에 식별되는 것이다. 이 예에 또는 임의의 다른 예에서, 카메라 디바이스의 추정 포즈는 예비 추정 포즈이고 복수의 이미지의 모든 이미지에 대해 이미지 피처의 추가 세트가 검출되기 전에 수신된다. 이 예 또는 임의의 다른 예에서, 예비 추정 포즈는 예비 추정 포즈가 추정되기 전에 원격 디바이스로 전송된 이미지 피처의 수량에 비례하는 관련 신뢰도 값을 갖고, 로직 머신은 또한 예비 추정 포즈 이후에 하나 이상의 추가 추정 포즈를 수신하도록 구성되고, 하나 이상의 추가 추정 포즈는 예비 추정 포즈보다 더 많은 검출된 이미지 피처에 기초하여 추정되고 이에 대응하여 더 높은 신뢰도 값을 갖는다. 이 예 또는 임의의 다른 예에서, 로직 머신은 또한 최종 신뢰도 임계값을 초과하는 대응하는 신뢰도 값을 갖는 최종 추정 포즈를 수신하고, 최종 추정 포즈를 수신한 후에, 이미지 피처의 추가 세트를 원격 디바이스로 전송하는 것을 중단하도록 구성된다.
일 예에서, 컴퓨팅 디바이스는 로직 머신을 포함하되, 로직 머신은 카메라 디바이스로부터, 카메라 디바이스의 하나 이상의 카메라에 의해 캡처된 카메라 디바이스의 현실 세계 환경의 복수의 이미지를 수신하고, 현실 세계 환경의 복수의 이미지가 수신됨에 따라, 복수의 이미지의 각각의 이미지에서 이미지 피처의 세트를 검출하며, 이미지 피처의 세트가 검출됨에 따라, 검출된 이미지 피처와 현실 세계 환경에 대응하는 디지털 환경 맵의 맵 피처 간의 대응관계를 식별하고, 대응관계가 식별됨에 따라, 식별된 대응관계에 기초하여 카메라 디바이스의 복수의 추정 포즈를 계속해서 출력 - 각각의 추정 포즈는 각각의 제각기의 추정 포즈가 출력될 때 식별된 대응관계의 수량에 비례하는 대응하는 신뢰도 값을 가짐 - 하며, 예비 신뢰도 임계값을 초과하는 대응하는 신뢰도 값을 갖는 카메라 디바이스의 예비 포즈를 추정할 때, 그리고 복수의 이미지의 모든 이미지에 대해 이미지 피처의 세트를 검출하기 전에, 카메라 디바이스에 제1 포즈를 보고하고, 예비 신뢰도 임계값보다 높은 최종 신뢰도 임계값을 초과하는 대응하는 신뢰도 값을 갖는 카메라 디바이스의 제2 포즈를 추정할 때, 제2 포즈를 카메라 디바이스에 보고하도록 구성된다.
본 개시는 예로서 그리고 관련된 도면을 참조하여 제시된다. 하나 이상의 도면에서 실질적으로 동일할 수 있는 구성요소, 프로세스 단계 및 기타 요소는 동격으로 식별되고 최소한의 반복으로 설명된다. 그러나, 동격으로 식별되는 요소도 어느 정도 다를 수 있음에 유의할 것이다. 몇몇 도면은 도식적일 수 있으며 축척에 맞게 그려지지 않을 수 있음에 더 유의해야 한다. 도면에 표시된 다양한 도면 축척, 종횡비 및 구성요소 개수는 소정 특징이나 관계를 더 쉽게 알 수 있도록 의도적으로 왜곡될 수 있다.
본 명세서에 설명된 구성 및/또는 접근 방식은 본질적으로 예시적이며, 다수의 변형이 가능하므로, 이러한 특정 실시예 또는 예가 제한적인 의미로 고려되어서는 안 됨을 이해할 것이다. 본 명세서에 설명된 특정 루틴 또는 방법은 임의의 수의 처리 전략 중 하나 이상을 나타낼 수 있다. 이와 같이, 도시 및/또는 설명된 다양한 동작은 도시 및/또는 설명된 순서로, 다른 순서로, 동시에 수행되거나 생략될 수 있다. 마찬가지로, 상술한 프로세스의 순서는 변경될 수 있다.
본 개시의 청구 대상은 본 명세서에 개시된 다양한 프로세스, 시스템과 구성, 및 기타 특징, 기능, 작용 및/또는 특성의 모든 신규하고 명백한 조합 및 하위 조합뿐만 아니라 이들의 임의의 및 모든 균등물을 포함한다.
Claims (11)
- 이미지 기반 로컬화를 위한 방법으로서,
카메라 디바이스에서, 현실 세계 환경의 복수의 이미지를 캡처하는 단계와,
상기 복수의 이미지 중 제1 이미지에서 이미지 피처의 제1 세트를 검출하는 단계와,
상기 복수의 이미지 중 다른 이미지에서 이미지 피처의 추가 세트가 검출되기 전에, 상기 복수의 이미지에서 검출된 이미지 피처에 기초하여 상기 카메라 디바이스의 포즈를 추정하도록 구성된 원격 디바이스에 상기 이미지 피처의 제1 세트를 전송하는 단계와,
상기 복수의 이미지 중 다른 이미지에서 상기 이미지 피처의 추가 세트가 검출됨에 따라, 상기 이미지 피처의 추가 세트를 상기 원격 디바이스에 전송하는 단계와,
상기 원격 디바이스로부터, 상기 카메라 디바이스의 추정 포즈를 수신하는 단계를 포함하는
이미지 기반 로컬화를 위한 방법.
- 제1항에 있어서,
상기 현실 세계 환경의 복수의 이미지가 실질적으로 동시에 캡처되는
이미지 기반 로컬화를 위한 방법.
- 제2항에 있어서,
상기 복수의 이미지 중 각각의 이미지는 상기 카메라 디바이스의 서로 다른 제각기의 카메라에 의해 캡처되고,
상기 방법은 상기 카메라 디바이스의 상기 서로 다른 제각기의 카메라 각각의 서로에 대한 공간적 관계를 나타내는 정보를 상기 원격 디바이스로 전송하는 단계를 더 포함하는
이미지 기반 로컬화를 위한 방법.
- 제1항에 있어서,
상기 현실 세계 환경의 상기 복수의 이미지는 순차적으로 캡처되는
이미지 기반 로컬화를 위한 방법.
- 제4항에 있어서,
상기 복수의 이미지 중 순차적인 이미지를 캡처하는 사이에 상기 카메라 디바이스의 움직임에 관한 정보를 상기 원격 디바이스로 전송하는 단계를 더 포함하는
이미지 기반 로컬화를 위한 방법.
- 제1항에 있어서,
상기 카메라 디바이스의 추정 포즈는 상기 원격 디바이스로 전송된 이미지 피처와 상기 현실 세계 환경에 대응하는 디지털 환경 맵 내의 맵 피처 사이의 식별된 대응관계에 기초하여 추정되는
이미지 기반 로컬화를 위한 방법.
- 제6항에 있어서,
각각의 검출된 이미지 피처는 상기 이미지 피처가 상기 현실 세계 환경의 대응하는 이미지에서 식별되었던 2차원(2D) 픽셀 위치의 표시를 포함하고, 상기 식별된 대응관계는 상기 원격 디바이스로 전송된 이미지 피처의 2D 픽셀 위치와 상기 디지털 환경 맵 내의 맵 피처의 3차원(3D) 맵 위치 간에 식별되는 것인
이미지 기반 로컬화를 위한 방법.
- 제7항에 있어서,
상기 2D 픽셀 위치와 3D 맵 위치 사이의 식별된 대응관계는 상기 카메라 디바이스의 추정 포즈를 출력하는 RANSAC(random sample consensus) 솔버(solver)에 입력되는
이미지 기반 로컬화를 위한 방법.
- 제1항에 있어서,
상기 카메라 디바이스의 추정 포즈는 예비 추정 포즈이고 상기 복수의 이미지의 모든 이미지에 대해 상기 이미지 피처의 추가 세트가 검출되기 전에 수신되며, 상기 예비 추정 포즈는 상기 예비 추정 포즈가 추정되기 전에 상기 원격 디바이스로 전송된 이미지 피처의 수량에 비례하는 관련 신뢰도 값을 갖는
이미지 기반 로컬화를 위한 방법.
- 제9항에 있어서,
상기 예비 추정 포즈 이후에 하나 이상의 추가 추정 포즈를 수신하는 단계를 더 포함하되,
상기 하나 이상의 추가 추정 포즈는 상기 예비 추정 포즈보다 더 많은 검출된 이미지 피처에 기초하여 추정되고 이에 대응하여 더 높은 신뢰도 값을 갖는
이미지 기반 로컬화를 위한 방법.
- 제10항에 있어서,
최종 신뢰도 임계값을 초과하는 대응하는 신뢰도 값을 갖는 최종 추정 포즈를 수신하고, 상기 최종 추정 포즈를 수신한 후에, 이미지 피처의 추가 세트를 상기 원격 디바이스로 전송하는 것을 중단하는 단계를 더 포함하는
이미지 기반 로컬화를 위한 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/418,670 | 2019-05-21 | ||
US16/418,670 US11145083B2 (en) | 2019-05-21 | 2019-05-21 | Image-based localization |
PCT/US2020/024766 WO2020236307A1 (en) | 2019-05-21 | 2020-03-25 | Image-based localization |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220009393A true KR20220009393A (ko) | 2022-01-24 |
Family
ID=70334091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217037729A KR20220009393A (ko) | 2019-05-21 | 2020-03-25 | 이미지 기반 로컬화 |
Country Status (12)
Country | Link |
---|---|
US (1) | US11145083B2 (ko) |
EP (1) | EP3973444A1 (ko) |
JP (1) | JP7506091B2 (ko) |
KR (1) | KR20220009393A (ko) |
CN (1) | CN113874870A (ko) |
AU (1) | AU2020278951A1 (ko) |
BR (1) | BR112021021607A2 (ko) |
CA (1) | CA3137709A1 (ko) |
IL (1) | IL288125A (ko) |
MX (1) | MX2021014187A (ko) |
SG (1) | SG11202110917SA (ko) |
WO (1) | WO2020236307A1 (ko) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768003B2 (en) * | 2012-03-26 | 2014-07-01 | The Nielsen Company (Us), Llc | Media monitoring using multiple types of signatures |
WO2019194561A1 (ko) * | 2018-04-03 | 2019-10-10 | 한국과학기술원 | 이동형 단말기에서의 증강 현실을 제공하기 위한 위치 인식 방법 및 시스템 |
US11227435B2 (en) | 2018-08-13 | 2022-01-18 | Magic Leap, Inc. | Cross reality system |
US10957112B2 (en) | 2018-08-13 | 2021-03-23 | Magic Leap, Inc. | Cross reality system |
CN113196209A (zh) | 2018-10-05 | 2021-07-30 | 奇跃公司 | 在任何位置渲染位置特定的虚拟内容 |
JP2022551733A (ja) | 2019-10-15 | 2022-12-13 | マジック リープ, インコーポレイテッド | 位置特定サービスを伴うクロスリアリティシステム |
US11632679B2 (en) | 2019-10-15 | 2023-04-18 | Magic Leap, Inc. | Cross reality system with wireless fingerprints |
CN112767300B (zh) * | 2019-10-18 | 2024-07-09 | 宏达国际电子股份有限公司 | 自动生成手部的标注数据的方法和计算骨骼长度的方法 |
CN114616509A (zh) | 2019-10-31 | 2022-06-10 | 奇跃公司 | 具有关于持久坐标框架的质量信息的交叉现实系统 |
WO2021096931A1 (en) | 2019-11-12 | 2021-05-20 | Magic Leap, Inc. | Cross reality system with localization service and shared location-based content |
EP4073763A4 (en) | 2019-12-09 | 2023-12-27 | Magic Leap, Inc. | CROSS-REALLY SYSTEM WITH SIMPLIFIED PROGRAMMING OF VIRTUAL CONTENT |
JP7570064B2 (ja) * | 2019-12-10 | 2024-10-21 | パナソニックIpマネジメント株式会社 | 空間温度推定システム |
JP2023514208A (ja) | 2020-02-13 | 2023-04-05 | マジック リープ, インコーポレイテッド | マルチ分解能フレーム記述子を使用したマップ処理を伴うクロスリアリティシステム |
EP4103910A4 (en) | 2020-02-13 | 2024-03-06 | Magic Leap, Inc. | CROSS-REALLY SYSTEM WITH ACCURATE COMMON MAPS |
JP2023514207A (ja) | 2020-02-13 | 2023-04-05 | マジック リープ, インコーポレイテッド | 位置特定に関するジオロケーション情報の優先順位化を伴うクロスリアリティシステム |
CN115461787A (zh) | 2020-02-26 | 2022-12-09 | 奇跃公司 | 具有快速定位的交叉现实系统 |
JP2023524446A (ja) | 2020-04-29 | 2023-06-12 | マジック リープ, インコーポレイテッド | 大規模環境のためのクロスリアリティシステム |
US11748449B2 (en) * | 2020-11-25 | 2023-09-05 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Data processing method, data processing apparatus, electronic device and storage medium |
US11474193B2 (en) | 2020-12-09 | 2022-10-18 | Here Global B.V. | Camera calibration for localization |
CN114812381B (zh) * | 2021-01-28 | 2023-07-18 | 华为技术有限公司 | 电子设备的定位方法及电子设备 |
CN114842069A (zh) * | 2021-01-30 | 2022-08-02 | 华为技术有限公司 | 一种位姿确定方法以及相关设备 |
US11527047B2 (en) | 2021-03-11 | 2022-12-13 | Quintar, Inc. | Augmented reality system for viewing an event with distributed computing |
US11657578B2 (en) | 2021-03-11 | 2023-05-23 | Quintar, Inc. | Registration for augmented reality system for viewing an event |
US12003806B2 (en) * | 2021-03-11 | 2024-06-04 | Quintar, Inc. | Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model |
US11645819B2 (en) | 2021-03-11 | 2023-05-09 | Quintar, Inc. | Augmented reality system for viewing an event with mode based on crowd sourced images |
US12028507B2 (en) | 2021-03-11 | 2024-07-02 | Quintar, Inc. | Augmented reality system with remote presentation including 3D graphics extending beyond frame |
US11989343B2 (en) * | 2022-01-05 | 2024-05-21 | Nokia Technologies Oy | Pose validity for XR based services |
DE102023100107A1 (de) | 2023-01-03 | 2024-07-04 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und Vorrichtung zum Ermitteln einer Brillenpose einer Datenbrille in einem Fahrzeug bezüglich einer Fahrzeugumgebung |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008185417A (ja) | 2007-01-29 | 2008-08-14 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
JPWO2012090890A1 (ja) | 2010-12-27 | 2014-06-05 | 日本電気株式会社 | 情報処理システム,情報処理方法及び情報処理プログラム |
US9025856B2 (en) * | 2012-09-05 | 2015-05-05 | Qualcomm Incorporated | Robot control information |
US10062010B2 (en) * | 2015-06-26 | 2018-08-28 | Intel Corporation | System for building a map and subsequent localization |
JP6872128B2 (ja) | 2015-09-30 | 2021-05-19 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
JP6532412B2 (ja) | 2016-01-22 | 2019-06-19 | 三菱電機株式会社 | 自己位置推定システム、自己位置推定方法、モバイル端末、サーバおよび自己位置推定プログラム |
US10964053B2 (en) * | 2018-07-02 | 2021-03-30 | Microsoft Technology Licensing, Llc | Device pose estimation using 3D line clouds |
US10839556B2 (en) * | 2018-10-23 | 2020-11-17 | Microsoft Technology Licensing, Llc | Camera pose estimation using obfuscated features |
-
2019
- 2019-05-21 US US16/418,670 patent/US11145083B2/en active Active
-
2020
- 2020-03-25 KR KR1020217037729A patent/KR20220009393A/ko unknown
- 2020-03-25 JP JP2021559671A patent/JP7506091B2/ja active Active
- 2020-03-25 CA CA3137709A patent/CA3137709A1/en active Pending
- 2020-03-25 EP EP20720617.8A patent/EP3973444A1/en active Pending
- 2020-03-25 CN CN202080037267.1A patent/CN113874870A/zh active Pending
- 2020-03-25 AU AU2020278951A patent/AU2020278951A1/en active Pending
- 2020-03-25 SG SG11202110917SA patent/SG11202110917SA/en unknown
- 2020-03-25 WO PCT/US2020/024766 patent/WO2020236307A1/en unknown
- 2020-03-25 MX MX2021014187A patent/MX2021014187A/es unknown
- 2020-03-25 BR BR112021021607A patent/BR112021021607A2/pt unknown
-
2021
- 2021-11-15 IL IL288125A patent/IL288125A/en unknown
Also Published As
Publication number | Publication date |
---|---|
AU2020278951A1 (en) | 2021-11-18 |
CN113874870A (zh) | 2021-12-31 |
EP3973444A1 (en) | 2022-03-30 |
US20200372672A1 (en) | 2020-11-26 |
CA3137709A1 (en) | 2020-11-26 |
BR112021021607A2 (pt) | 2021-12-21 |
JP7506091B2 (ja) | 2024-06-25 |
JP2022533309A (ja) | 2022-07-22 |
SG11202110917SA (en) | 2021-10-28 |
IL288125A (en) | 2022-01-01 |
MX2021014187A (es) | 2022-01-06 |
US11145083B2 (en) | 2021-10-12 |
WO2020236307A1 (en) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7506091B2 (ja) | 画像ベースの位置特定 | |
US11688084B1 (en) | Artificial reality system with 3D environment reconstruction using planar constraints | |
WO2019242262A1 (zh) | 基于增强现实的远程指导方法、装置、终端和存储介质 | |
US9646384B2 (en) | 3D feature descriptors with camera pose information | |
US10580148B2 (en) | Graphical coordinate system transform for video frames | |
CN110866977B (zh) | 增强现实处理方法及装置、系统、存储介质和电子设备 | |
US8933931B2 (en) | Distributed asynchronous localization and mapping for augmented reality | |
CN112889091A (zh) | 使用模糊特征的相机位姿估计 | |
JP2022509640A (ja) | 疎結合されたリローカライゼーションサービスおよびアセット管理サービスを介して人工環境内でデジタルアセットを提示するためのシステムおよび方法 | |
CN112154486B (zh) | 用于多用户增强现实购物的系统和方法 | |
US10776943B2 (en) | System and method for 3D association of detected objects | |
KR102197615B1 (ko) | 증강 현실 서비스를 제공하는 방법 및 증강 현실 서비스를 제공하기 위한 서버 | |
WO2021164712A1 (zh) | 位姿跟踪方法、可穿戴设备、移动设备以及存储介质 | |
CN110310325B (zh) | 一种虚拟测量方法、电子设备及计算机可读存储介质 | |
CN108804161B (zh) | 应用的初始化方法、装置、终端和存储介质 | |
KR20230049969A (ko) | 글로벌 측위 장치 및 방법 | |
CN115578432A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
US12002227B1 (en) | Deep partial point cloud registration of objects | |
US20230401796A1 (en) | Fast ar device pairing using depth predictions | |
US20240203020A1 (en) | Systems and methods for generating or rendering a three-dimensional representation | |
CN112767484B (zh) | 定位模型的融合方法、定位方法、电子装置 | |
WO2022193180A1 (zh) | 视频帧处理方法和装置 | |
WO2023239776A1 (en) | Fast ar device pairing using depth predictions | |
KR20240152896A (ko) | 신규 뷰 합성을 이용한 장면 변화 검출 |