目标跟踪 — DSST

DSST(Discriminative Scale Space Tracker)

题目:Accurate Scale Estimation for Robust Visual Tracking
来源:BMVC 2014 (VOT2014 Benchmark第一名)
作者:Martin Danelljan,林雪平大学

1. 基本介绍

  提出了一种在tracking-by-detection框架下的目标尺度估计算法。算法基于尺度金字塔描述来学习DCF(判别式相关滤波),分别学习尺度估计滤波器、位置滤波器两个不同的滤波器。相较于全面的尺度搜索方法(也是本文所提出,比较耗时),快速尺度跟踪方法性能提升显著,并能够方便的融入到其他没有尺度估计的跟踪算法中。

2. DCF (Discriminative Correlation Filters)

 位置估计的方法基于MOSSE跟踪方法,算法通过学习得到一个位置的相关滤波器,用这个滤波器来确定目标在下一帧的位置。MOSSE使用的是灰度图像。 f i f_i fi为训练图像, g i g_i gi为期望的高斯相应, h t h_t ht为第 t t t帧时待求的滤波器(详细情况可参阅MOSSE算法总结)。通过在傅里叶频域中最小化误差项 ε ε ε,
(2.1) ε = ∑ j = 1 t ∥ h t ⋆ f i − g j ∥ 2 = 1 M N ∑ j = 1 t ∥ H t ∗ F j − G j ∥ 2 \varepsilon=\sum_{j=1}^{t}\| h_t \star f_i - g_j \|^2 =\frac{1}{MN}\sum_{j=1}^{t}{\| H^{*}_{t}F_{j}-G_{j} \|^2} \tag{2.1} ε=j=1thtfigj2=MN1j=1tHtFjGj2(2.1)
可求解得到第t帧的滤波器(使用 t t t个样本)
(2.2) H t = ∑ j = 1 t G j ∗ F j ∑ j = 1 t F j ∗ F j . H_t=\frac{\sum_{j=1}^{t}{G^*_jF_j}}{\sum_{j=1}^{t}{F^*_jF_j}}. \tag{2.2} Ht=j=1tFjFjj=1tGjFj.(2.2)
通过对过去帧的检测结果加权平均来取代直接的 Σ Σ Σ求和。当在当前帧内 M × N M×N M×N大小的检测区域 Z Z Z 进行检测时,检测结果为
(2.3) y = F − 1 { H t ∗ Z } . y=\mathcal{F}^{-1}\{ H^*_t Z \}. \tag{2.3} y=F1{HtZ}.(2.3)
新目标的估计位置即为相关分数矩阵 y y y的最大值位置。

3. 算法介绍

3.1 Discriminative Correlation Filters for Multidimensional Features(多维特征的DCF)

使用深度 d = 28 d=28 d=28的特征 f f f(27维fhog特征+1维灰度原始特征,每层特征记为 l l l ),并加上汉明窗,期望响应输出 g g g为二维高斯函数,每层特征对应一个二维的位置滤波器 h l h^l hl h l h^l hl f l f^l fl g g g尺寸相等)。
(3.1) ε = ∥ ∑ l = 1 d h l ⋆ f l − g ∥ 2 + λ ∑ l = 1 d ∥ h l ∥ 2 . \varepsilon=\left \| \sum_{l=1}^{d}{h^l\star f^l-g} \right \|^2+\lambda\sum_{l=1}^{d}{\left \|h^l\right \|^2}. \tag{3.1} ε=l=1dhlflg2+λl=1dhl2.(3.1)
最小化误差 ε ε ε,得到滤波器
(3.2) H l = G ∗ F l ∑ k = 1 d F k ∗ F k + λ H^l=\frac{G^*F^l}{\sum_{k=1}^{d}{{F^k}^*F^k+\lambda}} \tag{3.2} Hl=k=1dFkFk+λGFl(3.2)
仍然是分子分母分别迭代
(3.3) A t l = ( 1 − η ) A t − 1 l + η G t ∗ F t l B t = ( 1 − η ) B t − 1 + η ∑ k = 1 d F t k ∗ F t k \begin{aligned} A_t^l=&(1-\eta)A_{t-1}^l +\eta G_t^*F_t^l \\ B_t=&(1-\eta)B_{t-1}+\eta \sum_{k=1}^{d}{{F_t^k}^*F_t^k} \tag{3.3} \end{aligned} Atl=Bt=(1η)At1l+ηGtFtl(1η)Bt1+ηk=1dFtkFtk(3.3)
预测输出由下式得到
(3.4) y = F − 1 { ∑ l = 1 d A l ∗ Z l B + λ } y=\mathcal{F}^{-1}\left \{ \frac{\sum_{l=1}^{d}{{A^l}^{*}}Z^l}{B+\lambda} \right \} \tag{3.4} y=F1{B+λl=1dAlZl}(3.4)

3.2 Exhaustive Scale Space Tracking(全面尺度空间跟踪)

基于3维的位置尺度滤波器,滤波器尺寸为 M × N × S M×N×S M×N×S,代表高、宽、尺度数。
首先以目标旧位置为中心提取 S S S 种不同尺度下的矩形样本,然后把所有样本resize到固定的尺寸( M × N M×N M×N),构成一个 M × N × S M×N×S M×N×S的矩形块(以待估计目标的位置和尺度为中心)。然后在这个固定的尺寸下提取fhog特征, 使用三维高斯函数构建对应的期望输出 g g g。滤波器的迭代计算方式同3.1节相同。
预测时,取矩形块响应输出中的最大值,同时得到新位置和新尺度。然后以该位置和尺度为中心进行下一步矩形块的构建和迭代计算。
此方法计算量较大。

3.3 Fast Scale Space Tracking(快速尺度跟踪)

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

  1. 在当前帧里,提取一个上帧目标2倍大小区域( M × N M×N M×N)作为样本 Z t r a n s Z_{trans} Ztrans。以3.1节介绍的位置滤波器方法,计算目标新位置 P t P_t Pt
  2. 以目标当前新位置 P t P_t Pt为中心,截取 S = 33 S=33 S=33种不同尺度下的矩形样本 Z s c a l e Z_{scale} Zscale,然后把所有样本resize到固定的尺寸( M × N M×N M×N),在这个固定的尺寸下提取fhog特征,每个尺度样本 Z s c a l e Z_{scale} Zscale的特征串成一个特征向量(设长度为 d d d,长度和resize的尺寸有关)。
  3. 对应到3.1节的滤波器更新公式,则特征层数变为特征向量的长度 d d d g g g变为一维高斯函数(长度为 S = 33 S=33 S=33), f l f^l fl长度为 S = 33 S=33 S=33,在每个 f l f^l fl上分别乘一个一维汉明窗。然后预测输出响应最高的尺度值。

在此引用kooalle_cln博客中的一张图

3.4 各种尺度的选择

a n P × a n R , n ∈ { − ⌊ S − 1 2 ⌋ , … , ⌊ S − 1 2 ⌋ } a^nP\times a^nR,\qquad n\in \left\{ -\left \lfloor \frac{S-1}{2}\right \rfloor,\ldots, \left \lfloor \frac{S-1}{2}\right \rfloor\right\} anP×anR,n{2S1,,2S1}
P P P R R R为目标在上一帧的长宽, a = 1.02 a=1.02 a=1.02 S = 33 S=33 S=33为尺度总数。
n n n一共有 33 33 33个取值( n ∈ { − 16 , − 15 , … , 15 , 16 } n∈\{-16,-15,…,15,16\} n{16,15,,15,16}), a n ∈ { 0.728 , 0.743 , … , 1.346 , 1.373 } a^n∈\{0.728,0.743,…,1.346,1.373\} an{0.728,0.743,,1.346,1.373}
比当前尺度越大的多的尺度,放缩比例越大。即越接近的尺度越精细检测,越远的尺度越粗略检测。

4. 算法性能

与其他尺度适应算法的比较

Martin自从提出DSST算法后,在自己的跟踪器工作中就从来没用过,用的都是上述的SAMF
优点:不依赖于定位器,如果定位时间较长则使用DSST进行尺度估计是首选,否则不建议使用;
时间开销:CPU下大概10ms,主要开销在特征提取上(33*2)次。
SAMF
尺度金字塔原理,方法实用;
特点:无参数,不更新,尺度估计是否准确比较依赖于定位器的性能是否鲁棒;
优点:虽然尺度估计不准会影响跟踪定位器的学习,但是多尺度搜索天然的可以和定位器定位相互促进,所以相互结合比较稳定,不易出现尺度估计偏移过大情况;
时间开销:依赖于定位器的定位开销,N-1倍于定位器定位开销(N为金字塔等级数);
应用:广泛应用于SRDCF系列目标跟踪算法(SRDCF,CCOT,ECO)。
【引用自 https://blog.csdn.net/aiqiu_gogogo/article/details/79108461

  1. 虽然SAMF和DSST都可以跟上普通的目标尺度变化,但SAMF只有7个尺度比较粗,而DSST有33个尺度比较精细准确;
  2. DSST先检测最佳平移再检测最佳尺度,是分步最优,而SAMF是平移尺度一起检测,是平移和尺度同时最优,而往往局部最优和全局最优是不一样的;
  3. DSST将跟踪划分为平移跟踪和尺度跟踪两个问题,可以采用不同的方法和特征,更加灵活,但需要额外训练一个滤波器,每帧尺度检测需要采样33个图像块,之后分别计算特征、加窗、FFT等,尺度滤波器比平移滤波器慢很多;SAMF只需要一个滤波器,不需要额外训练和存储,每个尺度检测就一次提特征和FFT,但在图像块较大时计算量比DSST高。
    所以尺度检测DSST并不总是比SAMF好,其实在VOT2015和VOT2016上SAMF都是超过DSST的,当然这主要是因为特征更好,但至少说明尺度方法不差。总的来说,DSST做法非常新颖,速度更快,SAMF同样优秀也更加准确。
    DSST一定要33个尺度吗?
    DSST标配33个尺度非常非常敏感,轻易降低尺度数量,即使你增加相应步长,尺度滤波器也会完全跟不上尺度变化。关于这一点可能解释是,训练尺度滤波器用的是一维样本,而且没有循环移位,这就意味着一次训练更新只有33个样本,如果降低样本数量,会造成训练不足,分类器判别力严重下降,不像平移滤波器有非常多的移位样本(个人看法欢迎交流)。总之,请不要轻易尝试大幅降低尺度数量,如果非要用尺度滤波器33和1.02就很好。
    以上就是两种推荐的尺度检测方法,以后简称为类似DSST的多尺度和类似SAMF的多尺度。如果更看重速度,加速版的fDSST,和仅3个尺度的SAMF(如VOT2014中的KCF)就是比较好的选择;如果更看重精确,33个尺度的DSST,及7个尺度的SAMF就比较合适。
    【作者:YaqiLYU 链接:https://www.zhihu.com/question/26493945/answer/156025576】

4. 参考资料

https://blog.csdn.net/roamer_nuptgczx/article/details/50134633

https://www.jianshu.com/p/c709aea5a56f

https://blog.csdn.net/kooalle_cln/article/details/78114673

https://www.zhihu.com/question/26493945/answer/156025576

  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值