SLAMとは?
まずSLAMとはなんなのか?
SLAM は “Simultaneous Localization And Mapping” の略で、「自己位置推定と地図生成を同時にする」ことを言います。
また、CML (Concurrent Mapping and Localization)とも言われることもあります。
確率論の観点からみると、SLAMには以下の2種類の形式があります。
1. オンラインSLAM問題
・・・各時刻において逐次的に姿勢と地図を更新していく問題
2. 完全SLAM問題
・・・ある一定数の溜まったデータ全てを使って姿勢と地図を生成する問題
Visual-SLAM
1. 単眼カメラ
- 特徴量ベース その①
画像から特徴量を抽出し、複数の画像間で特徴点の対応付けによりSFMを行う。
#MonoSLAM
- 特徴量ベース その②
SIFTやORBといった局所記述子(特徴量ベクトル)を持った特徴点を用いて、非連続画像でも対応付けが可能。
#Bundler #ORB-SLAM
ORB-SLAM: A Versatile and Accurate Monocular SLAM System
- 直接法(direct method)
特徴点を用いず、画像間の全画素の輝度値を比較し誤差が最小になるようにカメラの移動量を推定する。移動量が少なく、画像間で輝度値が変化しないことを仮定している。
# DTAM #LSD-SLAM # SVO
DTAM関連論文
DTAM:Dense Tracking and Mapping in Real-Time
LSD-SLAM関連論文
LSD-SLAM: Large-Scale Direct Monocular SLAM
Semi-Dense Visual Odometry for a Monocular Camera
LSD-SLAMリンク
LSD-SLAM on GitHub (Ubuntu/ROS)
2. ステレオカメラ
ステレオカメラ拡張LSD-SLAM
Reconstructing Street-Scenes in Real-Time From a Driving Car
ステレオカメラを用いたVO
3. 深層学習(Deep Learning)
#CNN-SLAM # DeepVO
UnDeepVO: Monocular Visual Odometry through Unsupervised Deep
参考文献: