KR20210058686A - 동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법 - Google Patents

동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법 Download PDF

Info

Publication number
KR20210058686A
KR20210058686A KR1020200147099A KR20200147099A KR20210058686A KR 20210058686 A KR20210058686 A KR 20210058686A KR 1020200147099 A KR1020200147099 A KR 1020200147099A KR 20200147099 A KR20200147099 A KR 20200147099A KR 20210058686 A KR20210058686 A KR 20210058686A
Authority
KR
South Korea
Prior art keywords
map
pose
line segment
frame
features
Prior art date
Application number
KR1020200147099A
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 삼성전자주식회사
Priority to US17/093,944 priority Critical patent/US11636618B2/en
Priority to EP20206725.2A priority patent/EP3822914B1/en
Publication of KR20210058686A publication Critical patent/KR20210058686A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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/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/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • Image Analysis (AREA)

Abstract

동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법이 제공된다. 상기 장치는, 주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하도록 구성되는 이미지 획득 유닛, 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 초기 포즈를 추정하도록 구성되는 초기 포즈 추정 유닛, 상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 3차원 맵을 구축하도록 구성되는 맵 구축 유닛, 및 상기 초기 포즈 및 상기 3차원 맵에 기반하여 최종 포즈를 결정하도록 구성되는 포즈 결정 유닛을 포함할 수 있다.

Description

동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법{DEVICE AND METHOD OF IMPLEMENTING SIMULTANEOUS LOCALIZATION AND MAPPING}
본 개시는 SLAM(simultaneous localization and mapping) 분야에 관한 것으로, 보다 상세하게는 재구성된 맵에 기초한 SLAM 구현 장치 및 방법에 관한 것이다.
종래의 3차원 맵을 구성하는 방법에서, 장비에 설치된 카메라, 레이저 센서 및 관성 측량 장치와 같은 센서 장치들은 일반적으로 주변 환경의 정보를 실시간으로 획득하여 주변 환경의 3차원 맵을 구축하고, 세계 좌표 시스템(a world coordinate system)에서 장비의 위치(position) 및 자세(posture) 정보가 실시간으로 출력된다. 해당 기술을 동시적 위치 추정 및 맵 작성(simultaneous localization and mapping, SLAM)이라고 한다.
대부분의 SLAM 시스템은 두 개의 프레임워크(frameworks)를 기반으로 한다: 하나는 비선형 최적화이고 다른 하나는 통계 필터링이다. 다양한 하드웨어 센싱 장치에 따라, SLAM 시스템은 레이저 센서, 양안 비전(binocular-vision)/멀티 비전(multi-vision), 단안 비전(monocular vision) + 관성 측량 장치, 단안 비전 + 깊이 카메라(depth camera) 등의 형태로 나눠질 수도 있다.
레이저 감지 기술은 초기 SLAM 시스템에서 일반적으로 사용되는 기술이다. 해당 기술은 정확도가 높고, 더 조밀한 맵 포인트(map point)를 획득할 수 있다. 다만, 레이더 장치의 큰 부피, 큰 무게 및 고비용으로 인해, 해당 레이저 장치는 최근 경량 SLAM 시스템(예: 드론, 증강 현실(AR) 안경 등)의 요구 사항에 적합하지 않지만, 해당 레이저 장치는 높은 하중이 필요하지 않은 일부 장비(예: 청소 로봇 및 저장 로봇)에서 여전히 유용하다. 또 다른 기술은 양안 비전/멀티 비전-SLAM 시스템으로, 해당 시스템은 두 개의 카메라 사이의 시차에 기반하여 한 장면에서 특징점들의 대략적인 깊이 정보를 추정할 수 있으며, 그 후에 프론트-엔드 최적화 동작(a front-end optimization operation)에서 획득된 추정 값을 백-엔드 최적화 동작(a back-end optimization operation) 동안에 더욱 세분화할 수 있다. 보다 일반적인 양안 비전-SLAM 기술은 OKVIS(open key frame-based visual-inertial SLAM) 및 ORB-SLAM(oriented fast and rotated brief-SLAM)을 포함한다.
또한, 현재 비전-기반 SLAM 기술은 소비자용 제품에도 점차적으로 적용되고 있다. 다만, SLAM 시스템에서 단안 카메라가 사용되는 경우에, 더욱 정교한 초기화 작업의 필요성, 모션 궤적의 스케일 추정의 어려움 등과 같은 문제가 종종 발생한다. 따라서, 단안 카메라에 대한 몇가지 변화가 집중적으로 연구되어 왔으며, 현재 시점에서, 더욱 일반적인 변화는 단안 카메라와 관성 센서(a monocular camera plus an inertia sensor), 단안 카메라와 깊이 카메라(a monocular camera plus a depth camera) 및 일부 정밀한 초기화 알고리즘을 포함한다. 관성 센서는 장비의 움직임에 더욱 민감하다. 따라서, 이러한 관성 센서는 단안 카메라의 단점을 보완할 수 있고, 장비가 더 빠르게 움직이거나 더 많이 회전할 때 장비의 포즈를 정확하게 추정할 수 있다. 단안 카메라와 깊이 카메라(a monocular camera plus a depth camera)는 3차원 공간에서 위치를 대략적으로 측정할 수 있으므로, 모션 궤적의 스케일을 획득할 수 있다. 단안 카메라는 경량이기 때문에 소비자용 제품(예: 드론, AR 안경, 자동 식사 배달 로봇 등)에 널리 사용되고 있다.
상기 기술된 정보는 본 발명의 이해를 돕기 위한 배경 정보일 뿐이다. 상기 기술된 정보 중 어느 것이든 본 발명에 대한 종래 기술로서 적용될 수 있는지에 대한 결정 또는 기재는 이루어지지 않았다.
대부분의 기존 SLAM 기술은 비선형 최적화 부분을 포함하고, 비선형 최적화에서 실시간 성능 및 정확도를 모두 고려하는 것은 어렵다. 실시간 성능을 보장하기 위하여, 대부분의 기존 SLAM 시스템은 비선형 최적화를 수행할 때 단기간의 측정 정보만을 사용할 수 있으므로 더 나은 위치 추정의 정확도에 도달하기 어렵다. 또한, 일부 SLAM 시스템은 저장 로봇 및 음식 배달 로봇과 같이, 종종 친숙한 환경에서 작동할 필요가 있다. 시간이 경과함에 따라 시스템의 연산량을 줄일 수 있도록 이전 맵 정보를 사용하는 방법에 대한 연구는 상대적으로 부족하다. 많은 비전-기반 SLAM 기술의 프론트-엔드는 특징점 추출 및 특징점 매칭을 사용하여 카메라의 위치를 초기에 추적할 수 있다. 다만, 상대적으로 텍스처가 좋지 않은 일부 장면(예: 유리 방, 하얀색 벽이 더 많은 방)에서 특징점이 더 적게 추출 및 매칭되므로, 추적 정확도가 감소하고 더 많은 표류 오류(drift error)가 생성된다.
따라서, 실시간 성능을 보장하고, 연산량을 감소시키고, 맵의 정확도를 보장할 수 있는 SLAM 기술이 필요하다.
본 개시의 일 실시 예에 따르면, 동시적 위치 추정 및 맵 작성을 구현하는 장치가 제공되고, 상기 장치는, 주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하도록 구성되는 이미지 획득 유닛, 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 초기 포즈를 추정하도록 구성되는 초기 포즈 추정 유닛, 상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 3차원 맵을 구축하도록 구성되는 맵 구축 유닛, 및 상기 초기 포즈 및 상기 3차원 맵에 기반하여 최종 포즈를 결정하도록 구성되는 포즈 결정 유닛을 포함할 수 있다.
상기 맵 구축 유닛은, 상기 주변 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 초기 3차원 맵을 재구축하도록 구성되는 맵 재구축 모듈, 및 상기 주변 환경의 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 상기 3차원 맵을 업데이트하도록 구성되는 맵 업데이트 모듈을 포함할 수 있다.
상기 초기 포즈 추정 유닛은, 상기 컬러 이미지들로부터 점 특징들을 추출하도록 구성되는 특징 추출 모듈, 상기 점 특징들에 대해 점 매칭을 수행하도록 구성되는 특징 매칭 모듈, 및 상기 매칭된 점 특징들을 이용하여 상기 초기 포즈를 추정하도록 구성되는 추정 모듈을 포함할 수 있다. 상기 매칭된 점 특징들의 개수가 제1 임계 값 이하인 경우에, 상기 특징 추출 모듈은 상기 컬러 이미지들로부터 선분(line segment) 특징들을 추출하고, 상기 특징 매칭 모듈은 상기 선분 특징들에 대해 선분 매칭을 수행하고, 상기 추정 모듈은 상기 매칭된 점 특징들 및 선분 특징들을 이용하여 상기 초기 포즈를 추정할 수 있다.
상기 특징 매칭 모듈은 상기 선분 특징들의 주변의 기하학적 구조 정보에 따라 상기 선분 매칭을 수행할 수 있다.
상기 장치는 이전 키 프레임(a previous key frame)에서 현재 프레임과 공통 시점(viewpoint)을 갖는 키 프레임(key frame)을 결정하도록 구성되는 전체 이미지 추적 모듈을 더 포함할 수 있다. 상기 초기 포즈 추정 유닛은 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 상기 결정된 키 프레임을 이용하여 상기 초기 포즈를 추정할 수 있다.
상기 장치는 상기 선분 특징들의 매칭 결과에 기반하여 3차원의 동일 선상 구속(collinear constraint)을 생성하도록 구성되는 점-선 최적화 결합 모듈(a point and line optimization combination module)을 더 포함할 수 있다. 상기 포즈 결정 유닛은 상기 3차원의 동일 선상 구속에 따라 상기 최종 포즈를 더 결정할 수 있다. 상기 3차원의 동일 선상 구속은 제1 프레임의 선분에 있는 점이 제2 프레임의 대응 선분에 있음을 나타낼 수 있다.
상기 포즈 결정 유닛은 상기 초기 포즈 및 상기 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용하여 상기 최종 포즈를 결정할 수 있다. 상기 미리 설정된 프레임 집합은 현재 프레임과 관련된 추적 집합(a tracking set)을 분할함으로써 획득된 복수의 추적 서브 집합을 포함할 수 있다.
상기 포즈 결정 유닛은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우(a time domain window)를 설정하고, 상기 초기 포즈 및 상기 3차원 맵에 기반하여 상기 시간 영역 윈도우에서 키 프레임을 이용하여 상기 최종 포즈를 결정할 수 있다.
본 개시의 다른 실시 예에 따르면, 동시적 위치 추정 및 맵 작성을 구현하는 방법이 제공되고, 상기 방법은, 주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하는 동작, 상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 초기 포즈를 추정하는 동작, 상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 3차원 맵을 구축하는 동작, 및 상기 초기 포즈 및 상기 3차원 맵에 기반하여 최종 포즈를 결정하는 동작을 포함할 수 있다.
상기 3차원 맵을 구축하는 동작은, 상기 주변 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 초기 3차원 맵을 재구축하는 동작, 및 상기 주변 환경의 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 상기 3차원 맵을 업데이트하는 동작을 포함할 수 있다.
상기 초기 포즈를 추정하는 동작은, 상기 컬러 이미지들로부터 점 특징들을 추출하는 동작, 상기 점 특징들에 대해 점 매칭을 수행하는 동작, 및 상기 매칭된 점 특징들을 이용하여 상기 초기 포즈를 추정하는 동작을 포함할 수 있다. 상기 매칭된 점 특징들의 개수가 제1 임계 값 이하인 경우에, 상기 초기 포즈를 추정하는 동작은 상기 컬러 이미지들로부터 선분 특징들을 추출하는 동작, 상기 선분 특징들에 대해 선분 매칭을 수행하는 동작, 및 상기 매칭된 점 특징들 및 선분 특징들을 이용하여 상기 초기 포즈를 추정하는 동작을 더 포함할 수 있다.
상기 선분 특징들에 대해 선분 매칭을 수행하는 동작은, 상기 선분 특징들의 주변의 기하학적 구조 정보에 따라 선분 매칭을 수행하는 동작을 더 포함할 수 있다.
상기 방법은, 이전 키 프레임(a previous key frame)에서 현재 프레임과 공통 시점(viewpoint)을 갖는 키 프레임(key frame)을 결정하는 동작을 더 포함하고, 상기 초기 포즈를 추정하는 동작은 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 상기 결정된 키 프레임을 이용하여 상기 초기 포즈를 추정하는 동작을 포함할 수 있다.
상기 방법은, 상기 선분 특징들의 매칭 결과에 기반하여 3차원의 동일 선상 구속(collinear constraint)을 생성하는 동작을 더 포함할 수 있다. 상기 최종 포즈를 결정하는 동작은 상기 3차원의 동일 선상 구속에 따라 상기 최종 포즈를 결정하는 동작을 더 포함할 수 있다. 상기 3차원의 동일 선상 구속은 제1 프레임의 선분에 있는 점이 제2 프레임의 대응 선분에 있음을 나타낼 수 있다.
상기 최종 포즈를 결정하는 동작은, 상기 초기 포즈 및 상기 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용하여 상기 최종 포즈를 결정하는 동작을 포함할 수 있다. 상기 미리 설정된 프레임 집합은 현재 프레임과 관련된 추적 집합(a tracking set)을 분할함으로써 획득된 복수의 추적 서브 집합을 포함할 수 있다.
상기 최종 포즈를 결정하는 동작은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우(a time domain window)를 설정하는 동작, 및 상기 초기 포즈 및 상기 3차원 맵에 기반하여 상기 시간 영역 윈도우에서 키 프레임을 이용하여 상기 최종 포즈를 결정하는 동작을 포함할 수 있다.
본 개시의 일 실시 예에 따르면, 적어도 하나의 컴퓨팅 장치에 의해 실행될 때, 상기 적어도 하나의 컴퓨팅 장치가 상기 기재된 동시적 위치 추정 및 맵 작성의 구현 방법을 수행하도록 하는 명령어가 저장된 컴퓨터 판독 가능한 저장 매체가 제공된다.
본 개시의 일 실시 예에 따르면, 적어도 하나의 컴퓨팅 장치 및 명령어를 저장하는 적어도 하나의 저장 장치를 포함하고, 상기 적어도 하나의 컴퓨팅 장치에 의해 상기 명령어가 수행될 때, 상기 적어도 하나의 컴퓨팅 장치가 상기 기재된 동시적 위치 추정 및 맵 작성의 구현 방법을 수행하는 시스템이 제공된다.
본 개시의 일 실시 예에 따른 동시적 위치 추정 및 맵 작성(SLAM) 방식을 적용함으로써, 적어도 다음과 같은 효과에 도달할 수 있다:
SLAM 시스템은 특정 환경에 처음 진입할 때, 3차원 시맨틱스(3D semantics)를 통해 공간 정확도를 갖는 맵을 재구축하고, 상기 특정 환경에 진입할 때마다 시공간 신뢰 값을 계산함으로써 상기 맵에 결합 및 개선을 수행하기 때문에, 상기 맵의 정확도가 보장될 수 있다. 또한, 백-엔드 최적화 동작(an optimization operation of a back-end)에서, 상기 3D 맵의 좌표가 고정되므로, 상기 SLAM 시스템 장비의 일부의 포즈(즉, 위치 및 자세)만으로 최적화된다. 따라서, 전체 SLAM 시스템은 더욱 경량이다;
전체 SLAM 시스템이 상대적으로 텍스처가 좋지 않은 장면 영역에 진입하면, 상기 SLAM 시스템은 상기 장면 영역의 선분 특징들을 추출 및 매칭할 수 있고, 전체 SLAM 시스템을 강화하기 위하여 백-엔드의 최적화에 3D 공간의 점-선 동일 선상 구속 하위 항목을 추가할 수 있다;
전체적인 맵에서 특징-추적을 수행함에 따라 더욱 효과적인 구속(constraints)이 획득될 수 있고, SLAM 시스템의 위치 추정 정확도가 향상될 수 있다; 특징들은 특징 재인식의 특징을 통해 원래의(original) 시간-영역 공간에서 2D-2D 매칭 또는 3D-2D 매칭에 기반하여 공간 매칭에 추가될 수 있다. 이러한 시각적 측정은 누적 오류를 더욱 줄이기 위하여, 로컬 및 전체 초고속 최적화의 에너지 함수에 추가될 수 있다;
전체 번들 조정 방법(a global bundle adjustment method)이 수행될 때, 원래의 더 긴 특징 추적 집합은 연산 효율성을 개선하기 위하여 여러 개의 작은 특징 추적 서브 집합으로 분해될 수 있다;
상기 전체 번들 조정 방법의 수행에서, 새로운 키 프레임이 도달하면, 관련된 모든 키 프레임의 3D 맵 포인트 및 포즈가 더 이상 최적화되지 않고, 백-엔드 최적화의 효율성을 더욱 개선하기 위하여 상기 새로운 키 프레임과 관련된 미리 설정된 시간-영역 윈도우에서 특정 키 프레임만 최적화될 수 있다.
본 개시의 다른 측면, 이점 및 두드러진 특징들은 첨부된 도면과 함께 본 개시의 다양한 실시 예에 대한 상세한 설명으로부터 본 기술 분야에서 통상의 지식을 가진 자에게 명확해질 것이다.
본 개시의 특정 실시 예들의 상기 및 다른 측면, 특징 및 이점은 첨부된 도면과 함께 다음의 설명으로부터 명확해질 것이다.
도 1은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 동시적 위치 추정 및 맵 작성(SLAM) 시스템의 블록도를 도시한다.
도 2는, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 SLAM 시스템에서 초기 포즈 추정 유닛의 블록도를 도시한다.
도 3은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 SLAM 시스템에서 맵 구축 유닛의 블록도를 도시한다.
도 4는, 선분 특징 기술자 벡터(a line segment feature descriptor vector) 의 생성을 나타내는 다이어그램을 도시한다.
도 5는, 특징 재인식 동작을 나타내는 다이어그램을 도시한다.
도 6은, 전체 이미지 추적 모듈의 키 프레임 선택을 나타내는 다이어그램을 도시한다.
도 7은, 전체 이미지 추적 모듈의 전체 이미지 추적 동작을 나타내는 다이어그램을 도시한다.
도 8은, 특징 추적 집합의 분할을 나타내는 다이어그램을 도시한다.
도 9는, 시간-영역 윈도우(a time-domain window)에 기반하여 전체 번들 조정을 나타내는 다이어그램을 도시한다.
도 10은, 폐쇄-루프 오류 취소 동작을 나타내는 다이어그램을 도시한다.
도 11은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반하여 SLAM 방법을 나타내는 흐름도를 도시한다.
도면 전반에 걸쳐, 동일한 참조 번호는 동일 또는 유사한 요소, 특징 및 구조를 나타내기 위해 사용된다.
본 개시의 실시 예들은 본 개시가 당업자에게 진보성 있는 개념을 충분히 전달할 수 있도록, 첨부된 도면 및 특정 구현을 참조하여 상세하게 설명되었다.
도 1은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 동시적 위치 추정 및 맵 작성(SLAM) 시스템(100)의 블록도를 도시한다.
도 1을 참조하면, 맵 재구축에 기반한 SLAM 시스템(100)(이하, SLAM 시스템(100))은 이미지 획득 유닛(110), 초기 포즈 추정 유닛(120), 맵 구축 유닛(130), 포즈 결정 유닛(140), 및 저장 유닛(150)을 포함할 수 있다.
이미지 획득 유닛(110)은 처리할 현재 프레임의 컬러 이미지들 및 깊이 이미지들로, 현재 SLAM 시스템(100)이 위치한 주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득할 수 있다. 또한, 후술하는 “이전 프레임”은 본 개시의 일 실시 예에 따른 SLAM 시스템(100)에 의해 처리되는 프레임을 의미하며, 관련 정보의 프레임들은 저장 유닛(150)에 저장될 수 있다. 이미지 획득 유닛(110)은 컬러 이미지들 및 깊이 이미지들 각각을 획득하기 위하여 단안 카메라 및 깊이 카메라를 포함할 수 있으나, 본 개시는 이에 한정되지 아니한다. 이미지 획득 유닛(110)은 컬러 이미지 및 깊이 이미지를 획득할 수 있는 다른 카메라 또는 카메라 조합(예를 들어, 양안 카메라)에 의해 구현될 수도 있다.
초기 포즈 추정 유닛(120)은 컬러 이미지들 및 깊이 이미지들에 기반한 SLAM 시스템(100)의 초기 포즈를 추정할 수 있다. 본 개시의 일 실시 예에서, 초기 포즈는 상대적인 포즈일 수 있으며, 이는 도 2와 관련하여 아래에서 상세하게 설명될 것이다.
도 2는, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 SLAM 시스템(100)에서 초기 포즈 추정 유닛(120)의 블록도를 도시한다.
도 2를 참조하면, 초기 포즈 추정 유닛(120)은 이미지 획득 유닛(110)에 의해 획득된 컬러 이미지들로부터 특징들을 추출하도록 구성되는 특징 추출 모듈(121), 특징들에 대해 특징 매칭을 수행하도록 구성되는 특징 매칭 모듈(122), 및 상기 매칭된 특징들을 이용하여 SLAM 시스템(100)의 초기 포즈를 추정하도록 구성되는 추정 모듈(123)을 포함할 수 있다.
본 개시의 일 실시 예에서, 특징 추출 모듈(121)이 특징 추출을 완료한 후에, 특징 매칭 모듈(122)은 깊이 이미지의 깊이 정보에 따라 현재 프레임의 카메라 좌표 시스템에서 추출된 각각의 특징의 3차원 좌표를 획득할 수 있고, 상기 특징의 로컬 정보에 따라 다른 프레임에서 추출된 각각의 특징의 매칭 특징을 찾고, 상기 카메라 좌표 시스템에서 또 다른 프레임에서 매칭 특징의 3차원 좌표를 획득할 수 있다. 본 개시의 일 실시 예에서, 또 다른 프레임은 아래에서 상세하게 설명될 이전 프레임들 중에서 특정 프레임일 수 있다. 특징 추출 모듈(121) 및 특징 매칭 모듈(122)에 의해 획득된 정보와 관련된 특징은 후속 처리에 사용될 현재 프레임에 대한 관련 정보로서 저장 유닛(150)에 저장될 수 있다.
예를 들어, 특징 추출 모듈(121)은 현재 프레임의 컬러 이미지들로부터 점 특징들을 추출할 수 있고, 특징 매칭 모듈(122)은 점 특징들에 대해 점 매칭을 수행할 수 있다. 보다 구체적으로, 특징 매칭 모듈(122)은 이전 프레임들 중 특정 프레임에서 특징 추출 모듈(121)에 의해 추출된 점 특징과 매칭되는 점 특징을 찾을 수 있다. 그 후에, 추정 모듈(123)은 상기 매칭된 점 특징들을 이용하여 SLAM 시스템(100)의 초기 포즈를 추정할 수 있다. 점 특징들을 이용함으로써 특징 매칭을 수행하는 방법은 당업자에게 알려져 있으므로, 설명의 편의를 위하여 상세한 설명은 생략될 수 있다.
또한, SLAM 시스템(100)이 위치하는 환경 텍스처가 상대적으로 부족한 경우(예를 들어, 유리 방, 단일 색상의 방 등)에, SLAM 시스템(100)의 큰 오류 또는 직접적인 실패를 야기하는 적은 개수의 매칭된 점 특징들이 획득될 수 있다. 또한, 바람직하게, 본 개시의 일 실시 예에서, 특징 매칭 모듈(122)에 의해 매칭된 점 특징들의 개수가 제1 임계 값(예를 들어, 20) 이하인 경우에, 특징 추출 모듈(121)은 현재 프레임의 컬러 이미지들로부터 선분 특징들을 추출할 수 있고, 특징 매칭 모듈(122)은 선분 특징들에 대해 선분 매칭을 더 수행할 수 있으므로, 특징 매칭 모듈(122)은 특정 프레임에서 특징 추출 모듈(121)에 의해 추출된 선분 특징과 매칭되는 선분 특징들을 찾을 수 있다. 이 때, 추정 모듈(123)은 상기 매칭된 점 특징들 및 상기 매칭된 선분 특징들을 이용하여 SLAM 시스템(100)의 초기 포즈를 추정할 수 있다.
본 개시의 일 실시 예에 따르면, 추출된 선분 특징들을 이용하여 특징 매칭을 수행할 수 있도록, 선분에 대한 특징 기술자(a feature descriptor)가 배치될 수 있다. 이 때, 환경 텍스처의 결핍으로 인해, 선분 특징의 주변의 로컬 그레이 스케일 정보의 활용 효율성이 낮다. 따라서, 본 개시의 일 실시 예에서, 선분 특징은 선분 사이에 상대적인 형상 정보에 따라 설명될 수 있다. 구체적으로, 컬러 이미지들로부터 추출된 어느 하나의 선분은 기준 선분으로 사용될 수 있고, 특징 기술자는 상기 기준 선분에 대해 컬러 이미지에 나머지 모든 선분의 상대 위치 및 상대 각도에 기반하여 생성될 수 있다. 선분의 중간 점 좌표는 그 위치를 나타내는데 사용된다. 예를 들어, 어느 선분 i 의 기술자의 벡터 형태
Figure pat00001
는 다음과 같이 표현될 수 있다.
Figure pat00002
… (1)
여기서,
Figure pat00003
는 컬러 이미지들에서 복수의 영역 중 k번째 영역을 나타내고, k는 영역 라벨이다.
Figure pat00004
는 선분 i 의 중간 점 좌표이고, q는 선분 I 이외의 선분의 중간 점 좌표를 나타낸다.
도 4는, 선분 특징 기술자 벡터(a line segment feature descriptor vector) 의 생성을 나타내는 다이어그램을 도시한다. 도 4에서, {
Figure pat00005
,
Figure pat00006
,??,
Figure pat00007
} 각각은 도 4에 도시된 4 x 4 블록 영역과 같이, 컬러 이미지에서 제1 영역, 제2 영역, …, 및 제n 영역의 선분 특징 기술자 벡터를 나타낸다.
특징 매칭 모듈(122)은 선분 특징들의 주변의 기하학적 구조 정보에 따라 선분 매칭을 수행할 수 있다. 더 구체적으로, 특징 매칭 모듈(122)은 가장 적합한 선분 매칭을 찾기 위하여 현재 프레임 및 특정 프레임의 2개의 선분 특징 기술자 벡터 사이에 유클리드 거리를 계산할 수 있다. 여기에, 매칭의 정확도를 보장하기 위하여, 본 개시의 일 실시 예에서 가장 적합한 선분 매칭은 각각의 대응하는 이미지에서 가장 적합한 매칭인 두 개의 선분으로 설정될 수 있다.
본 개시의 일 실시 예에서, 현재 프레임의 깊이 이미지가 깊이 정보를 제공할 수 있으므로, SLAM 시스템(100)의 초기 포즈를 획득하기 위하여 추정 모듈(123)은 ICP(iterative closest point) 방법에 기반하여 현재 프레임 및 특정 프레임 사이의 포즈 변화에 대한 추정을 수행하기 위하여, 매칭된 점 특징들 및/또는 선분 특징들을 사용할 수 있다. 즉, 현재 프레임에 대하여 획득된 SLAM 시스템(100)의 초기 포즈는 특정 프레임에 대한 상대적인 포즈에 대응된다. 또한, 본 개시에 한정되지 아니하고, SLAM 시스템(100)의 초기 포즈를 추정하는 다른 적합한 방식이 사용될 수 있다.
또한, 본 개시의 일 실시 예에서, SLAM 시스템(100)이 특정 환경에 처음 진입할 때, 추정 모듈(123)은 SLAM 시스템(100)의 초기 포즈를 제로 벡터로 직접 설정할 수 있다.
또한, 본 개시의 일 실시 예에서, 매칭된 점 특징들의 개수가 매우 적을 때, 예를 들어, 특징 추출 모듈(121)에 의해 추출된 점 특징들에 매칭되는 특정 프레임에서의 점 특징들의 개수가 제2 임계 값(예를 들어, 5) 이하인 경우에, 점 특징 매칭에 의해 추정된 상대적인 포즈는 더 이상 신뢰할 수 없다. 이 때, 추정 모듈(123)은 상기 특정 프레임에서 SLAM 시스템(100)의 상대적인 포즈와 동일하게 유지되도록 SLAM 시스템(100)의 초기 포즈를 결정할 수 있다.
또한, 본 발명의 일 실시 예에서, 상기 특정 프레임은 이전 프레임 또는 현재 프레임의 여러 주변 프레임일 수 있다. 다만, 현재 프레임의 여러 주변 프레임과의 관계가 현재 프레임에 대한 구속을 설정하기 위해서만 사용되는 경우에, 현재 프레임과 링크를 설정하는 프레임의 개수는 SLAM 시스템(100)이 더 빨리 움직이거나, 더 크게 회전할 때 감소하므로, SLAM 시스템(100)의 정확도는 영향을 받을 수 있다. 따라서, 바람직하게, 본 개시의 일 실시 예에 따른 SLAM 시스템(100)은 전체 이미지 추적 모듈(미도시)을 더 포함할 수 있다. 전체 이미지 추적 모듈(미도시)은 공통-뷰 키 프레임(a common-view key frame)(즉, 공통 시점은 현재 프레임 및 공통-뷰 키 프레임에서 볼 수 있고, 공통 시점에 대응하는 투영점이 존재), 및 이전 프레임들(예를 들어, 이전 키 프레임들) 중에서 현재 프레임을 갖는 공통 시점(예를 들어, 공통 시점 특징점)을 갖는 공통-뷰 키 프레임, 상기 공통-뷰 키 프레임은 현재 프레임에 대하여 구속을 설정하기 위해 사용될 수 있다. 이 때, 특정 프레임은 공통-뷰 키 프레임을 더 포함할 수 있다. 즉, 추정 모듈(123)이 초기 포즈를 추정하기 위해 매칭된 특징들을 사용하도록, 특징 매칭 모듈(122)은 공통-뷰 키 프레임에서 특징 추출 모듈(121)(점 특징들 및 선분 특징들을 포함)에 의해 추출된 특징들에 매칭되는 특징들을 찾을 수 있다. 전체 이미지 추적 모듈은 도 5 내지 도 7과 관련하여 아래에서 상세하게 설명될 것이다.
도 5는, 특징 재인식 동작을 나타내는 다이어그램을 도시한다. 도 6은, 전체 이미지 추적 모듈의 키 프레임 선택을 나타내는 다이어그램을 도시한다. 도 7은, 전체 이미지 추적 모듈의 전체 이미지 추적 동작을 나타내는 다이어그램을 도시한다.
도 5를 참조하면, 좌측 상단 이미지로부터 6993으로 표시된 점 특징이 추출되고, 상기 6993으로 표시된 점 특징은 프레임 번호 1035인 이미지부터 프레임 번호 1042인 이미지에서 추적된다. 사다리가 이미지에서 상기 특징을 차단하기 때문에, 특징 추적은 프레임 번호 1043인 이미지에서 손실된다. 다만, 프레임 번호 1723인 이미지에서, 특징은 재인식된다. 특징이 추출된 프레임(즉, 프레임 번호 1035인 프레임) 및 특징이 재인식된 프레임(즉, 프레임 번호 1723인 프레임) 사이의 각도는 67.8°이고, 변환 거리는 3m이다. 프레임 번호 1035 내지 1042인 프레임 및 프레임 번호 1723인 프레임 전부 공통-뷰 특징점 6993을 갖기 때문에, 프레임 번호 1035 내지 1042인 프레임들은 프레임 번호 1723인 프레임에 대하여 구속을 설정하도록 사용될 수 있다. 이는 프레임 간의 구속을 생성하는 특징 수를 증가시키고, 넓고 안정된 구속은 현재 프레임(즉, 현재 프레임에서 구속을 설정할 수 있는 더 많은 프레임들이 발견됨)에 대해 발견될 수 있으므로, SLAM 시스템(100)의 위치 추정 정확도는 개선될 수 있다.
선택적으로, 이전 프레임 또는 현재 프레임의 주변 프레임은 초기 포즈 추정을 수행하는데 사용되기 때문에, 상기 초기 포즈 추정을 수행하기 위해 현재 프레임에 대한 시간 거리가 더 가까운 공통-뷰 키 프레임을 사용하는 것은 의미가 없다. 따라서, 본 개시의 일 실시 예에서, 바람직하게, 초기 포즈 추정 유닛(120)은 현재 프레임까지의 시간 거리가 미리 설정된 시간 임계 값을 초과하는 공통-뷰 키 프레임만을 사용하여 초기 포즈 추정을 수행하도록 선택할 수 있다. 이하, 도 6을 참조하여 설명될 것이다.
현재 프레임과 매칭하기 위하여 키 프레임을 선택할 때, 연산에 대한 부하로 인해, 키 프레임 선택이 요구된다. 이에 대하여, 키 프레임을 선택하기 위해 시간 및 공간을 결합하는 전략이 사용될 수 있다.
도 6을 참조하면, 단지 일 예시로서 시간 선택의 경우에,
Figure pat00008
등과 같이 현재 프레임에 대한 시간 거리가 더 가까운 키 프레임은 현재 프레임에 더 가깝기 때문에, 키 프레임 및 현재 프레임 사이에 많은 공통 시점(common viewpoint)가 존재하므로, 약간의 공통 시점을 추가하더라도 최종 정확도에 영향을 끼치지 않는다. 따라서, 현재 프레임에서 상대적으로 시간 거리가 먼 키 프레임에서 매칭된 특징들을 찾을 수 있도록 시간 임계 값이 설정되어, 연산 효율성이 개선될 수 있다. 또한, 공간적 관점에서, 예를 들어 키 프레임의 점에 대한 특징 필터링, 더 큰 기준선에 기반한 특징 매칭, 및 특징 그레이딩(grading) 동작과 같은 일련의 선택 동작 또한 필요하다. 시공간 조건에 민감한 모든 점들(즉, 공간 및 시간 조건을 통해 선택된 점들)을 포함하는 모든 키 프레임들이 처리된 후에, 키 프레임 선택은 종료된다.
공간적으로 점들을 선택하는 동작은 다음과 같다.
첫째, 불안정한 점들은 걸러질 수 있다. 각각의 맵 포인트(map point)의 역 깊이는 전체 이미지 번들 조정에서 반복적으로 최적화되므로, 일정 기간 동안에 각각의 맵 포인트의 역 깊이의 변화를 계산할 수 있다. 상기 변화가 너무 크거나, 맵 포인트의 역 깊이가 0보다 작은 경우에, 해당 포인트는 불안정한 것으로 간주되어 제거된다.
또한, 이미지의 가장자리의 점들도 제거할 수 있다. 여기서, 카메라 포즈의 초기 추정을 통해(예를 들어, 초기 포즈를 사용), 맵 포인트의 투영점은 일반적으로 현재 프레임의 대응하는 특징점을 중심으로 투영될 수 있다. 상기 투영점 및 상기 대응하는 특징점 사이의 연산된 공간 거리가 너무 크면, 맵 포인트는 걸러질 수 있다.
그 후에, 투영점 및 대응하는 특징점 사이의 기술 거리(즉, 기술자)가 연산될 수 있고, 상기 기술 거리(description distance)가 특정 임계 값 이하인 경우에 특징 재인식 동작이 수행될 수 있다.
시공간 조건에 민감한 점들은 현재 프레임의 대응하는 점들에 대하여 너무 넓은 기준선을 갖기 때문에, 잘못 매칭될 수 있다. 따라서, 본 개시의 일 실시 예에서, 도 7을 참조하여 후술하는 공통-뷰 키 프레임을 결정하는 동작이 사용될 수 있다.
예를 들어, 도 7과 같이,
Figure pat00009
Figure pat00010
는 키 프레임들이고,
Figure pat00011
는 현재 프레임이다. 여기서,
Figure pat00012
Figure pat00013
로부터 멀리 떨어져 있으며, 종래의 방법에서
Figure pat00014
Figure pat00015
사이의 구속은 고려되지 않는다. 다만, 본 개시의 일 실시 예에서, 특징점
Figure pat00016
(여기에서, 특징점
Figure pat00017
은 맵 포인트)을 예로 들어, 특징점
Figure pat00018
은 키 프레임
Figure pat00019
에서 볼 수 있으며, 전체 이미지 추적 모듈(미도시)은 다음 동작들을 수행함으로써 키 프레임
Figure pat00020
이 현재 프레임
Figure pat00021
의 공통-뷰 키 프레임인지 여부를 결정할 수 있다.
(1) 초기 포즈 추정 유닛(140)에 의해 추정된 초기 상대 포즈 관계(an initial relative pose relationship)에 따라 특징점
Figure pat00022
을 현재 프레임
Figure pat00023
에 투영하고, 특징점
Figure pat00024
을 특징점
Figure pat00025
으로 표시하는 동작;
(2) 현재 프레임
Figure pat00026
의 특징점
Figure pat00027
근처에 있는
Figure pat00028
와 특징점
Figure pat00029
의 공간 좌표 및 로컬 그레이 차이 값
Figure pat00030
을 계산하는 동작;
(3) 현재 프레임
Figure pat00031
에서, 특징점
Figure pat00032
의 로컬 그레이 차이 값으로부터 각각의 차이들이 미리 설정된 임계 값 이하인 모든 특징점들의 집합
Figure pat00033
를 찾고, k =1, 2, 3,…, m이며, m의 개수를 찾는 동작;
(4) 후술할 수식 (2) 및 수식 (3)에 기반하여 특징점
Figure pat00034
의 특징 기술자
Figure pat00035
및 특징점
Figure pat00036
의 특징 기술자
Figure pat00037
를 비교하는 동작. 여기에서, 키 프레임
Figure pat00038
및 현재 프레임
Figure pat00039
의 상대 회전
Figure pat00040
및 상대 이동
Figure pat00041
모두 주어진 임계 값(예를 들어, 상대 회전 임계 값(
Figure pat00042
) =45°, 및 상대 이동 임계 값(
Figure pat00043
) =2m) 이하인 경우에, 특징점
Figure pat00044
의 ORB(oriented fast and rotated brief) 기술자
Figure pat00045
의 해밍 거리(hamming distance) 및 특징점
Figure pat00046
의 ORB 기술자
Figure pat00047
는 상호간에 직접적으로 비교될 수 있다. 그렇지 않으면, 수식 (3)과 같이, 특징점
Figure pat00048
의 기술은 현재 프레임에 재 투영(warp)한 후, ORB 기술자의 해밍 거리는 상호간에 비교될 수 있다.
(5) 특징점
Figure pat00049
에 매칭되는 특징점으로서 집합
Figure pat00050
상에서 ORB 기술자 간에 가장 작은 해밍 거리를 갖는 점을 결정하고, 공통-뷰 특징점
Figure pat00051
을 갖는 키 프레임
Figure pat00052
및 현재 프레임
Figure pat00053
을 결정하는 동작.
Figure pat00054
… (2)
이 때,
Figure pat00055
… (3)
상기 설명과 같이, 해밍 거리는 특징점들 사이의 거리를 나타내기 위해 사용되나, 이는 예시에 해당할 뿐, 다양한 거리 표시 방법들 또한 특징점들 사이의 거리를 결정하는데 사용될 수 있다.
본 개시의 일 실시 예에서, 초기 포즈 추정 유닛(120)은 포즈 추정을 수행하고, 복수의 초기 포즈들을 획득하기 위하여, 복수의 프레임을 사용할 때(예를 들어, 현재 프레임의 이전 프레임에 더하여 상기 언급된 공통-뷰 키 프레임이 사용됨), 초기 포즈 추정 유닛(120)은 복수의 초기 포즈들에 대하여 획득된 통계 값(예를 들어, 평균 값, 중간 값 등)을 SLAM 시스템의 초기 포즈로서 결정할 수 있다.
다음으로, 다시 도 1을 참조하여, 맵 구축 유닛(130)은 이미지 획득 유닛(110)에 의해 획득된 깊이 이미지들 및 컬러 이미지들에 기반하여 3차원 맵을 구축할 수 있다.
도 3은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반한 SLAM 시스템(100)에서 맵 구축 유닛(130)의 구조를 도시한다.
도 3와 같이, 본 개시의 일 실시 예에서, 맵 구축 유닛(130)은 맵 재구축 모듈(131), 맵 저장 모듈(132), 및 맵 업데이트 모듈(133)을 포함할 수 있다.
맵 재구축 모듈(131)은, 처음으로 특정 환경에 진입할 때, 상기 특정 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 초기 3차원 맵을 재구축할 수 있다. 그 후, 맵 업데이트 모듈(133)은 상기 특정 환경에 다시 진입할 때 상기 특정 환경의 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 3차원 맵을 업데이트할 수 있다.
구체적으로, SLAM 시스템(100)이 처음으로 특정 환경에 진입할 때, 맵 재구축 모듈(131)은 SLAM 시스템(100)이 처음으로 특정 환경에 진입할 때 획득한 깊이 이미지들 및 컬러 이미지들에 기반하여 3차원 맵을 재구축할 수 있고, 재구축된 3차원 맵에서 각각의 맵 포인트의 3차원 좌표(즉, 세계 좌표 시스템에서의 3차원 좌표) 및 그 공간적 정확도를 결정할 수 있다.
예를 들어, 맵 재구축 모듈(131)은 깊이 이미지들에 포함된 깊이 정보 및 컬러 이미지들에 포함된 그레이스케일 정보에 기반하여 3차원 시맨틱스 재구축(three-dimensional semantics reconstruction)을 이용하여 3차원 맵을 재구축할 수 있다. 상기 3차원 맵을 재구축하기 위하여, 3차원 시맨틱스 재구축을 사용하는 맵 재구축 모듈(131)을 사용하는 경우, 3차원 맵에서 각각의 맵 포인트의 3차원 좌표가 결정될 수 있고, 각각의 맵 포인트의 공간적 정확도 또한 결정될 수 있다. 상기 공간적 정확도는 상기 맵 포인트의 연산된 재 투영 오차를 나타낼 수 있으며, 공간적 정확도의 연산은 후술된다. 또한, 상술한 3차원 시맨틱스 재구축 방법은 상기 3차원 맵 재구축을 구현하기 위한 하나의 방법일 뿐, 본 개시는 이에 한정되지 아니한다. 당 업계에 공지된 다른 적절한 3차원 맵 재구축 방법 또한 3차원 맵을 재구축하고, 각각의 맵 포인트의 공간적 정확도를 결정하는데 사용될 수 있다.
상기 3차원 맵 재구축을 완료한 후에, 상기 맵 재구축 모듈(131)은 공간적 정확도를 갖는 3차원 맵을 맵 저장 모듈(132)에 저장할 수 있다. 여기에서, SLAM 시스템(100)은 처음 특정 환경에 진입할 때 시공간 신뢰 값을 획득하지 못하므로, 현재 3차원 맵에서 맵 포인트의 시공간 신뢰 값은 0으로 설정하여 저장될 수 있다.
그 후에, SLAM 시스템(100)이 다시 특정 환경에 진입할 때, 3차원 맵을 재구축할 필요가 없다. 대신에, 맵 업데이트 모듈(133)은 각각의 맵 포인트의 3차원 좌표, 및 SLAM 시스템(100)이 다시 상기 특정 환경에 진입할 때 획득된 깊이 이미지들 및 컬러 이미지들에 기반하여 맵 포인트에 대응하는 시공간 신뢰 값을 계산할 수 있고, 계산된 각각의 맵 포인트의 3차원 좌표 및 시공간 신뢰 값에 따라 맵 저장 모듈(132)에 저장된 3차원 맵에서 대응하는 맵 포인트의 3차원 좌표 및 상기 맵 포인트에 대응하는 시공간 신뢰 값을 업데이트할 수 있다. 상기 업데이트된 3차원 맵은 맵 구축 유닛(130)에 의해 구축된 3차원 맵으로 활용되어 추후 사용 가능하다.
여기에서, 3차원 맵에서 특정 맵 포인트의 시공간 신뢰 값은 일반적으로 시간이 지남에 따라 감소하고, 감소율은 상기 특정 맵 포인트의 3차원 시맨틱스 유형과 관련이 있다. 본 개시의 일 실시 예에서, 특정 맵 포인트의 시공간 신뢰 값
Figure pat00056
은 아래 수식 (4)을 통해 결정될 수 있다.
Figure pat00057
… (4)
이 때, t 1 는 SLAM 시스템(100)의 현재 시스템 시간을 나타내고, t 0 는 SLAM 시스템(100)의 초기 시스템 시간을 나타낸다.
Figure pat00058
Figure pat00059
은 각각 공간적 가중치 및 시간적 가중치를 나타낸다.
Figure pat00060
은 3차원 시맨틱스 재구축을 수행할 때, 특정 맵 포인트의 재 투영 오차를 나타내고, 이는 아래 수식 (5)를 통해 계산될 수 있다.
Figure pat00061
… (5)
수식 (5)에서,
Figure pat00062
는 특정 맵 포인트에 해당하는 투영점의 2차원 좌표이고,
Figure pat00063
는 세계 좌표 시스템에서 SLAM 시스템(100)의 포즈를 나타내며 초기 포즈 추정 유닛(120)에 의해 추정된 초기 포즈에 기반하여 획득될 수 있고,
Figure pat00064
는 세계 좌표 시스템에서 특정 맵 포인트의 3차원 좌표를 나타내고,
Figure pat00065
는 입력 변수를 2차원 좌표로 변환하는 함수이다.
따라서, 특정 맵 포인트의 3차원 좌표 및 공간적 정확도는 아래 수식 (6) 및 (7)을 통해 각각 업데이트될 수 있다.
Figure pat00066
… (6)
Figure pat00067
… (7)
여기에서,
Figure pat00068
Figure pat00069
는 각각 맵 저장 모듈(132)에 저장된 특정 맵 포인트의 3차원 좌표 및 상기 특정 맵 포인트에 대응하는 시공간 신뢰 값이고,
Figure pat00070
는 맵 업데이트 모듈(133)에 의해 계산된 특정 맵 포인트의 현재 3차원 좌표이고,
Figure pat00071
Figure pat00072
는 각각 상기 특정 맵 포인트의 업데이트된 3차원 좌표 및 시공간 신뢰 값이다.
Figure pat00073
은 초기 포즈 추정 유닛(120)에 의해 추정된 SLAM 시스템(100)의 초기 포즈를 나타낸다.
상기
Figure pat00074
Figure pat00075
가 계산된 후에, 계산된
Figure pat00076
Figure pat00077
는 각각 맵 저장 모듈(132)에 저장된
Figure pat00078
Figure pat00079
를 대체하는데 사용되어, 맵 저장 모듈(132)에 저장된 3차원 맵의 업데이트를 수행할 수 있다.
도 3에서 맵 저장 모듈(132)은 별도의 모듈로 도시되어 있으나, 이는 하나의 실시 예이다. 일 실시 예에서, 맵 저장 모듈(132)은 하나의 모듈로서 맵 업데이트 모듈(133)과 통합될 수도 있다.
이와 같은 맵 업데이트 모듈(133)의 업데이트 동작을 통해, SLAM 시스템(100)이 동일한 환경에 진입할 때마다, 매번 3차원 맵을 재구축하지 않고 저장된 3차원 맵만 업데이트할 수 있다. 따라서, 필요한 연산량은 감소하고 맵은 더욱 정확하게 만들어지는 바, 이후에 3차원 맵을 사용할 때 3차원 맵 포인트를 고정할 수 있으며, SLAM 시스템(100)의 포즈만이 최적화될 수 있다.
다음으로, 도 1을 참조하면, 본 개시의 일 실시 예에 따른 포즈 결정 유닛(140)은 SLAM 시스템(100)의 추정된 초기 포즈 및 구축된 3차원 맵에 기반하여 SLAM 시스템(100)의 최종 포즈를 결정할 수 있다. 본 개시의 일 실시 예에서, 포즈 결정 유닛은 초기 포즈 및 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용함으로써 SLAM 시스템(100)의 최종 포즈를 결정할 수 있다. 상기 결정된 최종 포즈는 세계 좌표 시스템에서의 포즈이고, 상기 결정된 최종 포즈는 저장 유닛(150)에 저장될 수 있다.
본 개시의 일 실시 예에서, 최종 포즈는 전체적인 번들 조정(global bundle adjustment)을 이용함으로써 결정될 수 있다. 구체적으로, 포즈 결정 유닛(140)은 SLAM 시스템(100)의 최종 포즈를 결정하기 위하여, 아래 수식 (8) 및 (9)에 기반하여 전체적인 번들 조정을 수행할 수 있다.
Figure pat00080
… (8)
Figure pat00081
… (9)
수식(8) 및 (9)에서,
Figure pat00082
는 미리 설정된 프레임 집합이며 현재 프레임을 포함하고, 예를 들어, 키 프레임 및 현재 프레임을 포함하는 집합일 수 있다.
Figure pat00083
는 특징 추출 모듈(121)에 의해 추출된 특징점 집합을 나타낸다.
Figure pat00084
는 집합
Figure pat00085
Figure pat00086
번째 프레임에서 특징점들의 집합
Figure pat00087
에서
Figure pat00088
번째 특징점의 재 투영 오차를 나타내고,
Figure pat00089
번째 특징점의 투영이
Figure pat00090
번째 프레임에 존재하지 않는 경우에,
Figure pat00091
는 0으로 설정될 수 있다.
Figure pat00092
Figure pat00093
번째 프레임에
Figure pat00094
번째 특징점의 투영점의 2차원 좌표이다.
Figure pat00095
Figure pat00096
번째 프레임에 대한 전체 좌표 시스템에서 SLAM 시스템의 포즈를 나타낸다.
Figure pat00097
는 세계 좌표 시스템에서
Figure pat00098
번째 특징점의 3차원 좌표를 나타내고, 맵 구축 유닛(130)에 의해 제공된 3차원 맵에 기반하여 결정될 수 있다.
집합
Figure pat00099
에서 각각의 프레임에 대응하는 SLAM 시스템(100)의 포즈(즉, 각각의 프레임을 획득할 때 SLAM 시스템(100)의 포즈)는 최적의 해를 찾기 위한 수식 (8)에 기반하여 획득될 수 있다. 이 때, SLAM 시스템(100)의 최종 포즈가 결정될 뿐만 아니라, 미리 결정된 대응 포즈가 각각의 프레임에 대하여 획득된 SLAM 시스템(100)의 포즈로 업데이트되어, 지속적으로 SLAM 시스템(100)의 위치 추정 정확도를 개선할 수 있다.
또한, 상기 수식(8)의 최적의 해를 찾는 동작에서, 초기 포즈 추정 유닛(120)에 의해 결정된 초기 포즈는 연산 속도를 증가시키기 위하여
Figure pat00100
의 기준으로 사용될 수 있다. (예를 들어,
Figure pat00101
의 값은 최초에 초기 포즈로 설정될 수 있고, 이후 계산에서의 초기 포즈에 기반하여 조정될 수 있다.)
본 개시의 일 실시 예에서, 키 프레임은 저장 유닛(150)에 저장된 복수의 프레임들 중에서 미리 설정된 규칙에 따라 선택된 프레임, 예를 들어, 미리 설정된 간격에 따라 제1 프레임, 제5 프레임, 제9 프레임, …, 또는 저장된 모든 프레임일 수 있다.
SLAM 시스템(100)의 최종 포즈를 결정하기 위하여 상기 수식(8) 및 (9)에 기반하여 전체적인 번들 조정이 수행되면, 예를 들어, 현재 프레임의
Figure pat00102
번째 특징점에 대하여, 공통-뷰 특징으로서
Figure pat00103
번째 특징점의 해당 맵 특징 포인트를 갖는 모든 공통-뷰 프레임들(즉,
Figure pat00104
번째 특징점의 해당 맵 특징 포인트가 공통-뷰 프레임으로 보일 수 있음)은, 전체적인 일관성을 유지함으로써 전체로서 최종 포즈의 계산에 참여하기 위하여(예를 들어, 본 개시에서, 전체 이미지 추적 모듈(미도시)은 공통-뷰 프레임을 찾는데 사용될 수 있음)
Figure pat00105
번째 특징점과 관련된 특징 추적 집합(즉, 미리 설정된 프레임 집합)으로 사용될 수 있다.
다만, 이는 시간이 오래 걸리고 SLAM 시스템(100)의 실시간 성능을 만족시키지 못할 수 있으며, 때때로, SLAM 시스템(100)의 정확도는 실시간 성능을 보장하기 위하여 희생될 수 있다.
선택적으로, 전체적인 번들 조정을 수행할 때, 포즈 결정 유닛(140)은 현재 프레임과 관련된 특징 추적 집합을 분할함으로써 획득된 복수의 추적 서브 집합들을 포함하기 위하여 미리 설정된 프레임 집합을 설정할 수 있다.
구체적으로, 포즈 결정 유닛(140)은 현재 프레임의 각각의 특징과 관련된 각각의 특징 추적 집합을 하나 이상의 특징 추적 서브 집합으로 분할할 수 있고, 각각의 특징 추적 서브 집합에 기반하여 전체적인 번들 조정을 수행함으로써 SLAM 시스템(100)의 최종 포즈를 결정할 수 있다.
즉, 미리 설정된 프레임 집합은 현재 프레임의 각각의 특징과 관련된 각각의 특징 추적 집합을 개별적으로 분할함에 따라 획득된 하나 이상의 특징 추적 부분 집합을 포함할 수 있다.
상기에 대한 설명은 도 8을 참조하여 제공될 것이다.
도 8은, 특징 추적 집합의 분할의 일 예시를 나타내는 다이어그램을 도시한다.
도 8을 참조하면, 일 실시 예로서,
Figure pat00106
내지
Figure pat00107
는 현재 프레임의
Figure pat00108
번째 특징점과 관련된 공통-뷰 프레임으로 추정될 수 있고,
Figure pat00109
는 현재 프레임의
Figure pat00110
번째 특징점과 관련된 공통-뷰 키 프레임으로 추정될 수 있다.
즉,
Figure pat00111
번째 특징점의 대응하는 맵 특징 포인트는 공통-뷰 프레임
Figure pat00112
내지
Figure pat00113
및 공통-뷰 키 프레임
Figure pat00114
에서 보일 수 있으며,
Figure pat00115
Figure pat00116
번째 특징점의 특징 추적 집합이고, 공통-뷰 키 프레임
Figure pat00117
및 공통-뷰 프레임
Figure pat00118
내지
Figure pat00119
에 의해 구성된다.
본 개시의 일 실시 예에서, 도 8을 참조하면, 포즈 결정 유닛(140)은
Figure pat00120
를 부분 집합
Figure pat00121
,
Figure pat00122
,
Figure pat00123
Figure pat00124
로 나눌 수 있고,
Figure pat00125
은 공통-뷰 키 프레임
Figure pat00126
및 공통-뷰 프레임
Figure pat00127
내지
Figure pat00128
에 의해 구성되고,
Figure pat00129
은 공통-뷰 키 프레임
Figure pat00130
및 공통-뷰 프레임
Figure pat00131
내지
Figure pat00132
에 의해 구성되고,
Figure pat00133
은 공통-뷰 키 프레임
Figure pat00134
및 공통-뷰 프레임
Figure pat00135
,
Figure pat00136
Figure pat00137
에 의해 구성되고,
Figure pat00138
은 공통-뷰 키 프레임
Figure pat00139
및 공통-뷰 프레임
Figure pat00140
,
Figure pat00141
Figure pat00142
에 의해 구성된다.
수식 (8)의 전체적인 번들 조정 방법이 SLAM 시스템(100)의 최종 포즈를 계산하기 위해 사용되면, 수식 (8)에서
Figure pat00143
번째 특징점과 관련된 하위 항목에 수반된 프레임 집합은
Figure pat00144
대신에 부분 집합
Figure pat00145
,
Figure pat00146
,
Figure pat00147
Figure pat00148
이다. 4개의 더 짧은 부분 집합들에 기반하여 대응하는 하위 항목을 계산함으로써, 계산 부하(calculation burden)를 효과적으로 줄일 수 있다.
또한, 본 개시의 일 실시 예에서, 특징 추적 집합이 각각의 특징에 대응하는 특징 추적 집합에서 프레임의 개수에 기반하여 분할될지 여부가 결정될 수 있다. 예를 들어, 특징 추적 집합은 특징 추적 집합에서의 프레임의 개수가 미리 설정된 임계 값을 초과하는 경우에만 몇 개의 특징 추적 부분 집합으로 분할되어, 각각의 특징 추적 부분 집합에서 프레임의 개수가 미리 설정된 임계 값 이하이고, 각각의 특징 추적 부분 집합은 공통-뷰 키 프레임을 포함하고, 상기 특징 추적 부분 집합에서 모든 프레임들은 특징 추적 집합에서 모든 프레임들을 포함한다.
또한, SLAM 시스템(100)의 적용에서, 긴 궤적에서 상당한 수의 키 프레임이 백-엔드에 축적되고 최적화된다. 따라서, SLAM 시스템(100)은 효율적으로 동작하지 못할 가능성이 높다.
또한, 본 개시의 일 실시 예에서, 포즈 결정 유닛(140)은 현재 프레임에 대하여 미리 설정된 사이즈의 시간 영역 윈도우를 설정할 수 있고, SLAM 시스템(100)의 최종 포즈를 결정하기 위하여 시간 영역 윈도우에 위치하는 프레임(예를 들어, 공통-뷰 키 프레임 또는 비 공통-뷰 키 프레임을 포함하는 시간 영역 윈도우에 위치하는 키 프레임)을 사용할 수 있다.
즉, 미리 설정된 프레임 집합은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우를 설정함으로써 결정된 시간 영역 윈도우에 위치하는 키 프레임 또한 포함할 수 있다.
도 9는, 시간-영역 윈도우(a time-domain window)에 기반하여 전체적인 번들 조정을 나타내는 다이어그램을 도시한다.
도 9와 같이, 현재 프레임과 관련된 시간 영역 윈도우는 공통-뷰 키 프레임을 포함할 수 있고, 비 공통-뷰 키 프레임을 포함할 수도 있다.
선택적으로, 포즈 결정 유닛(140)은 계산 부하를 더욱 감소시키고, 이미지 처리 효율을 향상시키기 위하여, 현재 프레임과 관련된 미리 설정된 사이즈의 시간 영역 윈도우를 설정하고, 전술한 동작에서 생성된 특징 추적 부분 집합에서 프레임을 선택하기 위하여 시간 영역 윈도우를 사용하고, 시간 영역 윈도우 외부의 프레임을 제거하고, SLAM 시스템(100)의 최종 포즈를 결정하기 위하여 선택 동작을 거친 특징 추적 부분 집합에 기반하여 전체적인 번들 조정을 수행할 수도 있다.
다만, SLAM 시스템(100)의 동작 궤적에서 루프가 존재하면, 동작할 모든 키 프레임들 대신에 시간 영역 윈도우에서 키 프레임만을 사용하면 도 10의 (a)와 같이 루프가 닫히지 않을 수 있다.
본 개시의 일 실시 예에서, 폐쇄-루프 감지는 루프를 닫기 위해 사용될 수 있고, 결과적인 포즈 차이 값은 순서대로 궤적으로 다시 전달되어, 궤적이 부드럽게 보장될 수 있으며, 해당 동작은 도 10의 (a) 내지 (d)에 도시된다.
도 10에 도시된 폐쇄-루프 오차 취소 동작은 당업자에게 알려져 있으므로, 본 개시의 편의를 위하여 이에 대한 상세한 설명은 생략될 것이다.
또한, 포즈 결정 유닛(140)에 의해 SLAM 시스템(100)의 최종 포즈가 결정되는 구체적인 동작을 설명하기 위해 점 특징은 일 예시에 해당한다. 다만, 초기 포즈 추정 유닛(120) 또한 선분 특징을 추출하면, 선분 특징은 전체적인 번들 조정을 수행하기 위하여 추가로 고려될 수 있다.
구체적으로, 본 개시의 일 실시 예에 따른 SLAM 시스템(100)은 점 및 선 최적화 결합 모듈(미도시)을 더 포함할 수 있고, 포즈 결정 유닛(140)이 3차원의 동일 선상 구속에 따른 최종 포즈를 결정할 수 있도록, 상기 점 및 선 최적화 결합 모듈(미도시)은 특징 매칭 모듈(122)의 매칭 경과에 기반하여 3차원의 동일 선상 구속(three-dimensional collinear constraint)을 구성할 수 있다.
일 예시로서, 3차원의 동일 선상 구속에 대응하는 선분 구속 하위 항목(line segment constraint sub-item)도 전술한 전체적인 번들 조정 방법에 추가되어 사용될 수 있다.
여기에서, 3차원의 동일 선상 구속은 제1 프레임의 선분에 있는 점이 제2 프레임의 대응 선분에 있음을 나타낸다.
구체적으로, 선분 기술자 벡터에 따라 2개의 프레임 사이의 선분 매칭이 획득될 수 있다. 어느 하나의 선분 매칭에 대하여, 카메라 좌표 시스템에서 2개의 매칭된 선분의 3차원 좌표가 획득될 수 있다. 어느 하나의 선분의 끝점(공간적 3차원 좌표)이 프레임 포즈를 통해 다른 카메라 좌표 시스템으로 변환되면, 상기 끝점은 상기 선분과 일치하는 선분 상에 있어야 함을 알 수 있다.
다시 말해서, 수식 (8)에서 SLAM 시스템의 최종 포즈를 계산하면, 수식의 오른쪽에서 하위 항목에 수반된 재 투영 오차가 점 특징의 재 투영 오차뿐만 아니라 선분 특징의 재 투영 오차 또한 포함한다.
여기에서, 선분 특징의 재 투영 오차를 계산하는 방법은 수식 (9)와 같이 점 특징의 재 투영 오차를 계산하는 방법과 유사하고, 당업자에게 알려져 있으므로 이와 관련된 설명은 생략될 것이다.
또한, 전체적인 번들 조정은 상기에서 언급했으나, 본 개시는 이에 한정되지 아니한다. 장비의 포즈를 결정하는 가능한 다른 방법들 역시 사용될 수 있다.
도 11은, 본 개시의 일 실시 예에 따른 맵 재구축에 기반하여 SLAM 방법을 나타내는 흐름도를 도시한다.
도 11을 참조하면, 동작 1110에서, 이미지 획득 유닛(110)은 SLAM 시스템(100)의 주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하도록 사용될 수 있다.
다음으로, 동작 1120에서, 초기 포즈 추정 유닛(120)은 동작 1110에서 획득한 컬러 이미지들 및 깊이 이미지들에 기반하여 SLAM 시스템(100)의 초기 포즈를 추정하는데 사용될 수 있다.
구체적으로, 동작 1120에서, 초기 포즈 추정 유닛(120)은 컬러 이미지에서 점 특징들을 추출하고, 상기 점 특징들에 따른 점 매칭을 수행하고, 상기 매칭된 점 특징을 이용하여 SLAM 시스템(100)의 초기 포즈를 추정할 수 있다.
매칭된 점 특징들의 개수가 제1 임계 값 이하인 경우에, 초기 포즈 추정 유닛(120)은 컬러 이미지에서 선분 특징들을 더 추출하고, 상기 선분 특징들에 따른 선분 매칭을 수행할 수 있다.
이 때, 초기 포즈 추정 유닛(120)은 상기 매칭된 점 특징들 및 상기 매칭된 선분 특징들을 이용하여 SLAM 시스템(100)의 초기 포즈를 추정할 수 있다.
또한, 매칭된 점 특징들의 개수가 미리 설정된 제2 임계 값(여기에서, 미리 설정된 제2 임계 값은 미리 설정된 제1 임계 값 이하) 이하인 경우에, 초기 포즈 추정 유닛(120)은 특정 프레임에서 SLAM 시스템(100)의 상대적인 포즈로서 동일하게 유지하기 위하여 SLAM 시스템(100)의 초기 포즈를 직접적으로 결정할 수 있다.
여기에서, 상기 특정 프레임은 현재 프레임의 이전 프레임 또는 몇 개의 주변 프레임일 수 있다.
선택적으로, 도 11의 흐름도에는 도시되지 않았으나, 상기 방법은 공통-뷰 키 프레임을 결정하는 동작을 더 포함할 수 있다.
본 개시의 일 실시 예에서, 상기 언급된 전체 이미지 추적 모듈(미도시)은 이전 프레임(예를 들어, 이전 키 프레임)에서 현재 프레임과 공통 시점을 갖는 공통-뷰 키 프레임을 결정하는데 사용될 수 있다.
따라서, 동작 1120에서 초기 포즈 추정 유닛(120)은 SLAM 시스템(100)의 정확도를 강화할 수 있는 초기 포즈를 추정하기 위하여 공통-뷰 키 프레임을 더 사용할 수 있다.
다음으로, 동작 1130에서, 맵 구축 유닛(130)은 상기 깊이 이미지들 및 컬러 이미지들에 기반하여 3차원 맵을 구축하는데 사용될 수 있다.
맵 구축 유닛(130)은 처음 특정 환경에 진입할 때, 특정 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 3차원 맵을 재구축하고, 상기 특정 환경에 다시 진입할 때 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 3차원 맵을 업데이트할 수 있다.
더 구체적으로, SLAM 시스템(100)이 처음 특정 환경에 진입할 때, 맵 구축 유닛(130)은 상기 처음 특정 환경에 진입할 때 이미지 획득 유닛(110)에 의해 획득된 깊이 이미지들 및 컬러 이미지들에 기반하여 3차원 맵을 재구축하고, 상기 재구축된 3차원 맵의 각각의 맵 포인트의 3차원 좌표 및 각각의 맵 포인트의 공간 정확도를 결정하고, 상기 각각의 맵 포인트의 3차원 좌표 및 공간 정확도를 재구성된 3차원 맵에 저장할 수 있다.
이때, SLAM 시스템(100)이 처음 특정 환경에 진입할 때 시공간 신뢰 값을 획득하지 못하므로, 현재 3차원 맵에서 맵 포인트의 시공간 신뢰 값을 0으로 설정하여 저장할 수 있다.
이후에, SLAM 시스템이 특정 환경에 다시 진입할 때, 맵 구축 유닛(130)은 상기 특정 환경에 다시 진입할 때 이미지 획득 유닛(110)에 의해 획득된 깊이 이미지들 및 컬러 이미지들에 기반하여 각각의 맵 포인트의 3차원 좌표 및 각각의 맵 포인트에 대응하는 시공간 신뢰 값을 계산하고, 상기 계산된 각각의 맵 포인트의 3차원 좌표 및 각각의 맵 포인트에 대응하는 시공간 신뢰 값에 따라, 상기 저장된 3차원 맵에 맵 포인트에 대응하는 3차원 좌표 및 시공간 신뢰 값을 업데이트할 수 있다.
업데이트된 3차원 맵은 맵 구축 유닛(130)에 의해 구축된 3차원 맵으로 활용되어 추후 사용될 수 있다.
동작 1140에서, 포즈 결정 유닛(140)은 동작 1120에서 추정된 SLAM 시스템(100)의 초기 포즈 및 동작 1130에서 구축된 3차원 맵에 기반하여, SLAM 시스템(100)의 최종 포즈를 결정할 수 있다.
여기에서, 전술한 바와 같이, 포즈 결정 유닛(140)은 초기 포즈 및 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용하여 최종 포즈를 결정할 수 있다.
미리 설정된 프레임 집합은 현재 프레임과 관련된 추적 집합을 분할한 복수의 추적 부분 집합을 포함할 수 있다.
선택적으로, 포즈 결정 유닛(140)은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우를 설정하고, 초기 포즈 및 3차원 맵에 기반하여 시간 영역 윈도우에서 키 프레임을 이용하여 최종 포즈를 결정할 수도 있다.
선택적으로, 동작 1120에서 선분 특징들이 추출 및 매칭될 때, 포즈 결정 유닛(140)이 3차원의 동일 선상 구속을 더 사용하여 최종 포즈를 결정할 수 있도록, 상기 방법은 선분의 매칭 결과에 따라 3차원의 동일 선상 구속을 구축하기 위하여 점-선 최적화 결합 모듈을 더 사용할 수 있다.
이는 SLAM 시스템(100)의 정확도를 더욱 개선할 수 있다.
마지막으로, 동작 1150에서, 저장 유닛(150)은 SLAM 시스템(100)의 최종 포즈를 포함하는 정보와 관련된 현재 프레임을 저장할 수 있다.
도 11의 각각의 동작에서 본 개시의 일 실시 예에 따른 SLAM 시스템(100)의 다양한 구성 요소들에 의해 수행되는 동작들은 상기 도 1 내지 도 10을 참조하여 상세히 설명되었다. 따라서, 본 개시의 편의를 위해 중복되는 설명은 생략될 수 있다.
본 개시의 일 실시 예에 따른 SLAM 시스템(100) 및 방법은 실시간 매핑을 보장하고, 연산량을 감소시키고, 매핑 정확도를 보장할 수 있다.
또한, 본 개시에 개시된 실시 예들은 단지 이해를 위한 예시일 뿐이고, 본 개시는 이에 한정되지 아니한다. 본 개시의 기술적 사상을 벗어나지 않는 모든 변경, 균등물 및 대체물은 본 개시에 포함되는 것으로 이해될 수 있다.
본 개시의 일 실시 예는 컴퓨터 판독 가능한 기록 매체에 컴퓨터 판독 가능한 코드로서 구현될 수도 있다.
컴퓨터 판독 가능한 기록 매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터를 저장할 수 있는 모든 데이터 저장 장치이다.
컴퓨터 판독 가능한 기록 매체는 ROM(Read-Only Memory), RAM(Random-Access Memory), CD-ROM, 자기 테이프, 플로피 디스크, 광학 데이터 저장 장치 및 반송파(예를 들어, 유선 또는 무선 전송 경로를 통한 인터넷을 통한 데이터 전송)를 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체는 네트워크로 연결된 컴퓨터 시스템을 통해 분산되어, 컴퓨터 판독 가능한 코드가 분산적으로 저장 및 실행될 수 있다.
또한, 본 개시의 개념을 달성하기 위한 기능적 프로그램, 코드 및 코드 세그먼트는 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 프로그래머에 의해 쉽게 해석될 수 있다.
본 개시는 예시적인 실시 예들을 참조하여 구체적으로 도시되고 설명되었지만, 본 기술 분야에서 통상의 지식을 가진 자라면 청구항에 의해 정의된 본 개시의 사상 및 범위를 벗어나지 않고 형태 및 세부사항의 변경이 이루어질 수 있음을 이해할 것이다.

Claims (18)

  1. 동시적 위치 추정 및 맵 작성을 구현하는 장치에 있어서,
    주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하도록 구성되는 이미지 획득 유닛;
    상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 초기 포즈를 추정하도록 구성되는 초기 포즈 추정 유닛;
    상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 3차원 맵을 구축하도록 구성되는 맵 구축 유닛; 및
    상기 초기 포즈 및 상기 3차원 맵에 기반하여 최종 포즈를 결정하도록 구성되는 포즈 결정 유닛을 포함하는, 장치.
  2. 제1항에 있어서,
    상기 맵 구축 유닛은:
    상기 주변 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 초기 3차원 맵을 재구축하도록 구성되는 맵 재구축 모듈; 및
    상기 주변 환경의 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 상기 3차원 맵을 업데이트하도록 구성되는 맵 업데이트 모듈을 포함하는, 장치.
  3. 제1항에 있어서,
    상기 초기 포즈 추정 유닛은:
    상기 컬러 이미지들로부터 점 특징들을 추출하도록 구성되는 특징 추출 모듈;
    상기 점 특징들에 대해 점 매칭을 수행하도록 구성되는 특징 매칭 모듈; 및
    상기 매칭된 점 특징들을 이용하여 상기 초기 포즈를 추정하도록 구성되는 추정 모듈을 포함하고,
    상기 매칭된 점 특징들의 개수가 제1 임계 값 이하인 경우에, 상기 특징 추출 모듈은 상기 컬러 이미지들로부터 선분(line segment) 특징들을 더 추출하고, 상기 특징 매칭 모듈은 상기 선분 특징들에 대해 선분 매칭을 수행하고, 상기 추정 모듈은 상기 매칭된 점 특징들 및 선분 특징들을 이용하여 상기 초기 포즈를 추정하는, 장치.
  4. 제3항에 있어서,
    상기 특징 매칭 모듈은 상기 선분 특징들의 주변의 기하학적 구조 정보에 따라 상기 선분 매칭을 수행하는, 장치.
  5. 제1항에 있어서,
    이전 키 프레임(a previous key frame)에서 현재 프레임과 공통 시점(viewpoint)을 갖는 키 프레임(key frame)을 결정하도록 구성되는 전체 이미지 추적 모듈을 더 포함하고,
    상기 초기 포즈 추정 유닛은 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 상기 결정된 키 프레임을 이용하여 상기 초기 포즈를 추정하는, 장치.
  6. 제3항에 있어서,
    상기 선분 특징들의 매칭 결과에 기반하여 3차원의 동일 선상 구속(collinear constraint)을 생성하도록 구성되는 점-선 최적화 결합 모듈(a point and line optimization combination module)을 더 포함하고,
    상기 포즈 결정 유닛은 상기 3차원의 동일 선상 구속에 따라 상기 최종 포즈를 더 결정하고,
    상기 3차원의 동일 선상 구속은 제1 프레임의 선분에 있는 점이 제2 프레임의 대응 선분에 있음을 나타내는, 장치.
  7. 제1항에 있어서,
    상기 포즈 결정 유닛은 상기 초기 포즈 및 상기 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용하여 상기 최종 포즈를 결정하고,
    상기 미리 설정된 프레임 집합은 현재 프레임과 관련된 추적 집합(a tracking set)을 분할함으로써 획득된 복수의 추적 서브 집합을 포함하는, 장치.
  8. 제1항에 있어서,
    상기 포즈 결정 유닛은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우(a time domain window)를 설정하고, 상기 초기 포즈 및 상기 3차원 맵에 기반하여 상기 시간 영역 윈도우에서 키 프레임을 이용하여 상기 최종 포즈를 결정하는, 장치.
  9. 동시적 위치 추정 및 맵 작성을 구현하는 방법에 있어서,
    주변 환경의 컬러 이미지들 및 깊이 이미지들을 획득하는 동작;
    상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 초기 포즈를 추정하는 동작;
    상기 깊이 이미지들 및 상기 컬러 이미지들에 기반하여 3차원 맵을 구축하는 동작; 및
    상기 초기 포즈 및 상기 3차원 맵에 기반하여 최종 포즈를 결정하는 동작을 포함하는, 방법.
  10. 제9항에 있어서,
    상기 3차원 맵을 구축하는 동작은,
    상기 주변 환경의 제1 깊이 이미지 및 제1 컬러 이미지에 기반하여 초기 3차원 맵을 재구축하는 동작; 및
    상기 주변 환경의 제2 깊이 이미지 및 제2 컬러 이미지에 기반하여 상기 3차원 맵을 업데이트하는 동작을 포함하는, 방법.
  11. 제9항에 있어서,
    상기 초기 포즈를 추정하는 동작은,
    상기 컬러 이미지들로부터 점 특징들을 추출하는 동작;
    상기 점 특징들에 대해 점 매칭을 수행하는 동작; 및
    상기 매칭된 점 특징들을 이용하여 상기 초기 포즈를 추정하는 동작을 포함하고,
    상기 매칭된 점 특징들의 개수가 제1 임계 값 이하인 경우에, 상기 초기 포즈를 추정하는 동작은 상기 컬러 이미지들로부터 선분 특징들을 추출하는 동작, 상기 선분 특징들에 대해 선분 매칭을 수행하는 동작, 및 상기 매칭된 점 특징들 및 선분 특징들을 이용하여 상기 초기 포즈를 추정하는 동작을 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 선분 특징들에 대해 선분 매칭을 수행하는 동작은, 상기 선분 특징들의 주변의 기하학적 구조 정보에 따라 선분 매칭을 수행하는 동작을 포함하는, 방법.
  13. 제9항에 있어서,
    이전 키 프레임(a previous key frame)에서 현재 프레임과 공통 시점(viewpoint)을 갖는 키 프레임(key frame)을 결정하는 동작을 더 포함하고,
    상기 초기 포즈를 추정하는 동작은 상기 컬러 이미지들 및 상기 깊이 이미지들에 기반하여 상기 결정된 키 프레임을 이용하여 상기 초기 포즈를 추정하는 동작을 포함하는, 방법.
  14. 제11항에 있어서,
    상기 선분 특징들의 매칭 결과에 기반하여 3차원의 동일 선상 구속(collinear constraint)을 생성하는 동작을 더 포함하고,
    상기 최종 포즈를 결정하는 동작은 상기 3차원의 동일 선상 구속에 따라 상기 최종 포즈를 결정하는 동작을 더 포함하고,
    상기 3차원의 동일 선상 구속은 제1 프레임의 선분에 있는 점이 제2 프레임의 대응 선분에 있음을 나타내는, 방법.
  15. 제9항에 있어서,
    상기 최종 포즈를 결정하는 동작은 상기 초기 포즈 및 상기 3차원 맵에 기반하여 미리 설정된 프레임 집합을 이용하여 상기 최종 포즈를 결정하는 동작을 포함하고,
    상기 미리 설정된 프레임 집합은 현재 프레임과 관련된 추적 집합(a tracking set)을 분할함으로써 획득된 복수의 추적 서브 집합을 포함하는, 방법.
  16. 제9항에 있어서,
    상기 최종 포즈를 결정하는 동작은 현재 프레임에 대하여 미리 설정된 크기의 시간 영역 윈도우(a time domain window)를 설정하는 동작, 및 상기 초기 포즈 및 상기 3차원 맵에 기반하여 상기 시간 영역 윈도우에서 키 프레임을 이용하여 상기 최종 포즈를 결정하는 동작을 포함하는, 방법.
  17. 적어도 하나의 컴퓨팅 장치에 의해 실행될 때, 제9항 내지 제16항 중 어느 한 항에 따른 방법을 수행하는 명령어가 저장된, 컴퓨터 판독 가능한 저장 매체.
  18. 적어도 하나의 컴퓨팅 장치 및 명령어를 저장하는 적어도 하나의 저장 장치를 포함하며, 상기 적어도 하나의 컴퓨팅 장치에 의해 상기 명령어가 수행될 때, 상기 적어도 하나의 컴퓨팅 장치가 제9항 내지 제16항 중 어느 한 항에 따른 방법을 수행하는, 시스템.
KR1020200147099A 2019-11-14 2020-11-05 동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법 KR20210058686A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/093,944 US11636618B2 (en) 2019-11-14 2020-11-10 Device and method with simultaneous implementation of localization and mapping
EP20206725.2A EP3822914B1 (en) 2019-11-14 2020-11-10 Device and method with simultaneous implementation of localization and mapping

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201911114325 2019-11-14
CN201911114325.1 2019-11-14
CN202010144849.1A CN112802096A (zh) 2019-11-14 2020-03-04 实时定位和建图的实现装置和方法
CN202010144849.1 2020-03-04

Publications (1)

Publication Number Publication Date
KR20210058686A true KR20210058686A (ko) 2021-05-24

Family

ID=75806111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200147099A KR20210058686A (ko) 2019-11-14 2020-11-05 동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20210058686A (ko)
CN (1) CN112802096A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113610001A (zh) * 2021-08-09 2021-11-05 西安电子科技大学 基于深度相机和imu组合的室内移动终端定位方法
WO2023146372A1 (en) * 2022-01-28 2023-08-03 Samsung Electronics Co., Ltd. Reconstructing a three-dimensional scene
CN117893693A (zh) * 2024-03-15 2024-04-16 南昌航空大学 一种密集slam三维场景重建方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115810038A (zh) * 2021-06-04 2023-03-17 深圳积木易搭科技技术有限公司 一种三维图像匹配优化方法、介质和系统
CN113465617B (zh) * 2021-07-08 2024-03-19 上海汽车集团股份有限公司 一种地图构建方法、装置及电子设备
CN113758481A (zh) * 2021-09-03 2021-12-07 Oppo广东移动通信有限公司 栅格地图生成方法、装置、系统、存储介质及电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113610001A (zh) * 2021-08-09 2021-11-05 西安电子科技大学 基于深度相机和imu组合的室内移动终端定位方法
CN113610001B (zh) * 2021-08-09 2024-02-09 西安电子科技大学 基于深度相机和imu组合的室内移动终端定位方法
WO2023146372A1 (en) * 2022-01-28 2023-08-03 Samsung Electronics Co., Ltd. Reconstructing a three-dimensional scene
CN117893693A (zh) * 2024-03-15 2024-04-16 南昌航空大学 一种密集slam三维场景重建方法及装置
CN117893693B (zh) * 2024-03-15 2024-05-28 南昌航空大学 一种密集slam三维场景重建方法及装置

Also Published As

Publication number Publication date
CN112802096A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US11544867B2 (en) Mapping optimization in autonomous and non-autonomous platforms
US11501527B2 (en) Visual-inertial positional awareness for autonomous and non-autonomous tracking
US11747823B2 (en) Monocular modes for autonomous platform guidance systems with auxiliary sensors
US11842500B2 (en) Fault-tolerance to provide robust tracking for autonomous and non-autonomous positional awareness
US10354396B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
US10444021B2 (en) Methods for simultaneous localization and mapping (SLAM) and related apparatus and systems
US11398096B2 (en) Visual-inertial positional awareness for autonomous and non-autonomous mapping
KR20210058686A (ko) 동시적 위치 추정 및 맵 작성을 구현하는 장치 및 방법
KR102647351B1 (ko) 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치
KR101776622B1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
RU2713611C2 (ru) Способ моделирования трехмерного пространства
Baak et al. A data-driven approach for real-time full body pose reconstruction from a depth camera
US11636618B2 (en) Device and method with simultaneous implementation of localization and mapping
EP3428760B1 (en) Mapping optimization in autonomous and non-autonomous platforms
KR20190042187A (ko) 깊이 값을 추정하는 방법 및 장치
CN113711276A (zh) 尺度感知单目定位和地图构建
US20230290101A1 (en) Data processing method and apparatus, electronic device, and computer-readable storage medium
KR101845246B1 (ko) 하이브리드 센서를 이용한 실감 동작 생성 방법 및 장치
Hahn et al. 3D pose estimation and motion analysis of the articulated human hand-forearm limb in an industrial production environment