SLAM
技术在计算机视觉和机器人领域中占有重要地位。传统的SLAM
框架都将环境假定为静态环境,对于在大规模的动态环境下,它们大多难以获得较好的性能,系统的准确性、快速性仍需加强.这也是SLAM目前的软肋之一.
如何应对动态环境是一个非常重要而又备受关注的问题.现有的面向动态场景的SLAM
系统要么只利用 语义信息,要么只利用 几何信息,要么以 松耦合 的方式天真地组合它们的结果.
动态环境有一些可以自主移动的目标,如人、动物、车辆等.目前大多数的视觉SLAM
系统都可以在静态环境中获取特定的姿态和地图.但在具有动态对象的场景中,其定位和映射能力较弱.因为移动的物体会极大地干扰结构和定位.在ORB_SLAM
的情况下,不可能确定特征点来自静态还是动态对象.由于来自动态对象的特征点在环境中不断移动,必然会对定位和映射造成干扰.近年来,一些可视化SLAM
解决方案与语义网络相结合,取得了很好的效果.
近年来,由于深度学习的火热,一些研究集中在语义信息
与视觉SLAM
的结合上,这一方向也慢慢与传统SLAM
相融合.
在传统视觉SLAM
中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配,后端则主要是滤波与非线性优化算法.
最基本的SLAM问题:
当知道运动测量的读数u
以及传感器的读数z
时,如何求解定位问题(估计x
)和建图问题(估计y
)?
典型视觉SLAM
算法以估计摄像机位姿为主要目标,通过多视几何理论来重构3D地图.为提高数据处理速度,部分视觉SLAM
算法是首先提取稀疏的图像特征,通过特征点之间的匹配实现帧间估计和闭环检测,如基于SIFT
特征的视觉SLAM
和基于ORB
特征的视觉.SIFT
和ORB
特征凭借其较好的鲁棒性和较优的区分能力以及快速的处理速度,在视觉SLAM
领域受到广泛应用.
但是,人工设计的稀疏图像特征当前有很多局限性,一方面如何设计稀疏图像特征最优地表示图像信息依然是计算机视觉领域未解决的重要问题,另一方面稀疏图像特征在应对光照变化、动态目标运动、摄像机参数改变以及缺少纹理或纹理单一的环境等方面依然有较多挑战.面对这些问题,在视觉SLAM
领域近年出现了以深度学习技术为代表的层次化图像特征提取方法,并成功应用于SLAM
帧间估计和闭环检测.深度学习算法是当前计算机视觉领域主流的识别算法,其依赖多层神经网络学习图像的层次化特征表示,与传统识别方法相比,可以实现更高的识别准确率.同时,深度学习还可以将图像与语义进行关联,与SLAM
技术结合生成环境的语义地图,构建环境的语义知识库,供机器人进行认知与任务推理,提高机器人服务能力和人机交互的智能性.
视觉SLAM结合其它应用
视觉与惯性测量单元(IMU)融合(VI-SLAM):
早期的VI-SLAM
,例如MSCKF
,是基于EKF
,EKF
是一种基于概率模型的状态和参数的估计方法,通常用于解决非线性系统模型的估计问题.EKF
是对标准Kalman
滤波进行扩展,用Taylor
级数展开的一阶项来近似非线性的方程,从而运用Kalman
滤波对系统状态进行递归估计,以测量误差为依据进行估计和校正,不断逼近真实值(就是EKF
对非线性系统线性化,之后再利用卡尔曼滤波进行线性系统的估计)的VIO
方法.
近年来,Leutenegger
等人提出了OKVIS
系统,该系统采用非线性优化来提高精度,适用于立体相机.
Bowman
等人提出共同解决度量性问题,利用对象识别来将度量和语义信息紧密地结合在传感器状态和映射估计中.除了提供对场景的有意义的解释之外,带有语义标记的地标地址还解决了两个关键的几何SLAM问题:数据关联(匹配传感器观测到地图地标性)和循环关闭(识别前访问的地点).
VINS-Mono
是Qin
等人提出的另一种基于非线性优化的VIO
算法.这种融合方法使用IMU
来测量角速度和加速度.虽然存在漂移,但IMU
可以在较短的时间内为快速运动提供合理的估计.摄像机数据几乎不漂移,因此IMU
的读数也可以修正.与视觉冲击相比,激光冲击的提出更早,技术更成熟.
视觉与激光雷达融合(VL-SLAM):
大多数较老的激光SLAM
方案都是基于Hector SLAM
和GMapping
等滤波方法.然后利用图形优化的方法对一些方案进行改进,如Karto SLAM
.Cartographer Kaijaluoto
等人比较了Hector slam、GMapping、Karto slam
三种激光打击方法,并详细分析了它们的优缺点.激光打击精度高,抗干扰能力强,但没有视觉带来的语义信息.
近年来,一些解决方案将摄像机与激光雷达相结合以获得更好的结果.Zhang
等人提出了一种快速移动速度和强烈光照改变时性能更好的实时方法.Wang
等人提出利用激光测距来校正视觉的尺度漂移.
视觉与编码器融合(VE-SLAM):
关于VE-SLAM
的研究相对较少.该视觉SLAM
方案在轮式机器人应用中具有良好的鲁棒性和实时性.RTAB-MAP
和DREAM-SLAM
利用了这种融合方法.通常情况下,移动机器人是在一个平面内移动的,而IMU
有时会失去它的功能.因此,视觉与编码器的融合比视觉与IMU
的融合具有更好的性能.
介绍这么多,下面就说一下今天的主角:语义SLAM
语义SLAM
语义SLAM
是指SLAM
系统在建图过程中不仅获得环境中的几何结构信息,同时可以识别环境中独立个体,获取其位置、姿态和功能属性等语义信息,以应对复杂场景及完成更加智能的服务任务的SLAM
系统.
基本框架
目标检测=类别+位置
语义分割=物体轮廓
实例分割=类别+位置+物体轮廓
优势
- 传统
SLAM
方法以静态环境假设为前提,而语义SLAM
可以预知物体(人、汽车、动物等)的可移动属性 - 语义SLAM中的相似物体知识表示可以共享,通过维护共享知识库提高
SLAM
系统的可扩展性和存储效率
语义SLAM
可实现智能路径规划,如机器人可以搬动路径中的可移动物体等实现路径更优.
语义SLAM
的关键在于对环境中物体目标的精准识别,而近年兴起的深度学习技术恰好是当前最具潜力和优势的物体识别方法,因此深度学习和语SLAM的结合受到领域内研究者的广泛关注.地图的语义生成与SLAM
过程是可以相互促进的两部分.一方面精确的地图构建有利于目标模型的学习和分类,另一方面目标的精确识别和分类有利于地图的精确构建,如精准的闭环检测等,因此两者是相辅相成的.语义信息生成的挑战在于精确的物体目标级别或像素级别的分类.
SLAM
和语义的结合点主要有两个方面:
语义帮助SLAM
传统的物体识别、分割算法往往只考虑一幅图,而在SLAM
中我们拥有一台移动的相机.如果我们把运动过程中的图片都带上物体标签,就能得到一个带有标签的地图.另外,物体信息亦可为回环检测、BA 优化带来更多的条件.
SLAM帮助语义
物体识别和分割都需要大量的训练数据.要让分类器识别各个角度的物体,需要从不同视角采集该物体的数据,然后进行人工标定,非常辛苦.而SLAM
中,由于我们可以估计相机的运动,可以自动地计算物体在图像中的位置,节省人工标定的成本.如果有自动生成的带高质量标注的样本数据,能够很大程度上加速分类器的训练过程.
语义结合SLAM
将语义信息集成到系统中,语义信息有两种方式与视觉SLAM
相结合.一种是将语义信息与定位相结合,优化定位的准确性、鲁棒性和实时性.另一种方法是将语义信息与建图相结合.这些方法大多采用三维重建技术,其目的是完成语义图的构建,仅使用摄像机作为传感器是不够有效的.
语义信息生成
基于一般方法–特征法:
Wangsiripitak和Murray提出了基于边缘的多面体跟踪来实现动态对象判断。Tan等人将关键帧投影到当前帧进行外观和结构比较,可以检测变化区域。Jaimez等人使用几何聚类将对象分为动态和静态部分。Sun等人提出了一种运动去除方法改善RGB-D在动态环境中,他们也提出了一个背景建模方法部分前景从背景这些方法更加依赖对象的形状和颜色特征和环境中不能有更好的适应性。
识别动态特征检测并处理法:
YOLO将以往目标检测的各个单独步骤集成到一个神经网络中,使得网络基于整个图像的特征(全面地关注图像中的完整图像和所有目标)来预测所有类的所有边界框,实现端到端训练和实时检测的目的.Zhang
等人使用YOLO
来获取语义信息,他们认为总是位于移动对象上的特征是不稳定的,并将其过滤掉.
在特征图上采用卷积神经网络进行预测一系列的默认的边界框的类别以及偏移量;在不同尺度下进行预测,得到具有不同纵横比的结果;实现端到端的训练,在分辨率较低的图像上也能获得较好的结果.检测速度比YOLO
快.Liu
等提出的基于卷积神经网络的单次拍摄多边界框检测(SSD)方法,对关键帧图像生成固定数量的物体建议边界框,并计算每个建议边界框的置信值.Zhong
等人利用对象检测网络SSD
对人、狗、猫、车
等移动对象进行检测.例如,一旦检测到一个人,它就被认为是一个潜在的移动对象,无论它是行走还是站立,所有属于这个区域的特征都会被删除.Xiao
等人使用运行在单独线程中的SSD对象检测网络来获得动态对象的先验知识,然后在跟踪线程中通过选择性跟踪算法处理动态对象的特征,以显著降低姿态估计的误差.
Li
等提出了基于CNN和LSD-SLAM
的单目半稠密3维语义建图构建方法,其过程与McCormac
所提方法类似,但利用LSD-SLAM
代替Elastic Fusion
方法估计摄像机位姿,利用单目相机而非 RGB-D
深度相机和立体相机.其过程分为三部分: 首先选取关键帧估计摄像机位姿,提高处理速度;其次利用DeepLab-v2
中的CNN
架构进行像素级分类,包含亚卷积和亚空间金字塔池化(ASPP)两个核心组件,以扩大滤波范围,融合多尺度特征信息;最后利用贝叶斯升级像素分类概率预测,结合条件随机场(CRF)进行地图正则化,对生成的语义分割地图进行噪声平滑.
通过对图像中每一个像素点进行分类,识别每一个像素点的类别来实现图像的分割,Yu
等人使用SegNet
在一个单独的线程中获得像素性的语义标签.如果将一个特征分割为“person”,那么进一步的移动一致性检查就会使用epi极性几何约束.如果检查结果是动态的,那么所有带有语义标签“person”的特性将被分类为动态和删除.
它是在faster-RCNN
的基础之上来进行改进的,是专门负责做目标检测任务的检测精度与SSD相当.Bescos
等人结合掩模R-CNN
和多景几何的语义分割结果.他们实际上是把这两个结果结合在一起:特征是有蓝色的动力几何的动力,都被认为是动态的.
通过Lucas-Kanade
光流法用一定的阈值检测出移动物体所处的区域,然后剔除移动物体所在区域里的特征点,重新进行特征点匹配,计算相机位姿的精确值.光流,即相同像素在连续两帧之间的位移关联,主要分为稠密光流和稀疏光流.是一种比较常见的稀疏光流跟踪方法,经常与图像金字塔一起使用,可以很好地跟踪物体的运动.
DS-SLAM
:使用语义网络分割动态对象.
Lianos
等人提出了一种可以应用于现有视觉SLAM的视觉语义量测框架.
检测方法是语义光流法.一种基于ORB-SLAM2
的RGB-D
模式的面向动态环境的视觉语义SLAM
系统,是一种紧耦合的方法,能够充分利用隐藏在语义和几何信息中的特征的动态特性,有效合理地去除动态特征.利用语义分割信息来辅助基础几何的计算,而不是简单的结果组合.因此,我们的系统可以更合理和有效地去除动态特征,从而得到更准确的结果.
Xu
等人提出了MID-Fusion
融合系统,该系统使用掩码R-CNN
来寻找语义实例.
RTFNet
将RGB
图像与热图像相结合,在弱光环境下获得更好的性能.
Wang
等人提出了一种自监督学习方法来分离可驾驶区域和道路异常.
Li
等人利用RTAB-MAP
的数据融合方法,结合ORB-SLAM2
的特征提取和匹配算法,提出了一种结合增强语义分割的新系统.一个有效的视觉大满贯系统架构集成不同的传感器数据来定位和地图在复杂环境中语义分割精度提高了增强语义标签随深度值和彩色图像处理修复语义标签是建立在地图上实现语义地图.
总结
语义SLAM
的技术框架,大致为语义提取、SLAM定位与建图两部分,不同的语义SLAM
问题区别在于语义提取的方法、语义信息的应用.语义提取主要体现为图像的处理,对图像进行识别分割,加语义标签,而识别与分割图像的方法目前主要为深度学习方法,比如CNN、R-CNN
等卷积神经网络,网络模型训练的结果也决定着语义SLAM
的最终效果.对于语义信息的应用,主要体现在辅助定位与语义地图,而辅助定位又可以分为SLAM特征提取、回环检测、BA等方面,提高SLAM
本身的定位精度,语义地图主要是构建含语义信息的可用于导航的地图,为机器人层面理解提供丰富的信息.
参考
https://www.cnblogs.com/cx2016/p/11443448.html
https://blog.csdn.net/a1003032404/article/details/104538205