
Figure 1. SLAM 예시
1. 이 글을 작성하는 목적
SLAM이라는 분야에 관심을 가지고 공부를 시작하게 되었을 때, 가장 먼저 SLAM에 관련된 기초를 쌓기위해 textbook이나 잘 정리된 자료를 찾아다녔다. 하지만 SLAM 학습을 목표로 하는 국문 자료는 거의 찾아볼 수 없었으며, 외국 대학의 수업자료 등을 살펴보아도 너무 추상적으로 만들어진 ppt 자료가 대부분이었다. 물론 "Multiple View Geometry in Computer Vision"와 같은 textbook도 존재하고 여기저기 잘 만들어진 자료들도 있지만, 너무 여러 곳의 자료를 찾아보고 종합해야 하는 번거로움이 있었고, SLAM이라는 분야에 입문하기 위한 내용이 종합된 하나의 자료가 있었으면 하는 바람이 들었다.
그래서 SLAM을 공부하면서 그 내용을 정리할 겸, 하나의 입문서를 만들어 보고 싶은 겸하여 이 글을 작성하게 되었다. 본 글은 카메라를 사용하는 visual SLAM 및 LiDAR SLAM을 이해하기 위한 내용을 포함하며, 다음과 같은 큰 틀을 가지고 있다.
- 기초 컴퓨터비전에 대한 이해
- Direct SLAM: LSD-SLAM 논문을 통한 학습
- Feature-based SLAM: ORB-SLAM 논문을 통한 학습
- LiDAR SLAM: LOAM 논문을 통한 학습
- LiDAR SLAM: NDT-matching 논문을 통한 학습
- 확률론 기반의 SLAM: 베이지안 필터(Kalman & Extended Kalman filter)
- 확률론 기반의 SLAM: 입자 필터(Particle filter)
- 기타 관련 분야(PnP, sfm, 3d reconstruction 등)
SLAM에는 여러 모듈들이 포함되어 있지만, 이러한 모듈들을 하나씩 작성하는 대신 몇 개의 대표적인 SLAM 논문을 읽어가며 SLAM의 필수 모듈들을 설명하고자 한다. 이를 통해 각 모듈이 어떻게 작동하는 지 정확히 이해할 수 있으며, 이 글을 읽고 나서 본격전인 연구를 할 때 실제로 도움이 되었으면 한다. 여기서 LSD-SLAM을 우선적으로 학습하는 이유는 해당 방법이 깊이 추정, Lie 대수, least-square 최적화 등 뒤에 이어질 내용의 많은 부분을 포함하고 있다고 생각했기 때문이며, 타 논문들 또한 SLAM 분야를 대표하는 논문들이다.
우선은 이론적인 내용 작성을 마무리한 후, 가능하다면 각 내용을 실제 구현한 코드도 추가할 예정이다.
2. 참고문헌
논문
- Engel, Jakob, Jurgen Sturm, and Daniel Cremers. "Semi-dense visual odometry for a monocular camera." Proceedings of the IEEE international conference on computer vision. 2013.
- Engel, Jakob, Thomas Schöps, and Daniel Cremers. "LSD-SLAM: Large-scale direct monocular SLAM." European conference on computer vision. Springer, Cham, 2014.
- Kerl, Christian, Jürgen Sturm, and Daniel Cremers. "Robust odometry estimation for RGB-D cameras." 2013 IEEE international conference on robotics and automation. IEEE, 2013.
- Civera, Javier, Andrew J. Davison, and JM Martinez Montiel. "Inverse depth parametrization for monocular SLAM." IEEE transactions on robotics 24.5 (2008): 932-945.
- Matthies, Larry, Takeo Kanade, and Richard Szeliski. "Kalman filter-based algorithms for estimating depth from image sequences." International Journal of Computer Vision 3.3 (1989): 209-238.
도서
- Hartley, R., & Zisserman, A. (2004). Multiple View Geometry in Computer Vision (2nd ed.). Cambridge: Cambridge University Press.
- 입문 Visual SLAM, 한글 번역본(링크)
- 코딩 더 매트릭스 링크
- 프로그래머를 위한 선형대수 링크
- 사진측량과 컴퓨터비전의 기술 링크
- Matrix Computations, Golub, Gene H., and Charles F. Van Loan
- 확률론적 로보틱스 링크
- 최적화 이론 링크
- TD Barfoot, STATE ESTIMATION FOR ROBOTICS, Cambridge: Cambridge University Press. 링크
강의자료
- 16-385 Computer Vision, Spring 2020, Prof. Ioannis (Yannis) Gkioulekas, Carnegie Mellon University 링크
- Photogrammetry I & II Course (2021/22), Prof. Cyrill Stachniss, University of Bonn 링크
- Computer Vision II: Multiple View Geometry, Prof. Dr. Daniel Cremers, Technical University of Munich, 링크
- ECE133A - Applied Numerical Computing, Prof. L. Vandenberghe, UCLA, 링크
- CS231A: Computer Vision, From 3D Reconstruction to Recognition, Prof. Silvio Savarese, Stanford University, 링크
- CSE/EE486 Computer Vision I, Prof. Robert Collins, Penn State University, 링크
기타
※저도 공부를 하면서 작성하는 글이기에 잘못된 내용이 있을 수 있습니다. 혹시 그러한 내용이 있다면 지적 부탁드립니다!