CVPR 2017目标跟踪论文LMCF
文章链接:Large Margin Object Tracking with Circulant Feature Maps
链接:https://arxiv.org/abs/1703.05020
终于有机会在专栏介绍一下自己的工作Large Margin Object Tracking with Circulant Feature Maps (LMCF),文章已经被CVPR 2017接收,欢迎大家讨论、拍砖。
在Tracking这个领域,我觉得可以分成两大类,第一类主要关注效果的提升,比如MDNet,TCNN(https://zhuanlan.zhihu.com/p/25312524),他们确实把效果做的很好,在数据集上的结果刷的很高,但是速度非常慢,无法满足实时性要求。另一类则比较关注跟踪速度,比如Staple(https://zhuanlan.zhihu.com/p/25312595),GOTURN。当然了,在保证的速度的同时也要保证效果。我之前比较关注第二类,主要是考虑到跟踪的实时性应该是第一考虑要素,在此基础上做了LMCF,比较幸运地被CVPR 2017接收。目前正在思考第一类工作,并思考如何将这两类更好地结合。本篇文章主要还是在介绍我们LMCF的工作。
1. Motivation
1.1 整个算法思路
结构化SVM与传统SVM相比有着强大的判别力,而相关滤波有着速度上惊人的优势,是否能够结合这两者,得到一种既高速又高效的跟踪算法呢?
在相关滤波(KCF [1])或者说它的前身CSK出来之前(当然最早用相关滤波的是MOSSE [2]),结构化SVM(Struck [3](2011 ICCV))是一种效果很好的跟踪算法,主要是由于其强大的判别特性(Discrimination)。Struck用Structured output SVM作为分类器,也就是结构化SVM。这是一种输出空间可以是任意的复杂形式的SVM分类器,比如说序列、树等。在Struck中,输出空间是目标相对于上一帧的平移位置信息(
),确实在当时取得了非常好的效果。
但是由于在求解结构化SVM时计算复杂度较高,为了跟踪的实时性,Struck只能用简单的Haar特征来表示目标,采样的数量也比较稀疏。即便如此,Struck速度还是很慢,大概10FPS左右。但是结构化SVM是一个很强的判别器,在Struck提出时,其跟踪效果可以说是当时最佳的。
在基于相关滤波(Correlation Filter)算法出现之后,通过循环采样大大增加了样本数量,为一直以来困扰跟踪领域的稀疏采样问题提供了新的解决思路,并且可以用快速傅里叶变换FFT快速求解,因此可以在保证速度的前提下用一些维度较高的特征来做跟踪,比如KCF用到了HOG特征。KCF用简单的岭回归作为分类器,但是由于用到了高维的HOG特征以及稠密采样,使得它的效果还是非常好的,并且速度在170FPS左右,这也使得KCF变成了大量算法的baseline。
到这里就出现了LMCF的第一个最重要的motivation了,我们想用循环矩阵来突破结构化SVM的稀疏采样问题,更想借助CF来突破结构化SVM的跟踪速度。
1.2 针对前向跟踪
多峰前向检测。这一点是用来解决相似物体干扰的。在目标周围有特征相似的干扰物体时,响应图会有多个峰值,且最高的那一个有可能是干扰物体的,这时候可能就会引起误判。
1.3 针对模型更新
如何判断跟踪器跟踪的不好,或者说如何判断当前帧出现了遮挡、甚至目标丢失?一旦能够判断这一点,模型更新的准确性就可以有较大提升。
先前做了关于KCF的大量实验,我们观察到KCF的响应图(response map)。在跟踪准确的时候是一个峰值很明显,接近理想的二维高斯分布图,如图一的第一行所示。而在跟踪的不好的情况中,尤其是遮挡、丢失、模糊等,响应图会剧烈振荡,如图一第二行所示。因此我们提出了一种新的判据来判断是否出现了振荡,当判断出现振荡时,不进行模型的更新。这个判据的初始版本是我用在另一篇做机器人跟踪的文章中,Real-time 3D Human Tracking for Mobile Robots with Multisensors (ICRA 2017)(https://arxiv.org/abs/1703.04877)。
图一:遮挡
2. LMCF Algorithm
2.1 问题描述
在LMCF中,我们的分类器是一个结构化SVM,循环采样的目标框作为训练样本,因此输出空间
,其中
分别是目标的宽、高。输入空间是一个与目标框成比例的图像块
。输入-输出对即为
,
表示循环位移量,x表示以此为中心的图像块,
为对应的联合特征图(joint feature map)。用来衡量
为目标的可能性的函数
定义为线性形式
,那么跟踪的目标函数为:
(1)
为了求解,我们的优化目标是这样的:
(2)
其中
是衡量预测为
相对于真实位置
的损失函数,定义为:
,其中
设计为高斯函数,在目标位置响应最大。
具体求解过程可以移步文章内容,有疑问可以再讨论,有时间我会再补充进来的。
2.2 多峰目标检测
每当新来一帧时,s是基于上一帧目标位置的图像块,目标的位置
可以通过(1)计算得到。通过循环采样得到的整张响应图可以这样计算:
(3)
其中
缩写为
。如图二所示,当目标周围有相似特征的区域时,可能会出现最高的峰值是干扰的情况。为了进一步提高定位精度,我们进行多峰检测。
图二:
对于(3),多个峰值可以通过
得到,其中B是一个只有局部最高点是1,其余为0的矩阵。当这些峰值与最高点的比例超过一个阈值时,我们对这些峰值进行二次检测,最后目标定义为所有响应图的最高点。
2.3 高置信度模型更新策略
如何判断跟踪结果是否准确是一个没有定论的问题,但又是一个非常重要的问题。因为这决定着模型的更新策略。KCF,DSST,DSSVM,Staple等许多算法是不进行跟踪结果可靠性的判定的,每一帧的结果都用来更新,或者像MDNet或者TCNN那样每隔N帧更新一次。这样是有风险的,特别是当目标被遮挡,或者跟踪器已经跟的不好的时候,再去更新模型,只会使得跟踪器越来越无法识别目标,这就是模型漂移问题,model drift。
由于想要保证跟踪速度,我们就需要一种简单有效的模型更新策略,最好能够通过已经获得的一些资源来进行判断,而不需要进行太多复杂的计算。首先最容易想到的就是response map的最高点的值
,一般来说这个值越大说明跟踪的结果越好,但也有例外,比如图三中第一行第三列,在目标被几乎完全遮挡的时候最高响应值是0.94,这个值是高于整个视频最高响应值的均值的,如果只用这一个判据进行了模型的更新,就会让模型漂移到遮挡物体上,如图三第二行第三列,最后丢失了目标。
响应最高点并不能反映响应图的振荡程度。在图三中,虽然最高点的值
依然高,但是响应图在被遮挡时振荡剧烈,是可以通过振荡程度来避免错误更新的。因此我们提出了一个新的判据APCE:
其中
分别表示响应最高、最低和
位置上的响应。这个判据可以反映响应图的振荡程度,当APCE突然减小时,就是目标被遮挡,或者目标丢失的情况,如图三第一行中目标被遮挡后,APCE相对于这段视频APCE的历史均值就减小的很明显,因此在这种情况下我们选择不更新模型,从而避免了模型的漂移。
只有当APCE和
都以一定比例大于历史均值的时候,模型才进行更新,这样一来大大减少了模型漂移的情况,二来减少了模型更新的次数,达到了加速的效果。
3. Experiments
3.1 自身对比实验
我们分别用传统特征(HOG+CN)和CNN特征实现了LMCF和DeepLMCF,另外比较了不用多峰检测的LMCF-Uni,不用模型更新策略的LMCF-NU,以及两者都不用的LMCF-N2,在OTB50测试了效果。当然除了速度之外,各个指标都是DeepLMCF最好。可见模型更新策略和多峰检测策略都带来了一定的提升。
3.2 LMCF对比实验
左边一列是OTB50,右边是OTB100。跟用传统特征的比较新的方法做了比较,方法和对应年份、出处都在图例里面,用的结果都是各个作者自己公布的结果。我们的平均速度在80FPS以上。
3.3 DeepLMCF对比实验
我们还做了一组实验,将特征换成CNN特征,跟最新的用了深度特征的算法作比较。在提交的前几天看到了MD大神ECCV的新作C-COT,他公布了结果,所以也拿来比较了一下。效果确实比我的好一些,但是速度差别很明显,我们的速度是10FPS左右,而C-COT的速度是0.25FPS左右(这是我们自己测试的速度)。
通过上面的实验,我们验证了LMCF的高效性。
4. Conclusion
总结一下,这篇文章中,我们用了结构化SVM作为分类器,有着强大的判别能力,并引入了相关滤波,通过循环采样增加了训练样本的数量同时进行加速。我们利用多峰检测避免了相似物体和背景干扰。针对模型更新环节,提出了简单有效的模型更新策略,大大减少了模型漂移的情况,同时减少了模型更新的次数,达到了再次加速的效果。我们的方法不依赖于具体特征,可以根据实际情况使用传统特征或者深度特征。在实验中,我们验证了LMCF的高效和高精度。
[1] J. F. Henriques, R. Caseiro, P. Martins, and J. Batista. Highspeed tracking with kernelized correlation filters. IEEE Transactions on Pattern Analysis and Machine Intelligence, 37(3):583–596, 2015
[2] D. S. Bolme, J. R. Beveridge, B. A. Draper, and Y. M. Lui. Visual object tracking using adaptive correlation filters. In Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on, pages 2544–2550. IEEE, 2010.
[3] S. Hare, A. Saffari, and P. H. Torr. Struck: Structured output tracking with kernels. In 2011 International Conference on Computer Vision, pages 263–270. IEEE, 2011.
作者简介
本文作者和傻牛一起闯天下(知乎id)研究方向是计算机视觉和机器人,主要工作为目标跟踪和目标检测,在机器人和视觉领域发表过多篇顶级会议,著有知乎专栏 目标跟踪算法,主要分享目标跟踪领域的经典和最新的方法,期望大家的交流与投稿。
本文为和傻牛一起闯天下原创,授权转载自知乎专栏目标跟踪算法,点击阅读原文查看原文或者复制此链接(https://zhuanlan.zhihu.com/p/25761718)进入。