KR20230017088A - 영상 좌표의 불확실성을 추정하는 장치 및 방법 - Google Patents
영상 좌표의 불확실성을 추정하는 장치 및 방법 Download PDFInfo
- Publication number
- KR20230017088A KR20230017088A KR1020210127547A KR20210127547A KR20230017088A KR 20230017088 A KR20230017088 A KR 20230017088A KR 1020210127547 A KR1020210127547 A KR 1020210127547A KR 20210127547 A KR20210127547 A KR 20210127547A KR 20230017088 A KR20230017088 A KR 20230017088A
- Authority
- KR
- South Korea
- Prior art keywords
- coordinates
- image data
- tracking
- processor
- image
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 32
- 230000033001 locomotion Effects 0.000 claims abstract description 97
- 238000009826 distribution Methods 0.000 claims abstract description 82
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C22/00—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/277—Analysis of motion involving stochastic approaches, e.g. using Kalman filters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- 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/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20201—Motion blur correction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
불확실성을 추정하는 장치는, 적어도 하나의 프로그램을 실행함으로써 영상 좌표의 불확실성을 추정하는 프로세서를 포함하고, 프로세서는, 카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하고, 모션 센서로부터 획득된 모션 데이터 및 제1 영상 데이터의 깊이 값에 기초하여 기준 좌표에 대응되고 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하고, 제1 추적 좌표 및 제2 추적 좌표에 기초하여 제2 영상 데이터에서의 목표 좌표 분포를 계산하고, 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 추정 목표 좌표의 불확실성(uncertainty)을 획득하고, 추정 목표 좌표에 기초하여 제1 추적 좌표를 갱신(update)할 수 있다.
Description
본 개시에 따른 다양한 실시 예들은, 영상 좌표의 불확실성을 추정하여 영상 데이터에 대한 추적 좌표를 획득하는 장치 및 방법에 관한 것이다.
컴퓨터 비전 및 로봇 공학 분야에서 시각적 주행 거리 측정(visual odometry, VO)에 대한 기술 및 동시적 위치 추정 및 지도 작성(simultaneous localization and mapping, SLAM)에 대한 기술이 연구되고 있다. 특히, 이러한 기술들은 점차적으로 대중화되고 있는 자율 주행(autonomous navigation) 및 증강 현실(augmented reality)에 적용될 수 있다.
특징 기반의 주행 거리 측정 및 SLAM 기술에는, 움직이는 카메라 센서를 통해 연속적인 영상 데이터를 획득하고, 획득된 영상 데이터에서의 좌표 이동을 추적함으로써 연속적인 영상 데이터들 간에 관계를 분석하는 영상 좌표 추적 방법이 적용될 수 있다. 영상 좌표 추적 방법은 과거 영상 데이터에서의 특정 좌표에 대한 현재 영상 데이터에서의 목표 좌표를 찾아내는 방법을 의미할 수 있다. 이때, 과거 영상 데이터에서의 특정 좌표와 현재 영상 데이터에서의 목표 좌표는 실질적으로 동일한 점일 수 있다.
일반적인 영상 좌표 추적 방법은, 과거 영상 데이터에서의 특정 좌표의 주변 영상과 가장 유사한 주변 영상을 갖는 현재 영상 데이터에서의 좌표를 목표 좌표로 가정할 수 있다. 이후에, 과거 영상 데이터에서의 특정 좌표와 현재 영상 데이터에서의 목표 좌표가 이루는 복수의 쌍(pair)들 중에서 다수에 비해 명확히 구별되는 쌍(pair)들을 추적 실패로 추정하고, 이를 반복하여 추적 방법의 신뢰도를 향상시킬 수 있다.
움직이는 카메라 센서를 통해 연속적인 영상 데이터를 획득하여 좌표 이동을 추적함에 있어서, 움직이는 카메라 센서의 추적 결과는 시각적인 특징의 변화에 따라 크게 달라질 수 있다. 예를 들어, 카메라 센서의 움직임이 큰 경우에, 모션 블러(motion blur), 조명 변화(illumination change) 및 가림(occlusion) 등과 같은 시각적인 특징의 저하가 발생할 수 있다. 특히 모션 블러가 발생하면, 모션 블러가 발생한 방향으로 과거 영상 데이터에서의 특정 좌표와 유사한 다수의 좌표들이 분포할 수 있으므로 목표 좌표를 추정하기 어렵게 된다. 또한, 목표 좌표에 대한 추정이 어려움에 따라 오류 발생이 누적될 수 있고, 이에 따라 영상 좌표 추적의 정확도가 크게 감소할 수 있다.
따라서, 본 개시에서의 다양한 실시 예에서는 카메라 센서뿐만 아니라 모션 센서를 함께 사용하여 목표 좌표를 추정하고 추정 목표 좌표의 불확실성을 획득하는 장치 및 그 동작 방법을 제공하고자 한다.
본 개시의 실시 예들을 통해 해결하고자 하는 과제가 상술한 과제로 한정되는 것은 아니며, 언급되지 아니한 과제들은 본 개시 및 첨부된 도면으로부터 실시 예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
일 실시 예에서의 불확실성을 추정하는 장치는 적어도 하나의 프로그램을 실행함으로써 영상 좌표의 불확실성을 추정하는 프로세서를 포함하고, 프로세서는 카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하고, 모션 센서로부터 획득된 모션 데이터 및 제1 영상 데이터의 깊이 값에 기초하여 기준 좌표에 대응되고 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하고, 제1 추적 좌표 및 제2 추적 좌표에 기초하여 제2 영상 데이터에서의 목표 좌표 분포를 계산하고, 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 추정 목표 좌표의 불확실성(uncertainty)을 획득하고, 추정 목표 좌표에 기초하여 제1 추적 좌표를 갱신(update)할 수 있다.
일 실시 예에서의 불확실성을 추정하는 방법은 카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하는 단계, 모션 센서로부터 획득된 모션 데이터 및 제1 영상 데이터의 깊이 값에 기초하여 기준 좌표에 대응되고 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하는 단계, 제1 추적 좌표 및 제2 추적 좌표에 기초하여 제2 영상 데이터에서의 목표 좌표 분포를 계산하는 단계, 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 추정 목표 좌표의 불확실성(uncertainty)을 획득하는 단계, 및 추정 목표 좌표에 기초하여 제1 추적 좌표를 갱신(update)하는 단계를 포함할 수 있다.
일 실시 예에서의 SLAM 연산을 수행하는 전자 장치는 주변 환경에 대한 영상 데이터를 획득하는 카메라 센서, 전자 장치의 회전 및 이동을 감지하여 모션 데이터를 획득하는 모션 센서, 및 카메라 센서 및 모션 센서와 전기적으로 연결되는 프로세서를 포함하고, 프로세서는 카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하고, 모션 센서로부터 획득된 모션 데이터 및 제1 영상 데이터의 깊이 값에 기초하여 기준 좌표에 대응되고 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하고, 제1 추적 좌표 및 제2 추적 좌표에 기초하여 제2 영상 데이터에서의 목표 좌표 분포를 계산하고, 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 추정 목표 좌표의 불확실성(uncertainty)을 획득하고, 추정 목표 좌표에 기초하여 제1 추적 좌표를 갱신(update)할 수 있다.
도 1은 일 실시 예에 따른 전자 장치의 구성 요소에 대한 블록도이다.
도 2는 영상 좌표를 추적하는 종래의 방법을 설명하기 위한 예시도이다.
도 3은 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시 예에 따른 장치가 모션 기반 추적 좌표를 획득하는 방법을 설명하기 위한 예시도이다.
도 5는 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법에 대한 구체적인 흐름도이다.
도 6은 일 실시 예에 따른 장치가 영상 데이터를 샘플링하기 위하여 그리드를 결정하는 방법을 설명하기 위한 예시도이다.
도 7은 일 실시 예에 따른 전자 장치의 사시도이다.
도 2는 영상 좌표를 추적하는 종래의 방법을 설명하기 위한 예시도이다.
도 3은 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시 예에 따른 장치가 모션 기반 추적 좌표를 획득하는 방법을 설명하기 위한 예시도이다.
도 5는 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법에 대한 구체적인 흐름도이다.
도 6은 일 실시 예에 따른 장치가 영상 데이터를 샘플링하기 위하여 그리드를 결정하는 방법을 설명하기 위한 예시도이다.
도 7은 일 실시 예에 따른 전자 장치의 사시도이다.
본 실시 예들에서 사용되는 용어는 본 실시 예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시 예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시 예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시 예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 실시 예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 본 개시에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 개시에서 사용되는 '제1' 또는 '제2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
또한, 본 개시에서 사용되는 ‘월드 좌표계(world coordinate system)’는 현실 세계를 기준으로 설정된 3차원 좌표계를 의미할 수 있다.
하기 실시 예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시 예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참조하면서 오로지 예시를 위한 실시 예들을 상세히 설명하기로 한다.
도 1은 일 실시 예에 따른 전자 장치의 구성 요소에 대한 블록도이다.
도 1을 참조하면, 일 실시 예에 따른 전자 장치(100)는 불확실성 추정 장치(110), 카메라 센서(120), 모션 센서(130), 프론트-엔드 프로세서(140) 및 백-엔드 프로세서(150)를 포함할 수 있다.
일 실시 예에서, 전자 장치(100)는 카메라 센서(120)로부터 얻어지는 영상 정보에 기초하여 3차원 공간 상에서의 전자 장치(100)의 현재 포즈(pose)를 인식하고 주변 환경에 대하여 모델링(modeling)하는 장치일 수 있다. 전자 장치(100)는 시각적 주행 거리 측정(visual odometry, VO), 시각적 SLAM(visual simultaneous localization and mapping, V-SLAM) 및/또는 시각적 관성 거리 측정(visual-inertial odometry, VIO) 기술이 적용되는 장치일 수 있다. 예를 들어, 전자 장치(100)는 VO, V-SLAM 및/또는 VIO 기술이 적용됨에 따라 자율 비행 드론, 로봇, 자율 주행 차량, 가상 현실 및/또는 증강 현실을 제공하는 전자 장치(예: 스마트 글래스)일 수 있다. 다만, 이에 제한되지 않고, 전자 장치(100)는 상기 기술들이 적용될 수 있는 다양한 전자 장치를 포함할 수도 있다.
일 실시 예에서, 카메라 센서(120)는 주변 환경에 대한 영상 데이터를 획득할 수 있다. 예를 들어, 카메라 센서(120)는 전방향 카메라, 스테레오 카메라 또는 모노 카메라에 해당할 수 있다. 일 실시 예에서, 카메라 센서(120)는 동적 환경에서의 다양한 객체(예: 정적 및/또는 동적 객체)의 3차원 정보를 포함하는 영상 데이터를 획득할 수 있다. 이때, 카메라 센서(120)가 획득하는 영상 데이터는 각 픽셀에서의 영상 데이터뿐만 아니라 각 픽셀에서의 깊이 데이터를 포함할 수 있다.
일 실시 예에서, 모션 센서(130)는 전자 장치(100)의 회전(rotation) 및 이동(translation)을 감지하여 모션 데이터를 획득할 수 있다. 예를 들어, 모션 센서(130)는 가속도 센서 및/또는 자이로 센서 등을 포함하는 관성 측정 장치(inertial measurement unit, IMU)일 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 카메라 센서(120) 및 모션 센서(130)로부터 수신된 데이터들을 처리할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 카메라 센서(120) 및 모션 센서(130)로부터 수신된 데이터들을 처리하여 영상 좌표를 추적하기 위한 데이터를 획득할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 카메라 센서(120)로부터 수신된 영상 데이터를 분석할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 영상 데이터를 분석하여 시각적 대응 관계(visual correspondence)를 획득할 수 있다. 본 개시에서, '시각적 대응 관계'는 특정 3차원 좌표가 연속적으로 획득되는 영상 데이터들 각각에 대해 투영된(projected) 2차원 좌표들 간에 관계를 의미할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 영상 좌표 추적 알고리즘을 통해 추적 좌표를 획득할 수 있다. 즉, 프론트-엔드 프로세서(140)는 영상 좌표 추적 알고리즘을 이용하여 카메라 센서(120)로부터 수신된 복수의 영상 데이터들 간에 시각적 대응 관계를 획득하고, 획득한 시각적 대응 관계에 기초하여 추적 좌표를 획득할 수 있다.
예를 들어, 프론트-엔드 프로세서(140)는 카메라 센서(120)로부터 제1 영상 데이터를 수신할 수 있다. 이때, 프론트-엔드 프로세서(140)는 제1 영상 데이터의 기준 좌표()를 설정할 수 있고, 상기 기준 좌표는 특징점(key point)에 대응되도록 설정될 수 있다. 제1 영상 데이터를 수신한 이후에, 프론트-엔드 프로세서(140)는 카메라 센서(120)로부터 제2 영상 데이터를 수신할 수 있다. 프론트-엔드 프로세서(140)는 제1 영상 데이터 및 제2 영상 데이터의 영상 유사도에 기초하여 시각적 대응 관계를 획득할 수 있다. 이때, 프론트-엔드 프로세서(140)는 제1 영상 데이터에서 설정한 기준 좌표()와 제2 영상 데이터에서의 임의의 좌표()의 영상 유사도를 계산할 수 있으며, 영상 유사도는 수식 1을 통해 계산될 수 있다.
[수식 1]
즉, 영상 유사도는 좌표 주변의 의 정사각형 내 픽셀 값들의 평균 제곱근 편차(root mean square error, RMSE)로 계산될 수 있다. 프론트-엔드 프로세서(140)는 Kanade-Lucas-Tomasi(KLT) 알고리즘을 통해 상기 영상 유사도가 최대가 되는 좌표를 제1 추적 좌표())로 결정할 수 있다. 이때, '제1 추적 좌표()'는 영상 기반 추적 좌표를 의미할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 모션 센서(130)로부터 수신된 모션 데이터에 기초하여 관성 포즈(inertial pose)를 추정할 수 있다. 예를 들어, 모션 센서(130)가 6DoF 관성 측정 장치인 경우에, 프론트-엔드 프로세서(140)는 모션 센서(130)로부터 3축 선형 가속도(linear acceleration) 및 3축 각속도(angular velocity)에 대한 데이터를 수신할 수 있다. 프론트-엔드 프로세서(140)는 초기 속도 및 센서의 바이어스 값을 추정하여, 상기 선형 가속도 및 각속도에 대한 데이터를 적분할 수 있다. 이때, 프론트-엔드 프로세서(140)가 초기 속도 및 센서의 바이어스 값을 추정하여 적분함에 따라 오차(error)가 누적되는 것을 방지할 수 있다. 프론트-엔드 프로세서(140)는 상기 데이터를 초기 속도 및 센서의 바이어스 값을 추정하여 적분함에 따라, 관성 포즈(예: ( , ))를 추정할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 영상 기반 추적 좌표인 제1 추적 좌표() 및 모션 데이터에 기초하여 영상 데이터의 깊이 값()을 추정할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 제1 추적 좌표() 및 모션 데이터를 기준으로 삼각 측량(triangulation)을 수행하여 영상 데이터의 깊이 값()을 추정할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 제1 추적 좌표(), 관성 포즈( , ) 및 영상 데이터의 깊이 값()에 대한 데이터를 불확실성 추정 장치(110)로 전달할 수 있다.
일 실시 예에서, 불확실성 추정 장치(110)는 적어도 하나의 프로세서(115)를 포함할 수 있다. 예를 들어, 프로세서(115)는 임베디드 프로세서(embedded processor), 마이크로 프로세서(micro-processor), 하드웨어 제어 로직(hardware control logic), 유한 상태 기계(finite state machine, FSM), 디지털 신호 처리장치(digital signal processor, DSP) 또는 그 조합이 될 수 있다.
본 개시에서, '불확실성 추정 장치'는 시각적 대응 관계의 불확실성을 추정하는 장치를 의미하며, 구체적으로는 시각적 대응 관계 및 실제 대응 관계 간의 확률적 차이를 추정하는 장치를 의미할 수 있다. 또한, 불확실성 추정 장치(110)는 적어도 하나의 프로세서(115)를 포함할 수 있으나, 이에 한정되는 것은 아니며, 적어도 하나의 프로세서(115) 자체가 불확실성 추정 장치(110)일 수도 있다.
일 실시 예에서, 프로세서(115)는 프론트-엔드 프로세서(140)로부터 수신한 제1 추적 좌표(), 관성 포즈( , ) 및 영상 데이터의 깊이 값()에 대한 데이터에 기초하여 제2 추적 좌표()를 결정할 수 있다. 이때, '제2 추적 좌표()'는 모션 기반 추적 좌표를 의미할 수 있다. 프로세서(115)가 제2 추적 좌표()를 결정하는 방법에 대한 구체적인 설명은 도 4에서 후술하고자 한다.
일 실시 예에서, 프로세서(115)는 제2 추적 좌표()를 결정한 이후에, 일련의 단계를 거쳐 제2 영상 데이터에서의 목표 좌표 분포를 계산할 수 있다. 예를 들어, 프로세서(115)는 사전 확률 분포를 계산하는 단계(제1 단계), 후보 좌표 그룹을 결정하는 단계(제2 단계) 및 영상 기반 분포를 계산하는 단계(제3 단계)를 거쳐 최종적으로 제2 영상 데이터에서의 목표 좌표 분포를 계산할 수 있다. 프로세서(115)가 제2 영상 데이터에서의 목표 좌표 분포를 계산하는 방법에 대한 구체적인 설명은 도 5에서 후술하고자 한다.
일 실시 예에서, 프로세서(115)는 복수의 제2 추적 좌표()에 대해 목표 좌표 분포를 계산하는 과정을 반복하여, 복수의 목표 좌표 분포 및 복수의 그리드()를 획득할 수 있다. 프로세서(115)는 복수의 목표 좌표 분포 및 복수의 그리드()에 기초하여 추정 목표 좌표() 및 추정 목표 좌표의 불확실성()을 획득할 수 있다. 예를 들어, 프로세서(115)는 복수의 목표 좌표 분포에 대한 평균을 계산하여 추정 목표 좌표()를 획득하고, 추정 목표 좌표에 대한 공분산 행렬을 계산하여 추정 목표 좌표의 불확실성()을 획득할 수 있다. 프로세서(115)가 추정 목표 좌표() 및 추정 목표 좌표의 불확실성()을 획득하는 방법에 대한 구체적인 설명은 도 5에서 후술하고자 한다.
일 실시 예에서, 프로세서(115)는 상기 획득된 추정 목표 좌표()에 기초하여 프론트-엔드 프로세서(140)로부터 수신된 제1 추적 좌표()를 갱신할 수 있다. 즉, 갱신된 제1 추적 좌표는 상기 획득된 추정 목표 좌표()와 동일한 좌표를 의미할 수 있다. 이후에, 프로세서(115)는 갱신된 제1 추적 좌표() 및 불확실성()을 백-엔드 프로세서(150)로 전달할 수 있다.
일 실시 예에서, 백-엔드 프로세서(150)는 불확실성 추정 장치(110)로부터 갱신된 제1 추적 좌표() 및 불확실성()을 수신하고, 프론트-엔드 프로세서(140)로부터 추정된 관성 포즈( , )에 대한 데이터를 수신할 수 있다. 백-엔드 프로세서(150)는 수신된 데이터들에 기초하여 카메라 센서(120)의 포즈(예: 위치(position) 및 방향(orientation))를 계산할 수 있다. 또한, 백-엔드 프로세서(150)는 칼만 필터(kalman filter) 및/또는 번들 조정(bundle adjustment) 등을 통해 최적화를 수행한 결과를 불확실성 추정 장치(110)에 전달할 수 있다. 예를 들어, 백-엔드 프로세서(150)는 카메라 센서(120)의 포즈를 계산 및 최적화한 결과 데이터(예: 제2 영상 데이터의 깊이 값())를 불확실성 추정 장치(110)에 전달할 수 있다.
도 2는 영상 좌표를 추적하는 종래의 방법을 설명하기 위한 예시도이다.
도 2를 참조하면, 전자 장치(200)를 착용한 사용자의 움직임에 따라, 전자 장치(200)는 디스플레이(미도시)를 통해 사용자의 움직임을 반영한 영상 데이터를 출력할 수 있다. 예를 들어, 전자 장치(200)를 착용한 사용자가 움직임에 따라 사용자의 포즈가 제1 포즈(210a)에서 제2 포즈(210b)로 바뀌는 경우에, 전자 장치(200)는 디스플레이를 통해 상기 포즈의 변화를 반영한 영상 데이터를 출력할 수 있다. 이때, 제1 포즈(210a)는 제1 시점에서 전자 장치(200)를 착용한 사용자의 위치(position) 및 방향(orientation)을 포함할 수 있다. 제2 포즈(210b)는 상기 제1 시점보다 이후인 제2 시점에서 전자 장치(200)를 착용한 사용자의 위치 및 방향을 포함할 수 있다.
일 실시 예에서, 전자 장치(200)는 종래의 영상 좌표 추적 알고리즘을 통해 영상 좌표를 추적할 수 있다. 즉, 전자 장치(200)는 카메라(예: 도 1의 카메라 센서(120))를 통해 획득한 연속적인 영상 데이터들 간에 시각적 대응 관계만으로 영상 좌표를 추적할 수 있다.
예를 들어, 전자 장치(200)는 제1 시점에서 제1 영상 데이터(205)의 기준 좌표(220)를 설정할 수 있다. 이때, 기준 좌표(220)는 카메라의 시점, 또는 주변 환경이 변해도 식별이 용이한 좌표를 의미할 수 있다. 기준 좌표(220)는 특징점(key point) 추출 방법(예: Harris Corner 방법)을 통해 설정될 수 있다.
이후, 전자 장치(200)를 착용한 사용자가 움직임에 따라, 전자 장치(200)는 제2 시점에서 제2 영상 데이터(215)를 출력할 수 있다. 이때, 사용자의 움직임이 크면 제2 영상 데이터(215)에는 모션 블러(motion blur)가 발생할 수 있고, 제1 영상 데이터(205) 및 제2 영상 데이터(215)는 영상 차이에 평탄화가 일어나 좌표 식별이 어려워질 수 있다. 전자 장치(200)는 제1 영상 데이터(205) 및 제2 영상 데이터(215) 간에 발생한 영상 차이를 샘플링하나, 제2 영상 데이터(215)에 기준 좌표(220)와 유사한 복수의 좌표가 분포됨에 따라 상기 샘플링의 효과가 감소할 수 있다. 따라서, 제1 영상 데이터(205) 및 제2 영상 데이터(215) 간에 영상 차이에 대한 샘플링의 효과가 감소하면, 최종적인 목표 좌표에 대한 확률 분포가 부정확할 수 있고, 결과적으로는 불확실성 계산이 저해될 수 있다.
도 3은 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 불확실성 추정 장치(예: 도 1의 불확실성 추정 장치(110))의 프로세서(예: 도 1의 프로세서(115))는 동작 301에서 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표()를 수신할 수 있다. 제1 추적 좌표()는 제1 영상 데이터의 기준 좌표()에 대응될 수 있다.
본 개시에서 '제2 영상 데이터'는 '제1 영상 데이터' 이후에 획득된 영상 데이터를 의미하며, '제1 영상 데이터' 및 '제2 영상 데이터'는 연속적인 영상 데이터를 의미할 수 있다. 또한, 본 개시에서의 '불확실성 추정 장치'는 사용자의 움직임이 커서 모션 블러가 발생하거나, 시차 발생 또는 조명 변화 등으로 인해 '제1 영상 데이터'와 영상 차이가 큰 '제2 영상 데이터'에 대해서도 목표 좌표의 불확실성을 추정할 수 있다.
일 실시 예에서, 프로세서(115)는 프론트-엔드 프로세서(140)로부터 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표()를 수신할 수 있다. 프론트-엔드 프로세서(140)는 제1 영상 데이터 및 제2 영상 데이터의 영상 유사도에 기초하여 시각적 대응 관계를 획득할 수 있고, 획득된 시각적 대응 관계에 기초하여 제1 추적 좌표()를 결정할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 제1 영상 데이터에서 설정한 기준 좌표()와 제2 영상 데이터에서의 임의의 좌표()의 영상 유사도를 계산하고, KLT 알고리즘을 통해 상기 영상 유사도가 최대가 되는 좌표를 제1 추적 좌표()로 결정할 수 있다.
일 실시 예에 따르면, 프로세서(115)는 동작 303에서 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표()를 획득할 수 있다. 일 실시 예에서, 프로세서(115)는 프론트-엔드 프로세서(140)로부터 수신된 모션 데이터 및 제1 영상 데이터의 깊이 값()에 기초하여 제2 추적 좌표()를 획득할 수 있다. 이때, '모션 데이터'는 프론트-엔드 프로세서(140)로부터 추정된 관성 포즈( , )를 의미할 수 있고, '제1 영상 데이터의 깊이 값()'은 프론트-엔드 프로세서(140)가 삼각 측량을 통해 추정한 깊이 값()을 의미할 수 있다.
예를 들어, 프로세서(115)는 제1 영상 데이터에서의 기준 좌표()에 대하여 제1 영상 데이터의 깊이 값()에 기초하여 3차원 좌표로 변환할 수 있다. 변환된 3차원 좌표에 대하여, 프로세서(115)는 프론트-엔드 프로세서(140)로부터 수신된 관성 포즈( , )를 적용하여 제2 영상 데이터에서의 3차원 좌표로 변환할 수 있다. 또한, 프로세서(115)는 제2 영상 데이터에서의 3차원 좌표를 투영(project)하여 제2 추적 좌표()를 획득할 수 있다.
일 실시 예에 따르면, 프로세서(115)는 동작 305에서 제2 영상 데이터에서의 목표 좌표 분포를 계산할 수 있다. 본 개시에서 '목표 좌표 분포'란, 제2 영상 데이터의 좌표들 중에서 제1 영상 데이터의 기준 좌표()가 실질적으로 대응될 좌표들의 확률 분포를 의미할 수 있다.
일 실시 예에서, 프로세서(115)는 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표() 및 모션 기반 추적 좌표인 제2 추적 좌표()에 기초하여 목표 좌표 분포를 계산할 수 있다. 예를 들어, 프로세서(115)는 사전 확률 분포를 계산하는 단계(제1 단계), 후보 좌표 그룹을 결정하는 단계(제2 단계) 및 영상 기반 분포를 계산하는 단계(제3 단계)를 거쳐 최종적으로 제2 영상 데이터에서의 목표 좌표 분포를 계산할 수 있다. 프로세서(115)가 제2 영상 데이터에서의 목표 좌표 분포를 계산하는 방법에 대한 구체적인 설명은 도 5에서 후술하고자 한다.
일 실시 예에 따르면, 프로세서(115)는 동작 307에서 추정 목표 좌표 및 추정 목표 좌표의 불확실성을 획득할 수 있다. 본 개시에서 '목표 좌표'란 제1 영상 데이터의 기준 좌표에 실질적으로 대응되는 좌표를 의미하고, '추정 목표 좌표'란 제1 영상 데이터의 기준 좌표에 대응되는 것으로 추정되는 좌표를 의미할 수 있다. 이때, 최초의 '추정 목표 좌표'는 영상 기반 추적 좌표(예: 제1 추적 좌표())일 수 있다.
일 실시 예에서, 프로세서(115)는 동작 305에서 계산한 목표 좌표 분포에 기초하여 추정 목표 좌표 및 추정 목표 좌표의 불확실성을 획득할 수 있다. 예를 들어, 프로세서(115)는 복수의 제2 추적 좌표()에 대해 목표 좌표 분포를 계산하는 과정을 반복하여 복수의 목표 좌표 분포 및 복수의 그리드()를 획득할 수 있다. 프로세서(115)는 복수의 목표 좌표 분포 및 복수의 그리드()에 기초하여 추정 목표 좌표() 및 추정 목표 좌표의 불확실성()을 획득할 수 있다. 예를 들어, 프로세서(115)는 복수의 목표 좌표 분포에 대한 평균을 계산하여 추정 목표 좌표()를 획득하고, 추정 목표 좌표에 대한 공분산 행렬을 계산하여 추정 목표 좌표의 불확실성()을 획득할 수 있다.
일 실시 예에 따르면, 프로세서(115)는 동작 309에서 추정 목표 좌표()에 기초하여 제1 추적 좌표를 갱신(update)할 수 있다. 예를 들어, 프로세서(115)는 복수의 목표 좌표 분포에 대한 평균인 추정 목표 좌표()를 제2 영상 데이터의 영상 기반 추적 좌표인 제1 추적 좌표로 갱신하여 설정할 수 있다.
도 4는 일 실시 예에 따른 장치가 모션 기반 추적 좌표를 획득하는 방법을 설명하기 위한 예시도이다.
도 4를 참조하면, 전자 장치(예: 도 1의 전자 장치(100))는 디스플레이를 통해 영상 데이터를 출력할 수 있다. 예를 들어, 전자 장치(100)는 정육면체 형상의 객체를 포함하는 제1 영상 데이터(405)를 출력할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(예: 도 1의 프론트-엔드 프로세서(140))는 제1 영상 데이터(405)의 기준 좌표()(420)를 설정할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 제1 영상 데이터(405)의 특징점(예: 정육면체 형상의 객체의 코너점)을 기준 좌표()(420)로 설정할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 제1 영상 데이터(405) 및 제2 영상 데이터(415)의 영상 유사도에 기초하여 영상 기반 추적 좌표인 제1 추적 좌표()(430)를 결정할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 모션 센서(예: 도 1의 모션 센서(130))로부터 수신된 모션 데이터에 기초하여 관성 포즈(inertial pose)를 추정할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 모션 센서(130)의 초기 속도 및 바이어스 값을 추정하여 선형 가속도 및 각속도에 대한 데이터를 적분할 수 있고, 적분 결과로 관성 포즈( , )를 추정할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 카메라 센서(예: 도 1의 카메라 센서(120))로부터 제1 영상 데이터(405)의 깊이 값()(422)을 획득할 수 있다. 예를 들어, 카메라 센서(120)가 스테레오 방식(stereo-type), ToF(time-of-flight) 방식, Structured Pattern 방식 등을 통해 영상 데이터의 3차원 깊이 값을 인식할 수 있는 경우에, 프론트-엔드 프로세서(140)는 카메라 센서(120)로부터 제1 영상 데이터(405)의 깊이 값()(422)을 획득할 수 있다. 다른 실시 예에서, 프론트-엔드 프로세서(140)는 제1 추적 좌표() 및 모션 데이터를 기준으로 삼각 측량(triangulation)을 수행하여 영상 데이터의 깊이 값()을 추정할 수도 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 제1 추적 좌표(), 관성 포즈( , ) 및 영상 데이터의 깊이 값()에 대한 데이터를 불확실성 추정 장치(110)로 전달할 수 있다.
일 실시 예에서, 불확실성 추정 장치(예: 도 1의 불확실성 추정 장치(110))의 프로세서(예: 도 1의 프로세서(115))는 수식 2를 통해 제2 영상 데이터(415)의 모션 기반 추적 좌표인 제2 추적 좌표()를 획득할 수 있다. 프로세서(115)는 프론트-엔드 프로세서(140)로부터 수신한 데이터들에 기초하여 수식 2를 계산할 수 있다.
[수식 2]
이때, 수식 2에서 는 3차원 좌표를 영상에서의 좌표(즉, 2차원 좌표)로 계산하는 투영 함수(projection function)이고, 는 영상에서의 좌표를 깊이 값()과 함께 3차원 좌표로 계산하는 역-투영 함수(back-projection function)에 해당한다. 즉, 프로세서(115)는 제1 영상 데이터(405)의 기준 좌표()(420)를 깊이 값()(422)에 기초하여 역-투영 함수 에 따라 기준 좌표()(420)에 대한 3차원 좌표(424)를 획득할 수 있다.
프로세서(115)는 획득한 3차원 좌표(424)에 대하여 관성 포즈( , )를 적용함으로써, 제2 영상 데이터(415)에서의 3차원 좌표를 획득할 수 있다. 즉, 프로세서(115)는 기준 좌표()(420)에 대한 3차원 좌표(424)인 함수 에 대하여, 전자 장치(100)의 회전(rotation) 값인 을 곱하는 곱 연산을 수행할 수 있다. 또한, 프로세서(115)는 상기 곱 연산을 수행한 결과 값인 및 전자 장치(100)의 이동(translation) 값인 에 대해 합 연산을 수행할 수 있다. 프로세서(115)는 상기 합 연산을 수행한 결과 값인 을 제2 영상 데이터(415)에서의 3차원 좌표로 판단할 수 있다.
도 5는 일 실시 예에 따른 장치가 추적 좌표의 불확실성을 추정하는 방법에 대한 구체적인 흐름도이다.
도 5를 참조하면, 카메라 센서(120) 및 모션 센서(130)는 각각 획득한 데이터를 프론트-엔드 프로세서(140)로 전송할 수 있다. 예를 들어, 주변 환경에 대한 영상 데이터를 획득한 카메라 센서(120)는 동작 500에서 프론트-엔드 프로세서(140)로 영상 데이터를 전송할 수 있다. 다른 예를 들어, 전자 장치(예: 도 1의 전자 장치(100))의 회전(rotation) 및 이동(translation)을 감지하여 모션 데이터를 획득한 모션 센서(130)는 동작 505에서 프론트-엔드 프로세서(140)로 모션 데이터를 전송할 수 있다.
다만, 도 5는 카메라 센서(120) 및 모션 센서(130)가 각각 획득한 데이터를 순차적으로 전송하는 실시 예만을 도시하고 있으나, 이에 한정되는 것은 아니다. 다른 실시 예에서, 카메라 센서(120) 및 모션 센서(130)는 각각 획득한 데이터를 프론트-엔드 프로세서(140)에 병렬적으로 전송할 수 있다.
일 실시 예에서, 프론트-엔드 프로세서(140)는 카메라 센서(120) 및 모션 센서(130)로부터 수신된 영상 데이터 및 모션 데이터를 처리할 수 있다. 예를 들어, 프론트-엔드 프로세서(140)는 카메라 센서(120)로부터 수신된 영상 데이터에 기초하여 영상 기반 추적 좌표인 제1 추적 좌표()를 획득할 수 있다. 프론트-엔드 프로세서(140)는 모션 센서(130)로부터 수신된 모션 데이터에 기초하여 전자 장치(100)의 관성 포즈( , )를 추정할 수 있다. 또한, 프론트-엔드 프로세서(140)는 영상 기반 추적 좌표인 제1 추적 좌표() 및 모션 데이터에 기초하여 영상 데이터의 깊이 값()을 추정할 수 있다.
일 실시 예에 따르면, 프론트-엔드 프로세서(140)는 동작 510에서 제1 추적 좌표(), 관성 포즈( , ) 및 영상 데이터의 깊이 값()에 대한 데이터를 불확실성 추정 장치(예: 도 1의 불확실성 추정 장치(110))의 프로세서(115)에 전송할 수 있다.
일 실시 예에 따르면, 프로세서(115)는 동작 515에서 제2 영상 데이터의 모션 기반 추적 좌표인 제2 추적 좌표()를 획득할 수 있다. 예를 들어, 프로세서(115)는 프론트-엔드 프로세서(140)로부터 수신된 제1 추적 좌표(), 관성 포즈( , ) 및 영상 데이터의 깊이 값()에 대한 데이터에 기초하여 제2 추적 좌표()를 획득할 수 있다.
예를 들어, 프로세서(115)는 동작 520에서 사전 확률 분포를 계산할 수 있다. 본 개시에서 '사전 확률 분포'란, 영상 기반 추적 좌표 및 모션 기반 추적 좌표를 통해 샘플링 한 임의의 좌표 에 대한 확률 분포를 의미할 수 있다. 사전 확률 분포는 임의의 좌표 의 거리 기반 확률을 의미할 수 있다. 프로세서(115)는 수식 3을 통해 임의의 좌표 에 대한 사전 확률 분포를 계산할 수 있다.
[수식 3]
즉, 프로세서(115)는 임의의 좌표 및 영상 기반 추적 좌표()의 거리 값인 과 임의의 좌표 및 모션 기반 추적 좌표()의 거리 값인 의 가중 평균을 이용하여 사전 확률 분포를 계산할 수 있다.
이때, 는 영상 기반 추적 좌표() 및 모션 기반 추적 좌표() 간에 균형을 위한 가중 파라미터일 수 있다. 이때, 는 0 내지 1의 범위에 해당할 수 있다. 예를 들어, 모션 데이터에 포함된 값(예: 관성 포즈( , )에 대응되는 값)이 기 설정된 값 미만인 경우에, 카메라 센서(120)로부터 획득되는 정보가 상대적으로 더 정확할 수 있으므로, 영상 기반 추적 좌표()의 중요도를 높이기 위하여 의 값이 증가할 수 있다. 또한, 의 값이 증가함에 따라 모션 기반 추적 좌표()의 중요도는 낮아질 수 있다. 는 스케일 파라미터이고, 는 정규화 팩터(normalization factor)인 상수일 수 있다.
[수식 4]
[수식 5]
동작 520에서 사전 확률 분포를 계산한 이후에, 프로세서(115)는 동작 525에서 후보 좌표 그룹을 결정할 수 있다. 예를 들어, 프로세서(115)는 사전 확률 분포 중에서 사전 확률이 임계 값 이상인 부분을 후보 좌표 그룹으로 결정할 수 있다. 프로세서(115)는 임계 값의 등고선을 포함하는 가장 작은 직사각형 영역을 그리드 영역()으로 선택할 수 있다. 이에 따라, 선택된 그리드 영역()은 사전 확률 분포의 형태에 따라 다르게 결정될 수 있다.
프로세서(115)는 동작 530에서 영상 기반 분포를 계산할 수 있다. 예를 들어, 프로세서(115)는 동작 525에서 결정된 후보 좌표 그룹의 그리드 영역()에 대해 기준 좌표와의 영상 유사도에 기초하여 영상 기반 분포를 계산할 수 있다. 이때, 영상 기반 분포는 수식 6을 통해 계산될 수 있다.
[수식 6]
이때, 는 스케일 팩터이고, 는 그리드 영역()에 대한 정규화 팩터인 상수일 수 있다. 일 실시 예에서, 는 영상 기반 분포() 및 사전 확률 분포()가 유사해지도록 하는 스케일 팩터일 수 있고, 는 상기 두 분포가 다른 정도를 나타내는 KL-divergence를 최소화함에 따라 결정될 수 있다.
프로세서(115)는 동작 535에서 목표 좌표 분포를 계산할 수 있다. 예를 들어, 프로세서(115)는 영상 기반 분포 및 사전 확률 분포에 기초하여 목표 좌표 분포를 계산할 수 있다. 이때, 목표 좌표 분포는 수식 7을 통해 계산될 수 있다.
[수식 7]
프로세서(115)는 영상 기반 분포 및 사전 확률 분포의 가중 기하 평균을 이용하여 목표 좌표 분포를 계산할 수 있다. 이때, 는 영상 기반 분포 및 사전 확률 분포 간에 균형을 위한 가중 파라미터일 수 있고, 0 내지 1의 범위에 해당할 수 있다.
프로세서(115)는 동작 540에서 추정 목표 좌표 및 추정 목표 좌표의 불확실성을 획득할 수 있다. 예를 들어, 프로세서(115)는 복수의 목표 좌표 분포 , 복수의 모션 기반 추적 좌표 각각의 정확도에 대응되는 가중치 및 복수의 그리드 영역 에 기초하여 추정 목표 좌표()를 획득할 수 있다. 추정 목표 좌표()는 수식 8을 통해 계산될 수 있다.
[수식 8]
[수식 9]
즉, 프로세서(115)는 복수의 목표 좌표 분포에 대한 평균을 계산하여 추정 목표 좌표()를 획득하고, 추정 목표 좌표에 대한 공분산 행렬을 계산하여 추정 목표 좌표의 불확실성()을 획득할 수 있다.
도 6은 일 실시 예에 따른 장치가 영상 데이터를 샘플링하기 위한 그리드 영역을 결정하는 방법을 설명하기 위한 예시도이다.
도 6을 참조하면, 프로세서(예: 도 1의 프로세서(115))는 도 5의 동작 520에서 계산된 사전 확률 분포 중에서 사전 확률이 임계 값(c) 이상인 부분을 그리드 영역()으로 선택할 수 있다.
일 실시 예에서, 프로세서(115)는 영상 기반 추적 좌표(예: 도 4의 제1 추적 좌표(430)) 및 모션 기반 추적 좌표(예: 도 4의 제2 추적 좌표(440))가 동일한 경우에, 정사각형 형태의 그리드 영역(600)을 선택할 수 있다. 이때, 그리드 영역(600)의 한 변의 길이는 일 수 있다. 상기 값은 수식 10을 통해 계산될 수 있다.
[수식 10]
다른 실시 예에서, 프로세서(115)는 영상 기반 추적 좌표 및 모션 기반 추적 좌표가 상이한 경우에, 직사각형 형태의 그리드 영역(610)을 선택할 수 있다. 예를 들어, 가 미만인 경우에, 그리드 영역(610)의 한 변의 길이는 이고, 다른 한 변의 길이는 일 수 있다. 이때, 값은 일 수 있다. 다른 예를 들어, 가 이상인 경우에, 그리드 영역(610)의 한 변의 길이는 이고, 다른 한 변의 길이는 일 수 있다.
도 7은 일 실시 예에 따른 전자 장치의 사시도이다.
도 7을 참조하면, 일 실시 예에 따른 전자 장치(700)는 데이터 획득부(710) 및 프로세서(720)를 포함할 수 있다. 전자 장치(700)는 전자 장치의 현재 포즈(pose)를 추정하고, 추정된 현재 포즈에 기초하여 전자 장치의 미래의 포즈를 예측할 수 있다.
일 실시 예에 따르면, 전자 장치(700)는 SLAM(simultaneous localization and mapping)을 통해 전자 장치(700)의 주변 맵(map) 및/또는 전자 장치(700)의 현재 포즈를 추정할 수 있다.
본 개시에서, 'SLAM'은 장치가 임의의 공간을 이동하면서 주변의 정보를 획득하고, 획득된 정보에 기초하여 해당 공간의 맵 및 장치의 현재 포즈를 추정하는 기술을 의미할 수 있으며, 해당 표현은 이하에서도 동일한 의미로 사용될 수 있다.
예를 들어, 전자 장치(700)의 프로세서(720)는 데이터 획득부(710)를 통해 획득된 외부 데이터(예: 영상 데이터, 모션 데이터 등)에 기초하여 주변 맵 및 현재 포즈를 추정할 수 있다.
본 개시에서, '전자 장치의 포즈'는 전자 장치의 위치 정보를 포함하는 데이터를 의미할 수 있으며, 해당 표현은 이하에서도 동일한 의미로 사용될 수 있다. 이때, 포즈 데이터는 6DoF 포즈 정보를 포함할 수 있으며, 6DoF 포즈 정보는 전자 장치(700)의 위치(position)를 나타내는 정보 및 방향(orientation)을 나타내는 정보를 포함할 수 있다.
일 실시 예에서, 전자 장치(700)는 사용자의 신체의 일부에 착용 가능한 웨어러블 전자 장치일 수 있다. 예를 들어, 전자 장치(700)는 렌즈(730) 및 전자 장치(700)의 적어도 일 영역을 사용자의 신체 일부에 고정시키기 위한 연결부(740)를 더 포함할 수 있다.
일 실시 예에서, 전자 장치(700)는 도 7에 도시된 바와 같이 사용자의 귀에 착용 가능한 안경 타입의 웨어러블 전자 장치일 수 있으나, 이에 한정되는 것은 아니다. 다른 실시 예에서, 전자 장치(700)는 사용자의 머리에 착용 가능한 머리 착용형 디스플레이(head mounted display, HMD) 장치일 수도 있다.
일 실시 예에서, 데이터 획득부(710) 및 프로세서(720)는 연결부(740)에 배치될 수 있으나, 데이터 획득부(710) 및 프로세서(720)의 배치 구조가 이에 한정되는 것은 아니다. 다른 실시 예(미도시)에서, 데이터 획득부(710) 및/또는 프로세서(720)는 렌즈(730)의 주변 영역(예: 테두리)에 배치될 수도 있다.
도면 상에 도시되지 않았으나, 전자 장치(700)는 증강 현실 이미지에 대한 데이터가 포함된 광을 방출하고, 방출된 광의 이동 경로를 조절하기 위한 광학 부품들을 포함할 수 있다. 프로세서(720)는 광학 부품들을 통해 증강 현실 이미지에 대한 데이터가 포함된 광을 방출하고, 방출된 광이 렌즈(730)에 도달하도록 할 수 있다.
증강 현실 이미지에 대한 데이터가 포함된 광이 렌즈(730)에 도달함에 따라, 렌즈(730)에는 증강 현실 이미지가 표시될 수 있으며, 전자 장치(700)는 상술한 과정을 통해 사용자(또는, 착용자)에게 증강 현실 이미지를 제공할 수 있다.
도 7에서는 전자 장치(700)가 웨어러블 전자 장치인 실시 예에 대해서만 도시하였으나, 전자 장치(예: 도 1의 전자 장치(100))의 적용 분야가 이에 한정되는 것은 아니다. 일 실시 예에서, 전자 장치(100)는 SLAM을 통해 주변 맵 및 자신의 현재 포즈를 추정할 수 있는 무인 비행 장치(UAV, unmanned aerial vehicle) 및/또는 자율 주행 차량에도 적용될 수 있다.
이상에서 실시 예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
Claims (19)
- 불확실성을 추정하는 장치에 있어서,
적어도 하나의 프로그램을 실행함으로써 영상 좌표의 불확실성을 추정하는 프로세서를 포함하고,
상기 프로세서는,
카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고, 상기 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하고,
모션 센서로부터 획득된 모션 데이터 및 상기 제1 영상 데이터의 깊이 값에 기초하여, 상기 기준 좌표에 대응되고, 상기 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하고,
상기 제1 추적 좌표 및 상기 제2 추적 좌표에 기초하여 상기 제2 영상 데이터에서의 목표 좌표 분포를 계산하고,
상기 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 상기 추정 목표 좌표의 불확실성(uncertainty)을 획득하고,
상기 추정 목표 좌표에 기초하여 상기 제1 추적 좌표를 갱신(update)하는, 장치. - 제1항에 있어서,
상기 프로세서는,
상기 제1 영상 데이터의 깊이 값에 기초하여 상기 기준 좌표에 대한 3차원 좌표를 획득하고,
상기 모션 데이터에 기초하여 상기 3차원 좌표를 상기 제2 영상 데이터에서의 3차원 좌표로 변환하고,
상기 변환된 3차원 좌표를 투영하여 상기 제2 추적 좌표를 획득하는, 장치. - 제1항에 있어서,
상기 프로세서는,
상기 제2 영상 데이터에 포함된 복수의 좌표들과 상기 제1 추적 좌표 및 상기 제2 추적 좌표 간에 각각의 거리 값의 가중 평균을 계산하고,
상기 계산된 가중 평균에 기초하여 사전 확률 분포를 계산하고,
상기 사전 확률 분포 중 확률이 임계 값 이상인 부분을 후보 좌표 그룹으로 결정하는, 장치. - 제3항에 있어서,
상기 프로세서는,
상기 모션 데이터에 포함된 값이 기 설정된 값 미만인 경우에, 상기 제2 영상 데이터에 포함된 복수의 좌표들과 상기 제1 추적 좌표 간에 거리 값에 대한 가중 파라미터를 상기 제2 영상 데이터에 포함된 복수의 좌표들과 상기 제2 추적 좌표 간에 거리 값에 대한 가중 파라미터보다 높게 설정하는, 장치. - 제3항에 있어서,
상기 프로세서는,
상기 결정된 후보 좌표 그룹에 대하여 상기 기준 좌표와의 영상 유사도에 기초하여 영상 기반 분포를 계산하는, 장치. - 제5항에 있어서,
상기 프로세서는,
상기 사전 확률 분포 및 상기 영상 기반 분포에 기초하여 상기 목표 좌표 분포를 계산하는, 장치. - 제1항에 있어서,
상기 프로세서는,
상기 갱신된 제1 추적 좌표 및 상기 불확실성을 외부 장치로 전송하는, 장치. - 제1항에 있어서,
상기 프로세서는,
상기 목표 좌표 분포에 대한 평균을 계산하여 목표 좌표를 추정하고, 상기 추정된 목표 좌표에 대한 공분산 행렬을 계산하여 상기 불확실성을 추정하는, 장치. - 불확실성을 추정하는 방법에 있어서,
카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고, 상기 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하는 단계;
모션 센서로부터 획득된 모션 데이터 및 상기 제1 영상 데이터의 깊이 값에 기초하여, 상기 기준 좌표에 대응되고, 상기 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하는 단계;
상기 제1 추적 좌표 및 상기 제2 추적 좌표에 기초하여 상기 제2 영상 데이터에서의 목표 좌표 분포를 계산하는 단계;
상기 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 상기 추정 목표 좌표의 불확실성(uncertainty)을 획득하는 단계; 및
상기 추정 목표 좌표에 기초하여 상기 제1 추적 좌표를 갱신(update)하는 단계를 포함하는, 방법. - 제9항에 있어서,
상기 제2 추적 좌표를 획득하는 단계는,
상기 제1 영상 데이터의 깊이 데이터에 기초하여 상기 기준 좌표에 대한 3차원 좌표를 획득하는 단계,
상기 모션 데이터에 기초하여 상기 3차원 좌표를 상기 제2 영상 데이터에서의 3차원 좌표로 변환하는 단계; 및
상기 변환된 3차원 좌표를 투영하여 상기 제2 추적 좌표를 획득하는 단계를 포함하는, 방법. - 제9항에 있어서,
상기 제2 영상 데이터에 포함된 복수의 좌표들과 상기 제1 추적 좌표 및 상기 제2 추적 좌표 간에 각각의 거리 값의 가중 평균을 계산하는 단계,
상기 계산된 가중 평균에 기초하여 사전 확률 분포를 계산하는 단계, 및
상기 사전 확률 분포 중 확률이 임계 값 이상인 복수의 좌표들을 목표 좌표에 대한 후보 좌표 그룹으로 결정하는 단계를 포함하는, 방법. - 제11항에 있어서,
상기 결정된 후보 좌표 그룹에 대하여 상기 기준 좌표와의 영상 유사도에 기초하여 영상 기반 분포를 계산하는 단계를 포함하는, 방법. - 제12항에 있어서,
상기 사전 확률 분포 및 상기 영상 기반 분포에 기초하여 상기 목표 좌표 분포를 계산하는 단계를 포함하는, 방법. - 제9항에 있어서,
상기 갱신된 제1 추적 좌표 및 상기 불확실성을 외부 장치로 전송하는 단계를 포함하는, 방법. - 제9항에 있어서,
상기 목표 좌표 분포에 대한 평균을 계산하여 목표 좌표를 추정하고, 상기 추정된 목표 좌표에 대한 공분산 행렬을 계산하여 상기 불확실성을 추정하는 단계를 포함하는, 방법. - SLAM 연산을 수행하는 전자 장치에 있어서,
주변 환경에 대한 영상 데이터를 획득하는 카메라 센서;
상기 전자 장치의 회전 및 이동을 감지하여 모션 데이터를 획득하는 모션 센서; 및
상기 카메라 센서 및 상기 모션 센서와 전기적으로 연결되는 프로세서를 포함하고,
상기 프로세서는,
상기 카메라 센서를 통해 획득된 제1 영상 데이터의 기준 좌표에 대응되고, 상기 제1 영상 데이터 이후에 획득된 제2 영상 데이터에서의 영상 기반 추적 좌표인 제1 추적 좌표를 수신하고,
상기 모션 센서로부터 획득된 모션 데이터 및 상기 제1 영상 데이터의 깊이 값에 기초하여, 상기 기준 좌표에 대응되고, 상기 제2 영상 데이터에서의 모션 기반 추적 좌표인 제2 추적 좌표를 획득하고,
상기 제1 추적 좌표 및 상기 제2 추적 좌표에 기초하여 상기 제2 영상 데이터에서의 목표 좌표 분포를 계산하고,
상기 계산된 목표 좌표 분포에 기초하여 추정 목표 좌표 및 상기 추정 목표 좌표의 불확실성(uncertainty)을 획득하고,
상기 추정 목표 좌표에 기초하여 상기 제1 추적 좌표를 갱신(update)하는, 전자 장치. - 제16항에 있어서,
상기 프로세서는,
상기 제1 영상 데이터의 깊이 값에 기초하여 상기 기준 좌표에 대한 3차원 좌표를 획득하고,
상기 모션 데이터에 기초하여 상기 3차원 좌표를 상기 제2 영상 데이터에서의 3차원 좌표로 변환하고,
상기 변환된 3차원 좌표를 투영하여 상기 제2 추적 좌표를 획득하는, 전자 장치. - 제16항에 있어서,
상기 카메라 센서의 회전 각도 및 위치를 계산하는 백 엔드 프로세서를 더 포함하고,
상기 프로세서는,
상기 갱신된 제1 추적 좌표 및 상기 불확실성을 상기 백 엔드 프로세서로 전송하는, 전자 장치. - 제16항에 있어서,
상기 프로세서는,
상기 목표 좌표 분포에 대한 평균을 계산하여 목표 좌표를 추정하고, 상기 추정된 목표 좌표에 대한 공분산 행렬을 계산하여 상기 불확실성을 추정하는, 전자 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/708,447 US20230030596A1 (en) | 2021-07-27 | 2022-03-30 | Apparatus and method for estimating uncertainty of image coordinate |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210098529 | 2021-07-27 | ||
KR1020210098529 | 2021-07-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230017088A true KR20230017088A (ko) | 2023-02-03 |
Family
ID=85225905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210127547A KR20230017088A (ko) | 2021-07-27 | 2021-09-27 | 영상 좌표의 불확실성을 추정하는 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230017088A (ko) |
-
2021
- 2021-09-27 KR KR1020210127547A patent/KR20230017088A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11668571B2 (en) | Simultaneous localization and mapping (SLAM) using dual event cameras | |
US11734846B2 (en) | System and method for concurrent odometry and mapping | |
WO2020037492A1 (en) | Distance measuring method and device | |
KR101776622B1 (ko) | 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
JP6198230B2 (ja) | 深度カメラを使用した頭部姿勢トラッキング | |
CN112652016B (zh) | 点云预测模型的生成方法、位姿估计方法及其装置 | |
US8896660B2 (en) | Method and apparatus for computing error-bounded position and orientation of panoramic cameras in real-world environments | |
US20160260250A1 (en) | Method and system for 3d capture based on structure from motion with pose detection tool | |
WO2015134795A2 (en) | Method and system for 3d capture based on structure from motion with pose detection tool | |
KR20150088636A (ko) | 위치 추정 장치 및 방법 | |
WO2022193508A1 (zh) | 位姿优化方法、装置、电子设备、计算机可读存储介质、计算机程序及程序产品 | |
CN113474819A (zh) | 信息处理装置、信息处理方法和程序 | |
JP2023068632A (ja) | Slamを加速化させる装置、及びそれを含む電子装置 | |
CN113030960A (zh) | 一种基于单目视觉slam的车辆定位方法 | |
KR20230017088A (ko) | 영상 좌표의 불확실성을 추정하는 장치 및 방법 | |
US20230030596A1 (en) | Apparatus and method for estimating uncertainty of image coordinate | |
CN116136408A (zh) | 室内导航方法、服务器、装置和终端 | |
KR20230018214A (ko) | 포즈를 추정하는 방법 및 장치 | |
KR20230013883A (ko) | Slam 기반의 전자 장치 및 그 동작 방법 | |
JP2022011821A (ja) | 情報処理装置、情報処理方法、移動ロボット | |
EP4261783A1 (en) | Using cloud computing to improve accuracy of pose tracking | |
Ismail et al. | A review of visual inertial odometry for object tracking and measurement | |
WO2022071315A1 (ja) | 自律移動体制御装置、自律移動体制御方法及びプログラム | |
US20240078686A1 (en) | Method and system for determining a state of a camera | |
Burschka | Monocular navigation in large scale dynamic environments |