Priceless

[Paper] DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments 리뷰 본문

Review/Paper

[Paper] DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments 리뷰

Hyun__ 2024. 5. 3. 19:00

참고

[1809.08379] DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments (arxiv.org)

 

DS-SLAM 논문을 번역했습니다.

최근 진행한 프로젝트에서 참고하다가 현재는 참고하지 않아서 기록용으로 올립니다.

아직 미완성 번역이지만 추후에 다시 읽을 때 수정하겠습니다.

오번역, 오타 지적해주시면 감사하겠습니다.

 

 

DS-SLAM > ORB-SLAM2 (+ SegNet) > Visual SLAM > SLAM

 

0. Abstract

SLAM은 지능형 이동 로봇의 기본적 역량이다. 지난 몇 십 년 간, 많은 SLAM 시스템이 개발되었고 특정 환경 내에서 좋은 성능이 나타났다. 그러나 일부 문제가 남아있는데, 동적 환경에서 움직이는 객체를 어떻게 태클하는지, 로봇이 주변을 이해하고 나아가 일을 수행하는지 같은 예가 있다. 이 논문에서는 동적 환경을 위한 강건한 semantic visual SLAM인 DS-SLAM을 제안한다. DS-SLAM에서 5개의 thread가 병럴로 작동한다: tracking, semantic segmentation, local mapping, loop closing , dense semantic map creation. DS-SLAM은 동적 물체의 영향을 감소하기 위해 semantic segmentation network를 moving consistency check method와 묶었고, 그 결과 동적 환경에서 localization accuracy 가 상당히 개선되었다. 그 동안 dense semantic octofree map 이 생겼고, 이것은 높은 레벨의 임무를 수행할 수 있었다. 우리는 TUM RGB-D 데이터셋과 실제 환경에서 실험했다. DS-SLAM에서 절대 경로의 정확도를 증명한 결과가 ORB-SLAM2와 비교하여 개선되었다. 이것은 빠른(high) 동적 환경에서 가장 성능이 좋은(state of the art) SLAM 중 하나이다.

 

1. Introduction

지난 몇 년간, visual SLAM은 광범위하게 연구되었는데, 이는 이미지가 많은 정보를 담고 있고 semantic segmentation과 object detection 같은 vision 기반 응용을 수행할 수 있다. 최근 visual SLAM 시스템의 프레임워크는 많이 발전했고, 이는 feature extraction 프론트엔드, state estimation 백엔드, loop closure detection 등 같이 여러 개의 필수적인 구조로 이루어져있다. 반면에 일부 발전한 SLAM 알고리즘은 이미 만족스러운 성능을 얻었다. 대표적으로 ORB-SLAM2, LSD-SLAM이 그러하다. 그러나 일부 문제가 해결되지 않았는데, 예를 들어 대부분의 알고리즘은 깨지기 쉽다. 다른 말로 그들은 매우 동적이거나 거친 환경에서 어려움이 있다. 다른 말로 그들의 맵 모델은 landmark-based map과 point-cloud map 같이 보통 기하학적 정보를 사용하는데, 이것들은 주변 환경에 대한 높은 이해도를 제공하지 않는다. 다른 논문에 따르면, SLAM은 robust-perception age에 들어왔으며, 자동화 로봇을 위해 정말로 강인한 perception과 navigation을 달성하기 위한 연구가 필요하다.

보통의 SLAM은 오직 기하학적 요소가 담긴 map을 제공하며, 이는 semantic 요소에 대해 구별하지 않는다. 그러나 로봇이 주변의 장면을 이해하기 위해 semantic 정보는 필요하다. 딥러닝의 개발과 함께, 일부 네트워크는 segmentation에서 좋은 성능을 보였다. 고로 SLAM과 이 네트워크를 합치는 것은 semantic map을 만들 수 있고 로봇의 perception level을 향상시킬 수 있다. 동적 환경에서 SLAM의 강인함 또한 해결해야할 점이다. 최근 SLAM이 특정 환경에서 성공적으로 작동하지만, 예측하지 못한 환경 변화는 state estimation을 방해할 것이고 이는 system의 결점으로 나타날 것이다. 예를 들어 환경 내에 걷는 사람과 같은 동적 물체가 있다면 vision-based SLAM은 feature의 집합으로 판단할 것이다. 변하는 환경 문제를 해결하기 위해 laser-SLAM과 같은 방식으로 여러 기술을 vision-based SLAM과 묶어서 수행하는 접근법이 있지만, pure vision-based SLAM으로는 문제 해결이 어렵다. 이 논문에서 우리는 semantic segmentation와 optical flow method를 묶어 vision-based SLAM의 동적 물체가 미치는 영향을 줄이는 것에 초첨을 뒀고, 그 동안 octo-tree map의 semantic presentation을 제공하는데 이를 통해 로봇에게 높은 난이도의 임무를 줄 수 있을 것이다. DS-SLAM의 개요는 아래와 같다.

이 논문에서 메인 contribution은 다음과 같다

1-1.

동적 환경에서 완벽한 semantic SLAM 시스템은 ORB-SLAM2를 기반으로 제안되는데, 이는 pose estimation에서 움직이는 물체의 영향을 감소시킨다. 이 시스템의는 TUM RGB-D 데이터셋에서 평가되었다. 결과는 DS-SLAM이 움직이는 환경에서 ORB-SLAM2보다 정확도와 강인함에 있어 훨씬 좋았다. 이 시스템은 또한 ROS와 통합되어 있고 수행 능력은 실제 환경의 로봇에서 확인되었다.

1-2.

우리는 실시간 semantic segmentation을 각각 독립적인 thread에 놓았으며, 이는 움직이는 물체의 부분을 찾아내기 위해 moving consistency check method와 semantic segmentation이 묶여 있다. 그래서 동적환경에서 Localization과 mapping 성능이 개선되었다.

1-3.

DS-SLAM은 dense semantic 3D octo-tree map을 만들기 위해 분리된 thread를 생성한다. dense 3D octo-tree map은 불안정한 voxel을 찾아내고 voxel의 semantic meaning을 업데이트 하기 위해 log-odds method를 사용한다.

논문의 다른 부분은 구조를 따라 설명한다. 2장은 SLAM과 semantic SLAM의 현황에 대해 살펴본다. 3장은 SLAM 시스템의 전제 프레임 워크를 설명하며, 동적 객체를 어떻게 detect하고 semantic map을 생성하는지 등에 대해 나타나 있다. 4장은 데이터셋과 실제 환경에서 수행한 양질의 결과를 보여준다. 5장에 결론이 있다.

 

2. Related Works

2-1. Semantic SLAM

2-2. SLAM in dynamic environment

 

3. System Introduction

이 장에서 DS-SLAM을 자세히 소개한다. 이 장은 5개의 구성으로 나누어져 있다. 첫 번째로 DS-SLAM의 프레임워크의 구조가 있다. 두 번째로, DS-SLAM에 적용된 실시간 semantic segmentation 방법을 간단히 설명한다. 그리고 feature points의 moving consistency를 확인하기 위한 알고리즘을 소개한다. 다음으로 outliar를 제거하는 방법이 나타나 있는데, 이것은 움직이는 물체를 감지하기 위해 semantic segmentation과 moving consistency check를 묶었다. 마지막으로 semantic octo-tree map 을 생성하는 방법을 설명한다.

3-1. Frameworks of DS-SLAM

실제 응용에서는, 정확한 pose estimation과 거친 환경에서의 신뢰도는 로봇에게 가장 중요한 요소이다. ORB-SLAM2는 대부분 일반적인 상황에서 좋은 성능을 나타낸다. 그래서 ORB-SLAM2는 DS-SLAM의 feature-based SLAM solution이 되었고, 이것은 dynamic object detection과 semantic octo-tree map 생성이 가능하다.

5개의 thread가 병렬로 수행된다: tracking, semantic segmentation, local mapping, loop closng, dense map creation. 시스템의 프레임워크는 아래 사진과 같다.

 

 

Kinect2(카메라 이름)에서 찍힌 raw RGB 이미지는 tracking thread와 semantic segmentation thread에서 동시에 처리된다. tracking thread는 우선 ORB feature point를 추출하고, feature points의 moving consistency를 대략 확인하고 잠재적 outliar를 저장한다. 그리고 tracking thread는 semantic segmentation thread로부터 예측된 pixel-wise semantic label을 가지고 있는 이미지를 기다린다. segmentation 결과가 도착한 이후, moving object에 위치한 ORB feature points의 outliar는 전에 감지된 잠재적 outliar와 이번 결과에 따라 제거될 것이다. 그리고 나서 transformation matrix가 다른 안정적으로 매치된 feature point에 의해 계산될 것이다.

3-2. Semantic segmentation

이 시스템은 실 세상에 적용하기 위해 설계되었으며, 실시간성과 정확성을 균형 있게 가져가야 한다. DS-SLAM은 caffe 기반의 pixel-wise semantic segmentation을 실시간으로 제공하는 SegNet을 사용한다. PASCAL VOC dataset으로 학습된 SegNet은 총 20 클래스를 segment할 수 있다. 실제 적용에서 사람들은 보통 동적 객체이기 때문에 우리는 사람에게 위치한 feature points는 대부분 outliar로 간주한다.

3-3. Moving consistency check

motion segmentation은 시간에 따라 진행되고 semantic segmentation 결과는 다른 thread에서 얻을 수 있기 때문에, segmentation 결과 내 key poinits가 움직이는지 확인해야 한다. 일부 point가 segmentated object 내에서 움직이는 것으로 확인되면, 그 객체는 동적 객체로 고려할 수 있다. 이 논문에서 움직이는 점을 감지하는 아이디어는 직관적이다. 첫 번째 과정은 같은 프레임에서 matched feature points를 얻기 위해 optical flow pyramid를 계산한다. 두 번째 과정은 matched pair가 너무 가깝거나 3x3 이미지 블록 내에 차이가 너무 크면 matched pair는 버린다. 세 번째 과정은 RANSAC에 정상치를 사용하여 fundamental matrix를 찾는다. 그리고 fundamental matrix를 사용하여 현재 프레임에서 epipolar line을 계산한다. 마지막으로 matched point로부터의 거리에 상응하는 epipolar line이 지정한 threshold로 비교한다. 거리가 threshold보다 크다면 matched point는 옮겨야 된다.

fundamental matrix는 마지막 프레임의 feature points와 상응하는 현재 프레임의 search domain인 epipolar line를 매핑한다.p1과 p2를 마지막 프레임과 현재 프레임의 matched point라 할 때, homogeneous coordinate form인 P1, P2는 아래와 같다

 

u,v는 이미지 프레임 값이다. 그리고 I(1)으로 표기된 epipolar line은 아래 방정식을 따른다

X,Y,Z는 line vector로 나타내고 F는 fundamental matrix로 나타낸다. 그러고 나서 matched point와 그에 상응하는 epipolar line의 거리는 아래 식과 같다.

D는 거리를 나타낸다. moving consistency를 확인하고 dynamic points를 결정하는 알고리즘은 아래와 같다. ε는 threshold이다.

 

3-4. Outliar rejection

사람과 같이 움직이는 물체의 변형과 복잡한 움직임 때문에 moving consistency check를 통해 완전한 동적 영역의 외곽선을 추출하는 것은 어렵고, 모든 외곽선을 추출하는 것은 많은 시간이 든다. DS-SLAM에서는 semantic segmentation을 사용하기 때문에 움직이는 객체의 외곽선을 쉽게 얻을 수 있다. 우리의 아이디어는 2 단계 knowledge base를 달성하기 위해 semantic segmentation 정보와 moving consistency check의 결과를 결합했다. 물체는 움직이거나 움직이지 않는다. 만약 구분된 객체의 외곽이 moving consistency check에서 떨어진 dynamic points가 여러 개 있다면, 구분된 객체는 움직이는 것으로 결정한다. 구분된 객체가 움직이는 것으로 결정되면, 객체의 경계 내에 있는 모든 feature point를 지운다. 이 방법에서 outliar는 정확히 제거될 수 있다. 반면에 잘못된 segmentation의 영향력 또한 확실한 영역을 감소시킬 수 있다.

나아가 tracking thread가 다른 스레드로부터 semantic segmentation 결과를 기다리는 시간이 꽉 찰 수 있다. 기다리는 동안, moving consistency check이 수행된다. 다음 파트에서 DS-SLAM의 소요 시간을 알려준다. 이는 tracking thread와 semantic segmentation thread가 거의 같은 시간이라는 것을 알 수 있다.

대부분 실제 환경에서 사람의 움직임은 로봇의 localization에 방해되고, semantic segmentation이 구별할 수 있는 제한된 카테고리라면, 우리는 이 논문의 다른 페이지에서 동적 객체라고 표현할 것이다.

 

3-5. Dense semantic 3D octo-tree map 생성

4. Experimental Results

5. Conclusion