点击“计算机视觉life”关注,置顶更快接收消息!
本文经知乎作者杨小东授权转载,二次转载请联系作者
原文:
https://www.zhihu.com/question/66535904/answer/646903978
我们都知道SLAM有定位和建图两个功能。结合语义信息也是对这两点产生一些影响。此外,也可以去结合SLAM的主要模块去做。
首先说定位问题。定位的要求是:精度;稳健性;实时性。结合语义的目的也应该是提高这三个性能。(可能还有其他性能)
精度
Lianos K N, Schönberger J L, Pollefeys M, et al. VSO: Visual Semantic Odometry[J]. 2018.
稳健性(鲁棒性)对所有的应用都很重要,尤其是自动驾驶这种强安全的应用,一旦定位丢失那结果大家都明白。现在解决稳健问题一般都是采用多传感器融合的方法,所以现在VINS比较火。传统的纯视觉SLAM鲁棒性一般,动态场景、快速运动、纹理缺失、光照变化等场景下都很容易丢失。
引入语义信息也可以提高系统的稳健性。比如在动态场景下面,语义信息可以辅助去掉动态干扰,提供。比如
Xu B, Li W, Tzoumanikas D, et al. MID-Fusion: Octree-based Object-Level Multi-Instance Dynamic SLAM[J]. 2018.
其他的快速运动、纹理缺失、光照变化似乎没有人用语义信息考虑过。
实时性这个的重要性就要看应用了。AR、VR这个要求很高,从拿到图片到出位姿最好能在<20ms就搞定,延迟太长那就没什么体验可言了,严重点就是眩晕感。但是室内慢速运动的机器人100ms的延迟估计也没啥问题。而自动驾驶汽车,高速上120Km/h的速度,100ms的延迟汽车就会跑出去3m多了。
那我们想一下,语义信息能提高实时性吗?现在来看,因为要利用机器、深度学习,估计很难提高,甚至会降低实时性。但也不外乎有巧妙设计的系统可以降低运算时间。
语义信息除了可以用来提高定位性能之外,可能还可以提供更多的定位方式。比如原来我们使用了特征点定位、现在又出现了基于线、面的定位,那可以再抽象一点,基于物体去定位,比如
Fusion++: Volumetric Object-Level SLAM
自动驾驶领域,利用车道线,交通标志等等的定位也可以归为这个范畴。
我们首先要搞明白建图的目的是什么。其中之一就是用来定位,这个问题上面已经说了。地图其他的功能就是为上层应用服务。上层需要什么样的地图,SLAM就应该提供什么样的地图。那问题是上层需要带有语义信息的地图吗?或者说现在paper里构建的语义地图是上层应用需要的吗?比如语义点云、语义栅格、物体级别的地图,这些可以支撑哪些应用?列几个相关的paper
SemanticFusion: Dense 3D Semantic Mapping with Convolutional
Robust Dense Mapping for Large-Scale Dynamic Environments
我想语义应用于建图,要结合实际应用场景、需求去做,可能会有一些特色的成果。想做一个大而全的语义地图出来可能不太现实,也没有必要。
比如自动驾驶里的高精度地图,其实就是添加了很多的语义信息在里面,可以用来支撑汽车的定位、感知等功能需求。
甚至,现在的大部分应用可能需要使用混合地图,栅格、点云、拓扑、语义全部都放在一起使用。
SLAM的标准模块:前端、闭环,后端,闭环也可以归在前端之内。前端与语义的结合,主要用于辅助定位吧。后端与语义的结合可以用来辅助筛选因子图的边、节点之类的。
对于闭环,个人感觉可能有不少工作可以做。最主要的可以进一步提高闭环的准确率、召回率,可以支持多视角的闭环检测,对于光照不敏感,甚至多个季节的场景都可以闭环。具体的,现在基于特征点的方法,在检测回环的时候要求与闭环帧的视角接近。但是如果引入了语义信息,比如物体信息,那可能在各个视角都可以实现闭环。物体的视角不变性比特征点要好的多吧。
从零开始一起学习SLAM | 不推公式,如何真正理解对极约束?
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码
深度学习遇到SLAM | 如何评价基于深度学习的DeepVO,VINet,VidLoc?
新型相机DVS/Event-based camera的发展及应用
觉得有用,给个好看啦~