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

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

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

模块A

  • 给定目标位置,采目标大小2*2倍的区域样本,并得特征图记为 Xt ,其大小为 HWC
  • 目标大小为h*w, H=2h W=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 阅读笔记_第5张图片对模型和样本进行更新,这个更新公式原理和SRDCF很像;

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

  • 核心:在一个CNN层中学习带空间约束的卷积核,核心思想为每个卷积核仅关注目标的一个子部分;
  • 训练:考虑到目标跟踪任务中样本数少,分别使用不同的网络结构训练和测试样本以防止过拟合,并且在训练过程中考虑样本的旋转;
    Learning Spatial-Aware Regressions for Visual Tracking 阅读笔记_第6张图片
  • 得到搜索域的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

你可能感兴趣的:(目标跟踪算法)