论文笔记Learning dynamic siamese network for visual object tracking

1. 标题及来源

Learning dynamic siamese network for visual object tracking, ICCV, 2017

2. 拟解决的问题

1. 如何有效地学习目标外观的时间变化(efectively learn temporal variation of target appearance)
2. 如何排除复杂背景的干扰(exclude the interference of cluttered background)
3. 在解决1和2的基础上保持实时性

3. 解决方法

3.1 算法整体

在这里插入图片描述
图中橙线是该方法的网络结构图
1. 通过卷积网络提取第一帧中目标模板的特征,将得到的特征图记为 f l ( O 1 ) f^l(O_1) fl(O1)
2. 通过卷积网络提取第t帧中候选区域的特征,将得到的特征图记为 f l ( Z t ) f^l(Z_t) fl(Zt)
3. 将 f l ( O 1 ) f^l(O_1) fl(O1)与目标外貌变化参数 V t − 1 l V^{l}_{t-1} Vt1l进行点乘操作,得到第t帧中目标更新后的特征
4. 将 f l ( Z t ) f^l(Z_t) fl(Zt)与背景抑制参数 W t − 1 l W^{l}_{t-1} Wt1l进行点乘操作,得到第t帧中候选区域更新后的特征
5. 将更新后的两个特征进行相关操作,得到响应图,确定目标的位置

3.2 算法详细流程

在这里插入图片描述
RLR表示regularized linear regression(正则线性回归),O表示target,Z表示search region, f l f^l fl表示孪生网络的第l层特征, G t − 1 G_{t - 1} Gt1表示和第t-1帧的Z同大小的图片,但是target在该图片的中心区域, G ‾ t − 1 \overline{G}_{t-1} Gt1表示对 G t − 1 G_{t-1} Gt1进行了背景抑制,即 G t − 1 ∗ W t − 1 l G_{t - 1}*W^l_{t - 1} Gt1Wt1l
a. 从当前帧(记为t)中裁剪出搜索区域,记为 Z t Z_t Zt
b. 根据上一帧的响应图( S t − 1 l S^l_{t-1} St1l)得到上一帧的 O t − 1 , G t − 1 c . 使 用 孪 生 网 络 提 取 第 t − 1 帧 O_{t-1}, G_{t-1} c. 使用孪生网络提取第t-1帧 Ot1,Gt1c.使t1O_{t - 1} 的 特 征 , 将 第 l 层 特 征 记 为 F d . 同 理 提 取 第 1 帧 的特征,将第l层特征记为F d. 同理提取第1帧 lFd.1O_1 的 特 征 , 将 其 记 为 的特征,将其记为 F_1$
e. 将 F 1 F_1 F1和F输入到RLR单元学习外观变化参数V
f. 将 G t − 1 G_{t - 1} Gt1输入到右边那个分支中,通过点乘得到 G ‾ t − 1 \overline{G}_{t - 1} Gt1
g. 使用孪生网络分别提取 G t − 1 和 G ‾ t − 1 G_{t - 1}和\overline{G}_{t - 1} Gt1Gt1的特征,记为 F G 和 F G ‾ F_G和F_{\overline G} FGFG
h. 将 F G 和 F G ‾ F_G和F_{\overline G} FGFG输入到RLR单元中学习背景抑制参数W
i. 使用孪生网络提取第t帧search region的特征,记为 F z F_z Fz
j. 将 F z ∗ W F_z*W FzW作为更新后的search region( O ^ \widehat O O ),将 F 1 ∗ V F_1 * V F1V作为更新后的target( F ^ z \widehat F_z F z),两者进行相关操作即可得到响应图,从而确定目标的位置。

3.3 RLR

通过它可以计算 V t − 1 l 和 W t − 1 l V^l_{t - 1}和W^l_{t - 1} Vt1lWt1l
给定两个张量X和Y以及一个最优的线性变换矩阵R,使X和Y相似
R = a r g m i n ( T ) ∣ ∣ T ∗ X − Y ∣ ∣ 2 + λ ∣ ∣ T ∣ ∣ 2 R = arg min(T) ||T * X - Y||^2 + \lambda ||T||^2 R=argmin(T)TXY2+λT2
*表示循环卷积
上述方程可以通过傅里叶变换快速求得R
在这里插入图片描述
外观变化参数V: 它的目的就是为了建模第一帧和第t-1帧的变化来建模目标的变化,然后更新target,使其能得到好的模板。它可以套用上述公式,即T就是V,X是 F 1 l F^l_1 F1l,Y是 F t − 1 l F^l_{t - 1} Ft1l
在这里插入图片描述

背景抑制参数W: 它的目的是为了抑制背景信息,它通过第t-1帧的响应图得到与第t-1帧search region同大小的图片,并且target在该图片的中心区域,记为 G t − 1 G_{t - 1} Gt1,将它与高斯响应图相乘得到 G ‾ t − 1 \overline G_{t-1} Gt1。它也可以套用上述公式,即T就是W,X是 F G t − 1 l F^l_{G_{t-1}} FGt1l,Y是 F G ‾ t − 1 l F^l_{\overline G_{t-1}} FGt1l
在这里插入图片描述

3.4 多层特征融合

在这里插入图片描述
S t = ∑ l ∈ L γ l ⨀ S t l S_t = \sum_{l \in L}\gamma^l \bigodot S^l_t St=lLγlStl,如上图所示。反向更新公式如下
∇ γ l L t = S t l ⨀ ∇ S t L t ∇_{\gamma^l}L_t = S^l_t \bigodot ∇_{S_t} L_t γlLt=StlStLt

4. 实验结果

4.1 OTB-2013

在这里插入图片描述
从图中可以发现
1. DSiamM在两个图中都排名第2,MDNet的效果最好,但是MDNet只有1fps左右,远小于DiamM的45fps
2. MDNet中使用了数据集中的序列训练他们的模型,所以相对可能会有点不公平,针对这点,作者复现了MDNet并将其重命名为R-MDNet
3. SINT+使用光流作为额外的运动信息,但是依旧比DSiamM的效果差
4. DSiamM和DSiam虽然比SiamFC慢,但是性能相对提升了7.9%和5.6%

在这里插入图片描述
从图中可以发现:
a.当图片质量较差(FM, MB, LR)时,算法的性能会受到较大影响

4.2 VOT-2015实验结果

在这里插入图片描述
从表中可以发现:
1. 虽然DSiamM的Overlap的分数比MDNet和DeepSRDCF低,但是DSiam的速度远超过它们
2. 虽然GOTRUN,Staple和SiamFC更快,但是它的Accuracy和Overlap更低
在这里插入图片描述
从图中可以发现:
a. DSiamM相比DSiam多了一次特征融合操作,但是下降了20fps,由此可以发现,它的特征融合相对较费时

4.3 消融实验的实验结果

在这里插入图片描述
左图
从图中我们可以发现:
a. 背景抑制模块移除后效果影响不是非常大

右图
从图中可以发现:
a. 用t-1帧的target替换第1帧的target会使性能下降,可能是因为跟踪时的错误累积导致
b. 固定融合权重性能下降,可能是因为不同位置的贡献程度是不一样的,当我们固定融合权重时,就认为它们的贡献程度是一样的,所以固定融合权重会使性能下降

4.4 失败样例

在这里插入图片描述
从图中可以发现:
在第4行中,DSiamM跟踪目标失败

5. 存在的问题

a. 当图片质量较差时,目标容易跟丢
b. 原文中的目标外观变化参数V,它的目的是缩小第1帧和第t-1帧之间的差距,但是它并不能保证此处的第t-1帧一定是正确的,但是当简单的使用t-1帧替换时,它的效果又较差,所以此处就很神奇了(可能是我水平有限,欢迎大家留言讨论)

6. 总结

该算法在SiamFC的基础上,引入了目标外观变化参数V和背景抑制参数W,通过在傅里叶频域中可以快速学习V和W,通过这两个参数更新target和search region,它的速度是45fps,在OTB2013上的AUC和precision分别是0.642和0.86,在VOT2015上的Accuracy,Overlap和Speed分别是0.5414,0.2804,6.4834;当融合了多层特征后,它的速度是25fps,在OTB2015上的AUC和precision分别是0.656和0.891,在VOT2015上的Accuracy,Overlap和Speed分别是0.5566,0.2927和4.3498。

7. 知识补充

7.1 circular convolution(循环卷积)

计算两个长度均为N的序列 x 1 ( n ) x_1(n) x1(n) x 2 ( n ) x_2(n) x2(n)的循环卷积,设
x 1 ( n ) = ( 1 , 2 , 3 , 4 ) x_1(n)=(1,2,3,4) x1(n)=(1234) x 2 ( n ) = ( 5 , 6 , 7 , 8 ) x_2(n)=(5,6,7,8) x2(n)=(5678),N=4,
x 1 ( n ) x_1(n) x1(n)按逆时针方向均匀分布在一个圆周上。将 x 2 ( n ) x_2(n) x2(n)按顺时针的方向均匀分布在另一个同心圆上,如下图a所示
在这里插入图片描述
然后求两圆上相应序列的乘积,并把V项乘积叠加起来作为n=0时刻的卷积值y(0),即
y ( 0 ) = 1 ∗ 5 + 4 ∗ 6 + 3 ∗ 7 + 2 ∗ 8 = 66 y(0)=1*5+4*6+3*7+2*8=66 y(0)=15+46+37+28=66

若求n=1时刻的y(l)值,可将外圆的: x 2 ( n ) x_2(n) x2(n)固定,把内圆上的序列 x 1 ( n ) x_1(n) x1(n)顺时针旋转一个单位时间(或将 x 1 ( n ) x_1(n) x1(n)固定,把外圆上的序列 x 2 ( n ) x_2(n) x2(n)逆时针旋转),如上图b所示,然后把对应项的乘积叠加起来,即为所求。即 y ( 1 ) = 2 ∗ 5 + 1 ∗ 6 + 4 ∗ 7 + 3 ∗ 8 = 68 y(1)=2*5+1*6+4*7+3*8=68 y(1)=25+16+47+38=68
参考资料:百度百科

7.2 Fourier transformation(傅里叶变换)

时域: 以时间作为参照来观察动态世界的方法称为时域分析,就像我们经常看到的世界一样
频域: 当换一种方法观察世界,发现世界是永恒不变的,这种静止的世界叫做频域
例如音乐的曲调类似于正弦波,从时域的角度看它的曲调在不断变化,但是从频域的角度看则可以认为它只是静止的一个音符
频域基本单元: 把第一个频率最低的频率分量看做“1”,这个就算构建频域的最基本单元
傅里叶变换类型:

变换简称时间频率
傅里叶级数Fourier Series(FS)连续,周期性离散,非周期性
连续傅里叶变换Fourier Transform(FT)连续,非周期性连续,非周期性
离散时间傅里叶变换Discrete Time Fourier Transform(DTFT)离散,非周期性连续,周期性
离散傅里叶变换Discrete Fourier Transform(DFT)离散,周期性离散,周期性

傅里叶级数(FS)的频谱: 可以理解为不同频率正弦波的振幅。如下图所示
在这里插入图片描述
傅里叶级数的相位谱: 正弦波中最高点与频率轴最小的水平距离就是时间差,将该值除以所在频率的周期,就得到了相位谱,如下图所示。
在这里插入图片描述
傅里叶变换(FT): 可以认为对一个周期无限大的函数计算傅里叶级数。计算公式如下:
F ( ω ) = F [ f ( t ) ] = ∫ − ∞ + ∞ f ( t ) e − i ω t d t F(\omega)=F[f(t)]=\int^{+\infty}_{-\infty}f(t)e^{-i\omega t}dt F(ω)=F[f(t)]=+f(t)eiωtdt

傅里叶变换的逆变换: f ( t ) = F − 1 [ F ( ω ) ] = 1 2 π ∫ − ∞ + ∞ F ( ω ) e − i ω t d ω f(t)=F^{-1}[F(\omega)]=\frac{1}{2\pi} \int^{+\infty}_{-\infty}F(\omega)e^{-i\omega t}d\omega f(t)=F1[F(ω)]=2π1+F(ω)eiωtdω
说明: F ( ω ) F(\omega) F(ω)表示频域函数, f ( t ) f(t) f(t)表示时域函数
F ( ω ) F(\omega) F(ω)表示频域函数, f ( t ) f(t) f(t)表示时域函数
离散时域傅里叶变换(DTFT): 离散傅里叶变换(DFT)是离散时域傅里叶变换(DTFT)的特例。DTFT在时域上离散,在频域上则是周期的。DTFT可以被看做是傅里叶级数(FS)的逆变换
离散傅里叶变换(DFT): 连续傅里叶变换在时域和频域上都离散的形式,且时域和频域都是周期性的。计算公式如下:
X ( k ) = ∑ n = 0 N − 1 x ( n ) e − j 2 π N k n ( k = 0 , 1 , 2 , . . . , N − 1 ) X(k)=\sum^{N-1}_{n=0}x(n)e^{-j \frac{2\pi}{N}kn}(k=0,1,2,...,N-1) X(k)=n=0N1x(n)ejN2πkn(k=0,1,2,...,N1)
X(k)表示DFT变换后的数据,x(n)为采样的模拟信号,公式中的x(n)可以为复信号,即虚部为0,此时公式可以展开为:
X ( k ) = ∑ n = 0 N − 1 x ( n ) ( c o s 2 π k n N − j s i n 2 π k n N ) ( k = 0 , 1 , 2 , . . . , N − 1 ) X(k)=\sum^{N-1}_{n=0} x(n) (cos2\pi k \frac{n}{N}-j sin2 \pi k \frac{n}{N}) (k=0, 1, 2, ..., N-1) X(k)=n=0N1x(n)(cos2πkNnjsin2πkNn)(k=0,1,2,...,N1)
参考资料:

  1. 深入浅出的讲解傅里叶变换
  2. 傅里叶变换(一)——认识傅里叶变换
  3. 离散傅里叶变换-DFT(FFT基础)

7.3 SuperPixel

SuperPixel就是将一幅图像的像素分为稍微大一些的像素块。
参考资料:SuperPixel

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值