转:当前语义分割帮助视觉SLAM提高定位准确度,建立语义地图的研究现状如何?

作者:Cedrus
链接:https://www.zhihu.com/question/264578623/answer/284074071
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

最简单的方式,就是跑一个pixel-wise的图像语义分割,再跑一个dense或者semi-dense的SLAM,把前者的结果map到后者的地图上去,每个像素(或者surfel)上做recursive Bayesian update,其实也就是概率累乘。参见Andrew Davison组的SemanticFusion (ICRA'17),代码已开源。

国内学者也有类似的工作,用LSD-SLAM + DeepLab v2,这个是单目的(SemanticFusion是RGB-D)。

这种结合方式,按某些学者的意见都不能称为semantic SLAM,只能叫semantic mapping,因为localization部分跟semantics没关系嘛。

真正的semantic SLAM,语义信息是要能够帮助定位的,比如这篇:Probabilistic data association for semantic slam (ICRA'17)。用object detection的结果作为SLAM前端的输入,跟ORB之类的特征互补提高定位鲁棒性。优点很明显,这下SLAM不会因为你把床收拾了一下就啥都不认识了(视觉特征都变了,但床还是床)。难点是detection结果的data association最好能跟定位联合优化,但前者是个离散问题。这篇文章用EM算法,E步考虑所有可能的association,比较粗暴,但识别物体较少的时候还不错(论文实验里只识别椅子)。

哦,题主问的是语义分割,上面这篇文章没有语义分割。。。map里只有稀稀拉拉的几个物体(位置和类别)。

另外,SLAM也能提升语义理解水平。前面提到的SemanticFusion和类似的工作里,融合了多个视角语义理解结果的3D地图,其中的语义标签准确率高于单帧图像得到的结果,这很容易理解。另外,通过在3D空间引入一些先验信息,比如用CRF对地图做一下diffusion,能进一步提升准确率。但CRF毕竟还是简单粗暴,如果设计更精细的滤波算法,尤其是能从真实数据中学习一些先验的话,应该效果还会更好。这方面的工作还没有。

再提一个,融合优化之后的结果如果反馈给图像语义理解算法做一下fine-tuning,那就是self-supervised learning了。这方面的工作也还没有。

接下来是语义地图怎么用的问题。对上层应用有价值的语义地图,应该包含一个个物体及其模型,而不仅是一堆标记了类别的voxel。一个比较好的例子来自IROS'17:Meaningful Maps With Object-Oriented Semantic Mapping。不过这篇文章里的语义信息来自SSD和非神经网络的分割,还没有用端到端的语义分割网络。

另外,针对动态场景,怎样处理物体移位,怎样区别长效地图和短效地图,怎么“脑补”同类物体,这里面一堆问题可以研究。更别说地图构建出来之后如何做体现空间智能的自然语言交互和任务规划,如何reasoning了,这方面研究目前连影子都没有。

你可能感兴趣的:(转:当前语义分割帮助视觉SLAM提高定位准确度,建立语义地图的研究现状如何?)