移动机器人视觉目标检测与跟踪方法研究综述
2022-04-07刘文汇唐寒冰
刘文汇, 巢 渊, 唐寒冰, 徐 鹏
(江苏理工学院,江苏 常州 213000)
0 引言
当前移动机器人市场发展迅速,随着移动机器人被应用于各个领域,给社会带来极大便利的同时也不断被扩充更高级的任务功能。能够实时、准确地检测与跟踪感兴趣的目标,是移动机器人实现智能化的一个重要性能。到目前为止,移动机器人的跟踪技术主要有雷达跟踪、视觉跟踪和多传感器融合跟踪3种。其中,雷达跟踪技术应用最为广泛,但雷达跟踪难以判定被测物体类别和几何形状,难以在复杂场景中实现稳定跟踪,且雷达元件成本较高;多传感器融合跟踪可获取特征丰富,是一种较为稳定的跟踪方法,但坐标配准难度较高,成本也较高;视觉跟踪相较于其他技术,拥有对跟踪物体类别更好的识别率,且视觉传感器价格较低,但该技术涉及较大的计算量,限制了其在移动机器人领域的应用。近年来,随着计算机技术的飞速发展,基于机器视觉的移动机器人实时目标检测与跟踪技术成为研究的热点[1-2]。目标检测将目标的分割和识别任务合二为一,又被称为目标提取。精确的目标检测决定了后续跟踪系统的精度和效率[3]。目标跟踪是根据目标的初始状态,通过跟踪算法对该目标的空间轨迹进行预测的过程。近年来,目标跟踪算法取得了一些实质性的进展。目前,基于视觉的目标检测与跟踪方法的研究对移动机器人、智能监控、无人驾驶和现代化军事等领域的发展起到了至关重要的作用[4],其主要应用如下:服务机器人,如完成重复检验、卫生清扫、核电厂作业、油漆喷涂等;智能监控,如车辆检测、车辆计数、行人识别、犯罪预防、老幼看护等;无人驾驶,如车道线检测、自主导航、车辆测速、障碍物检测与避让等;现代化军事,如地形识别、伤员搜救、目标精确打击、飞机跟踪、排雷排爆等。
1 移动机器人目标检测与跟踪任务及难点
早期研究中的机器人视觉目标跟踪,通常通过目标检测算法定位并标记目标,以此控制机器人运动并将目标保持在机器人视野中,即感兴趣范围内。此类方法忽略了目标本体的移动及变化,因此鲁棒性较差。在检测到目标后加入跟踪算法,估计其位置,进而控制机器人进行运动跟踪,则可一定程度上改善上述问题。近年来,视觉目标检测与跟踪算法成为移动机器人相关技术中的研究热点,并取得了一些进展,但在实际应用场景中实现移动机器人快速鲁棒跟踪,仍是一个具有挑战性的问题。其难点主要在于光照变化、运动模糊、外观变形、异物遮挡和实时性等。具体描述如下。
1) 光照变化。移动机器人与其他跟踪任务相比光源更不稳定,拍摄位置变化易造成光源强度的变化,而光源强度则直接影响当前帧的曝光程度。如图1(a)所示[5],曝光程度太高或太低都容易造成初始特征的丢失。
2) 运动模糊。如图1(b)所示[6],摄像头运动过程中的抖动或快速的移动都有可能导致运动模糊,丢失目标区域部分特征信息,这种现象在移动机器人跟踪过程中较常见。
3) 外观变形。如图1(c)所示[7],移动机器人跟随目标运动的过程中所跟踪的目标难免会有相对位置的变化,导致某些帧的目标特征与初始帧的提取的特征有较大的角度、形状甚至尺度上的差异,易造成丢失跟踪目标。
4) 异物遮挡。移动机器人跟踪的过程中,视野可能会被遮挡。目标被完全遮挡的情况目前尚无有效的方法可解决,而部分遮挡,如图1(d)所示[8],遮挡物会造成跟踪目标外观局部的缺失,导致目标不完整、不易分辨,易造成跟踪漂移。
图 1 移动机器人目标检测与跟踪任务的难点Fig.1 Difficulties in target detection andtracking of mobile robot
5) 除了以上难点外,移动机器人搭载的目标检测与跟踪算法的实时性也是移动机器人实时准确执行跟踪任务的最重要因素。如文献[9]改进光流法设计了一套远距离运动车辆快速跟踪与定位系统,但在应对车速过快的情况时会产生跟踪不稳定的情况,算法的效率还存在改进空间。文献[10]基于深度学习框架和短周期核相关滤波(Kernelized Correlation Filters,KCF)目标跟踪算法实现无人机障碍物感知,检测与跟踪算法的实时性直接决定了无人机最终的飞行性能。
2 基于视觉的移动目标检测与跟踪方法框架
基于视觉的移动目标跟踪方法主体框架如图2所示。
图 2 目标跟踪方法主体框架Fig.2 Main frame of target tracking method
移动机器人的跟踪任务中,目标检测是进行目标跟踪的前提,也是部分目标跟踪中更新观测模型的依据,因此,目标检测算法的速度将直接影响到整个框架的效率。基于视觉的移动目标检测与跟踪方法的主要流程为:输入第一帧图像并通过目标检测算法给出初始目标框;在下一帧图像中生成候选框,通过运动模型确定候选区域;通过特征提取算法提取这些候选框的特征,并进行外观建模;根据观测模型计算候选框的置信分数,再判断候选区域是否为目标区域或对多个预测值进行融合得到最优的预测目标;通过模型更新确定外观模型和观测模型的更新策略。移动机器人通过以上步骤提供的目标运动信息调整机器人姿态,将目标稳定在摄像头视场中心区域。
目前主流的运动模型生成候选框的方法有概率采样[11]、滑窗[12-13]、循环移位[14-15]3类;模型更新的方式主要有模板更新[16-17]和自适应更新[18-19]2种;特征提取的方式通常分为人工标定目标和目标检测算法检测目标2种;观测模型可分为生成式模型和判别式模型。基于生成式模型的跟踪方法是通过一定的跟踪策略估计运动目标的位置[20-21],而基于判别式模型的跟踪方法则是通过不断进行目标检测来得到运动目标位置[22-25]。
由上述框架可知,目标检测算法是实现移动机器人目标跟踪任务的一个重要组成部分,主要用于初始化特征和跟踪过程中的模型判别,而跟踪算法则是在目标检测算法的基础上,对目标的状态进行连续估计的过程。因此,移动机器人跟踪任务依赖于目标检测算法的特征与跟踪算法的模型。下文将基于机器视觉技术,从目标检测算法和跟踪算法两方面,进行移动机器人目标检测与跟踪方法的比较、分析与总结。
3 目标检测算法
目标检测算法分为传统目标检测算法、基于候选区域的目标检测算法、基于回归的目标检测算法和基于增强学习的目标检测算法。本文将结合特征表达的类型和检测步骤对4大类目标检测算法的优、缺点进行介绍和分析。
3.1 传统目标检测算法
传统目标检测算法有3个核心步骤:首先,采用滑动窗口方式或图像分割技术来生成大量的候选框;然后,对每一个候选框基于人为设计的特征提取图像特征;最后,将这些特征传递给一个分类器用来判断该候选区域的类别。图3为传统目标检测算法流程示意图。
传统目标检测算法主流的分类器有SVM(Support Vector Machines)[26]以及Adaboost和Random Forest[27]等集成分类器。对于不同的检测对象,需要选择对应的图像特征,常用的图像特征有颜色特征、形状特征、梯度特征和模式特征4种。
图 3 传统目标检测算法流程图Fig.3 Flow chart of traditional target detection algorithms
其中,颜色特征主要包括RGB(Red,Green,Blue),HSV(Hue Saturation Value)和Color Names 3种。RGB是最早的颜色模型,其优点是能够较为直观地表达颜色[28-29];HSV的优点是不易受明度变化的影响[30-31];Color Names将RGB颜色细化为11种基本颜色,从而进一步提升其表达能力[32]。颜色特征统计了颜色信息,因此与其他视觉特征相比,其对光照和阴影的变化更敏感。但由于其忽略了目标的结构特性,因此颜色特征在形变和部分遮挡的情况下更加稳定。所以在应用中常将颜色特征与其他特征结合使用,如Color空间不变特征(Color-SIFT)[33]、HSV空间不变特征(HSV-SIFT)[34]、色调直方图不变特征(Hue-SIFT)[35]等算法,在利用颜色特征描述目标的同时,通过融合梯度特征适当地抑制其光照不稳定性。文献[36]以相关滤波的跟踪算法为基础,融合HOG和Color Names特征用于训练一个一维尺度滤波器,该算法可适应一定的尺度变化,提高了跟踪器的鲁棒性。
常见的形状特征有Harris和FAST。Harris算法对图像旋转、光线变化、噪声和视点变换不敏感,但计算复杂度较高,所以实时性较差[37]。FAST算法速度相对于Harris更快,但更易受噪声影响[38]。由于这两种算法对尺度变化较敏感,所以多应用于相机位置固定的场合。如文献[39-40],将Harris与模式特征相结合对目标的角点进行检测与定位,以平衡机器人伺服定位抓取中对定位精度和实时性的要求。
梯度特征是一种局部特征,其核心步骤是通过组合局部区域的梯度方向直方图以描述目标特征。SIFT(Scale Invariant Feature Transform),HOG(Histogram of Oriented Gradient)和DPM(Deformable Part Model)是目前最具代表性的梯度特征。SIFT通过特征点附近的梯度信息对图像中的目标进行描述[41];HOG通过梯度的强度与方向对图像中的目标进行描述[42];DPM算法是基于HOG特征的改进算法,其最大改进为训练不止一个滤波器对目标的不同部分进行描述,该算法的优点是能更好地适应动态物体的变形,进一步提高检测精度[43]。梯度特征具有图像缩放、旋转、光照和仿射不变性等优良性质,目前已成为众多车辆识别、行人识别算法中的重要组成部分。如文献[44]算法通过目标候选区域提取HOG特征得到相应深度图像的局部边缘特征,并训练SVM分类器进行分类,最终实现行人检测。但梯度特征的描述子的维度较大,导致其计算成本也较大。梯度特征的改进算法有PCA(SIFT)和Co HOG(Co-occurrence Histogram of Oriented Gradients)等。PCA-SIFT对梯度特征描述子通过主成分分析法进行降维,以此来减少描述子的维度带来的大量数据,提升了算法的速度[45],Co HOG在HOG的基础上引入了共生矩阵,更加细化地表达了图像的形状信息,进一步提升了算法的精度[46]。
模式特征主要有纹理、粗糙度等特征,代表性的算法包括Gabor变换、LBP(Local Binary Pattern)和Haar等。Gabor变换的核心思想是对图像通过Gabor滤波器进行卷积以得到特征,其模拟了视觉感受野机制,能有效检测对象局部的纹理变化特征[47]。LBP利用像素点与其周围像素的信息进行对比得到一种局部描述,因其较低的计算复杂度和旋转不变性被广泛使用[48]。Haar描述了线性、边缘、中心点以及对角线等特征,其计算方式为将相邻矩形区域的像素和相减,该差值体现了图像的灰度变化情况[49]。模式特征用于描述与图像或图像区域对应的表面属性,所以对于光照变化更鲁棒,但由于其只考虑到对象表面的特性,因此对遮挡敏感,常应用于人脸检测。代表性的VJ(Viola Jone)人脸检测算法就是基于模式特征,其关键步骤为:首先基于Haar特征提取边缘特征、线性特征、圆心环绕特征和特定方向特征,再使用Adaboost算法训练分类器,最后采用滑动窗口进行检测[50]。
综上所述,传统特征表达总结如表1所示。
表1 传统特征表达总结Table 1 Summary of traditional feature representation
传统目标检测算法都不可避免地采用不同尺寸的滑窗遍历整幅图像,此类穷举策略的缺点是产生冗余窗口较多,效率不高,易拉低算法整体的速度和性能。而传统算法的准确性依赖人为设计的特征表达,单一的特征各有其优势与局限性,而要做到对复杂图像特征的精确描述,则需要融合多种特征,以上特点导致传统的目标检测算法依赖经验,泛化能力较差且工作量大。
3.2 基于深度学习的目标检测算法
卷积神经网络(Convolutional Neural Networks,CNN)[51-52]是最具代表性的基于深度学习的算法之一。LECUN等[53]在1989年构建的LeNet首次将卷积神经网络应用于计算机视觉领域。HINTON等于2012年提出了AlexNet[54],也对计算机视觉领域产生了深远影响。近年来,国内外学者对深度学习目标检测算法进行了大量的研究和开发,除传统目标检测算法之外,按照实现方式还有以下3种。
1) 基于候选区域的目标检测算法。最具代表性的有R-CNN(Regions with Convolutional Neural Network Features),Fast R-CNN以及Faster R-CNN。R-CNN的基本流程是:首先通过算法提取候选框,然后通过深度特征对候选框中的目标进行分类,接着对候选区域进行位置回归,最后定位目标并输出分类结果[55]。Fast R-CNN利用自适应尺度池化优化网络结构,相较于R-CNN提高了准确率[56]。
Faster R-CNN构建区域建议网络(Region Proposal Network,RPN)代替了选择性搜索方法,减少了算法的时间开销[57]。文献[58]基于Faster R-CNN提出了一种实时的车辆检测方法,并引入多尺度训练和难负样本挖掘策略,实验采集实际场景中的图像进行测试,结果精度和效率相较于传统算法都取得了较大的进步。总体来说,基于候选区域的目标检测算法进行图像目标检测可以做到较为准确的定位以及识别,不过由于识别过程中仍离不开反复选择候选区域的步骤,所以效率存在瓶颈。文献[59]对Faster R-CNN进行改进,提出了一种视觉感知方法,通过聚类算法划分出图像的关键区域,并利用优化算法对不同区域的候选框进行优化,将其应用于自主驾驶的对象检测,在保证精度的同时也提升了检测效率。
2) 基于回归的目标检测算法。例如YOLO(You Only Look Once)系列算法和SSD(Single Shot Multibox Detector)。其中最先被提出的是YOLO算法[60]:预测时省略了通过滑窗选择候选区域的步骤,直接将整张图像输入网络中,通过深度神经网络进行一次前向传播,在使用非极大值抑制后,直接输出识别对象。SSD则引入多尺度的金字塔结构特征层组融合不同卷积层的特征图,对目标进行分类和定位,其特征表征能力更强,检测精度更高[61]。原始的YOLO算法检测精度不高,随后诞生了YOLOv2,YOLOv3,YOLOv4,YOLOv5等一系列的改进算法,目的是进一步实现检测精度与速度的平衡[62]。YOLO系列算法的优点在于其出色的检测效率,但正是由于省略了通过滑窗选择候选区域的步骤,该类算法的精度低于基于候选区域的目标检测算法,且对画面中的小目标也更容易发生漏检的情况。大量研究人员对其进行改进,通过数据增强、融合特征、引入残差网络、改变网络参数等方式产生效果不错的变体,并将其应用于多目标检测、车辆障碍检测、遥感图像检测和目标跟踪等场景[63-66]。
3) 基于增强学习的目标检测算法。如Q-learning,该算法可以不断地对候选区域边框进行调整,并增设一定的奖励机制判断抓取框的大小变化以及上下左右移动是否有效,再进行识别并最后输出结果,所以这种方法的优点是场景适应性很强而且灵活[67]。但由于要进行主动搜索和多次边框的调整,所以计算较耗时,实时性较差,在实际应用中较少见[68]。
3.3 各类目标检测算法特点
目标检测算法特点见表2。
表2 目标检测算法特点Table 2 Characteristics of target detection algorithms
如表2所示,上述目标检测算法各有优劣。传统的目标检测算法的优点在于易实现,计算复杂度也较低;基于候选区域的目标检测算法精度高,但需要反复进行候选区域的选择,检测速度难免受限制;基于回归的目标检测算法速度虽快,但大小目标同时存在时容易忽略小目标从而影响检测精度;基于增强学习的目标检测算法的特别之处在于能灵活调整候选框以适应目标的变化,但是精度和速度都略逊于另外两种算法。综合考虑移动机器人目标检测与跟踪任务的难点,如何探索更优的特征以及有效地进行特征融合,在保障速度的基础上提高目标检测算法的检测精度,是值得进一步研究的内容。
4 跟踪算法
跟踪算法可分为生成式和判别式两种。生成式跟踪算法多存在于传统跟踪算法中,其跟踪过程中无检测步骤;判别式跟踪算法由于在跟踪过程中增加了目标检测的步骤,取得了更好的效果,也逐渐成为主流的跟踪算法。判别式跟踪算法又可分为基于稀疏表示的跟踪算法、基于相关滤波的跟踪算法和基于深度学习的跟踪算法。本文将按照时间顺序概括4阶段跟踪算法的主要思想和一些典型跟踪算法及其改进算法。
4.1 传统跟踪算法
早期典型的目标跟踪算法主要有光流法、Meanshift和Camshift。光流法早在1950年被提出,SHI等于1994年首次将光流法应用于目标跟踪[69],核心思想为:将当前帧和下一帧的灰度进行比较,以匹配当前帧特征点在下一帧的位置。该算法基于两个基本假设:1) 假设同一物体亮度恒定不变;2) 假设目标只有小距离运动。其优点在于无需了解场景信息就能准确地检测识别运动目标位置;缺点是在实际应用中较难满足其假设的两大条件。Meanshift算法[70]的主要步骤是:首先通过目标检测算法从初始帧中分离目标物体,提取其轮廓,然后收集初始帧中目标物体的信息,反向投影该信息得到反向投影图,再搜索出与目标模板最相似的区域并定位,该算法实现了运动目标的跟踪定位。但对快速运动的目标,还难以实现准确跟踪或会出现目标丢失。Camshift算法[71]则将Meanshift算法从图像扩展到连续图像序列,且将特征描述方式从RGB模型变成HSV模型,能一定程度上解决目标变形和遮挡的问题。文献[72]将Meanshift算法与Kalman滤波器相结合,利用位置和速度信息预测跟踪路径,有效减少了Meanshift算法出现的目标丢失现象。由于此类跟踪算法对系统资源要求不高,且时间复杂度低,所以在移动机器人目标跟踪领域的应用仍较活跃[73-77]。
4.2 基于稀疏表示的跟踪算法
基于稀疏表示的跟踪算法开创性地通过一组过完备字典实现了图像信号的线性表示,再对得到的线性系数进行稀疏性约束,使其系数向量的分量多数为0,其核心思想是将跟踪问题转变成稀疏逼近问题。2009年,CHANG等提出L1Tracker[78],通过目标模板和小模板稀疏表示候选区域,并实时更新目标模板,通过L1正则化的最小二乘法解决稀疏逼近问题,最终与目标模板误差最小的候选区域被认定为跟踪结果。由于L1Tracker算法中小模板的使用,该算法在目标被部分遮挡的情况下也能取得较高的精度,而背景的杂斑问题也通过对稀疏系数的非负约束得到了一定程度的解决。L1Tracker算法鲁棒性好,但L1正则化复杂度高,导致其实时性较差。后人的研究也致力于在保证L1Tracker精度的基础上,提升其运行效率。如文献[79]运用最小误差有界重采样使L1Tracker运行速度加快了4~5倍;文献[80]引入了Haar-like特征及特征块的思想,将正负小模板由单个像素改为像素块,减少了稀疏矩阵的计算量。
4.3 基于相关滤波的跟踪算法
在信号处理领域,常用相关滤波计算两个信号之间的相似度。2010年,BOLME等[81]尝试将相关滤波方法引入到跟踪算法中,使计算从时域转换到频域,减少了运算量,并提出了MOSSE(Minimum Output Sum of Squared Error)算法。其基本思想是:设置一个滤波模板,通过卷积计算后续图像与滤波模板的相似程度,预测目标即是相似度最大的区域。但由于该算法仅采用灰度特征,其跟踪准确率并不高。继MOSSE之后,涌现出了大量的基于相关滤波的方法。如KCF(Kernelized Correlation Filters)算法[82],通过循环矩阵增加负样本数量,优化了分类器;通过将高斯核加入岭回归中,简化了算法,最终得到了更高的精度和效率。在KCF的基础上又发展出了一系列的算法。如:C-COT(Continuous Convolution Operators Tracker)[83],采用VGG-net和立方插值优化了特征表达;采用Hessian矩阵将目标定位精度提升到亚像素级别。ECO(Efficient Convolution Operators)算法[84]以C-COT为基础,利用空间正则化方法或者掩膜矩阵方法处理边界效应,由于采用更大的目标搜索范围,提升了速度,对包含快速移动目标的场景的应对能力更强。
4.4 基于深度学习的跟踪算法
由于在线的目标跟踪缺少可供神经网络学习的大量数据,所以基于深度学习的跟踪算法在早些年的发展较缓慢。得益于迁移学习的研究和发展,近年来,专家学者尝试把大型数据集上预训练的卷积神经网络应用于目标跟踪任务。WANG等[85]在2013年提出了DLT(Deep Learning Tracker),DLT是首个应用深度网络模型的目标跟踪算法,其采用迁移学习的思想,跟踪时通过有限的样本对预训练模型进行微调,结合粒子滤波和基于深度学习的分类器完成跟踪,深度特征对目标运动过程中发生的形变和部分遮挡不敏感,但在多目标且部分重叠的情况下效果不佳;文献[86]对DLT进行了改进,在目标跟踪期间,从跟踪结果和上下文信息中收集在线训练样本,训练样本中包含不同的模糊内核,并在粒子滤波框架中估计对象的运动参数,该算法在模糊的图像中也能鲁棒地跟踪目标,提升了算法的跟踪效果;文献[87]提出TOD(Tracking Object based on Detector of YOLOv3)算法,该算法先用YOLOv3提取目标特征得到候选框,再结合LBP特征和颜色直方图搜索目标邻域实现跟踪,该算法利用了深度特征的优势,取得了较好的性能。
深度学习目标跟踪算法发展至今,已不满足于仅采用深度特征进行分类,而是将深度网络加入到跟踪过程中模拟相关滤波过程。此类深度学习目标跟踪算法一般采用孪生网络结构,代表算法包括:1) SiamFC(Fully-Convolutional Siamese Networks)[88],2016年SiamFC首次将孪生网络结构运用于目标跟踪领域,利用孪生网络学习一个函数,该函数用来计算第一帧目标和后面所有帧采样的匹配度,将匹配度最高的位置视为目标位置,从而将视觉跟踪问题转化为一个相似性判定的问题。且由于缺少网络更新策略,在显卡加速的条件下可以实现很快的跟踪速度,但缺点是丢失目标后很难找回。2) SiamRPN(Region Proposal Network Siamese Networks)[89],SiamRPN在SiamFC算法的跟踪框架的基础上引入了Faster RCNN中的RPN(Region Proposal Network)和bounding box regression模块,利用RPN实现前景和背景快速判别,而bounding box regression模块使跟踪框更加灵活准确。
4.5 各类跟踪算法特点
现阶段各类跟踪算法在特征提取、算法结构以及模型更新等方面都进行大量的研究和改进,使得跟踪算法的性能得到大幅提升,典型跟踪算法总结见表3。
表3 跟踪算法特点总结Table 3 Summary of characteristics of tracking algorithms
然而,这些算法在显著改善相应问题的同时,也带来一些新情况,如算法复杂度增大、运行速度下降,对计算能力要求越来越高等。如何在移动机器人的应用场景中稳定搭载现有的跟踪算法并避免这些问题仍需进一步研究。
5 总结
基于视觉的目标检测与跟踪方法在移动机器人技术研究与发展中有着重要的研究意义与应用价值。本文对基于视觉的目标检测与跟踪算法进行了对比分析与总结。可以看出,对基于视觉的目标检测与跟踪方法的研究已取得很大的进展,但在移动机器人实际应用场景中,在算法特征选择、网络结构优化与更新策略等方面仍有进一步研究的空间。具体描述如下。
1) 针对运动场景中单一特征难以对目标和背景可靠建模的问题,可从特征选择的角度进行改进:如何在避免特征冗余的前提下将互补特征进行融合、如何利用高效的检测器快速获取适合跟踪任务的深度特征、如何将深度特征与传统特征融合运用等都是值得研究的方向。
2) 针对深度学习方法计算成本高等问题,可从网络结构优化的角度进行改进。如提出有效的网络结构压缩方法,优化深度学习方法的算法结构以降低计算成本等。
3) 针对移动机器人跟踪中被跟踪物体先验信息较少且物体易发生形变等问题,可从模型更新策略的角度开展研究,开发出更优秀的模型更新机制,使算法速度和精度都得以提高。