[논문 리뷰]ORB-SLAM 논문 리뷰(1)

4 minute read

ORB-SLAM Paper Review

Visual SLAM을 공부할 때 필수적인 ORB-SLAM에 대해 논문을 정리한 내용이다.


0. Abstract

본 시스템은 크고 작은 실내외 공간에서 실시간으로 동작하는 특징점 기반 단안카메라 SLAM시스템이다. 이 시스템은 심한 움직임 노이즈에 강인하고, 광범위한 loop closing, relocalization, automatic initialization을 포함한다. 최근 훌륭한 알고리즘들을 기반으로, 모든 SLAM task(tracking, mapping, relocalization, loop closing)와 동일한 기능을 하는 시스템을 처음부터 설계했다. Recontruction의 포인트와 keyframe을 선택하는 최적의 전략은 시스템을 강인하게하고, scene 내용이 변경될 때만 증가하는 간소하고 추적가능한 맵을 생성하며 이는 오래 사용하기 좋다. 자주 사용하는 27개의 시퀀스 데이터로 평가를 하였고 monocular SLAM SOTA이다. 오픈소스로 만들었다.


1. Introduction

BA(Bundle Adjustment)는 camera localization뿐만 아니라 sparse geometrical recontruction을 정확하게 추정하는 것을 제공한다.
⇒ Visual SLAM과 같은 realtime application에서 사용가능한지 고려됨

BA의 computational cost를 줄여 SLAM에 사용, 다음과 같은 알고리즘 사용되는 것이 고려됨

  • 키프레임들의 모음 중 scene feature의 유사한 모습들
  • 키프레임 중복 방지
  • 정확한 결과를 내기 위한 키프레임과 포인트의 강력한 네트워크 구성
  • 비선형 최적화를 위한 키프레임의 pose와 포인트 위치의 초기 추정
  • exploration에서 최적화에 중점을 둔 local map
  • 실시간 loop closing을 위한 빠른 global optimization

Main contributions은 아래와 같다.

  • 모든 task를 위한 feature사용:(tracking, mapping, relocalization, loopcalosing). GPU없이 실시간 성능이 나오는 ORB feature사용 - 여러 관점에서, 빛의 변화에서 좋은 성능을 보임
  • Covisibility graph를 이용해, global map크기로부터 독립적으로 local covisible area를 tracking과 mapping에 사용함으로써 large환경에서 realtime동작 가능
  • pose graph optimization을 사용해 realtime loopclosing. 이것은 covisibility graph로부터 loop closure link와 강한 edge와 같은 시스템에 의해 유지되어진 spanning tree로부터 구축됨
  • 관점, 조명의 변화에도 정확한 실시간 camera relocalization. 이것은 tracking failure시 복원과 맵 재사용을 해주게 함
  • 평면과 평면이 아닌 장면의 initial map생성을 하는 model selection기반의 자율적이고 강인한 initialization 과정
  • 생성에 관대하지만 삭제에는 제한적인, 맵포인트와 키프레임 선택에 대한 적자생존 접근 이러한 방법은 중복된 키프레임을 제거해 줌으로써 tracking을 강인하게 개선하고 긴 시간동안 다루기 좋게 해준다.

Camera localization에서 성능 좋아짐
loop closing하고 relocalization은 이 논문 참고(R. Mur-Artal and J. D. Tardos, “Fast relocalisation and loop closing in ´keyframe-based SLAM,” in IEEE International Conference on Roboticsand Automation (ICRA), Hong Kong, China, June 2014, pp. 846–853)

이 논문에선 기존 논문 ORB-SLAM: Tracking and Mapping Recognizable Features에 Initialization방법을 추가함.


2. Related Works

A) Place Recognition
B) Map Initialization
C) Monocular SLAM


3. System Overview

A. Feature Choice

mapping과 tracking에 사용된 feature가 place recognition과 loop detection에 사용되는 것이 주 설계 아이디어 ⇒ 시스템을 효율적으로 해줌
이미지 당 Feature 추출 시간을 33ms보다 작게 해야함 + 회전에도 불변성을 가져야 함
⇒ ORB선택함 ⇒ 계산 빠르고 매칭도 빠르고 여러 관점에서도 잘 됨.
그래서 BA의 정확도 높여줌.

B. Three Threads: Tracking, Local Mapping and Loop Closing

Tracking, Local Mapping, Loop Closing 3개의 스레드로 병렬로 돌아간다.

  • Tracking:
    매 프레임마다, 새 키프레임이 들어올 때 마다 camera localizing을 담당.
    먼저, 이전프레임과 초기 Feature matching을 수행하고 Motion-Only BA로 포즈를 최적화.
    Tracking lost시 - place recognition으로 global relocalization을 진행함.
    피쳐 매칭으로 초기추정을 하면, covisibility graph를 사용하여 local visible map을 찾는다. 그다음 local map point들의 매칭들은 reprojection에 의해 찾아지고, 모든 매치를 이용해 카메라 pose를 최적화 한다. 마지막으로, 키프레임을 결정하고 저장한다.
  • Local Mapping:
    새로운 키프레임을 처리하고 local BA를 하여 카메라 pose주변에서 최적의 reconstruction을 달성한다.
    새로운 키프레임에서 매칭되지 않는 ORB feature들은 covisibility graph에 연결된 키프레임에서 검색되고, 새 점을 triangulate한다.
    생성 후 tracking과정에서 얻은 정보들을 바탕으로 고품질의 포인트들을 유지하기 위해 기존의 포인트 제거(culling)을 적용한다. 또한 중복된 키프레임 culling도 진행한다.
  • Loop Closing:
    매 새 키프레임 마다 loop를 찾음
    루프 감지되면, drift정보를 계산
    그 다음, 루프 양쪽을 정렬하고 중복된 점 합침
    마지막으로, PGO(Pose Graph Optimization) 진행

모든 Optimize엔 g2o사용

C. Map Points, KeyFrames and their Selection

각각의 map point은 아래 정보를 가지고 있음

  • 3D Position
  • viewing direction
  • ORB descriptor (여러개의 키프레임을 표현해야 하므로 키프레임들에 대해 hamming거리가 작게 되게 표현)
  • ORB feature의 scale invariance 한계에 따라 관측할 수 있는 거리의 최대 최소

각각의 keyframe은 아래의 정보를 가지고 있음

  • Pose
  • camera intrinsic
  • ORB feature(Mappoint or not)

맵포인트와 키프레임은 자주 생성되지만, culling 메커니즘을 통해 중복된 키프레임을 탐지하고 잘못 매치되거나 추적할 수 없는 맵포인트를 탐지하는 역할을 한다. 이는 맵을 다루는데 좋다.

D. Covisibility Graph and Essential Graph

키프레임 간의 Covisibility 정보는 무방향 가중 그래프로 표현.
각 노드는 키프레임이고 두 키프레임 사이의 엣지는 동일한 맵포인트(최소 15개)를 공유하면 가중치는 $\theta$가 된다.
루프를 수정하기 위해 loop closing error를 줄여주는 pgo수행.
밀도가 높은 covisibility graph에서 모든 edge를 포함하지 않게 하기 위해 모든 노드(키프레임)를 유지하지만 엣지를 덜 유지하는 essential graph를 만들어, 보다 정확한 결과를 내는 네트워크를 유지할 것을 제안함.
시스템은 초기 키프레임으로부터 최소 갯수의 엣지로 covisibility graph에 연결된 하위 그래프를 제공하는 spanning tree 구축.
새 키프레임이 들어오면 가장 많은 공유 point를 가지고 있는 키프레임에 연결된 트리에 포함됨. 만약, 키프레임이 제거되면 해당 키프레임의 영향을 받는 링크 업데이트.
Essential graph는 스패닝 트리, covisibility($\theta _{min} = 100$)의 엣지 집합 및 loop closure 엣지를 가지고있어 강력한 카메라 네트워크가 생성됨.

E. Bag of Words Place Recognition

시스템은 DBoW2기반 bags of words를 이용해 loop detection과 relocalization을 하기위해 place recogniton을 진행한다. vocabulary는 많은 이미지 세트에서 추출된 ORB descriptor로 오프라인으로 만들어진다. 일반적인 이미지라면, 다양한 환경에서 동일한 vocabulary를 사용할 수 있다.
데이터 베이스엔 키프레임에 대해 visual vocabulary가 저장되며 키프레임이 지워지면 데이터 베이스도 업데이트 된다.
covisibility graph를 그룹화 해 동일한 장소를 보는 키프레임을 포함하지 않고 다른 시간에 database에 삽입하는 한계점을 보완함. 또한, 데이터 베이스에서 best score의 75%보다 높은 점수를 가진 모든 키프레임을 반환함.
ORB feature matching시에 특정 수준의 vocabulary tree에서 동일한 노드에 속하는 feature만 BF 매칭하여 속도 높임.
모든 대응점(correspondence)에 대해일관된 회전을 보장하는 outlier들을 제거하는 방식으로 correspondence개선.


4. Automatic Map Initialization

다음 글에서…

Leave a comment