APP下载

基于卷积神经网络的回环检测算法

2022-01-25马社祥

现代电子技术 2022年1期
关键词:回环哈希卷积

李 晓,马社祥,李 啸

(1.天津理工大学 电气电子工程学院,天津 300384;2.天津理工大学 计算机科学与工程学院,天津 300384)

0 引 言

随着现代计算机技术和人工智能的发展,自主移动机器人已成为机器人领域的一个热门和重要的研究方向。同时定位和建图(Simultaneous Localization and Mapping,SLAM)是近年来机器人研究中最活跃的领域之一。机器人在未知环境中运动时,需要在完全未知的条件下创建地图,并利用地图进行自主定位和导航。这个过程被称为SLAM。近年来,SLAM的研究取得了很大的进展,并在室内外各种不同的环境中得到了应用。以相机为传感器的SLAM称为视觉SLAM。在视觉SLAM中,回环检测(Loop Closure Detection,LCD)是非常重要的一部分,它通过识别以前访问过的地方减少累积误差,从而提高地图的准确性。如果检测到回环,通过把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到回环,对其优化,就可以让建图结果更加准确。

在回环检测中有两种常见的方法:基于里程计的方法和基于外观的方法。基于里程计的方法假定里程计足够精确,并通过使用里程表找到最接近当前帧的前一帧,然而由于里程计累积误差不可避免,这一假设并不适用于实际环境。基于外观的方法通常用于视觉SLAM系统中,它直接使用视觉数据,例如机器人拍摄的图像,只考虑观察到的图像,而不考虑与先前估计的轨迹的关系。因此,回环检测可以看作一个相似性比较问题,即比较当前图像与之前图像之间的相似性。

基于外观的方法已经成熟地应用于回环检测之中,并提出了很多图像描述方法,例如词袋模型(Bag of Words,BOW)、Fisher Vector(FV)、局部聚集特征描述符(Vector of Locally Aggregated Descriptors,VLAD),这些算法主要使用了局部图像特征,如ORB(Oriented FAST and Rotated BRIEF)、SIFT(Scale Invariant Feature Transform)。其他算法使用全局图像特征,如GIST(Generalized Search Trees)等。然而这些方法都是基于人工设计的特征,当出现光线等环境变化时,算法的结果会受到影响。

研究表明,深度学习在各种计算机视觉任务中取得了显著的成功。由于深度学习的成功,已被广泛应用于不同领域的几个不同任务中,包括大规模的图像分类、目标检测以及人脸验证等。目前,深度学习已显示出优于人类的性能,成为视觉任务的最新技术解决方案。深度学习在图像识别、分类和理解等计算机研究领域表现出了很强的性能,与传统的人工设计特征不同,深度学习方法从原始的图像中学习特征,更适合于环路闭合检测。目前广泛应用于视觉SLAM回环检测中的深度学习方法主要有两类:一种是对自动编码器进行培训,学习特征表示,并使用相似度或差分矩阵查找回环;另一种是有监督的算法,通过预先训练过的卷积神经网络模型提取图像特征,Sunderhauf等用Image Net数据库训练好的Alex Net网络提取特征,发现经过再训练后的网络在回环检测方面更具有优势,在复杂的光照情况下取得了很好的检测效果。

1 基于深度学习的回环检测算法

为了进一步提高回环检测的准确率以及运行速度,本文提出基于VGG16的卷积神经网络进行视觉SLAM回环检测。采用预训练好的VGG16网络构架进行特征提取。利用该卷积神经网络对数据集进行特征提取,并进行特征向量的相似度计算,判断是否检测到回环。最后验证了该网络对视觉SLAM回环检测的有效性。

1.1 VGG16网络特征提取

VGGNet是由牛津大学计算机视觉组合和Google DeepMind公司研究员一起研发的深度卷积神经网络。该模型参加2014年的Image Net图像分类与定位挑战赛,取得了优异成绩。VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复使用3×3的小型卷积核和2×2的最大池化层,VGGNet成功地构筑了16~19层深的卷积神经网络。在图像分类和目标检测任务中都表现出非常好的结果。在进行图像特征提取时选择不同的算法会直接影响最终回环检测的效果。

本文采用在Image Net数据集上预先训练好的卷积神经网络VGG16进行图像的特征提取,具有良好的特征表述能力与可操作性。VGG16网络的主要构成是5个卷积层(Conv1、Conv2、Conv3、Conv4和Conv5),5个最大池化层(pool1、pool2、pool3、pool4和pool5)以及3个全连接层(fc6、fc7和fc8),一共16层网络结构。整个结构的操作过程是:第一次先经过两次64个卷积核的卷积操作,然后采用一次最大池化操作,接着经过两次128个卷积核的卷积之后,再次池化,然后重复两次三个512个卷积核的卷积后,再池化,最后是经过三个全连接层。它的网络结构如图1所示。

图1 VGG16网络结构

原VGG卷积神经网络的输出结构主要用来进行图像的分类和检索,不适合用于图像特征的表述。网络末端的全连接层丢失位置信息保留语义信息,在整个卷积神经网络中起到“分类器”的作用。而前端的卷积层和池化层等操作则是将原始数据映射到隐层特征空间中,提取局部特征。因此全连接层之前的池化层更加适用于视觉SLAM的回环检测。对于其他网络层,在New college数据集下各个层的特征提取可视化图如图2所示。其中,Conv1和pool1层提取的特征倾向于对图像边缘的检测,过于粗糙不能蕴含图像的全局信息。与浅层次的卷积层和池化层相比,pool5这样层次更深的层对于视觉SLAM的回环检测效果比较突出,最后的全连接层对前面的卷积层和池化层提取到的特征进行融合和分类,主要用于数据集的分类。因此本文选取VGG16网络中末端的池化层作为图像的全局特征表示。

图2 各层特征可视化图

1.2 相似度度量

相似度(Similarity)度量,即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。通过VGG网络进行特征提取后,需要通过判断输入图像特征的相似度进行回环判断,本文利用感知哈希算法判断输出特征的相似度。

由于回环检测是从历史帧的数据中寻找与当前帧匹配的图像信息,这类似于图像检索,因此可以将回环检测问题看作是一个图像检索问题。感知哈希算法(Perceptual Hash Algorithm)是图片搜索算法的一种,它的基本思想是用一个指纹字符串表征一幅图像,然后比较两个字符串之间的汉明距离,汉明距离小的将其匹配。结果越接近,就说明图片越相似。本文主要利用的算法是感知哈希算法中的差异值哈希算法(dHash)。主要思想是通过分别计算两张图片的dHash值,然后根据dHash值计算两张图片的汉明距离(Hamming Distance),最后通过汉明距离的大小判断两张图片的相似程度。

感知哈希算法是一种基于人类对外界事物认知的信息处理理论,能够将相似感知内容的数据集映射为一段独特的数字编码,即哈希码,哈希码是一种较高效的特征量化方法,如将原图像记为,生成的哈希码记为,感知哈希函数记为PH,则PH:→,∈{0,1},就是图像的指纹,可以表征该图像的特征信息。差异值哈希算法的具体步骤如下:

步骤1:缩放图片,将图像缩放为9×8的大小,共有72个像素点。

步骤2:转化为灰度图,把缩放后的图片转化为256阶的灰度图。

步骤3:计算差异值,dHash算法工作在相邻像素之间,这样每行9个像素之间产生了8个不同的差异值,一共8行,产生64个差异值。

步骤4:获得指纹,如果左边的像素比右边的更亮,则记录为1,否则为0。

1.3 判断回环

在进行回环检测处理时,相邻图像帧的特征通常相关性比较大,相似度很高,容易被误判成回环。因此,在寻找回环区域的过程中,需要先进行预处理,设置比较相似度的图像范围。假设是与第帧图像相邻帧的数目,则与第帧图像相似度比较的图像范围应该为第帧到第-帧。本文提出的基于VGG16卷积神经网络的闭环检测方法的流程图如图3所示。对于采集到的第帧图像,首先对其进行减均值、灰度化等预处理,然后将图像输入到VGG16卷积神经网络模型中,提取全连接层之前的池化层输出作为图像的特征描述符,最后将提取到的特征描述符与先前图像的特征向量描述符利用哈希算法比较相似度,若相似度大于设定的阈值,则判断出现闭环区域。回环检测的流程图如图3所示。

图3 判断回环流程图

2 实验结果分析

在本文的实验中,配备双路TITAN XP GPU,IntelXeonCPU E5⁃26650,2.4 GHz×32,62 GB内存,Ubuntu 16.04 LTS操作系统。使用机器学习框架TensorFlow进行VGG16网络的构建。利用GPU的并行计算能力,安装了CUDA 10.0,通过CUDNN加速库加速GPU的计算。软件运行环境是PyCharm,使用Python程序进行卷积神经网络的特征提取和相似度计算。VGG16网络主要使用Image Net数据集的训练权重。

2.1 实验数据集

本文使用的数据集是牛顿大学机器人团队收集的用于视觉SLAM回环检测的New college数据集,如图4所示。其中共2 174张图像,按收集顺序编号。相机安装在云平台上,并在机器人的左右两侧收集图像。每1.5 m触发一次图像收集(基于里程计)。收集图像时车辆处于运动状态,因此机器人在收集左右图像之间行驶了一段距离。

图4 New college数据集在同一位置左右摄像头采集的图像

2.2 回环检测准确性

为了比较基于深度学习的算法和传统算法的不同,采用不同的方法在同一数据集上进行比较。本文通过对比提取局部特征信息的BOW算法和提取全局信息的GIST算法两种传统回环检测算法。另外还比较了基于深度学习的AlexNet网络的回环检测算法和基于Autoencoder的回环检测方法。具体结果如表1所示。

表1 不同算法在数据集上的准确度

由表1可以看出,传统算法和基于深度学习算法在准确度上有很大的不同,基于传统算法人工设计特征的准确度在60%左右,而基于深度学习算法的准确度均在70%以上。本文提出的基于VGG16的算法精度虽然低于AlexNet算法,但是也取得了不错的效果。

2.3 时间性能比较

性能评估的另一个重要标准就是算法的处理时间。在视觉SLAM系统中,为了实现机器人的同时定位和建图,往往要求回环检测的实时性要高,因此本文比较了传统算法和深度学习算法的处理时间,具体如表2所示。

表2 不同算法在数据集上的处理时间

由表2可知,传统算法和基于深度学习算法在时间处理上具有较大的差距,基于深度学习算法的处理时间远远短于传统算法,而本文提出的基于VGG16的回环检测算法相对于传统的ORB⁃SLAM中基于词袋模型的回环检测算法,处理时间减少了68.8%,满足视觉SLAM的实时性要求。

3 结 语

本文采用深度学习的方法,基于卷积神经网络VGG16对原始图像进行特征提取,用于视觉SLAM的回环检测。传统的回环检测算法主要利用人工设计特征,与传统算法相比,基于深度学习的回环检测算法取得了更好的性能,显著提高了检测算法的准确度和速度,并且降低了光线、天气等环境变化时对检测结果不稳定的影响。深度学习和视觉SLAM的结合是当下研究的热点,卷积神经网络这个强大的网络结构在计算机视觉领域取得了非常大的成功。本文只使用了VGG16的预训练模型进行特征提取,下一步的工作将研究是否可以训练一个更适用于回环检测的模型,并且将深度学习应用于实时的视觉SLAM系统中。

猜你喜欢

回环哈希卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
嘟嘟闯关记
从滤波器理解卷积
透 月
基于傅里叶域卷积表示的目标跟踪算法
基于OpenCV与均值哈希算法的人脸相似识别系统
基于维度分解的哈希多维快速流分类算法
学习“骑撑前回环”动作的常见心理问题分析及对策
一种基于卷积神经网络的性别识别方法
基于同态哈希函数的云数据完整性验证算法