Hierarchical convolutional Features for visual tracking
算法概要
这篇文章所提出的算法在本质上还是cf那一套框架,作者着重改变的是目标的特征描述。在以往的cf中,大家用的都是常用的物体特征描述,比如HOG,但是这种特征毕竟是manual的,当目标本身的appearance发生较大的改变时,manual型的特征不能很好的适应。注意到在物体检测识别领域中,采用CNN提取的物体特征,具有很好的鲁棒性。因此将CNN引入到tracking领域中。
算法总体流程:
1、在第t帧目标中心位置
2、对用到的CNN的3、4、5层,都构造一个cf,由后向前,将每一层的特征与对应的cf进行卷积,计算confidence scorefl,确定new center position(xt,yt)。
3、在新的中心位置周围提取CNN特征,用以跟新cf参数。
算法实现细节
一、用CNN提取convolutional features
作者采用已经用CNN训练好的卷积特征图(convolutional feature map),来对目标的appearance进行编码。其使用的CNN框架是目前效果很好的
随着CNN的前向传播,不同物体的semantic区别就会越明显,但同时会造成空间分辨率的降低和空间位置的模糊,如图:
这幅图指示了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。这样的特征图太小,没法对目标进行精确的定位,因此需要对特征进行升采样,升采样的方式为:
这里 x 代表升采样后的特征图,
三、构造correlation filte
对于每一层的输出特征,(其size为M×N×D