前言
本文是B站上高翔关于“视觉SLAM的基础知识”的视频(地址:https://www.bilibili.com/video/av5911960/?from=search&seid=375069506917728550),所记的笔记。
1. Def. of SLAM
--> vSLAM的主要组成部分
- 传感器数据(图像 or 图像+深度)
- 视觉里程计(Visual Odometry)
- 后端(优化)
- 建图(Mapping)
- 回环检测(Loop closure detection)
2. Visual Odometry
--> feature-based Methods
- Extract feature key-points and descriptors
- Find the corresponding matching
- Estimate the ego-motion
--> Ego-motion estimation(通过帧间图像)
- 找对应点,然后用bundle adjustment来求解3D点X,变换矩阵RT;
(两种方法,对极几何SVD对噪声容忍性差一些,优化的方法对存在outlier的情况也适用)
--> Direct Methods
关键帧X对应像点处的灰度值,与当前帧投影到关键帧的X像点的灰度值,之间的差值,来minimize求解。
3. Optimization
- Filter
- optimization(Full SLAM or Graph-based SLAM)考虑了所有pose的特点,来减少姿态漂移
----vertices 需要优化的变量,Edges 变量与变量之间的约束
----1)比Filter用到了更多的信息;2)很方便地表示出回环;3)图的稀疏的结构可以减小计算量;4)混合地用不同的边和结点。
----怎么控制优化?进来新的结点的时候可以跟相邻的前几帧进行局部优化,当存在回环的时候使用一次全局优化,得到一致性更强的结果。
4. Loop Closure
- 基于视觉里程计的方法,当VO判断出大致是个回环的时候,说明是个闭环
- 基于外观的方法,只关注图像的相似性,相似性高则是同一个地方。
----怎么度量图像之间的相似性?用纸袋模型(Bag of Words),有时候会出现false positive,现在多是基于纸袋模型再加入其他的一些假设。
----判断Loop Closure的好坏?Precision Recall curve
----Aproaches from ML: Auto encoder, CNN, etc.
5. Map
Map is one of the major outputs of SLAM.
----Metric map,Topological map,其他(基于线段的地图)
----Maps used in Navigation: Occupancy map
----Maps used in Reconstruction: TSDF(Truncated Signed Distance Function); Surfels