王铖 刘中姐 袁新枚 史书恒 李柏毅
(吉林大学,长春 130022)
主题词:智能车自动跟随 目标跟踪 ECO算法 Camshift算法
目标跟踪技术是智能车辆实现自动跟随控制和无人驾驶的核心技术之一,尽管目前大量文献研究了运动目标跟踪算法,但是在车载环境下,各种路况和车况因素引起的摄像头不稳定、光照强度变化、背景干扰等问题导致传统的目标跟踪算法在一定程度上难以适应智能车实际行驶工况下的具体需要。
针对智能车自动驾驶状态下的目标跟踪,国内外学者开展了大量研究:Li 等[1]先用级联分类器进行检测,然后用Camshift算法结合滤波器实现了对目标的跟踪;李志慧等[2]通过在线训练相关滤波器和一维的尺度相关滤波器对尺度进行精细搜索,使算法更适应车载条件下的快速尺度变化;Xuan等[3]结合方向梯度直方图(Histogram of Oriented Gradients,HOG)和支持向量机(Support Vector Machine,SVM)方法进行检测,并通过特征点匹配估计距离,最后使用粒子滤波算法进行跟踪。Henriques 等[4]用HOG 替换单通道灰度特征,并使用核函数对偶相关滤波进行运算,提出了快速且效果良好的核相关滤波(Kernel Correlation Filter,KCF)跟踪算法,但在目标快速运动、目标变形或遮挡等情况下易丢失目标,导致跟踪失败。随着机器学习的发展,Kalal等人[5]提出的单目标长时间跟踪(Tracking Learning Detection,TLD)算法利用检测模块和学习模块进行修正和再学习,提高了跟踪算法的鲁棒性,但存在跟踪模块准确性低产生跟踪漂移、计算量大导致算法运行速度降低等问题,其后的学者相继对TLD 算法进行了改进[6-7]。虽然以上算法为智能车自动跟随目标追踪提供了良好的借鉴,但是在一定程度上无法良好适应由车辆远近光、路灯、建筑物阴影等因素造成的光照变化的影响,目标车辆行驶过程中的形变,以及相似背景和相似车型的干扰。
本文针对自动跟随问题对跟踪算法的具体要求,采用综合Camshift 算法和ECO(Efficient Convolution Operators for Tracking)算法的改进算法作为目标跟踪算法,在传统Camshift算法的基础上引入卡尔曼(Kalman)滤波预测机制,结合卡尔曼滤波的Camshift算法运行速度快,且对目标形变等环境干扰具有一定的鲁棒性,ECO 算法对于模型更新策略的调整可避免相似背景的模型漂移问题,相关滤波的应用有利于排除光强变化的干扰,同时运行2 种算法进行跟踪,利用算法可靠性评价响应状态,建立观测值选择性更新机制获取目标位置,并利用美国目标跟踪基准(Object Tracking Benchmark,OTB)开放测试库进行测试,验证本文提出方法的有效性。
Camshift 跟踪算法是基于Meanshift 跟踪算法的一种改进算法[8]。Camshift 跟踪算法提取出源图像的色调H特征后进行反向投影,在目标图像中用颜色出现的概率代替像素值,得到表示图像颜色概率分布情况的灰度图像[9]。
对反向投影后得到的颜色概率分布图进行迭代运算,直到找到概率分布的极值,确定目标位置[10]。视频当前帧搜索窗口的尺寸和中心位置可以作为下一帧图像进行运算的初始值,算法随着目标大小变化自适应调整搜索窗口的大小、方向和位置,完成目标跟踪[11]。
当系统被外界噪声等因素干扰时,Kalman 滤波会根据前一帧目标的状态对当前帧目标做出预判,实际上是通过线性拟合将两种算法进行融合[12]:
式中,x(t)为目标在t时刻的预测位置;x(t|t-1)为卡尔曼滤波器的预测位置;Y为Camshift 算子的预测位置;α为比例因子,随目标遮挡干扰程度的变化而变化。
本文通过巴氏距离d(H1,H2)对目标是否发生干扰进行判断。设定阈值T=0.45,当d(H1,H2)>T时,目标发生严重干扰,此时引入卡尔曼滤波[13]。d(H1,H2)的求解方式为[12]:
式中,H1、H2分别为第i帧预测模板和目标模板直方图的颜色概率分布数据集;N为直方图不同色调值的总数。
由于结合Kalman 滤波的Camshift 算法只使用色彩特征进行追踪,抗干扰能力较差。为保证智能车目标跟踪的准确性和稳定性,本文同时运行ECO算法。
ECO 算法是基于卷积神经网络(Convolutional Neural Network,CNN)空间梯度计算与HOG特征识别技术,改进于连续卷积算子跟踪器(Continuous Convolution Operator Tracker,C-COT)跟踪算法[14]的滤波特征点跟踪算法,在传统判别相关滤波器(Discriminative Correlation Filter,DCF)的基础上,Martin Danelljan[15]通过改进模型体量、训练集体量和模型更新方式,提高了时间效率和空间效率,大幅降低了计算复杂度,从而提高了跟踪效果。
对于模型体量的下降,ECO 算法提出了一种新的因式分解的卷积操作来减少DCF的参数。新的检测函数为[15]:
式中,f=(f1,f2,…,fc)为多通道卷积滤波器;J{x}为样本x插值特征层函数;P为D×C矩阵,每一行为一个维度的特征对应的C个滤波器的线性组合系数,需要在第1帧中进行学习;PT为线性降维后的矩阵。
在新的目标函数中加入对P的正则化后,通过高斯-牛顿(Guss-Newton)算法优化计算,可将模型大小从D维下降到C维。
对于训练集体量的下降,ECO 算法通过简化样本x和目标输出y的联合概率分布p(x,y)将目标函数进一步完善为[15]:
2.2 按蚊50%吸血率测定 称重法吸血曲线回归分析显示,在0~15 min范围内吸血曲线呈现良好的线性回归性(y=4.6558x-0.7595,R2=0.999 3)。回归方程计算显示,在饥饿处理条件下,按蚊完成50%最大吸血量(34.5%)的时间为7.8 min。
式中,ω为惩罚因子;L为分组数量。
简化后再利用高斯混合模型(Gaussian Mixture Model,GMM)进行建模。训练集从总量M下降到了L分组,减少了计算量,同时增加了样本多样性,使效果得到提升。
对于模型更新方式的改进,将模型更新步长由1帧调整为Ns,以节约时间,避免模型漂移。
由于本文算法同时使用Camshift 算法和ECO 算法提供观测数据和预测数据,在两者差距不可忽略的情况下,会造成目标丢失。本文引入算法可靠性的思想,对两者的数据进行评价与观测值的选择性更新。目标跟踪的检测计算响应是各模板分别响应的综合体现,而不同模板的重要性和准确性不同,因此本文对每个模板进行加权处理,从而保证算法的可靠性。在自动跟随的情况下,不同模板的加权系数由两部分乘积构成,即离心可靠性和连续可靠性。
算法离心可靠性的直接测量是跟随测量值x与屏幕中值x0的代数关系,离心稳定性系数ω1为:
式中,xi为第i帧的测量值;n为当前帧数;S1为设定的离心可靠性阈值。
当(xn-x0)>S1时,将ω1设置为0,认为跟踪失败。
连续可靠性是基于度量测量值的连续性做出的可靠性估计,直观来看,连续性越高,可靠性越强。连续可靠性系数ω2为:
将2算法的可靠性加权系数比较计算后,输出综合数据。当ECO 算法的可靠性加权系数优于Camshift 算法时,输出ECO算法观测结果。
本文的改进算法软件框架图如图1所示。
图1 综合Camshift算法和ECO算法的改进跟踪算法软件框架
为验证本文跟踪算法在智能车目标跟踪上的改进效果,在MATLAB软件平台上,使用美国OTB开放测试库[16]的专业数据对本文改进算法、结合深度学习的TLD算法、传统的KCF算法、基于自适应结构局部稀疏外观模型(Adaptive Structural Local Sparse Appearance Model,ASLA)算法[17]进行对比检测。为使跟踪效果的表达更加简洁,仅给出与TLD 算法的对比结果。其中,结合智能车对目标跟踪跟随的实际要求,选取目标变形(Deformation,DEF)、光照强度变化(Illumination Variation,IV)以及包含特征与颜色相似背景的背景杂波(Background Clutters,BC)片段进行分析。
为了定量分析测试结果,本文对采用标准一遍过评估(One-Pass Evaluation,OPE)以及通过打乱时间和空间得到的时间稳健性评估(Temporal Robustness Evaluation,TRE)和空间稳健性评估(Spatial Robustness Evaluation,SRE)3 种评估方法得到的中心像素阈值误差-准确率曲线、重合率得分阈值-成功率曲线进行对比分析。
算法准确率由中心像素误差(跟踪算法估计的目标位置中心点与人工标注的目标中心点的距离)小于给定阈值的视频帧的百分比来表征。阈值越小,准确率越高,跟踪算法的中心精度越高。
重合率得分为:
式中,CT为跟踪目标真实的矩形框;CF为跟踪算法计算得到的矩形框;k(CT∩CF)、k(CT∪CF)为相应区域的像素数目。
当某一帧的重合率得分大于设定的阈值时,该帧为成功帧,总的成功帧占所有帧的百分比即为成功率。成功率越高,跟踪算法对目标尺寸变化和形变的适应性越强。
分别选取OTB 开放测试库中包含目标变形属性、光照强度变化属性以及包含特征与颜色相似背景的背景杂波属性的测试序列对算法进行测试。跟踪效果如图2所示,成功率与准确率曲线如图3所示。
图2 不同算法跟踪效果
由图2 和图3 可知:本文算法既可以满足目标跟踪过程中智能车位置变化以及路况所引起的目标形变而提出的稳定性要求,又能解决智能车自动跟随时面临的光照强度不规律变化的问题;同时,本文算法在一定程度上改善了因背景相似引起跟踪目标改变导致跟踪失败的问题,且在较为恶劣的环境下,仍然具有一定的可靠性。由此,本算法有效提高了目标跟踪的准确性和稳定性。
在某视频序列中,每个跟踪算法以不同的帧作为起始帧进行追踪,初始化采用的矩形框为对应帧标注的真实数据,对得到的准确率和成功率结果取平均值,得到TRE。由于有些算法对初始化时给定的矩形框比较敏感,而目前测评用的真实数据均为人工标注数据,因此可能会对某些跟踪算法产生影响。为评估上述跟踪算法是否对初始化敏感,将真实数据进行微小平移和伸缩来产生矩形框。平移的幅度为目标物体面积的10%,尺度变化范围为真实数据的80%~120%,以每10百分点依次增加。最后取结果的平均值作为SRE。本文通过对比TRE和SRE的整体性,对算法鲁棒性进行评估。
图3 不同算法跟踪成功率与准确率
在智能车正常运动跟踪的情况下,对OTB 开放测试库中的运动车辆序列进行整体性分析。OPE、TRE和SRE 评估方法的目标跟踪成功率与准确率曲线如图4所示。由图4可知,尽管算法的成功率和准确性均略有下降,但本文改进算法的各项数据均高于其他3 种算法,因此,本文算法具有较强的鲁棒性。
图4 不同情况下各算法鲁棒性定量分析结果
本文针对智能车对行人或前方车辆等目标进行自动跟踪跟随时,易受环境噪声、相似背景和光照变化等因素影响而导致目标丢失的问题,提出了一种综合Camshift算法和ECO算法的改进目标跟踪算法,利用国际公开测试库将本文算法与传统的KCF算法、TLD算法和ASLA 算法进行试验对比,结果表明,改进算法在目标变形、光照强度改变以及特征与颜色相似背景条件下具有较好的鲁棒性和测试性能。此外,该算法可以通过与深度学习更为紧密的结合,进一步提高跟踪精度。