论文动机

首先是 motivation,近两年 DCF+CNN 的 tracker 在 tracking 的社区里面一直是标配,但我们注意到几乎所有的 tracker 都只用到了 RGB 信息,很少有用到视频帧和帧之间丰富的运动信息,这就导致了 tracker 在目标遇到运动模糊或者部分遮挡的时候,performance 只能依靠离线 train 的 feature 的质量,鲁棒性很难保证。

于是我们就想利用视频中的运动信息(Flow)来补偿这些情况下 RGB 信息的不足,来提升 tracker 的 performance

具体来说,我们首先利用历史帧和当前帧得到 Flow,利用 Flow 信息把历史帧 warp 到当前帧,然后将 warp 过来的帧和本来的当前帧进行融合,这样就得到了当前帧不同 view 的特征表示,然后在 Siamese 和 DCF 框架下进行 tracking。

6e2ebc4da810f175d1c118723dfc4817653d4eb1

▲ FlowTrack整体框架

上面是我们算法的整体框架,采用 Siamese 结构,分为 Historical Branch 和Current Branch。

在 Historical Branch 里面,进行 Flow 的 提取 和 warp,在融合阶段,我们设计了一种 Spatial-temporal Attention 的机制(在后面叙述)。

在 Current Branch,只提取 feature。Siamese 结构两支出来的 feature 送进 DCF layer,得到 response map。

总结来说,我们把 Flow 提取、warp 操作、特征提取和融合和 CF tracking 都做成了网络的 layer,端到端地训练它们

技术细节

下面是一些技术细节,采用问答方式书写。

问:warp 操作是什么意思,怎么实现的?

答:warp 具体的推导公式可以参见 paper,是一种点到点的映射关系;实现可以参见 DFF 和 FGFA 的 code,略作修改即可。

问:Flow 提取和训练是怎么实现的?

答:我们采用的是 FlowNet1.0 初始化,然后在 VID 上面训练,训练出来的 Flow 质量更高,对齐地更好;未来我们会换用 FlowNet2.0 或者速度更快的 Flow 网络,争取在速度和精度上有所提升。

问:融合是怎么实现的?

答:在融合阶段,我们我们设计了一种 Spatial-temporal Attention 的机制。在 Spatial Attention 中,是对空间位置上每一个待融合的点分配权重,具体采用余弦距离衡量(公式可以参见 paper),结果就是和当前帧越相似分配的权重越大,反之越小。

这么做的问题是当前帧的权重永远最大,所以我们借鉴 SENet 的思想进而设计了 temporal attention,即把每一帧看做一个 channel,设计一个质量判断网络:

b2fdcfaa7b0808e8092f37cbc8f55e385182ea1d

▲ Temporal Attention的图示

网络输出的结果是每一帧的质量打分,质量高的帧分数高,质量低(比如部分遮挡)的帧分数低:

4a6861ef30250d44bb4908073d89e075cd1d0519

▲ Temporal Attention的结果

Temporal Attention 和前面的 Spatial Attention 结合起来,就可以对 warp 之后的 feature map 和当前帧本身的 feature map 进行融合。

问:DCF 操作怎么做成 layer?

答:这个在 CFNet 和 DCFNet 里面具有阐述,paper 里面也做了简单的总结。

问:paper 里面 warp 的帧数是怎么选定的?

答:通过实验确定,实验结果如下:

cffce62e084d864e3286cad7de63efe036078d26

▲ warp帧数的选择

问:最后在 OTB 和 VOT 的实验结果怎么样?

答:OTB2015 AUC 分数 0.655;VOT2016 EAO 分数 0.334(超过 CCOT),速度 12FPS(是 CCOT 的 40 倍),当然,和 ECO 还是有精度上的差距。结果图可以参见下面:

fe77f7263ae5cb4f0a9cac516818be1979bb5918

▲ OTB2015的实验结果

0c9d02d3a65459ddf1b29cab49e3772d36f5e303

▲ VOT2016的EAO Ranking

7c18eca6e98b800567e533902ea29be5dd2a4bf0

▲ VOT2016上面具体的accuracy和robustness


为了完整起见,补充一下 OTB2013 和 VOT2015 的结果:

3c8b6569969624ff0b86f7185627717499616e71

▲ VOTB2013实验结果

0dd2679dd53f946e5d8a2a8a3df57eb32d5958cb

▲ VOT2015上面具体的accuracy和robustness

48eac03e95fc5665c8e67d8d49bb229bcbe657b6

▲ VOT2015 EAO Ranking

问:网络中元素比较多,究竟哪一块在 work?

答:我们做了 ablation 分析,结果如下,值得注意的是加入固定的光流信息之后,某些数据集上的 performance 反而下降了;我们估计是由于光流信息的(不高的)质量和(不太)对齐造成的。

f5e6c5abb08bdcde8d7c4370b4b5441b4d98fa11

▲ ablation分析,FlowTr是完整的FlowTrack,其余从上到下分别是:不用Flow信息的,用Flow信息但不进行端到端训练的,用time-decay方式进行融合的,不用temporal attention的

问:为什么选择 warp 的帧间隔是 1 而不是 2,4,8 这种,这样的话不是更能包含更多的 temporal information 吗?比如更长时间的遮挡的时候似乎更 work?

答:我们试了帧间隔为 1,2,4 的方案,当帧间隔为 2 和 4 的时候(即 warp t-2,t-4... 或者 t-4,t-8...),虽然在某些情况(比如遮挡)能取得更好的结果,但整体性能是下降的。

我们猜测是由于帧间隔大了之后,Flow 信息的质量可能会变差(毕竟 FlowNet 是针对小位移的)。

问:fixed Flow 和训练之后的 Flow 有什么区别?

答:训练之后的 Flow 相比较固定的 FlowNet 提取出来的 Flow,质量更高,对齐地更准,一个例子如下图:

9a5b4cd732bc88d35025b97da87bcd84b33a86c9

▲ 左列:待输入 Flow 网络的两张图;中列:固定的 FlowNet 和训练之后的 Flow 网络提取的 Flow;右列:Flow mask 到原图(注意:都是 mask 到左下角的图上)。

问:和 ICPR 那一篇 Deep Motion Feature for Visual Tracking 那一篇结果对比怎么样?

答:OP 指标可以超过,速度比他快很多(他的速度不包含提取 Flow 的时间),见下表:

a0798b8198bd9b5d5fb3600ef3f350fdb89176d2

▲ 和ICPR文章的对比

问:在 VOT2017 上面的结果怎么样?

答:还不错,EAO 目前可以排名第二,见下图:

c0fbf17792c52f50610a949c37a1742d8ac8fc9a

▲ VOT2017结果


原文发布时间为:2018-04-23

本文作者:朱政

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐