Hierarchical convolutional Features for visual tracking

Hierarchical convolutional Features for visual tracking

算法概要

这篇文章所提出的算法在本质上还是cf那一套框架,作者着重改变的是目标的特征描述。在以往的cf中,大家用的都是常用的物体特征描述,比如HOG,但是这种特征毕竟是manual的,当目标本身的appearance发生较大的改变时,manual型的特征不能很好的适应。注意到在物体检测识别领域中,采用CNN提取的物体特征,具有很好的鲁棒性。因此将CNN引入到tracking领域中。

算法总体流程:

1、在第 t 帧目标中心位置 (xt1,yt1) 附近确定searching window,用CNN获取searching window的特征,用双线性插值算法对特征进行upsample。
2、对用到的CNN的3、4、5层,都构造一个cf,由后向前,将每一层的特征与对应的cf进行卷积,计算confidence score fl ,确定new center position (xt,yt)
3、在新的中心位置周围提取CNN特征,用以跟新cf参数。

算法实现细节

一、用CNN提取convolutional features

作者采用已经用CNN训练好的卷积特征图(convolutional feature map),来对目标的appearance进行编码。其使用的CNN框架是目前效果很好的Hierarchical convolutional Features for visual tracking_第1张图片
随着CNN的前向传播,不同物体的semantic区别就会越明显,但同时会造成空间分辨率的降低和空间位置的模糊,如图:
Hierarchical convolutional Features for visual tracking_第2张图片
这幅图指示了CNN层数与semantic和spatial detail的关系。可看出,在靠前的layer中,图像的空间信息有较好的保留,但是semantic却比较少,这有点类似于对图像进行Gabor滤波;在靠后的layer中,图像的语义信息较为丰富,但是空间信息却又缺失了很多。
在跟踪中,我们既希望特征能够有很好的semantic表达,又能保留准确的空间信息,因此作者想了个折衷的办法,即在用CNN提取目标特征时,不仅保留其最后一层输出结果,同时中间层的输出也保留下来,作者具体保留的是3、4、5三个layer。至于三种特征的使用,其实结合CF进去的,后面会再做介绍。

二、双线性插值进行upsample

在CNN中,由于pooling operation的存在,使得随着layer深度的增加,特征的spatial resolution(空间分辨率)会逐渐减小。比如,对于size为224x224的图像,在VGG-Net的第五层,其输出size只有7x7。这样的特征图太小,没法对目标进行精确的定位,因此需要对特征进行升采样,升采样的方式为:

xi=kαikhk

这里 x 代表升采样后的特征图, h 代表升采样前的特征图, i 代表位置(location), k 代表 k 领域的特征向量。 α 是插值的权值。

三、构造correlation filte

对于每一层的输出特征,(其size为 M×N×D , MN 代表图像特征的width和height, D 代表特征的channel,注意这里的channel不是咱们普通意义上的图像通道,这指的是特征的通道数,特征的通道数可以有很多,未必是1或者3)作者均构造了CF,构造CF的目标函数为:

w=argminwm,n||wxm,ny(m,n)||2+λ||w||2

上式中, y(m,n) 代表在 (m,n) 处像素的标签,标签并不是二类标签,而是符合二维高斯分布:
y(m,n)=exp((mM/2)2+(nN/2)22σ2)

将目标函数用FFT变换转换到频域,可以得到目标函数的最优解为:
Wd=YX¯¯¯dDi=1XiX¯¯¯i+λ

其中 Y y 的傅里叶变换, 代表Hadamard Product。
当给定下一帧图像的searching region后,提取区域的特征( M×N×D ),则相关性滤波的响应图为:
f=f1(d=1DWdZ¯¯¯d)

相关性滤波器的跟新策略:
Adt=(1η)Adt1+ηYX¯¯¯dt

Bdt=(1η)Bdt1+ηi=1DXitX¯¯¯it

Wdt=AdtBdt+λ

四、coarse-to-fine translation estimation

上文说过CNN提取的特征,随着深度的增加,特征的语义信息增强,空间信息减少。所以作者采用CNN的3、4、5层的输出作为特征,并对每各层的输出均构造一个独立的CF:
Hierarchical convolutional Features for visual tracking_第3张图片
由上图可知,首先求出第五层的最高响应位置:

(m^,n^)=argmaxm,nfl(m,n)

然后根据下列关系求出前一层的最高响应位置:
argmaxm,ns.t.fl1(m,n)+γfl(m,n)|mm^|+|nn^|r

即后一层的response影响前一层的response,并且其影响的范围是在后一层最高响应点的附近。

你可能感兴趣的:(CF,相关性滤波)