近期阅读了许多动态SLAM相关的论文,它们基本都是基于ORB-SLAM算法,下面简单记录一下它们的主要特点:
1.DynaSLAM
采用CNN网络进行分割+多视图几何辅助的方式来判断动态点,并进行了背景修复工作。
2.Detect-SLAM
实时性问题:只在关键帧中进行目标检测,通过运动概率的传播跟踪线程中(通过关键点到周围点进行传播影响)
语义地图:利用重投影来检测是否属于同一物体(使用交并比的方法)。通过不同帧图像向地图中的投影(RGB-D)的区域重合度来表示是否是同一物体。
给不同物体设置不同的ID,只对物体建图,不对背景建图,通过Grab-Cut算法删除后景。
3. DS-SLAM
前端专门新加了一个语义分割线程,通过分割结果外加运动一致性检测来判断潜在运动物体,如果是潜在运动物体,且经过运动一致性检验判断是在运动的之后,就剔除其身上提取到特征点。
地图采用八叉树稠密地图,可用于导航任务。
4.SOF-SLAM
语义光流:通过当前帧和之前帧的SegNet语义分割结果去计算语义光流,通过语义光流来计算基础矩阵(符合静态环境假设),然后计算出对极几何约束。
多视图几何:利用图像帧匹配点的重投影误差到极线的距离来判断动态点。
5.Dynamic-SLAM
使用目标检测器SSD,基于帧间图像速度的不变性,设置了一种潜在运动对象缺失检测补偿策略。
6.DOT
实例级语义分割+多视图几何 来判断真正的运动物体。
采用了一个紧耦合的框架,相机运动和目标物体的运动都是耦合在图像中的,分两步走:1.得到相机间的位姿估计Tc。2.利用Tc帮助估计运动物体的位姿变化To。
通过计算微商和视差中值,根据微分商区设置一个动态阈值来判断物体是否在运动。
7.DynaSLAM2
图像进入后,进行语义分割,则计算其邻域内特征点的数量,如果有很多的关键点,则创建物体实例。
如果图片中一个实例与地图中的一个物体有许多的特征点匹配上,则认为是同一个物体,则分配同一个ID。
将相机的位姿估计和运动物体的位姿估计,两个重投影误差,进行联合BA优化。
8.RDS-SLAM
采用ORB3作为原框架,不用等待语义线程的信息就可以实现跟踪线程。
关键帧选择策略:只对部分关键帧进行语义分割,然后识别地图中的动态点(使用了地图中每个点的移动概率),这样使用了一种语义延时的方法来判断每一帧的动态物体,只用静态点去做位姿估计。
9.VDO-SLAM
多视图几何+动态物体的运动估计。
贡献:1.提出了一种新奇的动态场景建模表示,和DynaSLAM2比较相似。2.基于光流的联合优化(相机的位姿估计和运动物体的位姿估计)。