Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记

文章初步概览

主要方法及贡献

  • 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定义:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
    采用对偶技巧进行求解,则目标解wt可以表示为:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
    则原优化问题变为求解优化问题:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 作者认为传统的核方法的定义没有考虑目标本身的空间关系,因此在目标跟踪问题中限制了跟踪器的性能;
  • 本文作者提出新的适用于目标跟踪问题的核定义方法:即将sample1和sample2进行切割,假设都切割成M份,通过M份之间的相似性共同确定sample1和sample2的相似性;
  • 新核计算数学表示:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记,其中定义了βm,n用于对不同块之间的相似性进行加权;
  • 新核定义优势1:通过引入βm,n可以在学习过程中自适应地关注可靠性大的区域;
  • 新核定义优势2:计算sample1和sample2的相似性过程中考虑了更多的相似pair,因此可以增加模型的判别力;
  • 引入新核定义后,新KRR求解变为:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 上述求解表达式可以表示为矩阵的形式:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记其中Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 通过上述求解后,对于新的样本,预测公式为:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 对于上述公式进行求解需要对αβ进行迭代求解,即通过Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记得到α,通过β的梯度Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记更新β,这个方法计算复杂度高;

关键点2:将上述方法作为CNN的子部件进行学习求解

  • 目标回归值计算:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 上述计算过程可分解为3步:可以分解为三步Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 将每一步作为一个部件构成CNN模型为:Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记

模块A

  • 给定目标位置,采目标大小2*2倍的区域样本,并得特征图记为Xt,其大小为HWC
  • 目标大小为h*w,H=2hW=2w
  • 对区域内样本进行密集采样(大小与目标大小相同)并reshape到d维(d=hwC),即得到数据矩阵D=dN,N为样本数,d为样本维度;
  • 通过Z=Dα得到A中w并reshape为hwC
  • w切割为M块,分别为w1,w2,...,wM
  • 经过上述过程,A模块步骤完成对偶系数α的利用和学习(反传)以及模型w的得到和切割;

模块B

  • 文章不太直观,解释一下;
  • HW的feature map上,目标大小为hw,密集采样后应该有(Hh+1)(Ww+1)个样本;
  • 由于本文是将每个样本分成了9份,所以在HW的feature map上分别提取每个样本的第n份(n=1~9),每份都的与模块A中得到的wnn=1 9相卷积(猜测这里卷积的stride也应该为9);
  • 每个wn卷积层输出大小为:(Hh+1)(Ww+1)M
  • 最终卷积输出大小为:((Hh+1)(Ww+1)M)M
  • 通过上述过程便完成了B操作;

模块C

  • 将模块B中得到的结果进行级联后与11M2大小的卷积核进行卷积,这里11M2大小的卷积核即为要学习的β

模块ABC总结

  • 通过上述构建,需要学习的为N1大小的α以及11M2大小的β,N为样本数;
  • 实际使用中使用梯度下降对上述过程进行优化;
  • 使用公式Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记对模型和样本进行更新,这个更新公式原理和SRDCF很像;

关键点3:带空间信息学习的CNN

  • 核心:在一个CNN层中学习带空间约束的卷积核,核心思想为每个卷积核仅关注目标的一个子部分;
  • 训练:考虑到目标跟踪任务中样本数少,分别使用不同的网络结构训练和测试样本以防止过拟合,并且在训练过程中考虑样本的旋转;
    Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记
  • 得到搜索域的VGG16中conv4-3层特征,大小为46*46*512->经过第一个卷积层得到大小为46*46*100的输出->按照group卷积,经过第二个卷积层,得到46*46*100的输出->每4层输出作为一组相加得到46*46*25的输出->经过distance transform pooling后进行相加得到最终的response map;
  • 带空间信息学习的CNN:思路很简单,如下公式Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记对每个通道的滤波器Fc强制加一个Wc的mask,强行让其关注目标的某一个部分,这样学到的每个滤波器自然会关注目标的某一个部分,本文是将目标分成了25个部分进行专门学习;

关键点4:Distance Transform Pooling Layers