DSST算法详解

论文: Accurate Scale Estimation for Robust Visual Tracking


Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg.  Accurate Scale Estimation for Robust Visual Tracking.  In Proceedings of the British Machine Vision Conference (BMVC), 2014.



一、引言

论文中主要描述了一种在视觉跟踪中精准的尺度估计的方法,基于此尺度估计方法提出了DSST(Discriminatiive Scale Space Tracker)算法。该算法分为位置滤波器(Translation Filter)和尺度滤波器(Scale Filter)。这种精准的尺度估计方法可以和任意其他的没有尺度估计的跟踪算法结合。下图是作者给出的算法的效果。




DSST算法采用判别相关滤波器(discriminative correlation filters)来确定位置信息,使用文中提出的尺度估计方法确定尺度信息。




二、Discriminative Correlation Filters

位置估计的方法基于MOSSE跟踪方法,算法通过学习得到一个位置的相关滤波器,用这个滤波器来确定目标在下一帧的位置。


MOSSE滤波器使用一组灰度图像块  f1,f2 ,  f3 ….ft作为训练样本,对应的滤波器的响应输出为g1 , g2 ,  g3 …. gt  (通常用高斯函数构建得出) 。最佳相关滤波器ht需要满足下式。

DSST算法详解_第1张图片




其中  fi,gi ,ht的均为 M x N 的矩阵,星号代表循环相关,第二个等号根据Parseval定理得出。大写字母代表相应的离散傅里叶变换(DFT),上划线表示复共轭。上式最小化结果可得:

DSST算法详解_第2张图片

在工程实践中,通常把Ht 拆分成分子  At 和分母  Bt  分别进行迭代更新操作。


对于新来的一帧图像中的M x N 的图像Patch z,它的响应得分为 y ,计算方法如下:


y中最大值的位置被认为是目标新位置的估计。通过傅里叶变换加速了训练和检测过程。





三、Discriminative Correlation Filters for Multidimensional Features

考虑到许多图像的特征为多维度的,设 f  特征,f  有d维,f  l  为其中的第l维,l的取值为1到d。那么最小化的cost function为:

DSST算法详解_第3张图片


λ是正则项。上式中只考虑了一个训练样本。求解得到H为:

DSST算法详解_第4张图片




同样将H拆分为分子A和分母B,分别进行迭代更新,更新的方法如下:

DSST算法详解_第5张图片

其中η 表示学习率。对于新来的一帧图像中的图像Patch z,它的响应得分为 y ,计算方法如下:

DSST算法详解_第6张图片

y中最大值的位置被认为是目标新位置的估计。


四、Exhaustive Scale Space Tracking(一种详尽的尺度空间跟踪方法)



作者提出了一种三维的尺度相关滤波器,滤波器的大小为 M x N x S,M和N分别代表滤波器的Height 和Width, S代表尺度的数量。

DSST算法详解_第7张图片

f是以上一帧确定的位置为中心,取得一系列不同尺度的图像块的特征。采用三维高斯函数构建三维的滤波响应输出g。同样采用第三部分叙述的方法每次迭代更新模板h。对于新一帧的图片,可以获取S个尺度上的特征组成一个 M x N x S的特征金字塔z,采用第三部分叙述的方法获得响应g,根据g中最大值所在的位置则可以确定位置信息和尺度信息。




五、Fast Scale Space Tracking(一种快速的尺度空间跟踪方法)

作者通过将尺度估计和位置分开计算,提出了一种快速的尺度估计方法。

This helps by restricting the search area to smaller parts of the scalespace. In addition, we gain the freedom of selecting the feature representation for each filterindependently.

采用一个一维的相关滤波去估计目标在图片中的尺度。训练样本f从目标中心扣取。假设当前帧的目标大小为 P x R,尺度为S,我们扣取目标中心大小为 anP× anR的窗口标记为Jn其中a表示一个尺度因子,n的取值范围如下:


尺度等级为n的训练样本 f 是Jn的d维的特征描述子。

在连续的两帧中,位置的变化往往大于尺度的变化,因为,文中先采用位置滤波器确定位置信息,在位置的基础上再使用尺度滤波器确定尺度信息。

六、举例说明

1、位置估计

    训练过程:

    目标所在的图像块P的大小为M x N,提取P的特征(例如Fhog特征),得到大小为 M x N x d 的特征 f  ,其中特征的维度为 d 维。如下图所示(作者选取灰度图为第一维的特征,后续的特征是Fhog的前27维特征),响应g是根据高斯函数构造的,大小为M x N,中间响应值最大,向四周依次递减:

DSST算法详解_第8张图片

根据下述公式 ,需要对 f  的每一个维度的特征做二维的DFT,得到 F l  ,对 g 做二维的DFT得到 G,下式中的乘法都是点乘,矩阵的对应位置相乘。

DSST算法详解_第9张图片

将G和F都带入上述等式,可以得到滤波器模板H的值。完成训练过程。

    检测过程:

    新的一帧的图片的特征为z,同样求取每一维度的二维的DFT得到 Z l,每一维度的Z和响应维度模板中的分子相乘再累加得到下式中的分子的值,分母的值已知,则可以很容易求出y。


DSST算法详解_第10张图片

y的最大值的位置就是新目标中心的位置。这样就确定了位置信息。




2、尺度估计

    训练过程:

     目标所在的图像块P的大小为M x N,以图像块的正中间为中心,截取不同尺度的图片,具体截取图片的大小可以参考第四部分中的方法。这样就能够得到一系列的不同尺度的图像Patch(搜索范围为S个尺度,就会有S张图像Patch),针对每个图像Patch求其特征描述子(维度为 d 维,这里的 d和位置估计中的维度d没有任何关系),g是高斯函数构造的输出响应大小为1 x S,中间值最大,向两端依次减小 。

DSST算法详解_第11张图片

如果选取33个尺度,那么S=33, 每一个维度的特征  f  l 为 一个1 x S 的向量,对f  的每一个维度的特征做一维的DFT,得到 F l,对 g 做一维的DFT得到 G, 计算过程和位置估计的一样,只是维度变成了一维。同样可以得到滤波器模板H。

    检测过程:

 新的一帧的图片以位置估计得出的位置为中心,截取S个不同尺度的图像Patch,分别求其特征描述子,组成新的特征为z,同样求取每一维度的一维的DFT得到Z l 进而得到y的值(求取方法和位置估计类似),y为 1 × S 维的向量,y 中最大值的所对应的尺度为最终尺度估计的结果。                  

你可能感兴趣的:(计算机视觉)