Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
分类:
文章
•
2024-01-07 18:35:10
文章初步概览
主要方法及贡献
- 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定义:
;
采用对偶技巧进行求解,则目标解wt可以表示为:
则原优化问题变为求解优化问题:
- 作者认为传统的核方法的定义没有考虑目标本身的空间关系,因此在目标跟踪问题中限制了跟踪器的性能;
- 本文作者提出新的适用于目标跟踪问题的核定义方法:即将sample1和sample2进行切割,假设都切割成M份,通过M份之间的相似性共同确定sample1和sample2的相似性;
- 新核计算数学表示:
,其中定义了βm,n用于对不同块之间的相似性进行加权;
- 新核定义优势1:通过引入βm,n可以在学习过程中自适应地关注可靠性大的区域;
- 新核定义优势2:计算sample1和sample2的相似性过程中考虑了更多的相似pair,因此可以增加模型的判别力;
- 引入新核定义后,新KRR求解变为:
;
- 上述求解表达式可以表示为矩阵的形式:
其中
;
- 通过上述求解后,对于新的样本,预测公式为:
;
- 对于上述公式进行求解需要对α和β进行迭代求解,即通过
得到α,通过β的梯度
更新β,这个方法计算复杂度高;
关键点2:将上述方法作为CNN的子部件进行学习求解
- 目标回归值计算:
;
- 上述计算过程可分解为3步:可以分解为三步
;
- 将每一步作为一个部件构成CNN模型为:
;
模块A
- 给定目标位置,采目标大小2*2倍的区域样本,并得特征图记为Xt,其大小为H∗W∗C;
- 目标大小为h*w,H=2h,W=2w;
- 对区域内样本进行密集采样(大小与目标大小相同)并reshape到d维(d=h∗w∗C),即得到数据矩阵D=d∗N,N为样本数,d为样本维度;
- 通过Z=Dα得到A中w并reshape为h∗w∗C;
- 将w切割为M块,分别为w1,w2,...,wM;
- 经过上述过程,A模块步骤完成对偶系数α的利用和学习(反传)以及模型w的得到和切割;
模块B
- 文章不太直观,解释一下;
- 在H∗W的feature map上,目标大小为h∗w,密集采样后应该有(H−h+1)∗(W−w+1)个样本;
- 由于本文是将每个样本分成了9份,所以在H∗W的feature map上分别提取每个样本的第n份(n=1~9),每份都的与模块A中得到的wn(n=1 9)相卷积(猜测这里卷积的stride也应该为9);
- 每个wn卷积层输出大小为:(H∗h+1)∗(W∗w+1)∗M;
- 最终卷积输出大小为:((H∗h+1)∗(W∗w+1)∗M)∗M;
- 通过上述过程便完成了B操作;
模块C
- 将模块B中得到的结果进行级联后与1∗1∗M2大小的卷积核进行卷积,这里1∗1∗M2大小的卷积核即为要学习的β;
模块ABC总结
- 通过上述构建,需要学习的为N∗1大小的α以及1∗1∗M2大小的β,N为样本数;
- 实际使用中使用梯度下降对上述过程进行优化;
- 使用公式
对模型和样本进行更新,这个更新公式原理和SRDCF很像;
关键点3:带空间信息学习的CNN
- 核心:在一个CNN层中学习带空间约束的卷积核,核心思想为每个卷积核仅关注目标的一个子部分;
-
训练:考虑到目标跟踪任务中样本数少,分别使用不同的网络结构训练和测试样本以防止过拟合,并且在训练过程中考虑样本的旋转;
- 得到搜索域的VGG16中conv4-3层特征,大小为46*46*512->经过第一个卷积层得到大小为46*46*100的输出->按照group卷积,经过第二个卷积层,得到46*46*100的输出->每4层输出作为一组相加得到46*46*25的输出->经过distance transform pooling后进行相加得到最终的response map;
- 带空间信息学习的CNN:思路很简单,如下公式
对每个通道的滤波器Fc强制加一个Wc的mask,强行让其关注目标的某一个部分,这样学到的每个滤波器自然会关注目标的某一个部分,本文是将目标分成了25个部分进行专门学习;
关键点4:Distance Transform Pooling Layers