目标跟踪 — MOSSE

MOSSE(Minimum Output Sum of Square Error)

题目:Visual Object Tracking using Adaptive Correlation Filters
来源:CVPR2010
作者:David S. Bolme等, Colorado State University

MOSSE可以算是相关滤波(CF)类跟踪器的开山之作。

1. 信号相关

   信号处理中,用相关性描述两个因素的关系。分为自相关(auto-correlation,自身信号在频域的关系)和互相关(cross-correlation,两个信号之间的关系)。
   互相关,也被称为“滑动内积”(sliding inner-product)或“滑动点乘”(sliding dot product),通常用于在一个长序列(gg)中寻找一个短序列(ff)(即特征)。假设有两个信号f(t)f(t)g(t)g(t),则两个信号的相关性(correlation)为
(1.1)(fg)(τ)=def+f(t)g(t+τ)dt=+f(tτ)g(t)dt(fg)[n]=defm=+f[m]g[m+n] \begin{aligned} (f\star g)(τ)\overset{\underset{\mathrm{def}}{}}{=}&∫_{-∞}^{+∞}{f^* (t)g(t+τ)dt}=∫_{-∞}^{+∞}{f^* (t-τ)g(t)dt} \\ \tag{1.1} (f\star g)[n]\overset{\underset{\mathrm{def}}{}}{=}&\sum_{m=-\infty}^{+\infty}{f^*[m]g[m+n]} \end{aligned}
其中⋆表示互相关操作,ff^*表示ff的共轭,ττ表示信号f在t轴上向右滑动的大小(lag)。

  1. 互相关与卷积有相似的性质,只是没有信号翻转的步骤,即(1.3)[f(t)g(t)](t)=[f(t)g(t)](t)[f(t)\star g(t)](t)=[f^*(-t)*g(t)](t) \tag{1.3}
  2. 如果ff 是一个Hermitian函数(即f(t)=f(t)f(t)=f^*(-t)),则fg=fgf\star g=f*g.
  3. 根据卷积定理,有
    (1.4)F{fg}=F{f}F{g}F{f(t)}=F{f(t)}\begin{aligned} \mathcal{F}\{f\star g \}&=\mathcal{F}\{f\}^*\cdot \mathcal{F}\{g\}\\ \tag{1.4} \mathcal{F}\{f(-t)\}&=\mathcal{F}\{f(t)\}^* \end{aligned}
  4. 自相关用于找出一个信号序列中的周期重复模式,lag=0 时取得峰值,峰值幅度表示信号能量。
目标跟踪 — MOSSE

2. 原理介绍

   两个信号越相似,其相关值越高。在视觉跟踪领域,就是找到与跟踪目标响应最大的项。
   设输入灰度图像为ff,滤波器为hh,响应输出为gg,(注意,文中f,h,gf,h,g 的尺寸相等)则可表达为(2.1)g=hfg=h\star f \tag{2.1}
   设定期望的输出gg是高斯函数(gg可以为任意函数,文中取二维高斯形函数,σ=2σ=2,以训练图像ff中的目标为中心),即在目标位置处相应最大,则只需解出滤波器h。为了简化运算,可以利用卷积定理和互相关的性质,在傅里叶频域求解,表达式为
(2.2)F{g}=F{h}F{f}G=HF\mathcal{F}\{g\}=\mathcal{F}\{h\}^*⊙\mathcal{F}\{f\},即G=H^*⊙F , \tag{2.2}
待求的HH^*可由H=G/FH^*=G/F 得到。但是为了获得更加鲁棒的滤波器(应对目标发生形变等),需要同时考虑多个包含目标的训练图像fif_i。由Parseval定理(下式第二个等号, 能量守恒),可得
(2.3)error=ihfigi2=1MNiHFiGi2error=∑_{i}{{\| h\star f_i-g_i \|}^{2}}=\frac{1}{MN} ∑_{i}{{\| H^*⊙F_i-G_i \|}^2} \tag{2.3}
其中fi,gi,hf_i,g_i,h的尺寸均为M×NM×N。可以通过优化下式得到HH^*
(2.4)minHiHFiGi2.min_{H^*}∑_{i}{{\| H^*⊙F_i-G_i \|}^2} . \tag{2.4}
   设HwvH_{wv}HH 矩阵的元素。由于在傅里叶频域都是元素级运算(element-wise),因此上边的优化目标等价于优化每个HwvH_{wv} ,即对上式求偏导,并使偏导为0:
(2.5)0=HwviHwvFiwvGiwv2.0=\frac{\partial}{\partial H^*_{wv}}∑_{i}{{\| H_{wv}^*F_{iwv}-G_{iwv} \|}^2} . \tag{2.5}
经过频域中复杂的求导推算,可以得到Hwv=iFiwvGiwviFiwvFiwvH_{wv}=\frac{\sum_i{F_{iwv}G^*_{iwv}}}{\sum_i{F_{iwv}F^*_{iwv}}}, 最后得到H=iGiFiiFiFiH^*=\frac{\sum_i{G_{i}\odot F^*_{i}}}{\sum_i{F_{i}\odot F^*_{i}}}. 当只有一个训练样本时,Hi=GiFi=GiFiFiFiH^*_i=\frac{G_i}{F_i}=\frac{G_{i}\odot F^*_{i}}{F_{i}\odot F^*_{i}}, 过拟合会比较严重,使用平均化策略效果会比较好,即
(2.6)H=1NiGiFiFiFi.H^*=\frac{1}{N}\sum_{i}{\frac{G_{i}\odot F^*_{i}}{F_{i}\odot F^*_{i}}}. \tag{2.6}
为了保障求解的稳定性,在分母上加一个较小的正则项εε(相当于在频谱上增加一个白噪声),试验发现ε=0.1ε=0.1时PSR(参见第3节)最高。
在第一帧时,对跟踪框(groundtruth)进行随机仿射变换(random affine transformations),获取多个训练样本(文中为8个)fif_i。在 fif_i 上以目标为中心做出对应的期望高斯相应gig_i.
   为了使输出连续光滑,作者加入了平滑滤波的更新策略,第i帧的MOSSE滤波器由下式得到
(2.7)Hi=AiBiAi=ηGiFi+(1η)Ai1Bi=ηFiFi+(1η)Bi1\begin{aligned} H^*_i&=\frac{A_i}{B_i}\\ A_i&=\eta G_i \odot F^*_i +(1-\eta)A_{i-1} \\ B_i&=\eta F_i \odot F^*_i +(1-\eta)B_{i-1} \tag{2.7} \end{aligned}
其中ηη为学习率;较近帧在本帧的决策中的权重较大。作者通过实验,发现η=0.125η=0.125 能够使滤波器快速适应目标形变,还能保持较好的鲁棒性。
   当在当前帧内 M×NM×N 大小的检测区域 ZZ 进行检测时,检测结果为
(2.8)y=F1HZy=F^{-1} {H^*\odot Z} \tag{2.8}
新目标的估计位置即为相关分数矩阵yy 的最大值位置。

3. 算法性能

3.1 跟踪效果评估指标 PSR

   PSR(The Peak-to-Sidelobe Ratio)峰值旁瓣比,衡量相关性峰值,检测遮挡或跟踪失败,或获取新出现的跟踪目标。论文中定义检测响应输出矩阵y的最大值为峰值ymaxy_{max},峰值附近11×11之外的区域定义为旁瓣(Sidelode)。μslμ_{sl}σslσ_{sl}为“旁瓣”区域的均值和标准差,则PSR定义为
(3.1)PSR=ymaxμslσsl.\text{PSR}=\frac{y_{max}-μ_{sl}}{σ_{sl}} . \tag{3.1}
   作者通过实验发现,当PSR取值在20~60之间,表明有很强的峰值(检测结果显著);当PSR跌落到7附近时,则表明出现遮挡或检测失败。

3.2 速度

    669fps (2.4Ghz Core 2 Duo)

3.3 效果展示

目标跟踪 — MOSSE

参考资料

https://blog.****.net/autocyz/article/details/48136473
https://en.wikipedia.org/wiki/Cross-correlation