DynaSLAM
Bescós 2018 · 논문
한 줄 요약 — ORB-SLAM2 위에 Mask R-CNN 기반의 동적 물체 제거와 배경 인페인팅(inpainting)을 추가하여, 움직이는 물체가 있는 장면에서도 추적과 매핑이 강건하게 동작하도록 만들었습니다(단안, 스테레오, RGB-D 모두 지원).
문제
“장면 강체성(scene rigidity) 가정은 SLAM 알고리즘에서 흔히 쓰입니다. 이러한 강한 가정은 서비스 로봇이나 자율주행 차량처럼 여러 중요한 응용의 대상이 되는, 사람이 붐비는 실제 환경에서 대부분의 시각 SLAM 시스템의 사용을 제한합니다.” 움직이는 사람과 차량 위의 특징점은 포즈 추정을 왜곡하고, 지도에 새겨진 동적 콘텐츠는 오래된 랜드마크와 잘못된 루프 클로저 후보를 만들어냅니다. DynaSLAM은 ORB-SLAM2에 두 가지 기능을 추가합니다: (다중 뷰 기하학, 딥러닝, 또는 둘 다에 의한) 동적 물체 검출과 배경 인페인팅으로, 지도가 오직 영속적인 장면만을 담도록 합니다.
방법 및 아키텍처
- 사전 정의된 동적 클래스에 대한 CNN 세그멘테이션. 모든 RGB 프레임은 Mask R-CNN(Matterport 구현, MS COCO로 학습됨)을 거쳐, 19개의 잠재적으로 움직일 수 있는 클래스(사람, 자전차, 자동차, …, 개 등)를 세그멘테이션합니다. 이미지에 대해 개의 이진 마스크( = 물체 인스턴스 수)를 출력하며, 이들은 하나의 동적 마스크로 결합됩니다. 단안/스테레오 모드에서는 이 마스크 위의 키포인트가 단순히 “추적되지도 매핑되지도 않습니다”.
- 저비용 추적. ORB-SLAM2 추적의 경량 버전이 정적 부분만을 이용해 카메라를 위치추정합니다: 지도 특징점을 프레임에 투영하고, 정적 영역에서 매칭한 뒤 재투영 오차를 최소화합니다. 마스크 윤곽(인위적인 고그래디언트 영역) 위의 특징점은 버려집니다.
- 다중 뷰 기하 검사(RGB-D). 목록에 없는 움직일 수 있는 물체(들려 있는 책, 옮겨진 의자)를 잡아내기 위해, 각 새 프레임은 겹침이 가장 큰 5개의 키프레임과 비교됩니다. 키포인트 를 현재 프레임에 투영하면 투영된 깊이 를 갖는 가 됩니다. 시차각(parallax angle) 이면 해당 점은 가려져 있을 가능성이 있어 무시되고, 그렇지 않으면 측정된 깊이 가 다음 검사를 받습니다.
이를 만족하면 해당 점은 동적인 것으로 표시됩니다. 는 30개의 손으로 레이블링된 TUM 이미지에서 을 최대화하도록 튜닝되었습니다. 동적 레이블은 깊이 패치 분산을 통해 정제된 뒤, 깊이 이미지에서의 영역 성장(region growing)을 통해 전체 마스크로 확장됩니다.
- 두 검출기의 융합. 기하학만으로는 멀리 있는 사람(부실한 깊이, 적은 특징점)을 놓치고 대응하기 전에 움직임이 필요하며, 학습만으로는 지도에 “떠 있는 책”을 남깁니다. 둘 다 검출되면 (더 정밀한) 기하학적 마스크가 우선하며, 학습 전용 검출도 함께 유지됩니다. 세그멘테이션된 동적 부분은 프레임과 지도에서 모두 제거되며, ORB-SLAM2의 추적, 지역 BA, 루프 클로징은 나머지 정적 부분에서 실행됩니다.
- 배경 인페인팅. 최근 20개 키프레임의 RGB와 깊이를 현재 프레임의 동적 세그먼트에 투영하여, 가려졌던 배경의 정적 이미지를 합성합니다(배경이 한 번도 관측되지 않은 부분은 빈틈으로 남습니다) — 이는 AR/VR과 라이프롱(lifelong) 지도에서의 재지역화에 유용합니다.
실험 결과
- TUM RGB-D(ATE RMSE, 10회 실행의 중앙값): 고동적(high-dynamic) walking 시퀀스에서 DynaSLAM(N+G) 대 RGB-D ORB-SLAM2 — w_halfsphere 0.025 대 0.351 m, w_xyz 0.015 대 0.459 m, w_rpy 0.035 대 0.662 m, w_static 0.006 대 0.090 m(오차 92.9–96.7% 감소)로, 오차가 약 1–2 cm 수준이며 “정적 장면에서의 최신 기법과 유사한” 수준입니다. 저동적(low-dynamic) sitting 시퀀스에서는 동등하거나 약간 더 나쁘지만(s_xyz 0.015 대 0.009) 지도에는 동적 물체가 없습니다.
- 변형 연구: 네트워크 + 기하학(N+G)을 결합하는 방식이 둘 중 하나만 쓰는 것보다 우수합니다 — 기하학만 쓰면 움직임과 세그멘테이션 전의 지연이 필요하기 때문에 w_xyz(0.312)에서 실패합니다. 배경 인페인팅을 추적 이전에 수행하면 회전 시퀀스에서 성능이 나빠집니다(w_rpy 0.136).
- 단안 TUM: ORB-SLAM보다 ATE가 약간 높지만(w_halfsphere 0.021 대 0.017 m), 궤적의 훨씬 더 많은 부분을 추적합니다(97.84% 대 87.16%; w_xyz 87.37% 대 57.63%). 초기화도 훨씬 더 일찍 이루어집니다 — ORB-SLAM은 움직이는 물체가 장면을 벗어나야만 초기화됩니다.
- KITTI 스테레오: ORB-SLAM2보다 약간 덜 정확하지만(예: KITTI 00에서 ATE 1.4 대 1.3 m), 동적 물체가 지배적인 곳에서는 더 우수합니다(KITTI 01: 9.4 대 10.4 m). 재사용 가능한 구조 전용 지도도 함께 생성합니다.
- 처리 속도: 실시간이 아닙니다 — Mask R-CNN은 이미지당 약 195 ms(Tesla M40), 다중 뷰 기하는 236–334 ms, 인페인팅은 184–208 ms이며, 저비용 추적은 1.6–1.7 ms입니다. 논문은 이를 정확도/속도 트레이드오프 연구로 위치시킵니다.
SLAM에서의 의미
DynaSLAM은 DS-SLAM과 함께, 이후 거의 모든 동적 환경 SLAM 논문이 TUM RGB-D 동적 시퀀스에서 비교 대상으로 삼는 표준적인 동적 SLAM 베이스라인입니다. 학습된 인스턴스 세그멘테이션과 기하학적 일관성 검사를 결합하는, 지금은 표준이 된 방식을 확립했으며, “제거하고 인페인팅한다”는 발상은 지도가 일시적으로 존재하는 개체가 아니라 영속적인 장면을 나타내야 하는 라이프롱 매핑을 가리켰습니다. DynaSLAM II는 이후 동적 물체를 버리는 방식에서 그것을 추적하는 방식으로 발전했습니다.