基于ORB的KCF算法对前方车辆跟踪研究
2022-06-27杨昊瑜戴华林
杨昊瑜,戴华林,王 丽*,张 蕊
(1.天津城建大学 计算机与信息工程学院学院,天津 300384;2.天津职业技术师范大学 汽车与交通学院,天津 300222)
0 引言
目标跟踪作为视频安防系统的重要组成部分,在交通监控、无人驾驶、汽车安全、车辆定位等领域均获得广泛应用[1]。但由于汽车移动的不定向、场景的复杂性等因素[2],汽车的跟踪效果不易达到最理想状态。基于灰度匹配的检测方法[3],以空间滑动模板完成图像匹配,应用于目标跟踪具有较高的准确率,但该方法计算量较大,且跟踪结果易受目标旋转变化的影响;基于卡尔曼滤波跟踪车辆[4],对目标状态估计最优,但当目标角度发生变化时存在误匹配的现象;基于TLD的目标跟踪算法[5],是一种稳定的、自适应的跟踪技术,但该算法鲁棒性较差,易将相似物体错判为追踪目标。核相关滤波跟踪(Kernelized Correlation Filter,KCF)方法[6]通过岭回归训练目标检测器进行定位,算法实现简洁,实时性高,但该算法抗遮挡能力较差;基于图像特征匹配的汽车跟踪算法[7]具有一定的抗形变和抗遮挡能力,但匹配精度易受环境因素影响。
基于上述背景,一种快速、高精度的目标跟踪技术成为本文研究的重点。本文将图像特征匹配算法ORB(Oriented Brief)与KCF算法结合应用于前方车辆跟踪,ORB算法最大的优点是速度快,可满足目标跟踪实时性的要求,且图像获取信息量大能明显的体现前方车辆的形状特征,但该算法匹配精度易受外界环境干扰,误匹配特征点较多。本文通过深度学习算法YOLO v3找出输入图像的车辆区域[8],再以改进的FAST和BRIEF检测和描述特征点,并引入双向匹配算法提高算法鲁棒性,提高图像匹配过程中特征点提取的精度,删除因背景杂乱而生成的无匹配相关性的特征点,在延续了传统ORB算法速度快的基础上,图像特征点匹配的准确率也大幅提升。将改进后的ORB结合KCF算法应用于前方车辆跟踪,既满足了车辆跟踪实时性的要求,也一定程度上解决了前方车辆被遮挡时,跟踪易丢失的问题,进一步推动交通事业及汽车自动化领域的发展。
1 YOLO v3算法
YOLO v3算法作为YOLO、YOLO v2算法的后续改良算法,与Faster R-CNN算法相比采用直接回归的思路,实现了端到端的结构,以残差神经网络(Darknet-53)作为图像特征提取层,具有更少的计算量,并利用特征金字塔方法对不同的尺度进行预测。YOLO v3与其他主流检测网络相比,无论是检测速度还是预测精度,均进一步得到提升[9]。引入YOLO v3算法能够较好的弥补ORB图像匹配方法准确率低的不足。
2 ORB特征匹配算法
2.1 FAST检测特征点
ORB以FAST算法对图像特征点进行检测,FAST算法的基本思想是识别图像中独特的点作为图像特征点。参考图1所示,FAST算法判断以像素点P为圆点的圆上16个像素点的亮暗程度,对于给定的阈值t,当达到一定比例的n个连续像素点亮度均强于Ip+t,或均弱于Ip-t,则选取该像素点为关键点。这里设Ip为像素点的亮度,n=12。(n通常取像素点总数的四分之三。)
图1 角点检测模板图
FAST角点检测在计算速度方面占有明显优势,但该算法的特征点检测效果受阈值t的直接影响,将图像整体阈值作用于图像局部,并不一定得到最优解,且当图像中存在噪声点时,检测效果不理想。
2.2 BRIEF特征描述子
ORB通过BRIEF算法将关键点转化为特征向量,BRIEF特征描述子是由Calonder首次提出,其基本思路是随机的从特征点周围选取一组特征点对,以此创建二进制描述子,算法简单且实时性好,取S×S尺寸的邻域窗口Patch的标准为:
其中p(x),p(y)为邻域P在随机点x和y的灰度值。随机选择n对窗口中的随机点(x,y),将结果从低到高位依次生成n位二进制向量,通常选择n=256的向量长度[10],如式(2)所示。
3 本文匹配算法
本文改进的匹配算法首先将输入图像传给YOLO v3网络模型,识别定位图像中所有车辆区域。然后用FAST和BRIEF算子对该区域进行特征点检测和描述,其中在特征点检测的过程中,FAST算法阈值是固定的[11],若设置的阈值太低,将出现虚角点,对检测效率造成影响,若阈值取值太高,则会出现漏检现象[12],本文通过自适应的方法获取阈值,更好的应用于对比度不同的图像特征检测,同时以双向交叉匹配算法来减少误匹配特征点,提高对前方车辆跟踪的准确率。
3.1 YOLO v3目标检测
YOLO v3算法将YOLO v2使用的Darknet-19替换为更深层次的Darknet-53特征提取网络,交替以1×1和3×3的滤波器进行卷积。如表1所示。
表1 YOLO v3网络结构
Darknet-53抑制了梯度弥散现象,降低各残差块数据拟合的复杂性,多尺度融合的检测方法可以更好的对图像中大小不同的目标进行检测。图片经Darknet-53在5次降采样后得到3个不同尺度的特征图,提供深层次的语义信息及目标的位置信息,生成候选区域,预测数据集,最后合并3个特征图确定图像中车辆所在位置区域。
Darknet-53仅利用三个尺度提取图像中车辆的特征,不能充分利用低层特征的细节信息,导致图像许多小目标的位置信息丢失,难以检测小目标。为降低复杂环境下车辆识别的困难性,通过提高网络特征图谱尺寸的方法尽可能多的识别预测图像中的目标个数,将多层卷积和池化步骤后的网格由原7×7变成14×14,扩大后的网格尺寸增加对输入图像中小目标对象的特征提取及识别能力,提高系统的识别准确率。
3.2 改进FAST算法
FAST算法以固定阈值检测特征点效果不理想,本文通过自适应阈值法来初步选择候选点,定义动态图像整体阈值T1,利用最佳直方图熵法得到动态局部阈值T2,以灰度直方图来估计图像灰度值的概率分布,得到更加灵活合理的阈值。以阈值t为像素分界线,S1为步骤2中各小区间前半部分像素的概率分布,S1={P1,P2,P3,...,Pt},S2为后半部分像素的概率分布,S2={Pt+1,Pt+2,Pt+3,...,PL-1},设出现各个灰度级的概率为Pi,则令Pt为:
则可知S1、S2的熵分别为:
故图像的熵等于各小区间内熵S1与S2之和,并将最佳全局阈值T1设置为:
式(6)中TMAX及TMIN分别为图像熵最大化及最小化的灰度级。
采用KSW熵方法易造成图像存在阴影、噪声干扰和背景渐变等情况。故以局部动态阈值T2筛选全图阈值T1得到的候选点。取图像中候选特征点(xo,yo)为中心点且边长为L的矩形,定义T2:
式(7)中Iimin和Iimax分别指在矩形L中最小和最大的n个灰度值,Iiaver为矩形区域中的灰度平均值,经过实验,k值通常范围为2~5。
在完成以上步骤后,计算图像中各特征点在X及Y方向的二阶偏导数,及图像的XY方向的导数,以黑塞矩阵(Hessian Matrix)删除余下的不稳定边缘特征点。如式(8)所示:
按照特征值与曲线的曲率成正比的规律,当θ不大于(r=10),该特征点被保留,否则抛弃该边缘特征点[13]。
3.3 双向匹配算法
引入双向交叉匹配算法使ORB算法获取更加稳点准确的待匹配关键点,提高算法鲁棒性,排除因背景杂乱而生成的无匹配相关性的特征点,在本文角点检测算法的改进基础上结合双向交叉匹配算法删简部分无匹配关系的特征点[14]。基于正向匹配结果,求得待匹配图像中已被匹配的特征点在原图特征匹配点中欧氏距离最短的2个特征点的距离,若最短距离除次短距离得到的数值,小于预定的匹配阈值,则匹配正确。应用于后续车辆跟踪中,当目标存在遮挡时,双向匹配算法可有效减少相似目标的误判,提高对前方车辆跟踪的准确率。
4 基于ORB特征匹配的汽车跟踪算法
目前基于相关滤波器的KCF跟踪算法在跟踪效果及速度方面都有较好的表现,但传统KCF算法在汽车受遮挡时无法准确跟踪。因此,将改进的ORB特征匹配算法与KCF跟踪算法相结合。普通场景下,特征点随机分散在汽车的全局区域内,即特征点的提取位置同样分布在图像的各个区域,因此当前方目标车辆被遮挡或者是本身发生一定形变时,在提取特征点过程中仍会提取一些特征点。仅在前方车辆被检测存在遮挡的情况时,进入丢失重捕阶段,对后续的一帧或几帧图像进行特征提取,通过特征匹配重新找到目标汽车对其继续跟踪,由于提取的特征点具有良好的稳定性,从而达到提高算法速度,保留算法鲁棒性的效果。
算法流程如下:首先输入测试视频,选择要跟踪的前方车辆,然后用KCF跟踪算法进行跟踪;跟踪过程中以该帧目标区的参数置信度为标准判断目标车辆是否存在遮挡,若检测到目标车辆被遮挡,则在当前帧以改进ORB算法提取特征点生成模板特征;然后提取下一帧图像的特征点来匹配模板特征,并通过匹配计算出单个响应矩阵,对前方目标车辆重新定位。若跟踪过程中目标车辆再次被检测从未遮挡到被遮挡,则由生成的新模板特征替换先前的模板特征。
5 结果分析
本文算法实验测试环境:处理器为Intel(R)Core(TM)i5-4200M,主频3.80GHz,内存为10GB,64位Win10系统、Visual Studio 2017和Open CV2.4.13.4。
实验1 在图像匹配点数一致的条件下,将改进后的ORB算法与原算法比较匹配效率。对比表2数据结果,经过改进后的ORB算法在图像匹配中删简了许多无匹配关系的特征点及孤立的非前景特征点,进一步优化了图像特征点提取的性能,尽管在计算选取初始特征点时间复杂度虽有一定增加,但引入双向匹配算法有效减少算法运行时间,还是有了一个相对好的匹配效果。
表2 改进算法前后的数据对比
实验2 为了更直观体现改进ORB算法的性能,利用改进ORB算法处理图片,然后与原算法结果对比,如图2所示。左图可以看出复杂交通环境下ORB算法匹配存在较多误匹配,右图改进算法匹配结果可以看出图像中无关车辆对结果的干扰基本排除,车辆图像匹配效果较好。
图2 原算法与改进算法图像匹配
实验3 为了验证本文算法在复杂场景下对前方车辆跟踪的有效性,实验测试视频于Youtube视频数据集中随机选取,避免了视频的针对性。视频环境相对复杂,包括行人、车辆和其他类型目标。数据集部分图片如图3所示。当前方目标车辆处于复杂环境且存在遮挡问题时,与传统KCF及DSST算法相比较,基于改进ORB的KCF跟踪算法的平均精度和平均成功率均有一定程度的提升。得出3种算法的平均精确度图与平均成功率图,如图4、图5所示。
图3 测试视频截图
图4 平均成功率
图5 平均精度
为进一步分析本文算法性能,在城市各道路自行录制4段视频素材,分别为无遮挡视频,短时遮挡视频,长时遮挡视频及复杂交通环境视频。表3是各同类算法跟踪前方目标车辆的误差对比,实验重复10次以平均值作为最终结果。表4是各算法运行速度对比。结果显示本文算法对前方车辆跟踪估计的准确性最高,当目标车辆存在遮挡情况时与其他算法相比对目标的状态估计性能更优。改进后的算法运算速度略优于原KCF算法,本文算法在前方目标车辆被遮挡时会进行丢失重捕及特征匹配步骤,耗时有所增加但仍满足算法的实时性跟踪要求。
表3 估计误差/像素
表4 运行速度对比/ (帧/s)
6 结语
本文首先针对ORB算法在复杂的图像匹配中准确率低的缺点,引入YOLO v3算法识别图像车辆区域后以再以改进的FAST和BRIEF检测和描述特征点,并引入双向匹配算法提高算法鲁棒性,经改进后的算法删减了大量冗余特征点,且抗噪性能得到增强,并通过与原算法比较,证明改进后的算法仍然具有计算速度快的特点,同时提高了匹配精度,可满足实时性强且环境复杂的跟踪应用要求。
传统KCF算法因跟踪尺度单一,抵抗遮挡能力较差,在目标发生尺度变化或被大面积遮挡时跟踪效果不佳。针对上述问题,将KCF算法与改进后的ORB算法进行有效结合,当前方目标车辆存在遮挡情况时,提取该车辆的特征点,并与视频的后续几帧进行匹配,直到找出目标为止。改进算法跟踪前方目标车辆表现出较好的鲁棒性,提升了跟踪系统的自动识别及目标丢失重捕的能力,实验现象表明较传统算法在车辆抗遮挡方面有很大改善,跟踪效果有显著提高,在复杂的环境背景下具有较好的跟踪精度。
后续研究将针对本文算法对比原算法运行速度无明显优势的问题,通过深度学习等方法继续对特征点提取及匹配进行优化,进一步增强基于特征匹配的跟踪算法的实时性。