视觉SLAM在动态场景下的图像处理方法探讨

2021-07-27 09:33王美洁
南北桥 2021年19期

王美洁

【摘    要】现阶段,科学技术不断发展,移动机器人应用日渐广泛,某些环境下,一些导航系统及惯性测试单元会受到一定限制,而SLAM的出新则很好地解决了这一问题。在机器人导航中如何更好地应用SLAM已经成为社会关注的一个重点。基于此,本文对视觉SLAM国外研究情况进行分析,阐述视觉SLAM的关键技术,提出视觉SLAM在动态场景下的图像处理方法,以供参考。

【关键词】视觉SLAM  动态场景  图像处理方法

中图分类号:G4      文献标识码:A DOI:10.3969/j.issn.1672-0407.2021.19.006

人工智能环境的到来,为机器人产业发展带来了良好契机,对人们生产、生活带来了较大影响,如扫地机器人的出现等。对于移动机器人而言,若想保证移动的可控性,应将重点放在“建立地图”以及“定位”上,简单而言,就是同步定位及地图构建。因为视觉SLAM能够包含更多的信息,并且更加符合人类的直观感受,逐渐受到研究人员的关注,本文就视觉SLAM在动态场景下的图像处理方法进行探讨,具体如下。

一、视觉SLAM国外研究情况

SLAM表示的是同时定位于构建地图,属于搭载特定出传感器的主体,在不具备环境先验信息的條件下,在运动过程中进行环境模型的建立,并且对自身运动进行估计。对于SLAM而言,其主要的目的是解决两个问题:问题一,定位问题;问题二,地图构建问题。[1]不仅要对传感器自身位置进行估计,还应进行周围环境模型的建立。而视觉SLAM,则是将视觉传感器作为中心的SLAM。例如无人车或机器人,将其放置到一个小区中,其不了解小区中车位、建筑以及道路等分布情况,需要事先进行观察,了解建筑、道路、车位等具体分布情况,随后还应明确自身在小区中所处的位置。小车是主体,而传感器则为小车的眼睛,因为小车没有事先知晓环境情况,因此小车没有来过属于环境的先验信息。在视觉SLAM研究上,国外主要进行了基于特征点视觉SLAM以及直接视觉SLAM研究。

(一)基于特征点的视觉SLAM

在这一方面发展中主要经历了三个阶段。首先,滤波器阶段。在该阶段中,主要应用的是例子滤波、无迹卡尔曼滤波(UKF)以及卡曼滤波(EKF)。其次,关键帧阶段。在此阶段中,根据线程划分整个SLAM系统,将其分为定位、建图以及闭环检测,其属于当前主流框架。最后,RGD阶段。[2]微软不断发展中,推出了RGBD相机,其能够得到图像的深度信息,并且还会对三维重建过程进行简化。一些研究人员在室内环境中使用RGBD相机进行了三维重建,从彩色图像中进行了SIFT特征提取,同时在深度图像上获得相应的深度信息。在RNSAC方法的应用下匹配3-D特征点,对其刚体运动变换进行计算,获得结果后,将其作为ICP初始值,最终得到更准确的位姿情况。

(二)直接的视觉SLAM

对于直接视觉SLAM而言,其属于直接立足像素点强度实施相关操作,无需提取特征点,这种方法的应用会对图像中的全部信息进行利用,[3]并且能够提供更多的环境几何信息,为地图后续使用提供便利,即便是环境中存在的特征较少,也能获得较高的鲁棒性以及准确性。为保证构建的三维环境地图更加稠密,较多研究这进行了大量研究,一些研究人员提出了LSD-SLAM算法,这种方法可以准确的估计出相机位姿,并且还能进行大规模三维环境地图的创建。一些研究人员提出了RGB_D SLAM方法,在这种方法下,与像素点深度误差以及强度误差相结合获得误差函数,利用最小化代价函数,最终获得最优相机位置,通过g2o实现了这一过程,同时还提出了基于熵的闭环检与关键帧提取方法,有效减少了路径误差。

经过多年的研究与发展,当前在视觉SLAM上已经获得较多标志性的研究成果。一些研究人员提出了MonoSLAM,其属于基于EKF方法的单目SLAM,可进行实时监测,不过未能对漂移实际情况进行确定,基于概率框架下能够实现稀疏地图的在线创建。一些研究人员研究出了直接法下的单目SLAM算法,在这种方法下,可以在帧率整幅图像对准下得到相应自由度位姿,在GPU上能够获得实时的效果。一些人员提出了多线程处理SLAM的算法,将建图与跟踪作为两个单独任务,同时在两个平行线程上分别实施处理。一些研究人员提出一种可以在GPU上进行稠密三维地图实时构建的算法,这种方法可以通过Kinect相机进行深度信息的获取,并对传感器位姿进行计算,最终实施环境3D地图模型的精确构建。一些研究人员提出了较为完整的关键帧单目SLAM算法,这种方法下是对整个系统进行线程划分,包括追踪、地图创建以及闭环控制。基于ORB特征下进行特征提取与匹配,并且实施位置识别以及创建稀疏地图,这种方法具备较高的定位精确度,能够实时运行。

二、视觉SLAM的关键技术

现阶段,视觉SLAM技术应用环节主要会涉及四个构成部分,一是视觉里程计,二是后端优化,三是回环检测,四是构图。以上几个构成部分相对独立却又相互联系,各部分均存在独立的理论体系。

(一)前端视觉里程计

对于前端视觉里程计而言,其主要是具备与“里程计”相似的功能,初步定位及构图是该部分的核心功能,初步处理机器人相机采集到的图像,属于视觉SLAM技术的初步工作。存在两种不同的图像处理方式,一种为直接法,另一种为间接法。其中直接法表示的是获得相机采集的图像后会直接在像素层面上予以求解,结合选取的实际像素量,可以用稀疏直接法、半稠密直接法以及稠密直接法。[4]其中稀疏直接法计算量最少,定位及构图精确度最低,半稠密直接法次之,稠密直接法计算量最多,获得的定位及构图精度也越高。所以实际使用环节,应与应用场合相结合,进行求解方案的科学选择。不过需要注意的是,直接法涉及不到图像处理层面的操作,而是直接进行求解。

而间接法又被称为特征点法,简单而言就是提取图像中的特征点,匹配两帧图像中的特征,获得相同的特征,随后在也正匹配好后求解位姿。从中可以看出,在特征点法应用过程中,能够有效解决两个问题,一是位姿,二是特征匹配。直接法中则涉及不到特征匹配。特征匹配具备的是进行图像处理,在现阶段,存在较多图像处理算法,适用于视觉SLAM技术中的算法,主要应满足以下要求:第一,可进行大部分场景图像特征的提取。第二,可实现大量图像特征匹配。第三,具备实时性特点。由于特征点法视觉里程计主要内容是特征提取及匹配,所以前两个要求是必须满足的,在后一要求的满足上应用较为广泛的为ORB算法SURF算法以及FAST算法。

(二)后端优化

后端与前端属于相对应的关系,可以认为前端里程计是粗算,后端工作则为细算,所以后端的主要工作是优化前端里程计的构图计定位。在具体求解环节,同里程计相比,后端优化会用到更多的数据集,这属于优化的核心所在。机器人在不断移动下其所处环境会不断变化,前端里程计求解环节,误差也会不断积累,最终得到的构图与定位可能与实际存在较大差异。所以在视觉SLAM技术中,后端优化不可获取。在现阶段,后端优化方面应用较为广泛的是基于光束法平差(BA)的图优化算法;扩展卡尔曼滤波(EKF)算法,其中EKF算法在SLAM技术早期应用较多,而近年来图优化算法应用逐渐广泛。

(三)回环检测

基于理论视角下进行分析,机器人两次达到同一地点,两次经实际计算获得的位姿应该是一致的,地点一致,两次构建出的位姿图应该完全重合。不过实际上里程计与后端优化算法进行位姿求解时,还会存在一定的偏差。[5]因此,当机器人重复经过统一地点时,获得的位姿图也会存在偏移的情况,导致重影情况的出现。回环检测技术的主要作用是解决重影问题,在视觉SLAM技术应用环节,通過两个不同阶段关键帧的相似度对比,若其相似度高于某一阀值,则说明检测到回环。词袋模型是应用较为广泛的回环检测方式,这种模型的主要思想是进行词典构建,所有帧的图像特征均为其中的“单词”,而回环检测就是对词典进行快速查询,如果发现两个单词高度相似,则实现了回环检测。

(四)构图

所谓构图,实际上就是对求解获得的数据实施后处理。在不同的机器人应用场合与功能下,构建形成的整体图像类型也存在较大差异。如导航机器人与避障机器人,两者存在不同的图像特点。需要注意构图只是针对以上三个步骤的计算结果,不具备复杂的算法层面,但在应用层面上却发挥着较为重要的价值。

三、动态场景下视觉SLAM的图像处理方法

为了更好地探究动态场景下视觉SLAM技术的图像处理方法,本文将语义分割算法引入到了ORB-SLAM2处理动态环境中,结合帧间人身ORB特征点的变化情况对人所处状态进行判断。语义分割中人的类别会被作为动态物体剔除特征点,从而保证人的运动不会被所建立的地图所干扰。

(一)ORB-SLAM2算法

对于ORB-SLAM2算法而言,其主要是由全局BA优化线程以及3个平行线程组成。其中这3个平行线程表示的是闭环检测线程、局部建图线程以及跟踪线程。跟踪线程主要是提取相机收集到各帧数据的ORB特征,利用局部地图以及相机位姿跟踪,最终得到局部地图,将其与当前帧进行匹配。[6]通过进行投影误差的最小化处理,对位姿进行优化,从而对是否生成关键帧进行判断。对于局部建图线程而言,主要是处理上一线程获得的新关键帧,将地图中低质量点剔除。利用三角化方法对共视程度较高的关键帧地图点进行恢复,并对当前关键帧与相邻帧存在的重复地图点进行检查,融合地图点。选择局部BA优化的方式进行当前相连地图点与关键帧优化,将剩余关键帧剔除。闭环探测与闭环校正共同组成闭环检测线程,通过实际计算得到当前帧与相连关键帧词袋模型的最低得分,对当前关键帧是否产生闭环进行判断,同时还应实施连续性检测,进行相似变换计算。

(二)PSPNet算法

这一算法是通过不同区域上下文池化进行全局上下文信息能力的实现。该算法在实际应用过程中会制定一个输入图像,通过卷积神经网络获得相应特征图,随后特种图会到达金字塔解析模块,并且还会进入到连接层中。金字塔解析模块会对特征图进行处理,并将其实施向上采样,获得最终结果后向连接层中传入,与其中存在的特征图结合,最终得到特征表示,在获得的特征中,不仅包含局部信息,还包含全局上下文信息。通过金字塔池化模块处理得到结果后,将其输入至卷积层中,从而呈现出语义分割预测。

对于金字塔池模块而言,其主要有四种不同尺度的特征。最上层表示全局池,主要进行单个Bin输出的生成。下方存在的其他金字塔,会进行特征图划分,将其变成不同的子区域,分别表示不同的位置。通过金字塔池化模块中的各层次输出,最终获得大小各不相同的特征图。如果金字塔大小为N,为保证全局特征不发生变化,所有金字塔层会通过1X1的卷积层,将上下文维度减小,成为原来的1/N。在低纬度特征图中进行采样,获得的特征与原始特征图大小相同。连接所有层次的特征,最终得到的就是金字塔池化全局特征。向ORB-SLAM2算法以及PSPNet算法中分别输入原始图像,提取ORB-SLAM2跟踪线程中存在的特征点,PSPNet会对图像进行网络分割,最终向ORB-SLAM2中传入。经过这一处理后,人处于分割图形中,属于一个动态对象,ORB-SLAM2会将人身上存在的特征点去除,随后对剩余特征点实施特征匹配,并估计其位姿。

(三)ORB-SLAM2动态场景下的优化

在ORB-SLAM2算法应用过程中会存在目标丢失以及漂移量大等问题,为有效解决这一问题,可以进行语义分割算法与ORB-SLAM2算法的结合。[7]在现阶段,深度学习技术下的语义分割算法中具备较好分割性能的为PSPNet算法,在不断应用中进一步发挥出了语义分割的作用,获得较高的精度。因此,本文语义分割算法选为PSPNet算法。在实际应用过程中,PSPNet会在数据集PASCALVOC2012中进行训练,当前这一数据集属于对语义分割进行衡量的一个标准数据集。会将人作为动态对象,剔除其中存在的特征点,进一步提升动态场景下ORB-SLAM2算法的工作能力,不会受到不良因素的干扰,最终获得更加精准的结果。

综上所述,为有效实现动态场景下SLAM系统中ORB-SLAM2算法功能,可将语义分割算法与ORB-SLAM2算法加以融合,将人作为动态对象,剔除其身上带有的特征点,从而有效提升ORB-SLAM2算法的精准度,避免受到不良因素的干扰,更好地发挥出ORB-SLAM2算法的作用。

参考文献

[1]杨伟婷,李保育,左文斌.基于机器视觉的图像处理方法[J].信息技术与信息化,2021(07):143-145.

[2]吴玲,孙永荣,赵科东.一种自主空中加油视觉导航图像处理方法[J].科学技术与工程,2021,21(20):8552-8557.

[3]牛犇,张栖瑞.基于计算机视觉的数字图像处理方法研究——以梨果检测分级为例[J].信息记录材料,2021,22(05):195-197.

[4]陈紫鹏,李威,卢文超,尹拂晓.基于机器视觉的带钢表面缺陷检测系统中图像处理方法设计研究[J].南方农机,2020,51(22):178-179.

[5]宋子龙,梁经纬,祝志恒,蒋买勇.CCTV视觉图像处理方法在土石坝涵管病害诊断中的应用[J].水利水运工程学报,2019(02):99-103.

[6]许博文,唐朝,张田,李家栋.基于机器视觉检测钢板板形的图像处理方法研究[J].软件工程,2018,21(06):1-3.

[7]文生平,陈志鸿,张施华.基于ARM的视觉导航AGV图像处理方法研究[J].计算机测量与控制,2017,25(12):207-210.