本文试图概括Semantic SLAM的主要思路和近年工作,⻓期更新。但因水平有限,若有错漏,感谢指正。(更好的公式显示效果,可关注文章底部的公众号)
Semantic SLAM
简介
至今为止,主流的 SLAM 方案 [[1]](http://webdiis.unizar.es/~rau… 基于处于像素层级的特征点,更具体地,它们往往只能用角点或边缘来提取路标。人类是通过物体在图像中的运动来推测相机的运动,而非特定像素点。
Semantic SLAM 是研究者试图利用物体信息的方案,其在Deep Learning的推动下有了较大的发展,成为了相对独立的分支,就方法(非设备)而言,其在整个SLAM领域所处位置如下图:
目前而言,所谓 Semantic 是将基于神经网络的语义分割、目标检测、实例分割等技术用于 SLAM 中,多用于特征点选取、相机位姿估计,更广泛地说,端到端的图像到位姿、从分割结果建标记点云、场景识别、提特征、做回环检测等使用了神经网络的方法都可称为 Semantic SLAM [[2]](https://zhuanlan.zhihu.com/p/…。
语义和 SLAM 的结合的体现有以下两点 [[3]](https://book.douban.com/subje…:
- SLAM 帮助语义。
检测和分割任务都需要大量的训练数据,在 SLAM 中,由于我们可以估计相机的运动,那么各个物体在图像中位置的变化也可以被预测出来,产生大量的新数据为语义任务提供更多优化条件,且节省人工标定的成本。
- 语义帮助 SLAM。
一方面,语义分割把运动过程中的每一张图片都带上语义标签,随后传统 SLAM 将带标签的像素映射到3D空间中,就能得到一个带有标签的地图。这提供了高层次的地图,有利于机器人自主理解和人机交互。
另一方面,语义信息亦可为回环检测、Bundle Adjustment 带来更多的优化条件,提高定位精度。
仅实现前者的工作往往称为 Semantic Mapping,后者才认为是真正的 Semantic SLAM。
发展方向
分别从 Semantic Mapping 和 Real Semantic SLAM 两方面,介绍一些主要思路。
Semantic Mapping
这类工作要求特征点是 dense 或 semi-dense 的(否则 Mapping 无意义),因此往往用 RGB-D 的 SLAM 方案,亦或是单目相机的 semi-dense LSD-SLAM 方案 [[4]](https://vision.in.tum.de/rese…。
有两种 Mapping 方式:
- 将2D图像的语义分割结果,即带标签的像素,映射到3D点云中。
研究人员尝试让 SLAM 所得的信息(特别是相机位姿),能够提高语义分割的性能。其中一种是使用 SemanticFusion [[5]](