KR20220158628A - 깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치 - Google Patents

깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220158628A
KR20220158628A KR1020220060733A KR20220060733A KR20220158628A KR 20220158628 A KR20220158628 A KR 20220158628A KR 1020220060733 A KR1020220060733 A KR 1020220060733A KR 20220060733 A KR20220060733 A KR 20220060733A KR 20220158628 A KR20220158628 A KR 20220158628A
Authority
KR
South Korea
Prior art keywords
depth
imu
feature
residual
keyframe
Prior art date
Application number
KR1020220060733A
Other languages
English (en)
Inventor
압히쉑 트야기
배동운
슈앙콴 왕
양웬 리앙
비네시 세수라만
슈 리
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20220158628A publication Critical patent/KR20220158628A/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C22/00Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Navigation (AREA)
  • Image Analysis (AREA)

Abstract

시각적 관성 주행 거리 측정(VIO)을 수행하기 위한 방법 및 장치가 제공된다. 상기 UE의 관성 측정 유닛(IMU), 카메라 및 깊이 센서로부터 측정이 처리된다. 상기 처리된 측정에 기초하여 적어도 깊이 잔차를 포함하는 키프레임 잔차가 결정된다. 슬라이딩 윈도우 그래프가 상기 키프레임 잔차로부터 유도된 인자에 기초하여 생성 및 최적화된다. 상기 최적화된 슬라이딩 윈도우 그래프에 기초하여 상기 UE의 개체 포즈가 추정된다.

Description

깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치{Method and apparayus for depth-aided visual inertial odometry}
본 발명은 일반적으로 시각적 관성 주행 거리 측정 시스템에 관한 것으로, 보다 구체적으로, 깊이 측정을 시각 및 관성 측정에 통합하는 시각적 관성 주행 거리 측정(VIO) 시스템에 관한 것이다.
현대의 스마트폰에서는, 증강 현실(AR) 또는 3차원 재구성(3DR) 애플리케이션에서 위치 파악에 사용할 수 있는 센서의 수가 증가하고 있다. 동시 위치 파악 및 매핑(SLAM) 시스템의 유형은 비전 전용 SLAM 시스템과 관성 측정 유닛(IMU) 지원 비전 SLAM 시스템을 포함하며, 이들은 VIO 시스템이라고 한다. 카메라 궤적을 추정하기 위해 카메라와 깊이 센서를 모두 사용하는 비전 전용 SLAM 시스템은 ORB(Oriented Fast and Rotated Brief) SLAM 버전 2(SLAM2) 및 적녹청 깊이 (RGBD) SLAM을 포함한다. 이 두 시스템은 깊이 측정을 사용하여 2차원(2D) 특징 기반 비전 전용 SLAM 시스템에 의해 수행되는 포즈 추정을 개선한다.
VIO 시스템은 카메라 이미지(예를 들어, 비전 데이터) 및 IMU로부터의 데이터를 사용하여 개체 포즈에 대한 6자유도(6DOF)를 추적하는 데 사용된다. VIO 시스템은 카메라 이미지, 가속도계 데이터 및 자이로스코프 데이터에서 추적되는 고유한 기능을 측정값으로 사용하여 수학적 최적화 기술을 사용하는 밀접하게 연결된 시스템을 통해 개체 포즈를 추정한다.
본 발명이 해결하고자 하는 과제는 사용자 장치(UE)에서 시각적 관성 주행 거리 측정(VIO)을 수행하는 방법 및 사용자 장치를제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
일 실시 예에 따르면, 사용자 장치(UE)에서 시각적 관성 주행 거리 측정(VIO)을 수행하는 방법이 제공된다. UE의 관성 측정 유닛(IMU), 카메라 및 깊이 센서로부터 측정이 처리된다. 상기 처리된 측정에 기초하여 적어도 깊이 잔차를 포함하는 키프레임 잔차가 결정된다. 슬라이딩 윈도우 그래프가 상기 키프레임 잔차로부터 유도된 인자에 기초하여 생성 및 최적화된다. 상기 최적화된 슬라이딩 윈도우 그래프에 기초하여 상기 UE의 개체 포즈가 추정된다.
일 실시 예에 따르면, 관성 측정 장치(IMU), 카메라, 깊이 센서, 프로세서, 및 명령을 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함하는 UE가 제공된다. 상기 명령은 상기 프로세서로 하여금, 상기 IMU, 상기 카메라, 및 상기 깊이 센서로부터 측정을 처리하도록 한다. 상기 명령은 또한 상기 프로세서로 하여금 상기 처리된 측정에 기초하여 적어도 깊이 잔차를 포함하는 키프레임 잔차를 결정하고, 상기 키프레임 잔차로부터 유도된 인자에 기초하여 슬라이딩 윈도우 그래프를 생성 및 최적화하도록 한다. 상기 명령은 또한 상기 프로세서로 하여금 상기 최적화된 슬라이딩 윈도우 그래프에 기초하여 상기 UE의 개체 포즈를 추정하도록 한다.
본 개시의 특정 실시 예의 상기 및 기타 측면, 특징 및 이점은 첨부된 도면과 관련하여 설명되는, 다음의 상세한 설명으로부터 보다 명백할 것이다:
도 1은 단안 시각적 관성 항법 시스템(VINS-Mono)의 인자 그래프를 도시한 도면이다;
도 2는 일 실시예에 따른, MSL 깊이 지원 VIO(DVIO)에 대한 인자 그래프를 도시한 도면이다;
도 3은 일 실시예에 따른, 비행 시간(TOF) 카메라를 나타내는 도면이다;
도 4는 본 발명의 일 실시예에 따른, 구조광 센서를 나타내는 도면이다;
도 5는 일 실시예에 따른 MSL-DVIO의 시스템 흐름을 나타내는 도면이다;
도 6은 본 발명의 일 실시예에 따른, MSL-DVIO의 구체적인 시스템 흐름을 도시한 도면이다;
도 7은 일 실시예에 따른, MSL-DVIO 1D 기능 구현을 나타내는 도면이다;
도 8은 일 실시예에 따른, 3D 특징 매개변수화를 위한 MSL-DVIO의 구현에 대한 세부사항을 예시하는 도면이다;
도 9는 일 실시예에 따른, UE에서 VIO를 수행하는 방법을 나타내는 흐름도이다; 및
도 10은 다양한 실시예에 따른 네트워크 환경에서 전자 장치의 블록도를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 동일한 구성 요소는 서로 다른 도면에 도시되어 있지만 동일한 참조 번호로 지정되는 것에 유의해야 한다. 이하의 설명에서, 상세한 구성 및 구성 요소와 같은 특정 세부 사항은 본 개시의 실시 예의 전반적인 이해를 돕기 위해서만 제공된다. 따라서, 당업자라면 본 발명의 범위를 벗어나지 않고 본 명세서에서 설명된 실시 예의 다양한 변경 및 수정이 이루어질 수 있다는 것이 명백할 것이다. 또한, 잘 알려진 기능 및 구성에 대한 설명은 명확성과 간결성을 위해 생략되었다. 이하에서 설명하는 용어는 본 발명의 기능을 고려하여 정의된 용어로, 사용자, 사용자의 의도 또는 관습에 따라 다를 수 있다. 따라서 용어의 정의는 본 명세서 전반에 걸친 내용을 토대로 결정되어야 한다.
본 개시는 다양한 변형 및 다양한 실시 예를 가질 수 있으며, 그 중 실시 예가 첨부된 도면을 참조하여 상세하게 후술된다. 그러나, 본 개시는 실시 예들에 제한되지 않고, 본 개시의 범위 내에서 모든 수정, 등가물 및 대안을 포함한다는 것을 이해해야 한다.
제 1, 제 2 등의 서수를 포함하는 용어는 다양한 요소를 설명하기 위해 사용될 수 있지만, 구조적 요소는 용어에 의해 제한되지 않는다. 용어는 한 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 본 개시 내용의 범위를 벗어나지 않는 한, 제 1 구조적 요소는 제 2 구조적 요소로 지칭될 수 있다. 유사하게, 제 2 구조적 요소는 또한 제 1 구조적 요소로 지칭될 수 있다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 관련 항목의 임의의 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어는 본 발명의 다양한 실시 예를 설명하기 위해 사용된 것일뿐 본 발명을 제한하려는 것은 아니다. 단수형은 문맥에서 달리 명시하지 않는 한 복수형을 포함한다. 본 명세서에서 "포함하다" 또는 "갖는다"라는 용어는 기능, 번호, 단계, 동작, 구조적 요소, 부분 또는 이들의 조합의 존재를 나타내며, 하나 이상의 다른 기능, 숫자, 단계, 작업, 구조적 요소, 부품 또는 이들의 조합이 추가된 존재 또는 가능성을 배제하지 않는다.
다르게 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어는 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에서 정의된 것과 같은 용어는 해당 분야의 문맥상의 의미와 동일한 의미로 해석되어야 하며, 본 명세서에서 명확하게 정의되지 않는 한 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안된다.
일 실시 예에 따른 전자 장치는 다양한 유형의 전자 장치 중 하나일 수 있다. 전자 장치는, 예를 들어, 휴대용 통신 장치(예를 들어, 스마트 폰), 컴퓨터, 휴대용 멀티미디어 장치, 휴대용 의료 장치, 카메라, 웨어러블 장치 또는 가전 제품을 포함할 수 있다. 본 개시의 일 실시 예에 따르면, 전자 장치는 상술한 것에 한정되지 않는다.
본 명세서에서 사용되는 용어는 본 발명을 한정하려는 의도가 아니라 해당 실시 예에 대한 다양한 변경, 등가물 또는 대체물을 포함하고자 하는 것이다. 첨부된 도면의 설명과 관련하여, 유사하거나 관련된 요소를 지칭하기 위해 유사한 참조 번호가 사용될 수 있다. 항목에 해당하는 명사의 단수 형태는 관련 문맥에서 달리 명시하지 않는 한, 하나 이상의 사물을 포함할 수 있다. 본 명세서에 사용된 바와 같이, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나" 및 "A, B 또는 C 중 적어도 하나"와 같은 각 문구는 해당 문구 중 하나에 함께 열거된 항목의 가능한 모든 조합을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "제 1", "제 2", "제 1" 및 "제 2"와 같은 용어는 해당 구성 요소를 다른 구성 요소와 구별하기 위해 사용될 수 있지만, 다른 측면(예를 들어, 중요도 또는 순서)에서 구성 요소를 제한하고자 하는 것은 아니다. 하나의 요소(예를 들어, 제 1 요소)가 "작동적으로" 또는 "통신 가능하게"라는 용어가 있고 없고에 관계없이, 다른 요소 "에 결합된", "에 연결된", "와 결합된" 또는 "와 연결된" 것으로 지칭되는 경우, 이것은 이 요소가 다른 요소와 직접적으로(예를 들어, 유선으로), 무선으로 또는 제 3 요소를 통해 결합될 수 있다는 것을 나타낸다.
본 명세서에서 사용되는 바와 같이, "모듈"이라는 용어는 하드웨어, 소프트웨어 또는 펌웨어로 구현된 단위를 포함할 수 있으며, 예를 들어 "로직", "로직 블록", "부" 및 "회로"와 같은 다른 용어와 상호 교환적으로 사용될 수 있다. 모듈은 하나 이상의 기능을 수행하도록 구성된 단일 통합 구성 요소 또는 최소 단위 또는 그 일부일 수 있다. 예를 들어, 일 실시 예에 따르면, 모듈은 주문형 집적 회로(ASIC)의 형태로 구현될 수 있다.
도 1은 VINS-Mono의 인자 그래프를 나타내는 도면이다. x_k는 로봇 움직임의 전체 상태를 나타낸다. 상태변수는 표 1에 정의된 바와 같이, 아래의 수학식 1과 같이 쓸 수 있다.
Figure pat00001
로봇 포즈 상태는
Figure pat00002
로 정의되고 로봇 속도 및 바이어스 상태는
Figure pat00003
로 정의된다.
상태 변수 크기 디스크립션
Figure pat00004
16x1 프레임
Figure pat00005
에서의 풀 로봇 상태
Figure pat00006
7x1 로봇 포즈 상태
Figure pat00007
9x1 로봇 속도 및 바이어스 상태
Figure pat00008
3x1 위치 (in world frame)
Figure pat00009
4x1 Orientation quaternion (in world frame)
Figure pat00010
3x1 Speed (in world frame)
Figure pat00011
3x1 Bias estimation of accelerometer
Figure pat00012
3x1 Bias estimation of gyroscope
도 1의 전체 VINS-Mono에 대해, 상태 추정을 위한 슬라이딩 윈도우 기반 밀접 결합 VIO은 n+1 로봇 상태 xnav 및 m+1 3D 랜드마크 역 깊이 λi=1/di, i∈{0,…,m}을 포함한다. 슬라이딩 윈도우 내의 상태 벡터는 아래 수학식 2와 같이 정의된다:
Figure pat00013
여기서,
Figure pat00014
이고, 이 때 k번째 키프레임에 대해
Figure pat00015
, 포즈, 속도 및 바이어스를 갖고 ,
Figure pat00016
, 제 1 카메라 키프레임에서 관찰되는 랜드마크 역깊이이다. 랜드마크 측정이 고정되는 이 제 1 키프레임을 앵커 프레임이라고 한다.
VINS-Mono에서, 하기 수학식 3에 대한 해를 구한다.
Figure pat00017
여기서 Bw는 슬라이딩 윈도우의 인덱스이고, Fw는 슬라이딩 윈도우 내의 관측값 세트이고, X=∪k∈Bw{xk}는 최적화할 상태 변수 세트이며, rIMU(xk,xk+1)는 IMU 인자이고,
Figure pat00018
는 비전 인자이며, rM(Xr)은 주변화 인자이며, Xr은 주변화 후 전체 상태이며,
Figure pat00019
는 IMU 부분이 잔차에 대한 마할라노비스(Mahalanobis) 거리를 생성하기 위한 공분산 행렬이며, Q는 잔차에 대한 마할라노비스 거리를 생성하는 데 필요한 비전 부분에 대한 공분산 행렬이다.
따라서, 도 1은 인자
Figure pat00020
(102),
Figure pat00021
(104),
Figure pat00022
(106),
Figure pat00023
(108),
Figure pat00024
(110),
Figure pat00025
(112),
Figure pat00026
(114),
Figure pat00027
(116),
Figure pat00028
(118),
Figure pat00029
Figure pat00030
(120), λj(122) 및 λi(124) 간의 관계를 설명한다.
MSL-DVIO의 실시예는 전술한 인자 그래프 접근법에서 비전 인자에 영향을 미치므로, 비전 인자는 아래에서 상세히 설명된다. IMU 인자는 아래에서 더 자세히 설명된다.
RGBD+IMU 시스템인 MSL-DVIO에서, 비전 인자는 카메라 이미지와 깊이 맵의 특징 측정에서 생성된다. MSL-DVIO의 IMU 계수는 VINS-Mono의 경우와 동일하다. VINS-Mono와 달리, 깊이 맵은 MSL-DVIO용 카메라 캡처와 함께 사용할 수 있다.
도 2는 일 실시예에 따른 MSL-DVIO에 대한 인자 그래프를 도시한 도면이다. 구체적으로, 도 2는 인자
Figure pat00031
(202),
Figure pat00032
(204),
Figure pat00033
(206),
Figure pat00034
(208),
Figure pat00035
(210),
Figure pat00036
(212),
Figure pat00037
(214)
Figure pat00038
(216),
Figure pat00039
(218),
Figure pat00040
(220),
Figure pat00041
(222),
Figure pat00042
(224),
Figure pat00043
Figure pat00044
(226),
Figure pat00045
(228),
Figure pat00046
(230),
Figure pat00047
(232),
Figure pat00048
(234), λj(236), λi(238) 및 λm(240)간의 관계를 설명한다. rDP는 깊이 잔차이다.
"잔차" 및 "잔여"라는 용어는 상호교환가능하게 사용될 수 있고, 일반적으로 상태 매개변수의 추정값과 센서의 측정값 사이의 계산 손실을 정의한다.
VINS-Mono의 이미지 특징 검출 및 추적기는 MSL-DVIO에서 채택된다. 각 검출된 특징에 대해, 해당 깊이가 깊이 맵으로부터 추출하고 깊이 잔차 인자가 형성된다. 깊이 맵의 특성으로 인해 폐색 및 범위외가 발생할 수 있으므로 특징점에 대한 해당 깊이가 항상 이용 가능한 것은 아니다. 따라서, 깊이 인자의 개수는 도 2에 도시된 바와 같이 영상 특징 인자의 개수보다 작거나 같다.
RGBD 센서의 경우, 현실 세계의 3D 랜드마크는 이미지 평면에 투영되어 RGBD 센서에 이들 랜드마크의 2D 위치를 깊이 센서에 이들 랜드마크의 깊이를 생성한다. 카메라 측정 모델은 아래의 수학식 4와 같다.
Figure pat00049
깊이 측정 모델은 하기 수학식 5와 같다.
Figure pat00050
여기에서,
Figure pat00051
은 이미지 프레임에서 랜드마크의 2D 위치이고,
Figure pat00052
는 카메라 참조 프레임에서 랜드마크의 깊이, K는 카메라 고유 행렬이다. [R│t]는 세계 프레임 참조에서 카메라의 포즈 행렬이고,
Figure pat00053
은 참고의 세계 프레임에서 랜드마크 l의 3D 위치이고, nfeat 및 ndepth는 측정 노이즈로, 이는 가우시안 노이즈로 가정된다.
주어진 랜드마크 l에 대해, 프레임 i는 랜드마크 l을 관찰하는 제 1 프레임으로 설정된다. 프레임 i를 랜드마크 l의 앵커 프레임이라고 한다.
Figure pat00054
는 프레임 i에서 랜드마크 l의 특징 측정으로 설정되고,
Figure pat00055
는 미래 프레임 j에서 랜드마크 l의 특징 측정으로 설정된다.
MSL-DVIO가 보정된 카메라를 사용하기 때문에, 특징 측정은 이미지 평면 대신 정규화된 평면에 저장된다. 이 측정을 계산하기 위해, 특징 점은 아래 수학식 6과 같이, 역 카메라 투영 행렬을 사용하여 이미지 평면에서 정규화된 평면으로 들어 올려진다.
Figure pat00056
렌즈 왜곡은 정규화된 특징 측정에 재귀적으로 왜곡 모델을 적용함으로써 처리된다. 카메라 프레임의 랜드마크에 대한 최종 특징 측정값은 아래의 수학식 7에서와 같이 저장된다.
Figure pat00057
앵커 프레임에서 특징의 역 깊이를 이용하여 랜드마크를 추정하므로, 이 MSL-DVIO 구현을 MSL-DVIO 1D라고 한다.
프레임 i와 j의 특징 측정을 사용하여, 비앵커 프레임 j의 특징에 대한 이미지 잔차는 아래 수학식 8과 같이 계산된다.
Figure pat00058
여기서,
Figure pat00059
,
Figure pat00060
는 카메라 좌표에서 IMU 좌표로의 변환이고,
Figure pat00061
는 프레임 j에 대한 로봇 포즈이고,
Figure pat00062
는 프레임 i에 대한 로봇 포즈이고,
Figure pat00063
이다.
유사하게, 깊이 맵에서, 랜드마크 l의 깊이 필드는 카메라와 깊이 맵이 시간과 공간에서 정렬되어 있다고 가정하고, 측정된다. 앵커 프레임에서 랜드마크의 추정된 깊이는 프레임 j에서 랜드마크의 깊이를 추정하기 위해 사용될 수 있다. 따라서 깊이 잔차는 아래의 수학식 9와 같다.
Figure pat00064
여기에서
Figure pat00065
Figure pat00066
에 의해 주어진 카메라 기준 프레임에서 랜드마크의 역 깊이 측정이다. 단순하게 하기 위해, 역 깊이 측정을 위한 측정 노이즈도 또한 가우시안이라고 가정할 수 있다.
깊이 잔차 및 이미지 잔차를 이용하여, 비앵커 프레임에 대한 비전 인자 잔차는 아래의 수학식 10에서 기재된 바와 같이, 이미지와 깊이 잔차를 함께 쌓음으로써 생성된다.
Figure pat00067
그런 다음 이 잔차는 비선형 최적화를 사용하여 로봇 상태를 해결하기 위해 그래프 최적화에 사용된다. 최적화를 수행할 때, 상태 변수에 대해 잔차의 야코비 행렬이 생성된다. 비 앵커 프레임 비전 잔차의 야코비안을 계산하기 위해 카메라 영역에서 랜드마크 관찰은 아래 수학식 11과 같이 정의된다.
Figure pat00068
특징의 RGBD 측정은
Figure pat00069
에 의해서와 같이 주어지고, 이는 하기 수학식 12와 같이 결과된다.
Figure pat00070
비전 잔차의 야코비 행렬은 다음과 같이 계산될 수 있다. 앵커 프레임 i의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 13에서와 같다.
Figure pat00071
앵커 프레임 i의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 14에서와 같다.
Figure pat00072
프레임 j의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 15에서와 같다.
Figure pat00073
프레임 j의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 16과 같다.
Figure pat00074
특징 l의 역 깊이에 대한 비전 잔차의 야코비 행렬, (3x1 행렬)은 아래 수학식 17과 같다.
Figure pat00075
위에서 설명한 시나리오에서, 깊이 측정은 앵커 키프레임 i의 원래 측정을 사용하여 그래프에 사용되고, 측정은 특징 및 깊이 측정에 대한 잔차를 계산하기 위해 키프레임 j로 전파된다. 또한, 깊이 업데이트에 대한 더 강력한 제약을 제공하기 위해 앵커 키프레임에서 깊이 측정을 위한 블록이 추가될 수 있다.
이 경우 사용되는 측정 모델은 아래 수학식 18과 같이 깊이 측정만 사용한다.
Figure pat00076
2D 특징 측정에 대한 업데이트가 없기 때문에, 특징 측정을 위한 잔차는 0이고, 매개변수를 추가하기 위한 잔차는 아래 수학식 19와 같이 깊이 측정의 잔차만으로 축소된다.
Figure pat00077
이것은 특징 l의 역 깊이에 대한 야코비 행렬, (3x1 행렬)을 아래 수학식 20에 설명된 바와 같이 만들게 된다.
Figure pat00078
RGBD 및 IMU 센서를 포함하는 많은 센서는 동기화되지 않는다. 이 경우 카메라와 IMU 타임스탬프 사이에 약간의 시간 오프셋이 있다. 이 시간 오프셋은 일반적으로 일정하지만 알 수 없는 것으로 간주된다. 시간 오프셋을 온라인으로 추정하려면, 이 시간 오프셋은 아래 수학식 21과 같이 모델링된다.
Figure pat00079
여기서, tIMU는 IMU 시계 시간, tCAM은 카메라 시계 시간,
Figure pat00080
는 두 시계 사이의 시간 오프셋이다.
Figure pat00081
는 랜덤 워크로 모델링되며, 특성 및 깊이 측정을 사용하여 최적화된다.
임의의 주어진 시간에서 시간 오프셋을 갖는 MSL-DVIO를 사용하는 실시예에 따르면, 카메라 타임 스탬프는 이를 IMU 타임 스탬프로 가져오기 위해 보정된다. 미래의 주어진 시간에 특징 측정을 계산하기 위해, 특징 측정은 아래 수학식 22와 같이 등속 움직임 모델을 사용하여 전파될 수 있다.
Figure pat00082
여기서,
Figure pat00083
는 프레임 i에서 랜드마크 l의 시간 오프셋 보상 2D 측정이며,
Figure pat00084
는 프레임 i에서 랜드마크 l의 원래 2D 측정값이고,
Figure pat00085
는 시간 오프셋의 현재 추정치이고,
Figure pat00086
i는 카메라 프레임 i가 처리될 때의 시간 오프셋의 추정치이고,
Figure pat00087
는 특징 추적 동안 계산된 특징의 2D 속도이다.
TRi는 아래의 수학식 23과 같이 셔터 카메라를 롤링하여 생긴 시간 오프셋이다.
Figure pat00088
여기서, TR은 롤링 셔터 판독 시간이고, ROW는 프레임의 총 행 수이고 OWi는 특징이 관찰되는 행이다.
유사하게, 깊이에 대한 특징 측정은 아래의 수학식 24와 같다.
Figure pat00089
Figure pat00090
는 아래 수학식 25와 같이, 깊이 맵에서 특징 깊이의 변화율이다.
Figure pat00091
이 새로운 측정을 사용하여, 잔차는 아래의 수학식 26, 27 및 28에 설명된 대로 계산된다.
Figure pat00092
Figure pat00093
Figure pat00094
상술한 바와 유사하게, 카메라 영역에서의 랜드마크 관찰은 하기 수학식 29와 같이 정의된다.
Figure pat00095
특징의 RGBD 측정은
Figure pat00096
와 같이 주어진다.
새로운 잔차로, 비전 잔차의 야코비 행렬은 아래와 같이 계산할 수 있다.
앵커 프레임 i의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 30과 같다.
Figure pat00097
앵커 프레임 i의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 31과 같다.
Figure pat00098
프레임 j의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 32와 같다.
Figure pat00099
프레임 j의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 33과 같다.
Figure pat00100
특징 l의 역 깊이에 대한 비전 잔차의 야코비 행렬, (3x1 행렬)은 하기 수학식 34와 같다.
Figure pat00101
시간 오프셋에 대한 비전 잔차의 야코비 행렬, (3x1 행렬)은 하기 수학식 35와 같다.
Figure pat00102
앵커 프레임에서 역 깊이에 대한 비전 잔차의 야코비 행렬, (3x1 행렬)은 아래 수학식 36과 같다.
Figure pat00103
VINS-Mono에서, 특징은 앵커 키프레임의 역 깊이를 사용하여 매개변수화된다. 따라서, 앵커 프레임에서의 특징 측정은 그래프 최적화를 수행하기 위한 잔차로 사용될 수 없다. 앵커 프레임의 특징 측정이 그래프 최적화 문제에서 잔차로 사용되도록 하려면, 앵커에 있는 특징의 2D 위치가 특징 상태의 일부로 추가되어 특징 상태 매개변수화를 3D로 변환한다. 슬라이딩 윈도우의 이 새로운 상태는 아래의 수학식 37에 설명되어 있다.
Figure pat00104
여기에서,
Figure pat00105
이고, 이 때 k번째 키프레임에 대해
Figure pat00106
, 포즈, 속도 및 바이어스를 갖고,
Figure pat00107
, f1=[u1,v11], (u1,v1)은 앵커 프레임에서 특징의 2D 위치의 추정치이고, λ1은 앵커 프레임에서 특징의 역 깊이의 추정치이다.
랜드마크는 앵커 프레임에서 특징의 전체 3D 위치를 사용하여 추정되므로, 이 MSL-DVIO 구현을 MSL-DVIO 3D라고 한다.
상술한 3D 특징 매개변수화에 의해, 앵커 프레임 및 비앵커 프레임 모두에 대해 비전 잔차가 계산될 수 있다.
비앵커 프레임의 경우, 앵커 프레임에서 3D 특징의 추정은 아래의 수학식 38, 39 및 40에 설명된 대로 잔차를 계산하기 위해 비앵커 프레임에서 투영하는 데 사용된다.
Figure pat00108
Figure pat00109
Figure pat00110
유사하게, 앵커 프레임에 대한 비전 잔차는 아래의 수학식 41, 42, 43과 같이, 앵커 프레임의 특징의 3D 추정치를 사용하여 계산된다.
Figure pat00111
Figure pat00112
Figure pat00113
위에서 설명한 것과 유사하게, 3D 매개변수화를 위한 야코비 행렬은 아래의 수학식 44와 같이 상태에서 특성의 2D 추정 값을 사용하여 계산된다.
Figure pat00114
특징의 RGBD 측정은
Figure pat00115
과 같이 주어지고, 아래 수학식 45가 결과된다.
Figure pat00116
앵커 프레임 i의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 46과 같다.
Figure pat00117
앵커 프레임 i의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 47과 같다.
Figure pat00118
프레임 j의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 48과 같다.
Figure pat00119
프레임 j의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 49와 같다.
Figure pat00120
상태의 특징을 3D 매개변수화함으로써, 특징에 대한 잔차의 야코비 행렬은 아래에서 설명하는 바와 같이 3x3 행렬로 변경될 것이다.
비앵커 프레임에 대한 자코비안은 아래의 수학식 50, 51, 52와 같다.
Figure pat00121
Figure pat00122
Figure pat00123
앵커 프레임에 대한 야코비 행렬은 아래의 수학식 53, 54, 55와 같다.
Figure pat00124
Figure pat00125
Figure pat00126
위에서 설명한 바와 같이, 3D 특징 매개변수화는 그래프 최적화를 위한 앵커 프레임 잔차의 일부로 앵커 프레임에 전체 3D 기능 측정을 추가한다.
MSL-DVIO 1D에 대한 시간 오프셋 추정 프로세스와 유사하게, 특징의 3D 위치의 시간 오프셋 보정 측정이 계산될 수 있다. 특징의 2D 위치는 수학식 56의 추정값을 사용하는 것을 제외하고, MSL-DVIO 1D와 유사한 시간 오프셋 추정을 사용하여 추정할 수 있다.
Figure pat00127
유사하게, 깊이 측정을 위해, 시간 오프셋 보정된 측정은 수학식 57에서 아래에 설명된 바와 같이, MSL-DVIO 1D에 설명된 대로 계산될 수 있다.
Figure pat00128
새로운 측정을 사용하여, 아래의 수학식 58, 59, 및 60에 설명된 바와 같이 비 앵커 프레임에 대한 잔차가 계산될 수 있다.
Figure pat00129
Figure pat00130
Figure pat00131
유사하게, 앵커 프레임에 대해, 잔차는 하기 수학식 61, 62, 및 63에서 제시된다.
Figure pat00132
Figure pat00133
Figure pat00134
이 시스템의 야코비 행렬은 아래와 같이 계산된다.
앵커 프레임 i의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 64와 같다.
Figure pat00135
앵커 프레임 i의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래 수학식 65와 같다.
Figure pat00136
프레임 j의 세계 위치에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 66과 같다.
Figure pat00137
프레임 j의 회전에 대한 비전 잔차의 야코비 행렬, (3x3 행렬)은 아래의 수학식 67과 같다.
Figure pat00138
상태의 특징에 대해 3D 매개변수화함으로써, 특징에 대한 잔차의 야코비 행렬은 아래에 설명된 바와 같이 3x3 행렬로 변경될 것이다.
비앵커 프레임에 대한 야코비 행렬은 아래의 수학식 68, 69, 및 70에 설명되어 있다.
Figure pat00139
Figure pat00140
Figure pat00141
앵커 프레임에 대한 야코비 행렬은 아래의 수학식 71, 72 및 73에 설명되어 있다.
Figure pat00142
Figure pat00143
Figure pat00144
시간 오프셋에 대한 비전 잔차의 야코비 행렬, (3x1 행렬)은 아래 수학식 74에 설명되어 있다.
Figure pat00145
표 2 및 표 3에서, MSL-DVIO의 시스템 잔차 및 야코비 행렬 비교는 위에서 설명한 모든 조합에 대해 제공된다.
시간 오프셋이 없는 MSL-DVIO 잔차 및 야코비 행렬
ID 특징 매개변수 3D 특징 매개변수
이미지 잔차(비 앵커)
Figure pat00146
Figure pat00147
깊이 잔차(비 앵커)
Figure pat00148
Figure pat00149
이미지 잔차(앵커)
Figure pat00150
Figure pat00151
깊이 잔차(앵커)
Figure pat00152
Figure pat00153
야코비 행렬(앵커 포즈)
Figure pat00154
Figure pat00155
야코비 행렬(앵커 회전)
Figure pat00156
Figure pat00157
야코비 행렬)비 앵커 포즈)
Figure pat00158
Figure pat00159
야코비 행렬(비 앵커 회전)
Figure pat00160
Figure pat00161
야코비 행렬(비 앵커 특징)
Figure pat00162
Figure pat00163
야코비 행렬(앵커 특징)
Figure pat00164
Figure pat00165
시간 오프셋이 있는 MSL-DVIO 잔차 및 야코비 행렬
1D 특징 매개변수 3D 특징 매개변수
이미지 잔차(비앵커)
Figure pat00166
Figure pat00167
깊이 잔차(비앵커)
Figure pat00168
Figure pat00169
이미지 잔차(앵커)
Figure pat00170
Figure pat00171
깊이 잔차(앵커)
Figure pat00172
Figure pat00173
야코비 행렬(앵커 포즈)
Figure pat00174
Figure pat00175
야코비 행렬(앵커 회전)
Figure pat00176
Figure pat00177
야코비 행렬(비앵커 포즈)
Figure pat00178
Figure pat00179
야코비 행렬(비앵커 회전)
Figure pat00180
Figure pat00181
야코비 행렬(비앵커 특징)
Figure pat00182
Figure pat00183
야코비 행렬(앵커 특징)
Figure pat00184
Figure pat00185
야코비 행렬(시간 오프셋)
Figure pat00186
Figure pat00187
MSL-DVIO에서 그래프 최적화에 대한 변경 사항은 위에 설명되어 있다. 1D 및 3D 특징 매개변수화와 관련된 실시예가 제공된다. 특성 매개변수의 초기 값을 추정하기 위해 추정 프로세스는 두 개의 개별 블록으로 나뉜다. 제 1 블록은 특징에 대한 역 깊이 추정을 추정하고, 제 2 블록은 앵커 프레임에서 2D 특징 측정의 초기 값을 추정한다.특징 깊이는 앵커 프레임에 대해 계산된다. MSL-DVIO에서, 특징 깊이의 초기 추정은 슬라이딩 윈도우 측정과 깊이 맵의 특징 깊이 측정을 사용하여 계산된다.
초기 깊이 추정치를 추정하기 위한 제 1 단계에서, 깊이 맵의 특징점에 대한 깊이 측정은 특징 깊이를 계산하는 데 사용된다. Kl={k1,k2,…,kn}은 전체 슬라이딩 윈도우에서 단일 랜드마크 l에 대한 3D 특징 측정이다. 여기서
Figure pat00188
는 앵커 프레임에서 랜드마크 l의 특징 측정에 해당하며, k2,…,kn은 비앵커 프레임에서 랜드마크 l의 특징 측정에 해당한다.
Figure pat00189
은 그래프 최적화가 실행되는 슬라이딩 윈도우의 로봇 포즈이다. 랜드마크 l에 대한 슬라이딩 윈도우 포즈와 특징 측정을 이용하여, 아래 수학식 75에서와 같이 슬라이딩 윈도우의 모든 j 프레임에 대해 앵커 프레임에 3D 포인트를 투영한다.
Figure pat00190
앵커 프레임 3D 특징 측정 추정치는
Figure pat00191
으로 생성된다. 2D 추정
Figure pat00192
를 사용하여, 앵커 프레임의 특징에 대한 재투영 오류가 생성된다. 이 재투영 오류에 임계값을 적용하여 인라이어 및 아웃라이어로 분류한다. 특징 깊이는 모든 인라이어 추정 앵커 프레임 깊이의 평균을 사용하여 초기화된다.
슬라이딩 윈도우 데이터와 특징 2차원 위치만을 이용하여 앵커 프레임에서 깊이 및 특징 2차원 위치 추정치를 추정하려면, 직접 선형 변환(DLT) 알고리즘이 사용된다. 문제는 AX=0 형식으로 공식화되고 특이값 분해를 사용하여 해결된다. 예를 들어, 랜드마크
Figure pat00193
는 슬라이딩 윈도우
Figure pat00194
에 대해 카메라 앵커 프레임에서 관찰되며 특징 측정값을 Kl={k1,k2,…,kn}으로 가질 수 있다.
Figure pat00195
은 앵커 프레임이고 k1은 앵커 프레임의 특징 측정값이다. 카메라 투영 행렬을 사용하여, 수학식 76의 관계가 제공된다.
Figure pat00196
여기서 j는 슬라이딩 윈도우의 모든 키프레임이고,
Figure pat00197
Figure pat00198
Figure pat00199
의 회전 벡터와 변환 벡터를 사용하는 키프레임과 앵커 프레임 간의 상대적 변환 행렬이고, α는 스케일 인자이다.
동일한 방향의 두 벡터의 외적은 0이고, 관계식 (77)로부터 제공된다.
Figure pat00200
수학식 77에서,
Figure pat00201
는 3x4 행렬의 확장된 형태로 유도되어 표기는 아래 수학식 78과 같이 최소화된다.
Figure pat00202
여기에서,
Figure pat00203
,
Figure pat00204
,
Figure pat00205
Figure pat00206
이다.
외적 항은 아래 수학식 79에 설명되어 있다.
Figure pat00207
수학식 79은 제 3 라인이 제 1 라인과 제 2 라인의 선형 조합이므로 더 줄일 수 있고, 그 결과 아래에 설명된 단일 관찰에 대해 수학식 80이 된다.
Figure pat00208
수학식 80은 아래 수학식 81과 같이 쓸 수 있다.
Figure pat00209
각 특징에 대한 관찰이 누적되고 AL=0 형식을 갖게 되는 선형 방정식 시스템이 생성된다. 이 균질 선형 시스템을 풀기 위해, 대수적 최소 제곱 오차를 최소화하는 것은 특이값 분해를 사용하여 해결되며, 여기서 해는 아래 수학식 82 및 83에서와 같이,
Figure pat00210
의 가장 작은 고유값에 해당하는 고유벡터가 될 것이다.
Figure pat00211
Figure pat00212
2D 측정의 추정치 및 앵커 프레임의 랜드마크의 깊이는 아래 수학식 84에 설명된 바와 같이 생성된다.
Figure pat00213
이들 추정치는 그래프 최적화 문제에서 상태 변수를 초기화하는 데 사용된다. 상술한 방법들에 있어서, 특징 매개변수의 초기 값은 특징 측정 및 슬라이딩 윈도우 포즈에 따라 다르다. 깊이 추정의 경우, 모든 깊이는 인라이어 깊이 측정의 평균값으로 초기화되며 제 1 단계를 이용하여 추정되지 않은 특징만이 제 2 방법으로 초기화된다. 2D 특징 매개변수 초기화의 경우, 초기화를 위한 제 2 방법만이 가능하다.
슬라이딩 윈도우 포즈에 큰 오류가 있는 경우, 전술한 방법은 잘못된 초기화에 취약한다. 추정은 슬라이딩 윈도우 포즈의 품질에 따라 달라지므로, 이 문제는 초기화 단계의 일부로 실행되는 제 1 최적화에서 더욱 두드러진다. MSL-DVIO 시스템의 잘못된 동작을 방지하기 위해서, 수정이 최적화 단계에 추가되고, 이는 초기화 단계의 일부로 실행되는 처음 최적화에 대해서만 해당한다.
깊이 보조를 수행하기 위해서, 깊이 맵 프레임이 사용된다. 이러한 깊이 맵 프레임은 깊이 감지 모듈을 사용하여 생성된다. 깊이 감지 모듈에는 두 가지 유형이 있다. 제 1 유형은 수동 깊이 센서이고 제 2 유형은 능동 깊이 센서이다. 수동 깊이 센서의 예는 스테레오 카메라 쌍의 깊이를 포함하고, 능동 깊이 센서의 예는 TOF 카메라 또는 구조 조명 카메라를 포함한다.
모든 센서는 측정 모델에 기초하여 장면 깊이를 추정한다. 실시예는 RGBD 센서에 초점을 맞추기 때문에, 능동 센서는 여기에서 초점을 맞춘다.
도 3은 일 실시예에 따른 TOF 카메라를 나타내는 도면이다. TOF 카메라는 컨트롤러(302), 센서(304), 및 적외선(IR) 방출기(306)를 포함한다. 개체(314)로부터 송신된 신호(310)와 수신된 신호(312) 사이의 위상차(308)는 깊이를 추정하기 위해 사용된다.
도 4는 본 발명의 일 실시예에 따른 구조광 센서를 나타내는 도면이다. 기준선(402) 및 초점 길이(404)를 사용하는 도트 패턴은 프로젝터(406)와 카메라(408) 사이의 디스패리티 측정을 계산하는 데 사용되며, 이것은 다음에 포인트(412)의 깊이(410)를 추정하는데 사용된다.
측정 모델의 두 가지 간단한 예에서 위에서 설명한 바와 같이, 센서의 깊이 측정은 사용된 센서 유형에 따라 매우 다르다. 그래피 최적화를 수행하기 위해 이 깊이 측정과 2D 특징 측정을 함께 사용하기 위해서는, 측정 노이즈에 대한 센서별 모델이 필요한다.
MSL-DVIO에서 깊이 보조를 수행하는 동안, 가산 가우스 모델이 역 깊이 측정을 위해 측정 노이즈에 사용된다고 가정한다. 이 유형의 모델은 센서 유형에 따라 정확하지 않을 수 있다. 예를 들어, 능동 IR 스테레오 센서를 갖는 센서가 사용될 수 있다. 이 센서는 IR과 가시광선을 모두 사용하여 이것이 볼 수 있는 특징을 기반으로하여 조밀한 스테레오 매칭을 수행한다. 센서가 특징점의 깊이를 추정하기 위한 측정으로 디스패리티를 사용하거 있기 때문에, 역 깊이에 대해 가우스 노이즈를 사용하는 것은 깊이 불확실성에 대한 허용 가능한 모델이다.
그래프 최적화 문제에서는, 최적화 문제에 대해 고정된 크기를 유지하기 위해 슬라이딩 윈도우를 사용하여 그래프 최적화를 수행한다. 이 접근 방식을 사용하면 비선형 최적화 단계에서 고정된 크기와 더 짧은 처리 시간이 유지된다. 슬라이딩 윈도우가 문제의 고정된 크기를 유지할 수 있는 최대 노드 수로 가득 차면, 주변화가 수행되고, 여기에서 노드 Xm의 특정 부분 집합이 삭제되고 나머지 노드
Figure pat00214
가 있는 그래프가 형성된다.
배치(batch) 최적화에서 최소화되는 비용 함수는 아래 수학식 85와 같은 형태이다.
Figure pat00215
여기에서,
Figure pat00216
는 X 사이의 모든 제약 조건을 포함하는 길이 L의 열 벡터이고, Ω은 각 제약에 대한 결합 가중치로서 L×L 대각 행렬이다.
주변화 후 배치 최적화는 나머지 변수 Xr에 대해서만 적용되고, 수정된 비용 함수는 F(Xr)로 표시된다. 주변화의 목적은 C(X)와 동일한 최적의 Xr 선택을 제공하는 수정된 비용 함수 F(Xr)를 식별하는 것이다.
이것은 F(Xr)에 다음 요구 사항을 적용한다. 아래의 수학식 86과 같이 F(Xr)를 구한다
Figure pat00217
그런 다음 주변화 과정은 다음 단계로 요약될 수 있다.
주어진 정보 행렬 H와 오차 벡터
Figure pat00218
는 아래의 수학식 87과 같다.
Figure pat00219
주변화 프로세스는 아래의 수학식 88에 나타낸 바와 같이 새로운 정보 행렬 및 오류 벡터를 계산할 것이다.
Figure pat00220
주변화 과정을 수행하기 위해서, 주변화 상태(Hmm)와 관련된 정보 행렬의 역이 필요하다. 소외된 상태의 규모에 따라, 시간이 많이 소요될 수 있다. VINS-Mono와 같은 시스템에서는, 완전한 행렬의 고유 분해는 행렬의 역행렬을 계산하기 위해 수행되며, 이는 매우 시간 소모적인 프로세스가 될 수 있고 최종 알고리즘의 실시간 성능에 영향을 미칠 수 있다.
따라서 MSL-DVIO 1D에 대한 주변화 프로세스를 최적화하기 위해 두 가지 변경 사항이 적용된다. 먼저, 문제는 두 블록으로 나뉜다: 1) 모든 랜드마크의 주변화 및 2) 키프레임 포즈, 속도 및 바이어스 항의 주변화. 1D 특징 매개변수화에서 대각 행렬을 제공하므로 모든 랜드마크의 주변화가 용이하다. 정보 행렬 H 및 오차 벡터
Figure pat00221
가 주어지면, 주변화 문제는 아래의 수학식 89와 같이 다시 쓸 수 있다.
Figure pat00222
Hmm11은 랜드마크에 대한 정보 행렬이며, 이것은 단순 대각 행렬
Figure pat00223
이다.
제 2 단계에서, 아래 표 4에서 나타낸 바와 같이, 키프레임 포즈, 속도 및 바이어스 항이 주변화된다.
MSL-DVIO 1D의 블럭 주변화
단계 1) 랜드마크 주변화
Figure pat00224

단계 2) 다른 항 주변화
Figure pat00225
키프레임 포즈, 속도 및 바이어스 항의 주변화를 수행하려면, 안전 촐레스키(Safety Cholesky) 알고리즘이 사용된다. 이는 MSL-DVIO 1D에서 블록 주변화의 제 2 단계에 대해 보다 강력하고 빠른 처리를 제공한다. 이 알고리즘의 요약은 아래 표 5에 나와 있다.
안전 촐레스키 분해
H는 N×N 대칭 양의 확정 행렬이다.
L을 N×N 제로 행렬로 초기화한다.
Figure pat00226
MSL-DVIO 3D의 경우, 랜드마크에 대한 블록의 역을 계산하기 위해 단일의 간단한 단계는 수행될 수 없다. 각 랜드마크는 그래프의 3개 상태와 상관 관계가 있기 때문이다. 따라서 3×3 행렬의 역행렬은 각 랜드마크에 대해 하나씩 처리된다. 따라서 MSL-DVIO 3D에 대한 블록별 주변화 프로세스는 아래 표 6과 같은 프로세스로 변경된다.
MSL-DVIO 3D에 대한 블럭 주변화
n 랜드마크가 주변화됨.
H3×3
Figure pat00227
는 제 1 랜드마크에 대한 정보 행렬과 잔차를 나타내며,
다음 행렬을 제공함:
Figure pat00228

단P 2): 다른 항 주변화
Figure pat00229
상술된 바와 같이, 각 랜드마크는 MSL-DVIO 3D에 대해 별도로 주변화된다. 이 접근 방식을 사용하면, 행렬 반전의 크기가 작기 때문에 처리 시간이 크게 향상되는데, 이는 단일 단계에서 하나의 큰 행렬을 반전시키려는 것과 비교하여 훨씬 빠른 것이다.VINS-Mono 시스템의 플랫폼 설계는 전술한 시스템 설계에 사용될 수 있다. VINS-Mono는 그래프 최적화 접근 방식을 사용하여 최신 VIO 구현을 제공한다. 완전한 VIO 시스템을 구현하는 데 필요한 재작업을 피하기 위해 현재 시스템 위에 깊이 보조 기능을 추가할 수 있다.
다음 변경 사항을 통합하여 VINS-Mono의 비전 부분에 깊이 보조가 추가된다.
깊이 데이터 입력/출력(I/O)은 깊이 측정의 판독 및 2D 특징 측정과 동기화된 이러한 측정의 처리를 필요로 한다.
깊이 측정은 모든 2D 특징 측정과 관련된 깊이 측정의 계산 및 현재 처리 파이프라인에 해당 측정의 추가를 필요로 한다.
최적화는 깊이 측정 및 상태 매개변수에 기초하여 깊이 잔사를 계산한다. 이 잔차는 그래프 최적화 문제에서 매개변수 블록으로 추가된다.
깊이 데이터 I/O, 깊이 측정, 및 깊이 잔차 및 최적화는 앵커 키프레임에 대한 깊이 보조, 비앵커 키프레임에 대한 깊이 보조, 동기화되지 않은 센서를 위한 깊이 보조, 및 3D 특징 매개변수화를 위한 깊이 보조에 대해 개별적으로 수행된다.
도 5는 일 실시예에 따른 MSL-DVIO의 시스템 흐름을 도시한 도면이다.
측정 처리 블록(502)에서, 입력 데이터는 IMU(504), RGB 카메라(506), 및 깊이 센서(508)로부터 취해진 다음에, 개별적으로 처리된다. RGB 카메라(506)와 깊이 센서(508)는 RGBD 센서로 결합될 수 있다. IMG(504)로부터의 IMU 데이터 스트림에 대해, IMU 사전 통합은 측정 처리 블록(502)에서 수행된다. RGB 카메라(506)로부터의 RGB 카메라 프레임에 대해, 특징 검출 및 추적은 측정 처리 블록(502)에서 수행된다. 깊이 센서(508)로부터의 깊이 맵의 경우, 깊이는 측정 처리 블록(502)에서 RGB 카메라 프레임에서 측정된 특징에 대해 생성된다.
초기화 블록(510)에서, IMU 사전 통합 항 및 2D 특징 트랙이 측정 처리 블록(502)으로부터 수신되고, 움직임으로부터 시각 전용 구조가 수행된다. 슬라이딩 윈도우 맵의 초기 키프레임을 생성하기 위해 시각적 관성 정렬이 또한 수행된다.
움직임 BA 블록(512)에서, 2D 특징 트랙 및 IMU 사전 통합 항은 프레임-대-프레임 포즈 추적을 수행하기 위해 측정 처리 블록(502)으로부터 수신된다.
상태 추정 블록(514)에서, 초기 키프레임은 초기화 블록(510)과 IMU 사전 통합 항, 2D 특징 트랙으로부터 수신되며, 깊이 측정은 측정 처리 블록(502)으로부터 수신된다. 인자 그래프의 최적화를 수행하고, 상태 추정기 블록(514)에서 도 2를 기반으로 슬라이딩 그래프를 생성한다. 그래프가 생성되면 비선형 솔버를 사용하여 시스템이 최적화된다.
루프 폐쇄 블록(516)에서, 상태 추정기(514)로부터의 포즈 그래프는 상태 추정기 블록(514)으로부터 장기간 에러를 최소화하기 위한 시도에서 사용된다.
도 6은 본 발명의 일 실시예에 따른, MSL-DVIO의 구체적인 시스템 흐름을 도시한 도면이다.
측정 처리 블록(502)은 IMU 사전 통합 블록(602), 특징 검출 및 추적 블록(604), 및 깊이 측정 블록(606)을 포함한다.
상태 추정기 블록(514)은 키 프레임 잔차 블록(608), 슬라이딩 윈도우 그래프 블록(610), 및 그래프 최적화 블록(612)을 포함한다. 키 프레임 잔차 블록(608)은 IMU 잔차 블록(614), 2D 특징 잔차 블록(616) 및 깊이 잔차 블록(618)을 포함한다. 슬라이딩 윈도우 그래프 블록(610)은 IMU 매개변수 블록(620), 앵커 프레임 매개변수 블록(622), 비앵커 프레임 매개변수 블록(624) 및 시간 오프셋 매개변수 블록(626)을 포함한다.
IMU 잔차는 IMU에 대한 키프레임, 속도 및 바이어스에 대한 6DOF 포즈의 추정 값과 IMU 측정값(예를 들어, 가속도계 및 자이로스코프 측정) 사이의 손실이다. 이미지 잔차는 키프레임에 대한 6DOF 포즈와 랜드마크(1D 또는 3D)의 위치의 추정 값과, 키프레임의 랜드마크에 대한 2D 측정 간의 손실이다. 깊이 잔차는 키프레임에 대한 6DOF 포즈와 랜드마크(1D 또는 3D)의 위치의 추정 값과, 깊이 맵에서 랜드마크의 깊이 측정 사이의 손실이다.
도 7은 일 실시예에 따른, MSL-DVIO 1D 기능 구현을 나타내는 도면이다. MSL-DVIO에서 깊이 보조 변경의 구현은 두 개의 스레드에 분산된다. 제 1 스레드는 특징 트랙커 스레드(702)이고 제 2 스레드는 상태 추정기 스레드(704)에 있다.
특징 트랙커 스레드(702)는 깊이 및 이미지 측정 처리를 포함한다. RGB 카메라(506) 및 깊이 센서(508)로부터의 RGBD 데이터는 로봇 운영 체제(ROS) 동기화기 블록(706)에서 동기화된다. ROS 동기화기 블록(706)은 RGB 이미지 메시지 및 깊이 이미지 메시지를 특징 검출 및 추적 블록(604)에 제공한다. 특징 검출 및 추적 블록(604)은 깊이 측정 블록(606)에 특징 측정 및 깊이 이미지 메시지를 제공한다. 깊이 측정 블록은 특징 측정 및 깊이 측정을 속도 계산 블록(708)에 제공하고, 이것은 이미지 및 깊이 도메인에서 특징 속도를 계산한다. 710에서 속도, 특징 및 깊이 측정값은 ROS 플랫폼에 게시된다.
상태 추정기 스레드(704)는 그래프 최적화를 위한 대부분의 작업을 처리한다. 712에서 IMU 및 기능 데이터는 수신된다. IMU 데이터는 최적화를 위한 IMU 사전 통합 항을 생성하기 위해 IMU 사전 통합 블록(602)에 제공된다. 특징 데이터는 슬라이딩 윈도우에 추가될 수 있는 키프레임을 생성하기 위해 키프레임 선택 블록(714)에 제공된다. 슬라이딩 윈도우 설정 블록(716)은 IMU 사전 통합 용어 및 키프레임을 수신한다. 블록(718)에서, 슬라이딩 윈도우 설정 블록(716)으로부터의 슬라이딩 윈도우 데이터에 기초하여 초기화가 완료되었는지 여부가 결정된다. 초기화가 완료되면 슬라이딩 윈도우 데이터는 삼각측량 특징 블록(720)에 제공된다. 초기화가 완료되지 않은 경우, 슬라이딩 윈도우 데이터가 먼저 초기 구조 블록(722)에 제공된다. 슬라이딩 윈도우 데이터는 그 다음 슬라이딩 윈도우에서 특징의 깊이를 초기화함으로써 포즈 그래프를 설정하는 포즈 그래프 설정 블록(724)에 제공된다.
포즈 그래프를 사용하여, 블록 726에서 IMU 잔차가 결정되고, 블록 728에서 포즈 그래프 최적화를 위한 IMU 인자가 결정된다. 포즈 그래프를 사용하여, 블록(730)에서 시간 델타 추정이 알려져 있는지 여부가 결정된다. 시간 델타 추정이 알려지지 않은 경우, 블록(732)에서 프레임이 앵커 프레임인지 여부가 결정된다. 앵커 프레임이라면, 앵커 프레임 깊이 잔차는 블록(734)에서 결정되고, 포즈 그래프 최적화를 위한 앵커 프레임 비전 인자는 블록(736)에서 결정된다. 앵커 프레임이 아닌 경우, 비앵커 프레임 이미지 및 깊이 잔차는 블록(738)에서 결정되고, 포즈 그래프 최적화를 위한 비앵커 프레임 비전 인자는 블록(740)에서 결정된다.
일반적으로, 비전 인자는 비전 센서를 사용하여 생성되며, 이는 키프레임의 6DOF 포즈, 랜드마크의 위치, 깊이 잔차 및 이미지 잔차를 포함한다. IMU 인자는 키프레임의 6DOF 포즈, IMU의 속도 및 바이어스, IMU 잔차를 포함하는 IMU 센서를 사용하여 생성된다.
시간 델타 추정이 알려진 경우, 블록 742에서 프레임이 앵커 프레임인지 여부가 결정된다. 이것이 앵커 프레임이면, 블록(744)에서 앵커 프레임 시간 델타 깊이 잔차가 결정되고, 포즈 그래프 최적화를 위한 앵커 프레임 시간 델타 비전 인자가 블록(746)에서 결정된다. 앵커 프레임이 아닌 경우, 블록(748)에서 비앵커 프레임 이미지 및 깊이 시간 델타 잔차가 결정되고, 블록(750)에서 포즈 그래프 최적화를 위한 비앵커 프레임 시간 델타 비전 인자가 결정된다.
포즈 그래프 최적화 블록(752)은 포즈 그래프, IMU 인자, 앵커 프레임 비전 인자, 및 비앵커 프레임 비전 인자를 사용하여 최적화된 그래프를 결정한다. 블록 754에서 최적화된 포즈 그래프에 대해 상태 업데이트가 수행되고, 블록 756에서 주변화가 수행되어, 결과적으로 758에서 최종 슬라이딩 윈도우가 생성된다.
도 8은 일 실시예에 따른, 3D 특징 매개변수화를 위한 MSL-DVIO의 구현에 대한 세부사항을 예시하는 도면이다. MSL-DVIO 3D 특징과 MSL-DVIO 1D 특징의 주요 차이점은 MS-DVIO 3D 특징에 상태의 일부로 2D 특징 위치가 있다는 것이므로, 블록(802)에서 포즈 그래프가 생성되기 전에 특징의 2D 위치가 추정된다. 두 번째 차이점은 앵커 프레임 비전 인자가 이미지와 깊이 잔차를 모두 가진다는 것이다. 구체적으로, 앵커 프레임 이미지 및 깊이 잔차는 블록(834)에서 결정되고, 블록(844)에서 앵커 프레임 이미지 및 깊이 시간 델타 잔차가 결정된다.
MSL-DVIO의 이러한 구현에서, 비전 인자에 대한 최적화는 수정되지만 IMU 인자는 전체 최적화 문제에 대해 변경되지 않는다. VIO 시스템이 공격적인 움직임을 받지 않는다면, 이는 영향을 미치지 않는다. 그러나 움직임이 상대적으로 공격적인 경우, 특히 초기화 단계에서, 궤적의 차이가 관찰될 수 있다.
초기화 단계의 일부로 제 1 그래프 최적화가 실행된 후 상태가 발산하기 시작할 수 있다. 따라서 MSL-DVIO와 VINS-Mono에 대한 초기화 단계 사이에 패리티를 가져오도록 시스템 설계 결정이 내려질 수 있다. 패리티를 달성하기 위해 시스템은 다음과 같이 수정될 수 있다.
MSL-DVIO 1D 특징에서, 앵커 프레임에 대해 깊이 잔사 계산이 턴오프되고, 깊이 잔차는 초기화 단계를 위한 비앵커 프레임에서 0으로 설정된다. 깊이 잔차에 특정한 비전 계수의 야코비 행렬도 0으로 설정된다.
비전 잔차는 하기 수학식 90, 91, 및 92에 기재된다.
Figure pat00230
Figure pat00231
Figure pat00232
변경된 야코비 행렬 부분은 아래의 수학식 93에 기재된다.
Figure pat00233
MSL-DVIO 3D 특징에서, 상태의 2D 특징의 초기화는 위에서 설명된 추정 알고리즘을 사용하여 꺼질 수 있다. 2D 특징 상태는 앵커 프레임의 2D 특징 측정으로 초기화된다. 앵커 프레임에 대해 계산 깊이 및 이미지 잔차가 턴오프되고 비앵커 프레임에 대해 깊이 잔차가 0으로 설정된다. 2D 특징 및 깊이 잔차에 특정한 비전 계수의 야코비 행렬은 0으로 설정된다.
비전 잔차는 하기 수학식 94, 95, 및 96에 기재된다.
Figure pat00234
Figure pat00235
Figure pat00236
변경된 야코비 행렬 부분은 아래의 수학식 97에 설명되어 있다.
Figure pat00237
특징 매개변수에 대한 스택형 야코비 행렬은 아래의 수학식 98에 설명되어 있다.
Figure pat00238
위에서 설명된 깊이 초기화시, 깊이 초기화는 깊이 측정을 사용하여 턴오프된다.
도 9는 일 실시예에 따른 UE에서 VIO를 수행하는 방법을 나타내는 흐름도이다. 902에서, IMU, 카메라, 및 UE의 깊이 센서로부터 측정이 처리된다. IMU로부터 데이터 스트림을 수신하고 사전 통합을 수행하여 IMU 사전 통합 항을 생성한다. 카메라를 통해 프레임을 캡처하고, 특징 감지 및 추적을 수행하여 2D 특징 트랙을 생성한다. 깊이 센서를 통해 감지된 캡처 프레임의 특징에 대해 깊이 측정이 생성된다.
캡처된 프레임에 대한 특징 검출 및 추적은 깊이 측정과 동기화될 수 있다. 이미지 및 깊이 도메인에서의 특징 속도는 특징 검출 및 추적 및 깊이 도메인에 기초하여 계산될 수 있다.
904에서, 키프레임 초기화가 초기 키프레임을 생성하기 위해 IMU 사전 통합 항 및 2D 특징 트랙을 사용하여 수행된다.
906에서, 처리된 측정치에 기초하여 키프레임 잔차가 결정된다. 키프레임 잔차는 IMU 잔차, 2D 특징 잔차, 깊이 잔차를 포함할 수 있다. IMU 잔차는 IMU 사전 적분 항을 이용하여 결정되고, 2D 특징 잔차는 2D 특징 트랙으로부터 결정되고, 깊이 잔차는 깊이 측정으로부터 결정된다. 구체적으로, IMU 잔차는 IMU에 대한 키프레임, 속도 및 바이어스에 대한 6DOF 포즈의 추정값과 IMU 측정(예: 가속도계 및 자이로스코프 측정) 간의 손실이다. 이미지 잔차는 키프레임에 대한 6DOF 포즈의 추정값과 랜드마크(1D 또는 3D)의 위치와 키프레임의 랜드마크에 대한 2D 측정 간의 손실이다. 깊이 잔차는 키프레임에 대한 6DOF 포즈의 추정값과 랜드마크(1D 또는 3D)의 위치와 깊이 맵에서 랜드마크의 깊이 측정 사이의 손실이다.
908에서, 슬라이딩 윈도우 그래프는 초기 키프레임과 키프레임 잔차에서 파생된 인자를 기반으로 생성 및 최적화된다. IMU 인자는 IMU 잔차에 기초하여 결정된다. 깊이 잔차 또는 2D 특징 잔차와 깊이 잔차에 기초하여 앵커 프레임 비전 인자를 결정하고, 캡처된 프레임이 앵커 프레임인 경우, 비앵커 프레임 비전 인자는 캡쳐된 프레임이 비앵커 프레임인 경우 2차원 특징 잔차와 깊이 잔차를 기반으로 결정된다. 앵커 프레임 비전 인자 및 비앵커 프레임 비전 인자는 카메라, 깊이 센서 및 IMU의 타임 스탬프를 동일하게 하는 시간 오프셋에 기초할 수 있다.
일반적으로, 키프레임의 6DOF 포즈, 랜드마크의 위치, 깊이 잔사, 이미지 잔사를 포함하는 비전 센서를 사용하여 비전 인자를 생성한다. IMU 센서를 사용하여 IMU 계수를 생성하고, 이는 키프레임의 6DOF 포즈, IMU의 속도 및 바이어스, IMU 잔차를 포함한다.
슬라이딩 윈도우 그래프는 IMU 인자 및 앵커 프레임 비전 인자 및 비앵커 프레임 비전 인자 중 하나에 기초하여 최적화된다. 최적화는 위에서 설명한 2단계 주변화를 포함할 수 있다.
최적화 동안, 상태 매개변수는 주어진 시점에서 그래프에 대한 가장 낮은 잔차가 있도록 추정된다.
910에서, UE의 개체 포즈는 최적화된 슬라이딩 윈도우 그래프에 기초하여 추정된다.
MSL-DVIO 시스템의 성능을 비교하기 위해, IMU 카메라 및 깊이 데이터가 있는 시퀀스로 구성된 테스트 케이스와 지상 실측 정보 궤적이 사용될 수 있다. 두 가지 유형의 시퀀스가 제공된다.
시뮬레이션 시퀀스는 궤적에 대한 RGBD 및 IMU 데이터를 생성한다.
실제 세계 시퀀스는 큰 방에서 로밍하는 세개의 (3) 핸드헬드 시퀀스를 갖는 VINS RGBD 시스템에 의해 생성된다. 이러한 시퀀스는 Realsense D435 센서를 사용하여 생성될 수 있으며, 지상 실측 정보는 MoCap 시스템을 사용하여 생성될 수 있다.
깊이 불확실성 통합(DUI)-VIO 시퀀스는 후두부 구조 코어 센서를 사용하여 생성될 수 있으며, 지상 실측 정보는 MoCap 시스템을 사용하여 생성될 수 있다.
MSL-DVIO 시스템의 성능은 VINS-Mono 및 VINS RGBD와 비교된다.
비교를 위해 사용된 테스트 메트릭은 아래 수학식 99에 의해 주어진 절대 변환 오차의 RMSE(root-mean-square-error)이다.
Figure pat00239
여기서, Q는 지상 실측 궤적이고, P는 추정 궤적이고, S는 지상 실측 궤적과 추정된 궤적 사이의 강체 변환이다.
시퀀스에 대한 세 가지 시스템의 비교 성능은 아래 표 7에 나와 있다.
ATE 성능 결과
시퀀스 이름 MSL-DVIO 1D 특징 MSL-DVIO 3D F특징 VINS-Mono VINS RGBD
u3d spiral 0.032 0.046 0.145 X
u3d sine 0.036 0.037 0.353 0.084
u3d simple 0.241 0.213 0.575 0.369
u3d normal 0.122 0.189 0.795 0.453
u3d rotation 0.836 0.496 0.924 0.682
rgbd simple 0.184 0.205 0.228 0.183
rgbd normal 0.181 0.204 0.229 0.059
rgbd rotation 0.195 0.210 0.196 0.126
corridor1 X X 4.39 5.13
corridor2 1.41 1.14 1.61 1.81
corridor3 2.35 1.99 3.97 6.81
corridor4 1.51 0.915 4.33 1.95
hall1 0.694 2.36 4.8 2.34
hall2 2.176 1.019 12.71 7.98
hall3 X 6.61 X X
easy1 0.075 0.079 0.142 0.137
easy2 0.067 0.073 0.175 0.431
easy3 0.079 0.084 0.236 0.116
dynamic1 0.157 0.159 0.287 0.216
dynamic2 0.206 0.303 0.55 0.324
dynamic3 0.294 0.293 0.653 0.52
dynamic4 0.820 1.186 1.7 2.5
dynamic5 0.060 0.118 0.469 0.177
light1 0.871 0.361 X X
light2 0.37 0.3752 0.4 0.48
light3 0.139 0.156 0.384 X
light4 0.175 0.181 0.29 3.11
light5 1.211 0.574 X 1.12
light6 2.2 1.98 1.06 X
motion1 0.292 0.371 0.526 0.581
motion2 0.333 0.475 0.699 0.66
motion3 0.158 0.161 0.452 0.361
motion4 0.334 0.345 0.54 0.488
motion5 0.250 0.226 0.373 0.378
motion6 0.246 0.225 0.707 0.725
표 7에 나타낸 바와 같이, 굵게 표시된 숫자는 시퀀스에 대한 최상의 성능을 의미하며, "X"는 시스템이 초기화에 실패했거나 큰 ATE(>50미터)가 발생했음을 나타낸다.알고리즘의 실시간 성능 및 알고리즘 변경의 영향을 결정하기 위해 다른 시스템의 타이밍 성능도 비교될 수 있다. 그러한 비교를 위해, MSL-DVIO 1D 및 MSL-DVIO 3D 시스템의 타이밍 번호는 VINS-Mono 및 VINS-RGBD 시스템을 사용하여 빠른 주변화 변화를 포함하거나 포함하지 않고 평가된다. 그 결과를 하기 표 8에 나타내었다.
MSL-DVIO의 처리 시간 평가
총 시간(mSec) Ceres 최적화 시간(mSec) 주변화 시간(mSec) 삼각측량 시간(mSec)
MSL-DVIO 1D(빠른 주변화 있음) 54.0985 0.0558 45.5234 4.9316
MSL-DVIO 3D(빠른 주변화 있음) 83.527 1.0526 54.2526 25.4595
MSL-DVIO 1D(빠른 주변화 없음) 69.6035 0.0462 37.3896 27.5371
MSL-DVIO 1D(빠른 주변화 없음) 449.92 0.718 39.0122 407.3284
VINS-Mono 61.4034 0.0505 30.7614 26.7074
VINS-RGBD 61.4034 0.0505 30.7614 26.7074
표 8에 나타낸 바와 같이, 빠른 주변화 변화가 있는 경우, MSL-DVIO 1D(~80% 개선) 및 MSL-DVIO 3D(~94% 개선) 모두에 대한 주변화 처리 시간이 개선되었다. 따라서 MSL-DVIO 1D의 경우 ~18Hz 및 MSL-DVIO 3D의 경우 ~11Hz의 실시간 성능이 달성된다. 두 수치 모두 비선형 최적화 스레드에 대한 10Hz 요구 사항보다 높으므로 전체 VIO 시스템의 실시간 성능을 가능하게 한다.도 10은 다양한 실시 예에 따른 네트워크 환경의 전자 장치를 도시한다. 도 10을 참조하여, 네트워크 환경(1000)에서 전자 장치(1001)는 제 1 네트워크(1098)(예를 들어, 장거리 무선 통신 네트워크)를 통해 전자 장치(1002) 또는 제 2 네트워크(1099)(예를 들어, 근거리 무선 통신 네트워크)를 통해 전자 장치(1004) 또는 서버(1008)와 통신할 수 있다. 전자 장치(1001)는 서버(1008)를 통해 전자 장치(1004)와 통신할 수 있다. 전자 장치(1001)는 서버(1008)를 통해 전자 장치(1004)와 통신할 수 있다. 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 장치(1060), 음향 출력 장치(1055), 디스플레이 장치(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(SIM)(1096) 또는 GNSS 안테나를 포함하는 안테나 모듈(1097)를 포함한다. 일 실시 예에서, 구성 요소 중 적어도 하나(예를 들어, 디스플레이 장치(1060) 또는 카메라 모듈(1080))는 전자 장치(1001)에서 생략되거나, 하나 이상의 다른 구성 요소는 전자 장치(1001)에 추가될 수 있다. 일 실시 예에서, 구성 요소 중 일부는 단일 집적 회로(IC)로 구현될 수 있다. 예를 들어, 센서 모듈(1076)(예를 들어, 지문 센서, 홍채 센서 또는 조도 센서)은 디스플레이 장치(1060)(예를 들어, 디스플레이)에 내장될 수 있다.
프로세서(1020)는 예를 들어, 소프트웨어(예를 들어, 프로그램(1040))를 실행하여 프로세서(1020)과 연결된 전자 장치(1001)의 적어도 하나의 다른 구성 요소(예를 들어, 하드웨어 또는 소프트웨어 구성 요소)를 제어할 수 있으며, 다양한 데이터 처리 또는 계산을 수행할 수 있다. 데이터 처리 또는 계산의 적어도 일부로서, 프로세서(1020)는 휘발성 메모리(1032)의 다른 구성 요소(예를 들어, 센서 모듈(1076) 또는 통신 모듈(1090))로부터 수신된 명령 또는 데이터를 로드할 수 있으며, 휘발성 메모리(1032)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비 휘발성 메모리(1034)에 저장한다. 프로세서(1020)는 메인 프로세서(1021)(예를 들어, 중앙 처리 장치(CPU) 또는 애플리케이션 프로세서(AP)), 및 메인 프로세서(1021)와 독립적으로 또는 함께 동작할 수 있는 보조 프로세서(1012)(예를 들어, 그래픽 처리 장치(GPU), 이미지 신호 프로세서(ISP)), 센서 허브 프로세서 또는 통신 프로세서(CP))를 포함할 수 있다. 추가적으로 또는 대안적으로, 보조 프로세서(1012)는 메인 프로세서(1021)보다 적은 전력을 소비하거나 특정 기능을 실행하도록 구성될 수 있다. 보조 프로세서(1023)는 메인 프로세서(1021)와 별개로 구현될 수도 있고, 그 일부로 구현될 수도 있다.
보조 프로세서(1023)는 메인 프로세서(2321)가 비활성(예를 들어, 슬립) 상태에 있는 동안 메인 프로세서(2321) 대신에, 또는 메인 프로세서(1021)가 활성 상태(예를 들어, 애플리케이션 실행중)에 있는 동안 메인 프로세서(1021)와 함께, 전자 장치(1001)의 구성 요소 중 적어도 하나의 구성 요소(예를 들어, 디스플레이 장치(1060), 센서 모듈(1076) 또는 통신 모듈(1090))와 관련된 기능 또는 상태 중 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(1012)(예를 들어, ISP 또는 CP)는 보조 프로세서(1012)와 기능적으로 관련된 다른 구성 요소(예를 들어, 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부로 구현될 수 있다.
메모리(1030)는 전자 장치(1001)의 적어도 하나의 구성 요소(예를 들어, 프로세서(1020) 또는 센서 모듈(1076))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 다양한 데이터는 예를 들어, 소프트웨어(예를 들어, 프로그램(1040)) 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(1030)는 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 소프트웨어로서 메모리(1030)에 저장될 수 있으며, 예를 들어, 운영 체제(OS)(1042), 미들웨어(1044) 또는 애플리케이션(1046)을 포함할 수 있다.
입력 장치(1050)는 전자 장치(1001)의 외부(예를 들어, 사용자)로부터 전자 장치(1001)의 다른 구성 요소(예를 들어, 프로세서(1020))에 의해 사용될 명령 또는 데이터를 수신할 수 있다. 입력 장치(1050)는 예를 들어, 마이크, 마우스 또는 키보드를 포함할 수 있다.
음향 출력 장치(1055)는 전자 장치(1001)의 외부로 음향 신호를 출력할 수 있다. 음향 출력 장치(1055)는 예를 들어, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음과 같은 일반적인 용도로 사용될 수 있으며, 수신기는 수신 전화를 수신하는 데 사용될 수 있다. 일 실시 예에 따르면, 수신기는 스피커와 분리되거나 스피커의 일부로 구현될 수 있다.
디스플레이 장치(1060)는 전자 장치(1001)의 외부(예를 들어, 사용자)에게 시각적으로 정보를 제공할 수 있다. 디스플레이 장치(1060)는, 예를 들어, 디스플레이, 홀로그램 장치 또는 프로젝터 및 제어 회로를 포함하여 디스플레이, 홀로그램 장치 및 프로젝터 중 대응하는 것을 제어할 수 있다. 일 실시 예에 따르면, 디스플레이 장치(1060)는 터치를 탐지하도록 구성된 터치 회로, 또는 터치에 의해 발생하는 힘의 강도를 측정하도록 구성된 센서 회로(예를 들어, 압력 센서)를 포함할 수 있다.
오디오 모듈(1070)은 소리를 전기적 신호로 변환하거나 그 반대로 변환할 수 있다. 일 실시 예에 따르면, 오디오 모듈(1070)은 입력 장치(1050)을 통해 사운드를 획득하거나, 사운드를 음향 출력 장치(1055) 또는 외부 전자 장치(1002)의 헤드폰을 통해 전자 장치(1001)와 직접(예를 들어, 유선으로) 또는 무선으로 출력한다.
센서 모듈(1076)은 전자 장치(1001)의 동작 상태(예를 들어, 전원 또는 온도) 또는 전자 장치(1001) 외부의 환경 상태(예를 들어, 사용자의 상태)를 탐지하고, 다음에 탐지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성한다. 센서 모듈(1076)은, 예를 들어 제스처 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선(IR) 센서, 생체 인식 센서, 온도 센서, 습도 센서 또는 조도 센서일 수 있다.
인터페이스(1077)는 전자 장치(1001)가 외부 전자 장치(1002)와 직접(예를 들어, 유선으로) 또는 무선으로 연결되는 데 사용될 하나 이상의 지정된 프로토콜을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(1077)는 예를 들어, 고 해상도 멀티미디어 인터페이스(HDMI), 범용 직렬 버스(USB) 인터페이스, 시큐어 디지털(SD) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1078)는 전자 장치(1001)가 외부 전자 장치(1002)와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(1078)는 예를 들어, HDMI 커넥터, USB 커넥터, SD 카드 커넥터 또는 오디오 커넥터(예를 들어, 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기적 신호를 기계적 자극(예를 들어, 진동 또는 움직임) 또는 촉감 또는 운동 감각을 통해 사용자가 인식할 수 있는 전기적 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(1079)은 예를 들어, 모터, 압전 소자 또는 전기 자극기를 포함할 수 있다.
카메라 모듈(1080)은 정지 영상 또는 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈, 이미지 센서, ISP 또는 플래시를 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리할 수 있다. 전력 관리 모듈(1088)은 예를 들어, 전력 관리 집적 회로(PMIC)의 적어도 일부로 구현될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성 요소에 전원을 공급할 수 있다. 일 실시 예에 따르면, 배터리(1089)는 예를 들어, 충전이 불가능한 1 차 전지, 충전 가능한 2 차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)과 외부 전자 장치(예를 들어, 전자 장치(1002), 전자 장치(1004) 또는 서버(1008)) 간의 직접적인(예를 들어, 유선) 통신 채널 또는 무선 통신 채널 설정을 지원하고, 설정된 통신 채널을 통해 통신을 수행하는 것을 지원할 수 있다. 통신 모듈(1090)은 프로세서(1020)(예를 들어, AP)와 독립적으로 동작할 수 있는 하나 이상의 CP를 포함할 수 있으며, 직접(예를 들어, 유선) 통신 또는 무선 통신을 지원한다. 일 실시 예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(1092)(예를 들어, 셀룰러 통신 모듈, 근거리 무선 통신 모듈 또는 글로벌 위성 항법 시스템(GNSS) 통신 모듈) 또는 유선 통신 모듈(1094)(예를 들어, 근거리 통신망(LAN) 통신 모듈 또는 전력선 통신(PLC) 모듈)를 포함할 수 있다. 이러한 통신 모듈 중 해당하는 모듈은 제 1 네트워크(1098)(예를 들어, Bluetooth®, 무선 피델리티(Wi-Fi) 다이렉트, 또는 적외선 데이터 협회(IrDA) 표준과 같은 단거리 통신 네트워크) 또는 제 2 네트워크(1099)(예를 들어, 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 광역 네트워크(WAN))와 같은 장거리 통신 네트워크)를 통해 외부 전자 장치와 통신할 수 있다. Bluetooth®는 워싱턴 커클랜드 소재의 Bluetooth SIG, Inc.의 등록 상표이다. 이러한 다양한 유형의 통신 모듈은 단일 구성 요소(예를 들어, 단일 IC)로 구현될 수 있으며, 서로 분리된 여러 구성 요소(예를 들어, 다수의 IC)로 구현될 수 있다. 무선 통신 모듈(1092)는 가입자 식별 모듈(1096)에 저장된 가입자 정보(예를 들어, 국제 모바일 가입자 식별자(IMSI))를 사용하여, 제 1 네트워크(1098) 또는 제 2 네트워크(1099)와 같은 통신 네트워크에서 전자 장치(1001)를 식별하고 인증할 수 있다.
안테나 모듈(1097)은 전자 장치(1001)의 외부(예를 들어, 외부 전자 장치)와 신호 또는 전원을 송수신할 수 있다. 안테나 모듈(1097)은 하나 이상의 안테나를 포함할 수 있으며, 이중에서, 제 1 네트워크(1098) 또는 제 2 네트워크(1099)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나를 통신 모듈(1090)(예를 들어, 무선 통신 모듈(1092))에 의해 선택할 수 있다. 그러면 선택된 적어도 하나의 안테나를 통해 통신 모듈(1090)과 외부 전자 장치간에 신호 또는 전력이 송수신될 수 있다.
상기 설명한 구성 요소 중 적어도 일부는 주변 장치 간 통신 방식(예를 들어, 버스, 범용 입력 및 출력(GPIO), 직렬 주변 장치 인터페이스(SPI) 또는 모바일 산업 프로세서 인터페이스(MIPI))를 통해 상호 결합되어 그 사이에서 신호(예를 들어, 명령 또는 데이터)를 통신할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제 2 네트워크(1099)와 결합된 서버(1008)를 통해 전자 장치(1001)와 외부 전자 장치(1004) 사이에서 송수신될 수 있다. 각각의 전자 장치(1002, 1404)는 전자 장치(1001)와 동일한 유형 또는 이와 다른 유형의 장치일 수 있다. 전자 장치(1001)에서 실행될 동작의 전부 또는 일부는 외부 전자 장치(1002, 1404, 1408) 중 하나 이상에서 실행될 수 있다. 예를 들어, 전자 장치(1001)가 자동으로 또는 사용자 또는 다른 장치의 요청에 따라, 기능 또는 서비스를 수행해야 하는 경우, 전자 장치(1001)는 기능 또는 서비스를 실행하는 대신에, 또는 그에 추가하여, 하나 이상의 외부 전자 장치에 기능 또는 서비스의 적어도 일부를 수행하도록 요청할 수 있다. 요청을 수신한 하나 이상의 외부 전자 장치는 요청된 기능 또는 서비스의 적어도 일부, 또는 요청과 관련된 추가 기능 또는 추가 서비스를 수행할 수 있으며, 수행의 결과를 전자 장치(1001)로 전달한다. 전자 장치(1001)는 결과를, 요청에 대한 응답의 적어도 일부로서, 결과의 추가 처리를 포함하거나 포함하지 않고 제공할 수 있다. 이를 위해, 예를 들어 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
일 실시 예는 기계(예를 들어, 전자 장치(1001))에 의해 판독 가능한 저장 매체(예를 들어, 내부 메모리(1036) 또는 외부 메모리(1038))에 저장된 하나 이상의 명령을 포함하는 소프트웨어(예를 들어, 프로그램(1040))로 구현될 수 있다. 예를 들어, 전자 장치(1001)의 프로세서는 저장 매체에 저장된 하나 이상의 명령어 중 적어도 하나를 호출하여, 이것을 프로세서의 제어하에서 하나 이상의 다른 구성 요소를 사용하거나 사용하지 않고 실행할 수 있다. 따라서, 호출된 적어도 하나의 명령에 따라 적어도 하나의 기능을 수행하도록 기계가 작동될 수 있다. 하나 이상의 명령어는 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행 가능한 코드를 포함할 수 있다. 기계 판독 가능 저장 매체는 비일시적 저장 매체의 형태로 제공될 수 있다. 용어 "비일시적"은 저장 매체가 유형의 장치이며, 신호(예를 들어, 전자파)를 포함하지 않음을 나타내지만, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 위치와 데이터가 저장 매체에 일시적으로 저장되는 위치를 구별하지 않는다.
일 실시 예에 따르면, 본 개시의 방법은 컴퓨터 프로그램 제품에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 판매자와 구매자 사이에서 상품으로 거래될 수 있다. 컴퓨터 프로그램 제품은 기계 판독 가능 저장 매체(예를 들어, 컴팩트 디스크 ROM(CD-ROM))의 형태로 배포될 수 있거나, 애플리케이션 스토어(예를 들어, Play StoreTM)를 통해 온라인으로 배포(예를 들어, 다운로드 또는 업로드)되거나, 두 사용자 장치(예를 들어, 스마트 폰) 간에 직접 배포될 수 있다. 온라인으로 배포되는 경우, 컴퓨터 프로그램 제품의 적어도 일부는 제조업체 서버의 메모리, 애플리케이션 스토어의 서버 또는 릴레이 서버와 같은, 기계 판독 가능 저장 매체에 일시적으로 생성되거나 적어도 일시적으로 저장될 수 있다.
일 실시 예에 따르면, 전술한 구성 요소들 각각(예를 들어, 모듈 또는 프로그램)은 단일 엔티티 또는 다중 엔티티를 포함할 수 있다. 전술한 구성 요소 중 하나 이상은 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 대안적으로 또는 추가적으로, 복수의 구성 요소(예를 들어, 모듈 또는 프로그램)가 단일 구성 요소로 통합될 수 있다. 이 경우, 통합된 구성 요소는 이들이 통합 전에 복수의 구성 요소 중 대응하는 것에 의해 수행되므로, 동일하거나 유사한 방식으로 복수의 구성 요소들 각각의 하나 이상의 기능을 계속 수행할 수 있다. 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 작업은 순차적으로, 병렬로, 반복적으로 또는 경험적으로 수행될 수 있거나, 하나 이상의 작업은 다른 순서로 실행 또는 생략되거나, 하나 이상의 다른 작업이 추가될 수 있다.
본 발명의 특정 실시 예가 본 발명의 상세한 설명에서 설명되었지만, 본 개시는 본 개시의 범위를 벗어나지 않고 다양한 형태로 수정될 수 있다. 따라서, 본 개시의 범위는 단지 설명된 실시 예에 기초하여 결정되어서는 안되며, 오히려 첨부된 청구범위 및 그에 상응하는 것에 기초하여 결정된다.

Claims (20)

  1. 사용자 장치(UE)에서 시각적 관성 주행 거리 측정(VIO; Visual Inertial Odometry)을 수행하는 방법에 있어서,
    상기 UE의 관성 측정 유닛(IMU), 카메라 및 깊이 센서로부터 측정을 처리하는 단계;
    상기 처리된 측정에 기초하여 적어도 깊이 잔차(residue)를 포함하는 키프레임 잔차를 결정하는 단계;
    상기 키프레임 잔차로부터 유도된 인자에 기초하여 슬라이딩 윈도우 그래프를 생성 및 최적화하는 단계; 및
    상기 최적화된 슬라이딩 윈도우 그래프에 기초하여 상기 UE의 개체 포즈(object pose)를 추정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 측정을 처리하는 단계는:
    상기 IMU로부터 데이터 스트림을 수신하고 상기 데이터 스트림에 대한 사전 통합을 수행하여 IMU 사전 통합 항을 생성하는 단계;
    상기 카메라를 통해 프레임을 캡처하고 상기 캡처된 프레임에 대해 특징 감지 및 추적을 수행하여 2차원(2D) 특징 트랙을 생성하는 단계; 및
    상기 깊이 센서를 통해 상기 캡처된 프레임의 감지된 특징에 대해 깊이 측정값을 생성하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 키프레임 잔차를 결정하는 단계는:
    상기 IMU 사전 통합 항을 사용하여 IMU 잔차를 결정하는 단계;
    상기 2D 특징 트랙으로부터 2D 특징 잔차를 결정하는 단계; 및
    상기 깊이 측정으로부터 상기 깊이 잔차를 결정하는 단계를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 슬라이딩 윈도우 그래프를 생성 및 최적화하는 단계는:
    상기 IMU 잔차에 기초하여 IMU 인자를 결정하는 단계;
    상기 캡처된 프레임이 앵커 프레임인 경우, 적어도 상기 깊이 잔차에 기초하여 앵커 프레임 비전 인자를 결정하는 단계;
    상기 캡처된 프레임이 비 앵커 프레임인 경우, 상기 2차원 특징 잔차 및 상기 깊이 잔차에 기초하여 비앵커 프레임 비전 인자를 결정하는 단계; 및
    상기 IMU 인자와 상기 앵커 프레임 비전 인자 및 상기 비앵커 프레임 비전 인자 중 하나에 기초하여 상기 슬라이딩 윈도우 그래프를 최적화하는 단계를 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 앵커 프레임 비전 인자는 상기 2D 특징 잔차 및 상기 깊이 잔차에 기초하여 결정되는, 방법.
  6. 제 4 항에 있어서,
    상기 앵커 프레임 비전 인자 및 상기 비앵커 프레임 비전 인자는 상기 카메라, 상기 깊이 센서, 및 상기 IMU의 타임 스탬프와 등가인 시간 오프셋에 기초하는, 방법.
  7. 제 2 항에 있어서,
    상기 IMU 사전 통합 항 및 상기 2D 기능 트랙을 사용하여 키프레임 초기화를 수행하여 초기 키프레임을 생성하는 단계를 더 포함하고,
    상기 슬라이딩 윈도우 그래프는 상기 초기 키프레임에 기초하여 생성되는, 방법.
  8. 제 2 항에 있어서,
    상기 캡처된 프레임에 대한 특징 감지 및 추적을 상기 감지된 특징의 깊이 측정과 동기화하는 단계를 더 포함하는, 방법.
  9. 제 2 항에 있어서,
    상기 특징 감지 및 추적 및 상기 깊이 측정에 기초하여 이미지 및 깊이 도메인에서 특징 속도를 계산하는 단계를 더 포함하는, 방법.
  10. 제 4 항에 있어서,
    상기 슬라이딩 윈도우 그래프를 최적화는 단계는:
    상기 캡처된 프레임에서 랜드마크의 주변화를 수행하는 단계; 및
    키프레임 포즈, 속도 및 바이어스 항의 주변화를 수행하는 단계를 포함하는, 방법.
  11. 사용자 장치(UE)에 있어서,
    상기 사용자 장치는,
    관성 측정 장치(IMU);
    카메라;
    깊이 센서;
    프로세서; 및
    명령을 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 포함하고,
    상기 명령은, 상기 프로세서로 하여금, 실행시:
    상기 IMU, 상기 카메라, 및 상기 깊이 센서로부터 측정을 처리하고,
    상기 처리된 측정에 기초하여 적어도 깊이 잔차를 포함하는 키프레임 잔차를 결정하고,
    상기 키프레임 잔차로부터 유도된 인자에 기초하여 슬라이딩 윈도우 그래프를 생성 및 최적화하고,
    상기 최적화된 슬라이딩 윈도우 그래프에 기초하여 상기 UE의 개체 포즈를 추정하도록 하는, 사용자 장치.
  12. 제 11 항에 있어서,
    상기 측정의 처리시, 상기 명령은 상기 프로세서로 하여금 더욱:
    상기 IMU로부터 데이터 스트림을 수신하고 상기 데이터 스트림에 대한 사전 통합을 수행하여 IMU 사전 통합 항을 생성하고,
    상기 카메라를 통해 프레임을 캡처하고 상기 캡처된 프레임에 대해 특징 감지 및 추적을 수행하여 2차원(2D) 특징 트랙을 생성하고,
    상기 깊이 센서를 통해 상기 캡처된 프레임의 감지된 특징에 대해 깊이 측정값을 생성하도록 하는, 사용자 장치.
  13. 제 12 항에 있어서,
    상기 키프레임 잔차의 결정시, 상기 명령은 상기 프로세서로 하여금 더욱:
    상기 IMU 사전 통합 항을 사용하여 IMU 잔차를 결정하고,
    상기 2D 특징 트랙으로부터 2D 특징 잔차를 결정하고,
    상기 깊이 측정으로부터 상기 깊이 잔차를 결정하도록 하는, 사용자 장치.
  14. 제 13 항에 있어서,
    상기 슬라이딩 윈도우 그래프의 생성 및 최적화시, 상기 명령은 상기 프로세서로 하여금 더욱:
    상기 IMU 잔차에 기초하여 IMU 인자를 결정하고,
    상기 캡처된 프레임이 앵커 프레임인 경우, 적어도 상기 깊이 잔차에 기초하여 앵커 프레임 비전 인자를 결정하고,
    상기 캡처된 프레임이 비 앵커 프레임인 경우, 상기 2차원 특징 잔차 및 상기 깊이 잔차에 기초하여 비앵커 프레임 비전 인자를 결정하고,
    상기 IMU 인자와 상기 앵커 프레임 비전 인자 및 상기비앵커 프레임 비전 인자 중 하나에 기초하여 상기 슬라이딩 윈도우 그래프를 최적화하도록 하는, 장치.
  15. 제 14 항에 있어서,
    상기 앵커 프레임 비전 인자는 상기 2D 특징 잔차 및 상기 깊이 잔차에 기초하여 결정되는, 사용자 장치.
  16. 제 14 항에 있어서,
    상기 앵커 프레임 비전 인자 및 상기 비앵커 프레임 비전 인자는 상기 카메라, 상기 깊이 센서, 및 상기 IMU의 타임 스탬프와 등가인 시간 오프셋에 기초하는, 사용자 장치.
  17. 제 12 항에 있어서,
    상기 명령은 상기 프로세서로 하여금 더욱 상기 IMU 사전 통합 항 및 상기 2D 기능 트랙을 사용하여 키프레임 초기화를 수행하여 초기 키프레임을 생성하도록 하고,
    상기 슬라이딩 윈도우 그래프는 상기 초기 키프레임에 기초하여 생성되는, 사용자 장치.
  18. 제 12 항에 있어서,
    상기 명령은 상기 프로세서로 하여금 더욱 상기 캡처된 프레임에 대한 특징 감지 및 추적을 상기 감지된 특징의 깊이 측정과 동기화하도록 하는, 사용자 장치.
  19. 제 12 항에 있어서,
    상기 명령은 상기 프로세서로 하여금 더욱 상기 특징 감지 및 추적 및 상기 깊이 측정에 기초하여 이미지 및 깊이 도메인에서 특징 속도를 계산하도록 하는, 사용자 장치.
  20. 제 14 항에 있어서,
    상기 슬라이딩 윈도우 그래프의 최적화시, 상기 명령은 상기 프로세서로 하여금 더욱:
    상기 캡처된 프레임에서 랜드마크의 주변화를 수행하고,
    키프레임 포즈, 속도 및 바이어스 항의 주변화를 수행하도록 하는, 사용자 장치.
KR1020220060733A 2021-05-24 2022-05-18 깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치 KR20220158628A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163192488P 2021-05-24 2021-05-24
US63/192,488 2021-05-24
US17/726,124 US20220414919A1 (en) 2021-05-24 2022-04-21 Method and apparatus for depth-aided visual inertial odometry
US17/726,124 2022-04-21

Publications (1)

Publication Number Publication Date
KR20220158628A true KR20220158628A (ko) 2022-12-01

Family

ID=83997287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220060733A KR20220158628A (ko) 2021-05-24 2022-05-18 깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US20220414919A1 (ko)
KR (1) KR20220158628A (ko)
CN (1) CN115388882A (ko)
DE (1) DE102022111926A1 (ko)
TW (1) TW202247099A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117710449B (zh) * 2024-02-05 2024-04-16 中国空气动力研究与发展中心高速空气动力研究所 基于numa的实时位姿视频测量流水线模型优化方法

Also Published As

Publication number Publication date
CN115388882A (zh) 2022-11-25
TW202247099A (zh) 2022-12-01
DE102022111926A1 (de) 2022-12-01
US20220414919A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
CN110322500B (zh) 即时定位与地图构建的优化方法及装置、介质和电子设备
US20200404245A1 (en) Mapping and tracking system with features in three-dimensional space
Kneip et al. Robust real-time visual odometry with a single camera and an IMU
KR102462799B1 (ko) 자세 추정 방법 및 자세 추정 장치
US10033985B2 (en) Camera pose estimation apparatus and method for augmented reality imaging
Raposo et al. Fast and accurate calibration of a kinect sensor
CN113874870A (zh) 基于图像的定位
Sweeney et al. Solving for relative pose with a partially known rotation is a quadratic eigenvalue problem
US20200126246A1 (en) Method and apparatus for active depth sensing and calibration method thereof
CN112005548B (zh) 生成深度信息的方法和支持该方法的电子设备
US11488354B2 (en) Information processing apparatus and information processing method
US20210183100A1 (en) Data processing method and apparatus
CN110349212B (zh) 即时定位与地图构建的优化方法及装置、介质和电子设备
US10204445B2 (en) Information processing apparatus, method, and storage medium for determining a failure of position and orientation measurement of an image capturing device
US11423510B2 (en) System and method for providing dolly zoom view synthesis
Huai et al. Real-time large scale 3D reconstruction by fusing Kinect and IMU data
KR20220158628A (ko) 깊이 보조 시각적 관성 주행 거리 측정을 위한 방법 및 장치
JP2018173882A (ja) 情報処理装置、方法、及びプログラム
CN113474819A (zh) 信息处理装置、信息处理方法和程序
US11443455B2 (en) Prior informed pose and scale estimation
US11170531B2 (en) Systems and methods for calibrating imaging and spatial orientation sensors
JP5464671B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
CN116205947B (zh) 基于相机运动状态的双目-惯性融合的位姿估计方法、电子设备及存储介质
US12008782B2 (en) Information processing apparatus, information processing method, and program
US20240029350A1 (en) Computing apparatus and model generation method