[CVPR2017]CFNet_End-to-end representation learning for Correlation Filter based tracking

来源:互联网 发布:除了淘宝联盟哪个最好 编辑:程序博客网 时间:2024/05/29 02:55

CFNet是KCF的作者2017年最新的提出的目标跟踪算法,发表于CVPR2017,非常值得一读。
原文地址:https://arxiv.org/abs/1704.06036v1
工程地址:https://github.com/bertinetto/cfnet

引言

 多层神经网络是计算机视觉中做图像表达很有用的工具,但是,训练时没有的类别或者某类训练样本很少时,仍是一个很有挑战的问题。这一问题自然在视觉跟踪任务中遇到,因为跟踪的目标是在只在序列的初始帧给定目标包围盒的单一监督,在整个视频上重检测目标位置,主要的挑战就是目标先验信息的缺乏。
 最简单的方法就是采用一个预训练的深层CNN网络来跟踪目标,但是及其有限的训练数据和大量参数让这个学习问题很困难,并且,SGD作在线调整代价昂贵(速度慢,计算复杂度高)。
 一个解决方法是网络不要去做在线调整,而是学习一个deep embedding作为一个全局目标描述子,比如很多跟踪算法[ ]使用了Siamese CNN,先离线训练判别两个图像块是否包含同一个目标,一个有效的embedding将能通过相似性来做检测(跟踪),绕开了在线学习问题。然而,仅使用固定的metric比较外观模型让学习算法不能利用video-specific线索。
 一个可选的策略就是使用在线学习算法如CF(Correlation Filter),CF通过高效的解岭回归问题,可以将一个patch从周围块中区分出来。并且由于采用了FFT和element-wise的操作,比SGD更高效,相比于embedding的方法,判别器能适应特定的视频。
 如何把CF高效的在线学习与离线训练的高判别度特征相结合就是一个挑战性问题,[]等算法说明CF和CNNs可以互相补偿,两者的结合提高了性能。
 然而,前述工作只是将CF应用到了预训练的CNN特征上,没有任何两种方法的深入集成。这篇文章想端到端的训练CNN-CF的结合。
 实现这一集成的关键一步是将CF解释为可微的CNN层,为了让误差能够通过CF反传至CNN特征,挑战性在于CF本身是一个学习问题的solution,这篇文章提供了一个和CF推导近似形式的表达,并且证明了在端到端CNN架构中训练的实用性。
 在与Siamese-FC的对比中,作者发现网络足够深的时候,CF并不会提高跟踪结果。但是,本文提出了几个轻量级的网络,只需要几千个参数,就能够在benchmark上取得state-of-the-art的性能,并且运行帧率很高。

相关工作

 这部分主要介绍了相关滤波CF跟踪研究进展以及BP算法。(略)

方法

 这一块主要介绍了三点:一是 Siamese-FC,这是一个学习embeddings的框架,也是本文的baseline。二是之前的工作是如何将embeddings应用到跟踪算法中去。三是介绍了CFNet架构,四是介绍了CF layer及它的evaluation和反向传播BP。
1. 全卷积对称网络 Siamese-FC

gρ(x,z)=fρ(x)fρ(z)(1)

x’, z’分别目标和搜索区域,fρ表示学习率为ρ的CNN,在z’上穷举搜索x’,得到response map,响应最大值对应目标位置。
训练方法:离线训练,每次都是从一段视频里随机选1对图像(x,z)
labels: c(+1,-1)。+1表示 正确的目标位置,-1 表示其他位置。
训练通过在测试集上最小化 logistic loss函数 进行:
argminρi(gρ(x,z),z)(2)
细节可参考Siamese-FC
2. 跟踪算法:
 网络本身只是衡量两个图像块的相似性,在线跟踪通过评估网络前向传播的来进行。在新的一帧,以前一帧估计的目标位置为中心提取一个搜索区域,将目标的特征同搜索区域的特征比较,目标新的位置就是在得分最高的位置。
 先前的Siamese-FC网络仅仅是将每帧同目标的初始外观比较,本文中,每帧都会结合前一个模板算得一个新模板。
3. CF network
 后文CF即Correlation Filter,由系统框架图可以看到,本文在一个输入支路上x和cross-correlation操作之间加入CF block,在公式(1)的基础上引入两个参数s,b为了让响应图值的范围更适合逻辑回归。公式如下:
hρ,s,b(x,z)=sω(fρ(x))fρ(z)+b(3)
w=ω(x)就是CF block,它计算出一个标准的CF模板(KCF中在傅里叶域解岭回归问题得到的w),效果可以理解为对translation鲁棒的判别模板.
 CFNet前向传播的时候就是一个加入了CNN特征的CF跟踪器,但是,之前的算法并不能端到端训练CF,本文就是推导了CF中的模板的对输入的导数使得CF也能够被端到端训练。
这里写图片描述
4. CF
这部分主要是推导CF层反向传播的计算公式,并且是傅里叶域的计算形式。(还需要细看,待补充)

实验

首先做了同baselinbe Siamese-FC的对比实验,相同卷积层数,CFNet成功率,overlap更高,5层之后两个效果一样了。

overlapsuccess rate

然后做了特征转移的实验,是为了验证融合了CF训练得到的特征更适合用CF跟踪,所以将CFNet同Baseline+CF和ImageNet+CF做了对比,结果如下图,验证了假设。
这里写图片描述

再然后做了自适应重要性的实验,将离线训练得到的拉格朗日乘子a(事实上就是网络参数)在测试(跟踪时)固定,比较和有在线学习时跟踪效果(online adaptation)的对比。图表说明,后者一直表现更好
这里写图片描述

最后是和最先进跟踪算法的对比,真是又快又好数据量小。
这里写图片描述

小结:
1.端到端的训练CF,彻底将CF和CNN结合了起来。
2.CF层的BP是在傅里叶域计算的,速度快,跟踪算法实时性好。
3.没有用大型神经网络,性能好的同时,模型小很多。
疑问:
1.卷积网络5层之后跟踪效果不提升的解释是?
2.CF层只加在了x那个branch上,并且,最后还是要做cross-correlate,多计算了一次相关?

阅读全文
1 0
原创粉丝点击