Simultaneous localization and mapping
SLAM(Simultaneous localization and mapping), 동시적 위치추정 및 지도작성은 로봇공학 등에서 사용하는 개념으로, 임의 공간에서 이동하면서 주변을 탐색할 수 있는 로봇에 대해, 그 공간의 지도 및 현재 위치를 추정하는 문제이다.
Documentation
- [추천] ORB-SLAM2 - an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
- http://arxiv.org/abs/1610.06475v2
- https://arxiv.org/pdf/1610.06475v2.pdf
- http://webdiis.unizar.es/~raulmur/orbslam/
- https://github.com/raulmur/ORB_SLAM2
- https://codar.club/blogs/orb-slam2-building-detailed-process.html
- [추천] OpenVSLAM
- Orb-slam2 등 다양한 비쥴얼 슬램 구현
- https://openvslam.readthedocs.io/en/master/index.html
- [추천] Co-Fusion
- Real-time Segmentation, Tracking and Fusion of Multiple Objects
- http://visual.cs.ucl.ac.uk/pubs/cofusion/index.html
- https://github.com/martinruenz/co-fusion
- ElasticFusion - Real-time dense visual SLAM system
- https://github.com/mp3guy/ElasticFusion
- [추천] Cartographer (카토그래퍼)
- Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
- Semantically Informed Visual Odometry and Mapping (SIVO)
- SIVO - Semantically Informed Visual Odometry and Mapping. Integrated Bayesian semantic segmentation with ORBSLAM_2 to select better features for Visual SLAM.
- https://github.com/navganti/SIVO
- Direct Sparse Odometry with Loop Closure (LDSO)
- https://arxiv.org/abs/1808.01111v1
- https://arxiv.org/pdf/1808.01111v1.pdf
- Simultaneous Localization and Mapping by Fusion of KeyPoints and Squared Planar Markers (UcoSLAM)
- https://arxiv.org/abs/1902.03729v1
- https://arxiv.org/pdf/1902.03729v1.pdf
- [추천] Keyframe-based monocular SLAM - design, survey, and future directions
- https://arxiv.org/abs/1607.00470v2
- https://arxiv.org/pdf/1607.00470v2.pdf
- Constructing Locally Dense Point Clouds Using OpenSfM and ORB-SLAM2
- http://arxiv.org/abs/1804.08243v1
- Movable-Object-Aware Visual SLAM via Weakly Supervised Semantic Segmentation
- https://arxiv.org/abs/1906.03629v2
- [추천] GCNv2 - Efficient Correspondence Prediction for Real-Time SLAM
- https://arxiv.org/abs/1902.11046v3
- https://github.com/jiexiong2016/GCNv2_SLAM
- GCNv2 is a high-throughput variant of the Geometric Correspondence Network for performing RGB-D SLAM online on embedded platforms. We trained the binary descriptor in the same format with ORB (32 bytes) for the convenience of integration. In this implementation, we evaluate the motion estimation using a system built on top the [ORB-SLAM2], (https://github.com/raulmur/ORB_SLAM2). Thanks to the robustness of ORB-SLAM2, our system is able to achive reliable tracking perfomance on our drone platform in real-time.
Deep learning based
- Monocular Depth Prediction Using Generative Adversarial Networks
- https://ieeexplore.ieee.org/document/8575530/
- http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w9/Kumar_Monocular_Depth_Prediction_CVPR_2018_paper.pdf
- DepthNet - A Recurrent Neural Network Architecture for Monocular Depth Prediction
- https://ieeexplore.ieee.org/document/8575528
SLAM 프레임워크는 크게 frontend와 backend의 2가지 부분으로 구성이 됩니다. frontend에서는 시간적으로 인접한 영상 사이의 피쳐 추출, 피쳐 매칭, 카메라 변환 파라미터 계산이 이루어지고 backend에서는 시간적으로 인접하지 않은 영상 사이에서도 가능한 경우에 대해 카메라 변환 파라미터 계산을 수행하고 frontend와 backend에서 얻은 제약조건을 이용해 전체 카메라 궤적에 대해 그래프 최적화를 수행하여 좀 더 consistent한 맵과 카메라 궤적을 얻도록 하는데 목적이 있습니다.
- SuperPoint - Self-Supervised Interest Point Detection and Description
- https://arxiv.org/abs/1712.07629
- https://github.com/rpautrat/SuperPoint
- SLAM Frontend 에서 deep learning의 접목을 주로 다루고 있습니다. 기존의 전통적인 피쳐 추출, 매칭 알고리즘들은 시점 변화, 조명 변화 등에 잘 작동하지 않는 결과를 보이는데 self-supervised 방법으로 학습된 제안하는 알고리즘이 그러한 성능면에서 능가한다고 소개했습니다.
- Global Pose Estimation with an Attention-based Recurrent Network
- https://arxiv.org/abs/1802.06857
- SLAM backend 에서의 deep learning의 접목을 주로 다루고 있습니다. 이 논문에서는 Neural graph optimizer를 제안했는데 이는 local pose estimation model, pose aggregation module, neural graph optimization의 3가지 부분으로 구성이됩니다. local pose estimation model에서는 인접한 프레임 간의 상대적인 포즈 변화를 학습하고 pose aggregation module에서는 앞에서 얻은 상대적인 포즈를 포즈 피쳐로 변환하도록 학습시킵니다. 마지막으로 neural graph optimization에서는 전체 포즈 궤적에대해 drift 에러를 줄이도록 하는 뉴럴넷을 attention based로 학습시킵니다.
- DeepVO - Towards End-to-End Visual Odometry with Deep Recurrent Convolutional Neural Networks
- https://arxiv.org/abs/1709.08429
- Github - DeepVO for Visual Odometry Implementation using Tensorflow
- DeepVO - A Deep Learning approach for Monocular Visual Odometry
- https://arxiv.org/abs/1611.06069
- Neural SLAM - Learning to Explore with External Memory
- https://arxiv.org/abs/1706.09520
- Neural Map - Structured Memory for Deep Reinforcement Learning
- https://arxiv.org/abs/1702.08360
- DF-SLAM - A Deep-Learning Enhanced Visual SLAM System based on Deep Local Features
- https://arxiv.org/abs/1901.07223
- CNN-SLAM - Real-time dense monocular SLAM with learned depth prediction
- https://arxiv.org/abs/1704.03489
OpenSLAM Projects and Tools
SLAM Projects |
2D-I-SLSJF, CAS-Toolbox, CEKF-SLAM, COP-SLAM, DP-SLAM, EKFMonoSLAM, FalkoLib, FLIRTLib, G2O, GMapping, GridSLAM, HOG-Man, Max-Mixture, MTK, ORB-SLAM, OpenSeqSLAM, ParallaxBA, Pkg. of T.Bailey, RGBDSlam, Robomap Studio, RobotVision, SLOM, SSA2D, tinySLAM, TJTF for SLAM, TORO, TreeMap, UFastSLAM, vertigo |
SLAM Tools |
EVG-Thin, KLD-Sampling, People2D |
Libraries
- g2o - General Graph Optimization
- https://github.com/RainerKuemmerle/g2o
- Ceres Solver - A large scale non-linear optimization library
- http://ceres-solver.org/
- https://github.com/ceres-solver/ceres-solver
See also
- Deep learning
- GAN
- RANSAC
- Neural-Guided RANSAC
- Bags of Binary Words for Fast Recognition in Image Sequences
- DBoW2
- Stereo Vision
- Visual odometry (VO)
- Cartographer (Google)
- Panorama
- Point Cloud
Favorite site
- Wikipedia (en) Simultaneous localization and mapping
- YouTube - 딥 슬램 동향 - Deep Learning for Visual SLAM, CVPR 2018 Workshop
- Deep Learning for Visual SLAM in CVPR 2018 참가 후기
Benchmark
- Github - rtabmap - wiki - Benchmark SLAM
- Arxiv - Benchmarking and Comparing Popular Visual SLAM Algorithms