VOT2017结果分析及CFWCR经验分享

VOT2017结果分析及CFWCR经验分享

随着深度学习在计算机视觉方面大放异彩,近几年物体追踪也得到了飞速的发展。物体追踪解决的问题是在一段时间内对于同一个物体在复杂的背景下(如遮挡,光照,物体旋转等),进行持续高速的跟踪。因此,物体追踪在监控,安防,自动驾驶,无人机,智能家居等领域都起到关键的作用。

1、VOT2017测试集数据

VOT2017与VOT2016相比,VOT2016中某些序列已经被多数tracker准确跟踪,所以在VOT2017中将VOT2016的10个评测效果差图像序列替换如图1,并且保证总体的序列属性分布不变。与此同时VOT2017相对于VOT2016对所有序列的还对所有序列的ground truth进行了重新标定,精确到像素级别然后重新拟合矩形框。

2、VOT2017评价指标

VOT2017使用EAO(Expected Average Overlap)、Accuracy、Robustness三个主要指标对跟踪结果进行评估,平均重叠期望EAO是对每个跟踪器在一个短时图像序列上的非重置重叠的期望值,是VOT评估跟踪算法精度的最重要指标。准确率Accuracy是指跟踪器在单个测试序列下的平均重叠率(两矩形框的相交部分面积除以两矩形框的相并部分的面积)。鲁棒性Robustness是指单个测试序列下的跟踪器失败次数,当重叠率为0时即可判定为失败。因为VOT benchmark是针对的短期目标跟踪,当跟踪器失败之后,从失败位置之后的5帧开始,跟踪器会被自动重新初始化。VOT2017相比与VOT2016提出了一种新的评估实时性的方式Real-time Experiment,VOT2016使用EFO来评价一个跟踪器的执行速度,但VOT组委会发现EFO受到硬件平台性能影响。所以今年提出Real-time Experiment,具体做法在执行VOT标准评估时,限定跟踪器的响应时间,如果跟踪器跟踪速度未能达到25fps,则不再等待而是沿用上一帧的跟踪结果。当跟踪失败时仍然会重启跟踪器。

3、评估结果

VOT2017结果显示目前跟踪算法的主流方法主要分为三种,一传统的相关滤波方法,二基于卷积神经网络方法,三深度卷积特征和传统的协同滤波相结合的方法。今年VOT的51个tracker中相关滤波方法tracker共18个,主要使用的特征都是HOG特征和CN(颜色)特征,核相关滤波是相关滤波中主要使用的方法。卷积神经网络方法共9个,其中主要分为两个方向,一种是如GOTURN等的卷积神经网络回归目标位置的方法,另一种是如MDNet的卷积神经网络检测的方法。深度特征和相关滤波结合的方法共9种,基本采用VGG-M网络提取特征再输入相关滤波框架内,并且这9种都在VOT2017种表现比较出色,如CFWCR、CFCF、ECO等。还有其他类15种。

4、CFWCR经验分享
我们的方法基于业界流行的相关滤波的框架。我们使用了单cnn特征的多尺度追踪方案。我们发现现有的很多追踪器融合了cnn特征和传统的机器学习特征,如hog特征,cn颜色特征等。在我们的实验中,我们发现cnn的浅层特征具有物体轮廓的信息,高层的深度特征具有物体的语义信息,将cnn的浅层和高层特征进行融合能使得追踪器具有很好的性能。于是,我们摒弃了传统的特征,只使用了cnn的特征,这一做法,使得我们的追踪器无论是在速度上还是精度上都有了不小的提高。

当时我们在做VOT竞赛的时候,首先跑了ECO,发现复现不了作者的结果,在16上的EAO大概是0.35,在17上的EAO大概是0.26。在MD大神的代码的基础上,虽然还没复现大神的结果,但是我们有了很好的baseline。我们当时考虑了很多的改进措施:
a、特征组合方式,CNN和传统特征的加权组合,CNN不同层之间的加权组合。
b、对pca作用的思考和实验
c、模型更新策略实验
d、非正矩形框追踪
e、特征归一化方式
f、其他cnn模型以及模型集成
g、其他超参数的调试,如搜索区域,前馈图片尺度,样本更新策略,不同的resize方法,调整训练学习率,不同的窗函数阈值,不同的多尺度参数等等。
h、端到端训练一个cnn替换vgg,有点像CFCF的思路。

世事总是不尽入人意,我们花了一个月做了很多的尝试,90%都失败了,不得不说这种非端到端的训练框架如果对每一部分了解不充分的话,很难调试。即使是在深入读了论文和阅读完MD大神的代码的基础上,我们仍然走了很多弯路。

思路a的产生是我们考虑到特征之间可能是有轮廓和语义上的重复性的,在这么多超参数下,组合这么多特征很可能有很多冗余,这也是MD大神在ECO中提出PCA能取到很好效果的原因。我们发现仅仅用CNN特征结果就很好了,那么其他特征是不是必要的呢?我们在改了特征之后,相应地改了多尺度等的超参数,发现结果还能提升。后来,我们又尝试了一些特征组合方式,发现仅仅用CNN特征的结果最好。在最后,我们加入了对CNN不同层特征的得分矩阵进行加权的方法,性能略有提升,不过这个参数容易在某个数据集过拟合。

在有了思路a的实验结果后,我们只剩下CNN特征,这样需要调试的超参数就少了一些。特征的减少也导致过拟合的现象减轻了,于是,我们思考PCA对于性能的提升是否是必要的。我们发现,去掉PCA之后,EAO还能提高。
思路c的产生在于我们看ECO论文的时候发现,MD大神直接将更新步长定死为5了,有点暴力了,而且可能是针对某个tracking数据集调出来的。我们尝试了不同的步长和根据得分的大小来决定是否更新的方法,都还没MD大神直接设置为5好。

思路d的产生在于我们考虑到EAO这个指标是根据重叠比率来评估的,如果框是非正的,可能会和标注的框有更大的重叠度,但是搜索了大量的论文,发现这方面的工作实在是太少,可能需要很大的工作量,遂放弃。
思路e和f和h来自于做cnn项目的一些经验,不过由于时间关系有限,我们都只是粗略地尝试了一些就放弃了。

附上我们的代码: github.com/he010103/CFW

论文链接:openaccess.thecvf.com/c,欢迎大神们交流指正!

编辑于 2017-11-08

文章被以下专栏收录