Tech/SLAM

[Paper Review] (수정중) Visual SLAM and Structure from Motion in Dynamic Environments: A Survey

은가 2023. 1. 2. 19:58

Last Update : 2022.01.10

0. 초록

(소개) SfM과 VSLAM은 Computer Vision 분야와 Robotics 분야에서 꾸준히 각광을 받아 왔으며, Robot Navigation과 Augmented Reality를 포함하는 응용 분야에서 큰 영향을 미치기 시작했다.

 

(가정) SfM과 VSLAM 기술은 대부분 environment가 static(정적)이라는 가정 하에 사용되고 있다.

 

(한계) 그러나 우리는 dynamic한(움직이는) 물체를 다루어야 하고, 이렇게 될 경우 전체적인 시스템의 정확도는 위태로워진다.

 

(목적) 이 Survey paper에서는 dynamic(동적) 환경에서의 SfM과 VSLAM 기술을 다룰 것이다. 이 논문에서 다룰 세 가지의 큰 problem은 다음과 같다.

 

(문제) (2. Taxonomy of Existing Approaches의 요약)

A. 어떻게 Robust Visual SLAM을 할 것인가? (이 글에서 초점을 맞출 내용)

B. 어떻게 Dynamic한 물체를 분류하고 tracking할 것인가?

C. 어떻게 Joint Motion Segmentation과 reconstruction을 할 것인가?


1. Introduction

SfMVSLAM은, multiple image로부터 추출된 feature correspondences로부터 camera pose와 3D structure를 동시에 estimate한다. 이 estimation problem은 1) filter-based approach 또는 2) bundle adjustment(BA)로 풀 수 있다.


2. Taxonomy of Existing Approaches

Dynamic 환경에서의 SLAM과 Reconstruction은 두 가지 다른 관점에서 볼 수가 있다. 1) Robustness problem 또는

2) Standard Visual SLAM이다.

 

Robustness problem 관점에서, 카메라 앞에 움직이는 물체가 여러 개 있더라도 VSLAM을 할 때  pose estimation은 정확하게 유지되어야 한다. 이것은 이전에 추적한 feature의 false correspondence나 occlusion을 초래할 수 있기 때문이다.

 

Robustness는 이미지에서 정적인 부분과 동적인 부분을 분할(segment)하고, dynamic한 부분은 outlier로 간주하여 달성된다. 그렇게 되면 Pose estimation은 static한 부분만을 기반으로 하여 계산된다.

 

VSLAM을 dynamic한 환경으로 확장하는 과정에서, 시스템은 추적된 feature들을 각각 다른 물체로 segment할 수 있어야 한다. 그래야 각각의 물체들이 reconstruction될 수 있고, 그것의 trajectory들이 추적될 수 있다.

 

만약 static한 map을 얻은 상태라면, 시스템은 그 map에 dynamic한 물체를 추가할 수 있다.

 

 

A. Robust VSLAM

dynamic feature를 제거한 static map 제작하기

 

B. Dynamic Object Segmentation and 3D Tracking

static한 background를 제거하고 dynamic한 물체를 추출하기

 

C. Joint Motion Segmentation and Reconstruction

staticdynamic한 요소를 동시에 모두 다루기


3. Robust Visual SLAM

동적 환경에서의 Robust Visual SLAM은 pose estimation이 정적 특징점들에 의해 계산될 때 이행될 수 있다. 이때 접근 방법이 DL이냐 아니냐에 관계 없이, 연속된 여러 장의 이미지와 feature correspondence가 input으로 사용된다.

 

Robust Visual SLAM은 두 개의 큰 모듈을 포함한다. (1) motion segmentation(2) localization and 3D reconstruction이다. motion segmentation은 특징점들을 정적과 동적으로 분할한다. 이때 localization과 3D reconstruction에 사용 되는 것은 오직 정적  특징점들이다. 하지만, 동적 특징점들과 3D 점군 데이터들은 이후 (1)과 (2) 프로세싱 과정에서 사용된다. 이제부터 이 접근법들을 다루어보자.

 

3.1 Motion Segmentation

motion segmentation은 이미지로부터 정적인 특징점과 동적인 특징점을 분류하여, 움직이는 부분만을 감지하는 기법이다. 그래서 moving object detection/segmentation이라고도 알려져 있다. 

 

3.2 Localization and 3D Reconstruction

Localization과 3D Reconstruction을 간단히 설명하자면, 여러 위치에서 찍은 이미지들로부터 카메라의 상대적인 R,T matrix와 3D structure를 추정하는 문제이다.

 

Robust visual SLAM에서는 동적 특징점을 모두 outlier로 보고, 정적 특징점들만을 사용한다. 그러나 DL 기반의 SLAM에서는 feature correspondences를 계산하지 않고도 이미지 시퀀스를 처리할 수 있다. 아래 섹션들에서는 localization과 3D reconstruction문제를 풀기 위한 (1) feature-based(2) DL-based 접근법을 소개하도록 하려고 한다.

 

3.2.1. Feature-Based Approaches

Computer Vision 분야에서는 feature를 뽑기 위한 방법이 꾸준히 개발되어 왔다(Harris, SIFT, SURF, FAST 알고리즘 등). 여기서  서로 다른 이미지들에 포함된 feature들간의 연관성, 즉 correspondence를  찾기 위해서는 feature matching 기술이 필요하다.  이것은 같은 그림 찾기와 유사한 과정으로,  두 장의 사진 속에서 같은feature는 무엇인지 찾는 과정이다. 

 

feature matching 기술은, 두 카메라 간의 거리(baseline/parallax라고 불림, optical centers of two cameras)를 기준으로 하여 여러 가지 방법으로 나뉜다. baseline이 짧을 때는 optical-flow 테크닉이 feature matching 방법으로 사용된다. baseline이 길 때는 highly discriminative feature descriptor(완전히 구분할 수 있는 특징점 식별자)들이 필요하기 때문에, descriptor들 간의 비유사성을 계산함으로써 correspondence를 찾는다.

 

만약 이미지들간의 correspondence를 이미 알고 있다면, 두 개 또는 세 개의 이미지 사이의 상대적 pose는 scale factor에 의해 복원될 수 있다. epipolar constraint를 사용함으로써, 두 장의 이미지로부터 얻은 카메라의 자세는 8-point algorithm과 5-point algorithm으로부터 계산될 수 있다. trifocal tensor는 세 장의 이미지에 적용될 수 있다. 장면의 일부 3D 포인트가 재구성된 경우, PnP(Perspective n Point) 알고리즘을 사용하여 3D 모델에 대한 카메라의 포즈를 얻을 수 있다.

 

카메라 pose를 알면, 삼각 측량법을 통해 두 개의 투사선을 교차시켜 장면의 3D포인트를 쉽게 재구성할 수 있다. 잘못된 대응으로 인해 광선은 항상 교차하지 않는다. 따라서 교차점을 추정하기 위해 midpoint method 또는 least-squre-based method가 제안된다. 그런 다음 drift 문제를 피하기 위해 Bundle Adjustment(BA)를 사용하여 reprojection error를 최소화 한다. 이렇게 되면 카메라의 pose와 3D 포인트를 모두 세분화할 수 있다. Gauss-Newton 방법의 변형인 Levenverg-Marquardt(LM)은 장면의 구조와 카메라의 움직임을 공동으로 최적화하는 일반적인 방법이다. 

 

실제로, feature-based의 visual SLAM을 구현하는 데에는 몇 가지 변형 방법이 있다. 모든 이미지로부터 camera pose와 3D structutre를 최적화 하는 대신, Local Bundle Adjustment(LBA)를 통해 마지막 몇 장의 이미지만 최적화하는 방법이 제안되었다. 

 

PTAM은, tracking과 mapping이 다른 thead에서 실행될 경우 실시간으로 그것들을 동시에 돌아가게 하는 알고리즘이다. 더 나아가서, PTAM은 key frame을 고르는 아이디어를 소개했다. 따라서 LBA는 선택된 frame들을 대상으로 적용된다. 반면, 병렬 컴퓨팅 없이도 실시간으로도 binary descriptor과 metric topological mapping이 가능한 방법도 고안되었다.

 

ORB SLAM은 병렬컴퓨팅, ORB feature, statistical model selection, bow place recognition을 통한 loop closure, LBA, graph optimization을 이용하여 하드웨어와 그동안 개발된 알고리즘을 통합했다. 

 

3.2.2 Deep Learning for Pose Estimation and 3D Reconstruction

pose estimation 문제는 learning problem으로도 풀 수 있다. 아직 3D reconstruction은 end-to-end(?) learning 방법이 개발되지 않았다. 현재까지 learning으로 풀 수 있는 것은 depth 예측까지이다. 

 

pose estimation을 학습시키는 데에는 (1) suptervised learning(2) unsupervised learning이 있다. 

 

학습 관련 내용은 이어서 포스팅 할 예정입니다.