Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
文章初步概览
- 1,OTB-100性能:精度——0.923,覆盖率——0.672;
- 2,VOT2017 比赛性能第一;
- 3,速度:1fps,没有实时;
- 4,开放代码:http://data.votchallenge.net/vot2017/trackers/24_LSART.zip;
主要方法及贡献
- 1,用将目标分割成部件的思想定义了新的求核相关值的方法,并将该方法融入到CNN中作为一个组件进行高效求解;
- 2,在CNN用于跟踪的任务中提出了空间正则化方法(类似SRDCF思想),主要做法是通过学习强制让CNN的各个通道分别关注于目标特定的子区域;
- 3,提出了适用于跟踪的新的Pooling方法:distance transform pooling用于判断CNN输出层的有效性;
- 4,将1和2中的结果进行融合,共同确定目标位置;
Introduction
- 1,一般用CNN做跟踪的思路:在大的数据集上与训练模型,然后跟踪过程中在序列的第一帧fine-tune模型;
- 2,KCF缺陷:将目标看作一个整体,假定目标的各个部分对跟踪器的学习同样重要,因此难以利用目标的结构信息;
- 3,传统KRR方法缺陷:若不采用KCF循环结构,则计算量核矩阵的计算量非常大;
- 4,CNN用于跟踪问题缺陷:参数多,样本少,训练的滤波器高度相关导致过拟合现象严重;
- 5,本文旨在将CNN和KRR结合起来,其中CNN用于用于关注目标的局部信息,KRR用于关注目标的整体信息;
关键点1:重新定义KRR中核的计算以及KRR的求解方法
-
传统KRR定义:
;
采用对偶技巧进行求解,则目标解w_t可以表示为:
则原优化问题变为求解优化问题:
-
作者认为传统的核方法的定义没有考虑目标本身的空间关系,因此在目标跟踪问题中限制了跟踪器的性能;
-
本文作者提出新的适用于目标跟踪问题的核定义方法:即将sample1和sample2进行切割,假设都切割成M份,通过M份之间的相似性共同确定sample1和sample2的相似性;
-
新核计算数学表示:
,其中定义了\beta_{m,n}用于对不同块之间的相似性进行加权; -
新核定义优势1:通过引入可以在学习过程中自适应地关注可靠性大的区域;
-
新核定义优势2:计算sample1和sample2的相似性过程中考虑了更多的相似pair,因此可以增加模型的判别力;
-
引入新核定义后,新KRR求解变为:
; -
上述求解表达式可以表示为矩阵的形式:
其中
; -
通过上述求解后,对于新的样本,预测公式为:
; -
对于上述公式进行求解需要对\alpha和\beta进行迭代求解,即通过
得到,通过的梯度
更新,这个方法计算复杂度高;
关键点2:将上述方法作为CNN的子部件进行学习求解
- 目标回归值计算:
; - 上述计算过程可分解为3步:可以分解为三步
; - 将每一步作为一个部件构成CNN模型为:
;
模块A
- 给定目标位置,采目标大小2*2倍的区域样本,并得特征图记为X_t,其大小为H*W*C;
- 目标大小为h*w,H=2h,W=2w;
- 对区域内样本进行密集采样(大小与目标大小相同)并reshape到d维(d=h*w*C),即得到数据矩阵D=d*N,N为样本数,d为样本维度;
- 通过Z=D\alpha得到A中w并reshape为h*w*C;
- 将切割为M块,分别为w_1,w_2,...,w_M;
- 经过上述过程,A模块步骤完成对偶系数的利用和学习(反传)以及模型的得到和切割;
模块B
-
文章不太直观,解释一下;
-
在H*W的feature map上,目标大小为h*w,密集采样后应该有(H-h+1)*(W-w+1)个样本;
-
由于本文是将每个样本分成了9份,所以在的feature map上分别提取每个样本的第n份(n=1~9),每份都的与模块A中得到的w_n(n=1~9)相卷积(猜测这里卷积的stride也应该为9);
-
每个w_n卷积层输出大小为:(H*h + 1)*(W*w + 1)*M;
-
最终卷积输出大小为:((H*h + 1)*(W*w + 1)*M)*M;
-
通过上述过程便完成了B操作;
模块C
- 将模块B中得到的结果进行级联后与1*1*M^2大小的卷积核进行卷积,这里大小的卷积核即为要学习的;
模块ABC总结
- 通过上述构建,需要学习的为N*1大小的以及大小的,N为样本数;
- 实际使用中使用梯度下降对上述过程进行优化;
- 使用公式
对模型和样本进行更新,这个更新公式原理和SRDCF很像;
关键点3:带空间信息学习的CNN
-
核心:在一个CNN层中学习带空间约束的卷积核,核心思想为每个卷积核仅关注目标的一个子部分;
-
训练:考虑到目标跟踪任务中样本数少,分别使用不同的网络结构训练和测试样本以防止过拟合,并且在训练过程中考虑样本的旋转;

-
得到搜索域的VGG16中conv4-3层特征,大小为4646512- >经过第一个卷积层得到大小为4646100的输出->按照group卷积,经过第二个卷积层,得到4646100的输出->每4层输出作为一组相加得到464625的输出->经过distance transform pooling后进行相加得到最终的response map;
-
带空间信息学习的CNN:思路很简单,如下公式
对每个通道的滤波器F_c强制加一个W_c的mask,强行让其关注目标的某一个部分,这样学到的每个滤波器自然会关注目标的某一个部分,本文是将目标分成了25个部分进行专门学习;
