基于深度估计和特征融合的尺度自适应目标跟踪算法

2021-09-19 13:55何志强李占利
图学学报 2021年4期
关键词:视图尺度滤波

牟 琦,张 寒,何志强,李占利

(1.西安科技大学计算机科学与技术学院,陕西 西安 710054;2.西安科技大学机械工程学院,陕西 西安 710054)

视觉目标跟踪是指根据给定的第1 帧图像中目标的状态,对后续视频帧序列中目标的位置进行估计的过程,被广泛应用到视频监控、智能机器人和人机交互等领域[1-3]。基于相关滤波的目标跟踪方法由于跟踪效率高、精度好等优点被广泛关注,在其基础上改进的目标跟踪算法在跟踪领域占据主导位置[4-7]。

BOLME 等[8]提出的误差最小平方和滤波器(minimum output sum of squared error filter,MOSSE)算法,将相关滤波应用到跟踪领域,通过傅里叶变换把滤波运算转到频域,大幅提高了目标跟踪算法的效率。HENRIQUES 等[9]提出的核循环结构(circulant structure with kernels,CSK)算法将循环矩阵的理论和核方法应用到相关滤波跟踪中,优化目标跟踪算法的运动模型和观测模型,实现了对目标移动更为鲁棒的相关滤波目标跟踪算法。HENRIQUES 等[10]将多通道的方向梯度直方图(histogram of oriented gradient,HOG)特征与CSK框架结合,提出了核相关滤波目标跟踪算法(kernelized correlation filters,KCF),该算法提取目标的HOG 特征对目标建模,大幅提升了相关滤波目标跟踪的准确度。

以上基于相关滤波的目标跟踪算法在简单环境且目标尺度未发生明显变化时,能够快速跟踪目标,得到良好的跟踪效果。但在实际场景中,目标背景通常比较复杂,且目标尺度可能发生较大变化。KCF 算法使用单一特征训练跟踪模板,无法充分地表示目标特征,在复杂场景中鲁棒性低,易受环境的影响;另外,当目标与镜头距离发生较大变化时,KCF 无法根据目标的变化动态调整跟踪边框的尺寸,目标窗口内会存在大量的非目标区域或不能完全包含目标,导致滤波器在后续跟踪中学习到错误特征,所训练出的跟踪模板被污染,无法正确地跟踪目标。针对目标尺度变化问题,文献[11]提出了基于相关滤波的判别型尺度空间算法(discriminative scale space tracking,DSST),通过分别构建一个平移滤波器和一个尺度滤波器实现对目标的尺度自适应跟踪。该算法能对目标尺度进行比较准确地估计,但是当目标尺度变化较大时,算法效率较低。本文针对环境复杂、目标尺度变化而导致跟踪效果不理想的问题,提出了一种基于深度估计和特征融合的尺度自适应目标跟踪算法。当目标与镜头距离发生较大变化时,目标的深度和尺度会同时发生变化,并且二者之间会存在相关关系。基于以上相关关系,本文算法首先通过深度估计网络,建立深度-尺度估计模型,估计目标的尺度,从而在目标尺度发生变化后,能够自适应地调整目标框大小,实现更加鲁棒的目标跟踪。本文算法所采用的左右一致性单目深度估计网络可以直接对视频序列图像估计深度信息,无需深度图像或双目图像序列,因此该算法不受场景和硬件设备的限制,应用场景和经典的相关滤波目标跟踪算法KCF 相同。

另外,在目标跟踪中,利用目标的特征建立目标的外观模型,其直接影响目标跟踪的精度。因此,使用强有力的特征来描述目标对实现准确的目标跟踪非常重要。HOG 特征是通过计算和统计图像局部区域的梯度方向直方图得到的,在图像的局部方格单元上操作,受图像的光照变化和几何形变影响小,但是对目标的姿态、角度的变化十分敏感。颜色(color name,CN)特征是全局特征,描述整个目标不同颜色通道的数量统计,对目标角度的变化、局部形变不敏感,且包含了丰富的场景信息,有利于区分目标与背景。为了更加充分地描述目标,本文将HOG 特征和CN 特征相融合,对目标外观建模,有效地提升了模型的表征能力。

本文提出深度-尺度估计模型,利用目标的深度值估计尺度值,实现尺度自适应目标跟踪。和KCF算法相比,提高了跟踪的准确度;和DSST 算法相比,在尺度变化较大时,跟踪速度更快;在环境复杂、目标移动过程中出现与目标颜色近似的遮挡物时,鲁棒性更好。

1 相关工作

1.1 相关滤波目标跟踪算法

相关滤波目标跟踪算法将信号的相关性理论引入到目标跟踪算法中,对目标模板与待检测区域进行相关计算,将响应结果的最大值点作为目标预测中心点。其主要工作就是训练一个可用于跟踪的相关滤波模板。目标模板与待检测区域的相关运算为

其中,f为待检测区域图像特征;h为相关滤波模板;g为响应输出。为了提高运算效率,通常会进行快速傅里叶变换,在频率域内,将相关计算转化为点乘运算,即

其中,F为待检测区域图像特征经过快速傅里叶变换后的表示;H*为相关滤波模板经过快速傅里叶变换后的复共轭;G为响应输出。在跟踪过程中,通过对待检测区域进行M次采样得到F,然后分别构造高斯响应函数得到G,利用最小化均方误差的方法,训练得到最优的相关滤波模板,目标函数为

最小化式(3),得到相关滤波模板的最优解,即

通过式(4)可以求得第i帧图像中最优的相关滤波模板。为了避免相邻帧之间目标细微差异对目标跟踪的影响,将上一帧相关滤波模板与当前帧得到的相关滤波模板加权求和,得到新的相关滤波模板,即

其中,η为学习率,通常取值0.125。

1.2 深度估计网络

深度图像中的每一个像素值表示场景中像素点和拍摄点的距离。目前主要是利用激光、结构光等在物体表面的反射获取场景深度信息,需要较高的成本。深度估计算法通过图像获取场景深度信息,无需安装深度摄像头,可分为立体视觉方法和单目图像深度估计方法。立体视觉方法需要至少2个位置相对固定的相机同一时间对同一场景进行拍摄,这一条件限制了其应用范围。单目图像深度估计方法只需要一个普通相机,应用场景所受限制更小。

近年来,深度学习在视觉领域表现优异,一些学者开始将深度学习方法应用于目标深度估计问题。

EIGEN 等[12]利用图像的深度信息作为标签训练卷积神经网络(convolutional neural network,CNN),实现对图像深度的估计;此后,在此基础上出现了一些改进的基于监督学习的方法。但是在某些场景下,无法得到精确的深度信息,因此一些学者转向研究无监督的深度学习方法。文献[13]提出了一种基于图像的单目深度估计网络。该方法无需用真实的深度信息作为标签,在训练时使用相对容易获取的左右视图图像训练网络,在测试和应用时仅需要单幅图像便可得到对应的深度图。GOARD 等[14]在文献[13]的基础上进行优化,进一步提高了无监督深度估计网络的性能。

图1 为文献[14]提出的左右一致性单目深度估计网络的结构示意图。

图1 左右一致性单目深度估计网络 Fig.1 Monocular depth estimation network with left-right consistency

算法的思想是用重建图像的方式构建深度估计网络。训练阶段,网络的输入是标定好的双目相机同步采集的图像对,左视图Il,右视图Ir,通过CNN,得到右视差图dr和左视差图dl,分别应用到左视图Il和右视图Ir,可以得到重建后的右视图和左视图。分别计算重建的左视图与原左视图之间的误差以及重建的右视图和原右视图之间的误差,并引入视差平滑误差Cds和左右 视差一致误差Clr,即总误差C=Cap+Cds+Clr,最小化总误差C,得到CNN 的各项参数。测试阶段,将测试集的左视图或右视图输入到训练阶段得到的CNN,网络输出视差d,由双目相机的成像原理可知:D=Bf/d,其中B为2 个相机之间的距离,f为相机焦距,D为图像的深度值。

2 本文算法

2.1 主要思想

当目标与镜头距离发生较大变化时,目标在空间内的深度信息变化与尺度变化之间存在较强的相关关系,尺度值会随深度值的增大而减小。根据这种相关关系,本文算法首先根据不同帧中目标深度值和尺度值的变化关系,建立并训练深度-尺度估计模型,利用该模型对尺度进行估计;然后将得到的尺度值引入到使用特征融合的相关滤波跟踪算法中,在跟踪时,自动调整目标边框尺寸,实现对目标的尺度自适应鲁棒跟踪。

2.2 建立深度-尺度估计模型

本文算法的关键是利用训练数据集建立深度-尺度估计模型,从而通过当前帧目标的深度信息,预测目标尺度值。具体步骤如图2 所示。

图2 深度-尺度估计模型 Fig.2 Depth-scale estimation model

主要步骤如下:

步骤1.利用文献[14]中的左右一致性单目深度估计网络,得到二维图像对应的深度图。

步骤2.提取视频帧序列中每一帧的目标面积size_i和目标中心位置深度值depth_i,其中i为帧序号,1≤i≤N,N为总帧数。考虑到不同目标的长宽比例不同,本文算法中的尺度采用目标面积来表示。深度值depth_i由步骤1 得到。

步骤3.建立深度-尺度估计模型。随着目标深度的逐渐增加,尺度逐渐减小,理论上呈线性关系。由于本文算法中的尺度采用目标面积,因此,采用二次多项式来建立深度-尺度模型,即

其中,k1,k2分别为一次项和二次项系数;k0为常数项;scale为目标的估计尺度值。考虑到不同目标面积有较大不同,使用每一帧的面积除以第1 帧面积,作为该帧的真实尺度值trueScale_i,即

步骤4.训练深度-尺度估计模型,使用最小均方误差作为损失函数,即

其中,f(depth_i)为第i帧目标的尺度估计值;trueScale_i为训练数据集中第i帧目标的真实尺度值。

2.3 尺度自适应目标跟踪

本文提出的尺度自适应目标跟踪算法如图3所示。

图3 尺度自适应目标跟踪算法 Fig.3 Scale-adaptive target tracking algorithm

步骤1.根据视频序列中第1 帧给定的目标中心点坐标X,在其周围采样得到训练样本,分别提 取样本的HOG 特征和CN 特征,2 种特征相加后得到样本的最终特征F;根据训练样本与目标中心点X的距离,生成[0~1]范围的高斯型标签,即预期响应置信图G。使用H=G/F得到相关滤波器模板H。

步骤2.在后续帧中,根据前一帧目标中心点坐标X在当前帧中的位置X',在X'周围采样并提取特征,计算相关滤波器H与样本特征的响应值,响应值最大处即为目标所在位置。

步骤3.使用深度估计网络得到目标的深度值depth_i,再利用深度-尺度估计模型得到目标的尺度值S_i,根据得到的尺度值调整目标框尺寸,实现对目标的尺度自适应跟踪。

为避免深度估计过程中的误差,本文算法使用第1 帧中目标的真实尺度值对估计尺度值进行矫正,即

其中,trueScale_1 为第1 帧中目标的真实尺度,scale_1ʹ为通过深度-尺度模型计算出的第1 帧尺度值;scale_iʹ为通过深度-尺度模型计算出的第i帧尺度值,S_i为矫正后第i帧的估计尺度值。

步骤4.判断当前帧是否为视频序列中的最后一帧,若是,则结束跟踪;否则利用式(5)更新相关滤波器模板H,i加1,并返回至步骤2,对第i+1帧图像进行目标跟踪。

3 实验结果及分析

3.1 实验环境

本文提出的尺度自适应目标跟踪的实验环境见表1。

表1 尺度自适应目标跟踪实验环境配置 Table 1 Experimental environment configuration of scale adaptive target tracking

3.2 数据集与评价指标

3.2.1 数据集介绍

本文采用的数据集为目标跟踪标准数据集OTB-100(Online Object Tracking Benchmark)中的6个序列和作者自建的Girl_S 序列。

OTB-100 数据集是最常用的目标跟踪算法数据集,包含100 个视频序列。每个序列包含img 文件夹和ground-truth 文件,img 文件夹包含该序列连续的RGB 图像;ground-truth 文件包含每一帧RGB图像对应的标定信息,即目标边框的左上角坐标x,y和目标边框的宽、高数据。本文选择跟踪过程中目标尺度发生变化的 Car2,Human2,Girl2,Crossing,Walking 和Walking2 序列作为实验数据集。例如,Car2 序列中包含913 帧连续的图像。序列的目标为一辆在公路上行驶的小轿车,拍摄的相机位于轿车的后方,目标在行驶过程中尺度发生了明显的变化,并且场景的光照也发生了明暗交替的变化。

自建Girl_S 序列拍摄于西安科技大学临潼校区图书馆门前,包含200 帧连续图像序列和每一帧图像的ground-truth 文件。该序列中的目标是身着橙色上衣的学生,在行走过程中目标的尺度发生了明显变化,并且在第108~154 帧中,另一名身着黄色上衣的行人出现,对跟踪目标进行了完全遮挡。

本文使用Car2 序列的前850 帧图像训练深度-尺度估计模型;使用其余6 个序列对深度-尺度估计模型进行了测试。

3.2.2 评价指标

本文使用4 种评价指标对算法进行分析。

(1) 成功率。预测框和标定框二者的交集与并集之间的比值大于等于给定阈值的视频帧数和总帧数的百分比,即

其中,N为视频的总帧数。gt_box_i和pre_box_i分别为第i帧的标定框和预测框;T1 为阈值,常取值0.5;success为成功率。成功率越大,表示跟踪的越准确。

(2) 中心位置误差。预测框中心点坐标与标定框中心点坐标二者之间的欧氏距离,即

其中,1≤i≤N,N为视频的总帧数;Pxgt和Pygt分别为标定框中心点的横、纵坐标;Pxpre和Pypre分别为预测框中心点的横、纵坐标;d_i(Pgt,Ppre)为2 点之间的欧氏距离。

(3) 精度。中心位置误差小于给定阈值的视频帧数和总帧数的百分比,即

其中,precisions(x)为跟踪精度,其值越大,表示精度越高;T2 为阈值,常取值20。

(4) 速度。算法所用时间与视频序列帧数的比值,即平均每秒跟踪的帧数,值越大则跟踪的速度越快。

3.3 实验

3.3.1 深度-尺度估计模型实验

首先,使用左右一致性单目深度估计网络,得到Car2 序列中各帧的深度值。

图4 为Car2 序列中部分帧的RGB 图像和对应的深度图像。图中绿色框标注的是所跟踪的目标,实验中使用的尺度值指绿色框的面积,由ground-truth 文件中的长、宽计算得到;深度值指的是深度图像中绿色框中心位置像素的深度值。

图4 Car2 部分帧的RGB 图像和深度图像 Fig.4 Part of the RGB images and depth images of Car2

图5(a)中的蓝色线为Car2 序列中目标深度值随帧数的变化情况。可以看出,目标移动过程中,目标和镜头的相对位置一直在变化,出现的几个峰值是因为在跟踪过程中目标通过桥梁,光照发生了由亮到暗再到亮的变化,可以将其忽略。图5(b)中的蓝色线为Car2 序列中目标尺度值随帧数变化的情况。可以看出,随着目标与镜头相对距离的改变,目标的尺度逐渐变小,并且趋势明显。图5(a)和(b)中的橙色线分别是对深度值和尺度值平滑拟合后的结果。

图5 目标的变化曲线((a)目标深度值曲线图;(b)目标尺度值曲线图) Fig.5 Variation curves of target ((a) Plot of target depth values;(b) Plot of target scale values)

图6(a)中的蓝色散点的坐标分别是目标的深度值和尺度值,红色曲线是直接对其进行拟合的结果。

为了提高模型的可靠性,本文算法首先对离散的深度值和尺度值分别进行平滑处理,经过平滑处理后的深度值与尺度值的散点图如图6(b)中绿色星形散点所示,红色曲线是对平滑处理后的深度值和尺度值进行拟合的结果,即深度-尺度估计模型。

图6 深度-尺度估计模型((a)未平滑的深度-尺度估计模型;(b)平滑处理后的深度-尺度估计模型) Fig.6 Depth-scale estimation model ((a) Unsmoothed depth-scale estimation model;(b) Smoothed depth-scale estimation model)

3.3.2 尺度自适应跟踪实验

为了客观的验证本文算法的有效性,在除用于训练深度-尺度模型的Car2 序列外的6 个目标尺度发生变化的序列上进行测试,并与KCF 算法[10]、DSST 算法[11]进行对比,实验结果如图7 和8、表2和3 所示。

表2 各算法在6个视频序列的跟踪结果的平均值 Table 2 Average of the tracking results of each algorithm for 6 video sequences

图7 对Walking2 序列的跟踪结果 Fig.7 The tracking result for Walking2

图7 是在Walking2 序列上的跟踪结果。可以看出,在第110 帧时,目标尺度发生了明显变化;在第339 帧时,KCF 的跟踪框由于尺度过大,导致跟踪模板污染,跟踪框失效,在后续帧中丢失了目标,而本文算法和DSST 算法可自适应地调整跟踪框大小,在后续帧中仍能较准确地跟踪目标。

图8 是在Girl_S 序列上的跟踪结果。可以看到,在第80 帧时,目标尺度发生了变化,DSST 算法的尺度较准确,KCF 未作尺度调整,本文算法的尺度有所变化;在第130 帧时,目标被遮挡,此时,DSST算法估计的目标尺度最准确,KCF 算法的尺度未发生变化,本文算法对尺度做了一定的调整;在第160帧到200 帧,目标通过遮挡后重新出现,DSST 算法发生漂移,跟踪错误;KCF 和本文算法均能够正确跟踪目标,KCF 算法的目标尺度固定,而本文算法对尺度做了调整。

图8 对Girrl_S 序列的跟踪结果 Fig.8 The tracking result for Girl_S

将本文算法和采用HOG+CN 特征的KCF-CN算法、仅采用HOG 特征的KCF 算法、DSST 算法分别在6 个视频序列上测试,得到的成功率、中心位置误差、精度和速度的平均值见表2。可以看出,本文目标跟踪算法在跟踪成功率、中心位置误差、精度上的表现都优于KCF 算法,但是本文算法的速度明显低于KCF 算法。这是由于本文算法需要采用左右一致性单目深度估计网络计算每一帧的深度值。因此,在实时跟踪时,会明显降低跟踪的速度,但依然能够满足公园、小区、学校、商场等场景下对低速目标(如行人)实时跟踪的要求。在非实时跟踪时,可以首先使用单目深度估计算法,得到所有帧的深度,从而实现更高速的跟踪。和DSST算法相比,本文算法精度更高。

在表3 中列出了本文算法和对比算法在6 个序列上的成功率、中心位置误差、精度和速度,其中加粗黑体字为表现最好的算法。本文算法和DSST算法在成功率、中心位置误差和精度3 个指标中,总体而言表现良好。KCF-CN 算法优于KCF 算法,证明了鲁棒的外观模型可以更充分地表示目标,从而提高目标跟踪算法的性能。

表3 各算法在6个视频序列的结果对比 Table 3 Comparison of the results of each algorithm in 6 video sequences

在成功率和中心位置误差指标上,本文算法和DSST 算法在每个视频序列上的表现都明显高于KCF 算法。这是因为本文算法和DSST 算法能实时自适应地调整预测框的大小,及时更新滤波模板,所以跟踪更准确;在精度指标上,Crossing 序列和Walking 序列,与本文算法和DSST 算法都达到了100%,是因为这2 个序列的尺度变化很小,因此,即使KCF 算法不改变滤波模板大小,也能准确地跟踪目标。而在目标尺度发生较大变化时,本文算法和DSST 算法更准确。

在Human2 序列中,本文算法在成功率和精度指标上略低DSST 算法,是因为该序列光照变化复杂,目标的深度受到影响,估计到的目标尺度不准确,影响了2 个指标,但本文算法始终可以跟踪到目标,而DSST 算法在跟踪中,有几帧未能跟踪到,所以本文算法在中心误差指标上优于DSST 算法;在速度上,本文算法快于DSST 算法。

在Girl2 序列中,发生了目标被遮挡的情况。被其他行人完全遮挡的前几帧,DSST 算法预测就已经发生了偏移,而本文算法是在目标被完全遮挡后才发生了偏移,因此本文算法的成功率和精度略高于DSST 算法;本文算法的中心误差大的原因是,目标被遮挡后,本文算法预测的位置离目标很远,DSST 算法虽然未能跟踪到目标,但是预测的位置并未偏离很大。

自建序列Girl_S 中,在精度和中心位置误差指标中,本文算法较高,是因为目标被遮挡后,DSST算法跟踪错误,而本文算法并未跟踪错误;在成功率指标中,因为该序列整体亮度较低,在第35 帧后,目标的深度预测不准确,估计的尺度比目标实际的尺度大,所以成功率不高。在速度上,本文算法快于DSST 算法。

综上,本文算法比KCF 算法在除速度指标外的其他3 个指标上更好;与DSST 算法相比,在尺度变化较大时,跟踪速度更快;在环境复杂、目标移动过程中出现与目标颜色近似的遮挡物时,鲁棒性更好。

图9 是在不同阈值下,本文算法和对比算法在6 个视频序列上的平均跟踪精度。可以看出,本文算法表现最好。

图9 各算法的跟踪精度可视化图 Fig.9 Visualization of tracking accuracy of each algorithm

4 结束语

针对经典核相关滤波目标跟踪算法在复杂环境下,或目标尺度发生较大变化时,无法准确跟踪目标的问题,本文提出一种基于深度估计和特征融合的尺度自适应目标跟踪算法。该算法将HOG 特征和CN 特征相融合建立目标的外观模型,并通过建立深度-尺度估计模型,实现了尺度自适应的鲁棒跟踪算法。实验结果表明,和KCF 算法相比,当目标发生明显尺度变化时,该算法能够有效提升目标跟踪的准确率。但是由于引入左右一致性单目深度估计网络来估计目标的深度值,跟踪速度较慢,适用于公园、小区、学校、商场等场景下对低速目标的跟踪,以及非实时跟踪的场景;和DSST 算法相比,在尺度变化较大时,跟踪速度更快,在环境复杂、目标移动过程中出现与目标颜色近似的遮挡物时,鲁棒性更好。

猜你喜欢
视图尺度滤波
船岸通信技术下舰船导航信号非线性滤波
财产的五大尺度和五重应对
高效LCL滤波电路的分析与设计
基于EKF滤波的UWB无人机室内定位研究
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
宇宙的尺度
Django 框架中通用类视图的用法
一种GMPHD滤波改进算法及仿真研究