【FlowTrack(CVPR2018)】:目标跟踪论文阅读

End-to-end Flow Correlation Tracking with Spatial-temporal Attention 论文地址

写在前面

这是中科院大大朱政在商汤实习的时候做的,发表在2018年的CVPR上,文中提到这是第一篇将光流法和深度跟踪端到端训练的方法,他们使用的光流法就是2015年提出的FlowNet,文章只是将其拿过来重新训练了一下,没有太多讲其中的结构,而且朱政也表示FlowNet原来是处理小位移的,所以只是拿过来用还有可能会降精度。

Motivation

  • 目前已有的tracker都只是用当前帧的RGB信息,很少有用到视频帧和帧之间丰富的运动信息,这导致了训练出来的tracker高度依赖于离线训练的特征的质量,当目标表观变化太大时鲁棒性差;
  • 可以通过整合多帧的特征来加强模板的鲁棒性,但是视频不同帧之间的目标可能是不对齐的,简单特征融合只会使得网络效果变差。

Contribution

  • 提出了一个端到端光流相关跟踪网络,来增强特征表示和跟踪精度;
  • 提出了一个新颖的Spatial-temporal 注意力机制,可以自动整合历史帧的特征。

Algorithm

【FlowTrack(CVPR2018)】:目标跟踪论文阅读
上图是这篇文章的网络结构,用了Siamese的网络,分为历史帧和当前帧t, 历史帧先过一个FlowNet网络提取光流信息,然后将光流信息与FeatureNet提取出来的特征做warp操作,然后再将t-1帧到t-T帧得到的warp特征过一个Spatial-Temporal网络相融合,得到ϕ(x)\phi(x),再与当前帧t 过了FeatureNet的ϕ(z)\phi(z)做一个相关操作,得到最终的响应图。

文章中最后的那个CF layer就是把DCF弄成神经网络的一层,具体方式和公式推导可以参考文章。

1、Aggregation using optical flow

就是将前T帧的信息整合到t-1帧中,文章中的意思是,这样可以使得得到的目标特征包含的信息就会更加丰富,比如不同的视角、形变和光线变化,最后得到的ϕ(x)\phi(x)如下:
【FlowTrack(CVPR2018)】:目标跟踪论文阅读
其中的wit1w_{i\to t-1}就表示不同层的warp后特征的权重,这个权重由Spatial-Temporal 注意力机制决定。(这里偷偷说一句,这个地方整合的特征不就是之前帧的跟踪的结果吗,这里是不是可以理解为一种模板更新方式,其实也可以理解为就是用了光流信息啦。文章自己也有一个模板更新的机制。)

2、Spatial-Temporal attention

空间的attention是通过一个Softmax操作实现的,具体公式如下,是对空间上每个点的权重:
【FlowTrack(CVPR2018)】:目标跟踪论文阅读
大概就可以理解为,当t-1帧中的特征与warp后的 ϕit1e\phi_{i\to t-1}^e 比较接近时,权重应该更大,文章里说是之前的和当前帧越像,越应该重视。个人理解为,当前帧应该和上一帧最像,所以才重视上一帧。

时间的attention就是一个channel attention,结构如下,具体可以参考SENet:
【FlowTrack(CVPR2018)】:目标跟踪论文阅读

Experiment

这个tracker运行时间大概是12FPS,精度很高,所以这个速度还算可以了。在ablation实验中,他们发现单单使用flownet精度还有降低,可能是由于FLowNet精度造成的影响,所以重要的应该还是特征整合的方式?不过FlowNet确实可以解决一些不对齐的问题。
【FlowTrack(CVPR2018)】:目标跟踪论文阅读
【FlowTrack(CVPR2018)】:目标跟踪论文阅读
【FlowTrack(CVPR2018)】:目标跟踪论文阅读
【FlowTrack(CVPR2018)】:目标跟踪论文阅读

总结

膜一下。优点就是贡献了吧,反正论文里那么多公式我也没看懂,光流确实是很经典的一种目标跟踪方式,不过后来由于复杂度等各种原因被弃用,FlowNet精度也不是很高,若是真的有一个可以很好编码光流的网络,大概跟踪的风向又会变? 一定要挑毛病的话,就是Spatial attention那边我不是很懂了,感觉还可以有更好的方式做。

这里附上朱政的知乎博文