本文主要是介绍目标跟踪方法总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 数据集
1.1 OTB
- 最经典的benchmark,有2013的OTB50和2015的OTB100
- OTB包括25%的灰度序列,分辨率相对较低
- http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html
1.2 VOT
- 视觉跟踪领域国际顶级赛事,自2013年以来每年一届
- VOT以short-term为主,用第一帧进行初始化,每次跟踪失败时,5帧之后再次初始化。认为跟踪检测应该在一起永不分离,detecter会多次初始化tracker
- VOT竞赛的数据库是每年更新,还动不动就重新标注,动不动就改变评价指标,对当年算法是不可见且难度很大的,所以结果更可靠
- http://www.votchallenge.net/challenges.html
- 所以跟踪算法前沿基本看VOT竞赛就OK了
1.3 UAV123
- 均是通过无人机拍摄的彩色图像
- https://ivul.kaust.edu.sa/Pages/Dataset-UAV123.aspx
1.4 VIVID
- 包含9个序列,均是从高空拍摄的车辆视频图像,包括灰度图像和彩色图像,相对时间都比较长,目标也比较小,遮挡情况比较多
- http://vision.cse.psu.edu/data/vividEval/datasets/datasets.html
1.5 Temple Color 128
- Temple Color 128数据集里面包含的全是彩色序列,部分序列也是和OTB重合的,如果算法只适用于彩色序列的话可以在此数据集上跑一下,此数据集也是免费下载。
- http://www.dabi.temple.edu/~hbling/data/TColor-128/TColor-128.html
2 几大难点
- 外观变形(deformation)
- 光照变化(illumination variation)
- 快速运动及运动模糊(fast motion & blur)
- 相似背景干扰(background clutter)
- 平面内、外旋转(out-of-plane & in-plane rotation)
- 尺度变化(scale variation)
- 遮挡、出视野(occlusion & out-of-view)
3 分类
3.1生成类(generative)模型方法
- 在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,比较著名的有卡尔曼滤波,粒子滤波,mean-shift等。
- 推荐算法ASMS(2014),仅用颜色特征且速度较快,在VOT2015第20名,VOT2016第32名。
ASMS算法:在经典mean-shift框架下加入了尺度估计,经典颜色直方图特征,加入了两个先验(尺度不剧变+可能偏最大)作为正则项,和反向尺度一致性检查。 - 例:从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,搜索算法就像无头苍蝇,到处去找最符合这个颜色比例的区域。
3.2 判别类(discriminative)模型方法
- 这种方法也常被称tracking-by-detection,CV中的经典套路是图像特征+机器学习, 当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域。
- 经典判别类方法推荐Struck和TLD,实时性能还行,Struck是2012年之前最好的方法,TLD是经典long-term的代表,即使效果差一点但思想非常值得借鉴。
- 判别类方法最新发展就是相关滤波(Correlation Filter)和深度学习(Deep ConvNet based),相关滤波也可以叫做模板类方法,所用的特征叫做模板类特征。
- 例:Struck(Haar+SVM),行人检测(HOG+SVM),人脸检测(Haar+AdaBoost)。
3.3 两种方法的区别
- 判别类方法在分类器训练过程中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。
4 相关滤波
4.1 KCF/DCF
- 作者:(牛津大学 João F. Henrique)
- OTB50上的测试结果(arVix:2014.4)
- Precision和FPS碾压了OTB50上最好的Struck。
- MOOSE(ICCV 2010)是目标跟踪领域第一篇相关滤波算法,采用单通道灰度特征,在训练和检测时都没有加padding,速度:615FPS,第一次显示了相关滤波的潜力。
- CSK(与KCF/DCF同一作者)在MOSSE的基础上扩展了密集采样(加padding)和kernel-trick,速度:362FPS。
- KCF/DCF在CSK基础上扩展了多道通的HOG特征,速度:KCF–172FPS,DCF–292FPS。
- CN(Martin Danelljan大神–林雪平大学)在CSK的基础上扩展了多通道颜色的Color Names,速度:152FPS。
CN方法是将RGB的3通道图像投影到11个颜色通道,分别对应英语中常用的语言颜色分类,分别是black,blue, brown, grey, green, orange, pink, purple, red, white, yellow(对比汉语中常用的语言颜色分类:赤橙黄绿青蓝紫+黑白灰,英语和汉语对颜色的认知还是略有差异的),并归一化得到10通道颜色特征。作者还测试了多种颜色特征在相关滤波中的效果,发现CN最好,其次是LAB; - CN2:CN基础上采用自适应PCA降维压缩2通道的颜色特征,速度:202FPS。
- HOG+CN成为跟踪算法中hand-craft特征的标配
5 VOT2014(尺度自适应)
- 25个测试序列,38个算法,CF方法独霸天下
5.1 评估手段
- EFO
5.2 尺度变化
- 尺度变化是跟踪中比较基础和常见的问题,注:前面介绍的KCF/DCF和CN都没有尺度更新
- 如果目标缩小,滤波器就会学习到大量背景信息,如果目标扩大,滤波器只学习到目标局部纹理,这两种情况都很可能出现非预期的结果,导致漂移和失败。
5.3 比赛结果
- SAMF基于KCF,特征采用HOG+CN,多尺度方法是平移滤波器在多尺度缩放(1.005间隔的7个尺度)的图像块上进行目标检测,取响应最大的那个平移位置及所在尺度,速度:4.6FPS
- DSST(Martin Danelljan)只用了HOG特征,DCF用于平移位置检测(加padding),类似MOSSE滤波器检测尺度(1.02间隔的33个尺度)变化(不加padding),开创了采用平移滤波+尺度滤波的方法,速度:21FPS。后来有加速版的fDSST(17个尺度),速度:54.3FPS。
- 前三名都是CF类方法,KCF由于加了多尺度检测(1.05间隔的3个尺度)和子像素峰值估计,并且VOT序列分辨率比较高,速度:66.6FPS。
6 VOT2015(边界效应)
- 60个测试序列,62个tracker,最大看点是深度学习开始进入跟踪领域
6.1 评估手段
- EFO
6.2 边界效应
- 原因:快速运动
- 结果:当目标部分或全部移出跟踪区域边界,导致响应值不是全局最大,和那些不合理样本很像,导致跟踪失败
6.3 比赛结果
- MDNet采用深度学习方法进行跟踪,荣获冠军,其次DeepSRDCF和SODLT也是深度学习方法,占比3/62
- SRDCF(Martin Danelljan)仅使用HOG特征来解决边界效应,排名第四
1.因为边界效应发生在边界附近,加入空域正则化,惩罚边界区域的滤波器系数
2.采用更大的检测区域(padding 从1.5–>4)
3.由于加正则化破坏了DCF的封闭解,采用高斯-塞德尔方法迭代优化,速度:5PFS
4.实测对快速运动的提升非常明显 - DeepSRDCF(Martin Danelljan)是结合深度特征的相关滤波方法,将SRDCF中的HOG特征替换为用imagenet-vgg-2048网络中单层卷积层的深度特征,效果有了极大提升,排名第二
- Mean-Shift类颜色算法ASMS是推荐的实时算法
7 VOT2016
- 仍是VOT2015的60个测试序列,不过做了重新标注更加公平合理,共70个tracker,深度学习已经独霸一方了
7.1 评估手段
- EAO:expected average overlap,是对每个跟踪器在一个短时图像序列上的no-reset average overlap的期望值,是评价跟踪效果的主要指标
- Accuracy:per-frame overlap,指跟踪器在单个测试序列下的平均重叠率(两矩形框的相交部分面积除以两矩形框的相并部分的面积)
- Robustness:每个tracker在每个序列上运行15次(reset-based),统计平均失败帧数来计算
- AO:average overlap,仅用第一帧的groundtruth来初始化跟踪器,然后让它一直跟下去(no-reset),最后算平均跟踪重叠率
- EFO:跟踪器实际运行时间与测试平台上执行一次规定的滤波运算所需的时间的比值,被认为是与硬件平台无关的一个度量
7.2 比赛结果
- TCNN (2)、SSAT(3)、MLDF(4) 、DNT(10)、SiamFC-R(12)、MDNet_N(15) 、SiamFC-A(21)、SO-DLT(27)都是深度学习方法,占比8/72。C-COT、DDC 、 Staple 和 Staple+是复杂特征结合相关滤波方法
- C-COT(Martin Danelljan)采用多层深度特征(VGG第1和5层)相结合的相关滤波方法,排名第一,但效率很低
1.综合了SRDCF的空域正则化和SRDCFdecon的自适应样本权重
2.将DeepSRDCF的单层卷积的深度特征扩展为多层卷积的深度特征(VGG第1和5层)
3.应对不同卷积层分辨率不同的问题,提出了连续空间域插值转换操作
4.目标函数通过共轭梯度下降方法迭代优化,比高斯-塞德尔方法要快,检测中用牛顿法迭代优化目标位置 - TCNN是纯CNN方法,与VOT2015冠军MDNet是同一作者
- Staple(Luca Bertinetto–牛津大学)算法是推荐的实时算法,结合颜色统计特征(积分图)的相关滤波方法,没有深度特征更没有CNN,因为没有破坏封闭解,所以速度快
1.相关滤波模板类特征(HOG)对快速变形和快速运动效果不好,但对运动模糊光照变化等情况比较好
2.颜色统计特征(颜色直方图)对变形不敏感,而且不属于相关滤波框架没有边界效应,快速运动当然也是没问题的,但对光照变化和背景相似颜色不好
3.Staple算法将这两种特征得到的响应图进行线性加权(0.7相关滤波响应 + 0.3颜色概率响应)来得到最终响应图 - SiamFC-R也是Luca Bertinetto的算法,将孪生网络(基于ResNet)应用于视觉跟踪,效果还不错;第21名的SiamFC-A是基于AlexNet
1.目标图像缩放到 127 × 127 × 3 127\times127\times3 127×127×3 提取特征 6 × 6 × 128 6\times6\times128 6×6×128,检测图像缩放到 255 × 255 × 3 255\times255\times3 255×255×3 提取 特征 22 × 22 × 128 22\times22\times128 22×22×128
2.相似度度量是cross-correlation交叉相关,计算每个位置的相似度得到 17 × 17 × 1 17\times17\times1 17×17×1 的score map
3.将粗糙的score map双三次插值上采样,获得更精确稳定的目标位置
8 VOT2017(相关滤波独霸天下)
- 将测试分为公测和内测,以内测的结果为最终结果,更加公平公正;
- 60个公测测试集,将VOT2016的60个难度最低的10个序列替换为10个新的难度更大的序列
- 60个内测数据集,除了公测数据集新增的10个序列,还挑选了50个类似属性但完全不同的序列
- 不允许在公开的OTB、VOT等跟踪数据集上训练,导致算法只有51个,相关CNN的方法集体缺席
8.1 评估手段
- Real-time Experiment:这是今年新引入的一种评估方式,VOT过去用EFO来评价一个跟踪器的执行速度,但是后来发现EFO仍然受到硬件平台性能较大影响,所以今年搞了个实时实验,具体做法在执行VOT标准评估时,限定跟踪器的响应时间,如果跟踪器的未能实时地(25fps,40ms每帧)反馈跟踪结果,则toolkit将不再等待,而是沿用上一帧的跟踪结果。当跟踪失败时仍然会重启跟踪器。
8.2 历年测试序列数目
8.3 比赛结果
- 公测结果
1.前10名全是相关滤波+多通道特征,特征主要是卷积特征conv feature (VGGNet)和hand-craft feature (HOG+CN),基本都是C-COT或ECO的扩展
2.CNN特征都来自ImageNet上图像分类任务pre-trained的CONVNET,除了CFCF,SiamDCF和SiamFC是在VID数据库上自己训练的网络
3.CSRDCF是前10名唯一没有使用CNN特征的,由组委会成员提出来的
4.SiamFC是少数幸存的端到端的离线训练tracker,是目前唯一可以与相关滤波抗衡的方向,但2017不允许在跟踪数据集上训练后,SiamFC的效果和2016相比明显差了许多 - 内测结果(公测进入前10)
1.公测数据集完全透明的,大家都可能充分调参,得到一个不错的结果,虽然一定程度上能反映算法水平,但内测数据集的结果才是最公平,最可信的。 - 实时测试结果
1.SiamFC和CSR-DCF++是GPU时间,ECO-HC和Staple是CPU时间
2.CSRDCF仅用了HOG+CN特征,公测第8,内测第10,实时性排名第1
8.4 ECO & ECO-HC(Martin Danelljan)
- CVPR及ICCV trackers结果对比
- ECO是C-COT的加速版,从模型大小、样本集大小和更新策略三个方便加速,速度比C-COT提升了20倍,在公测上效果还更好
1.减少模型参数–factorized convolution operator:用PCA降维,极大减小模型参数,深度特征时模型参数减少了80%
2.减少样本数量–compact generative model:采用Gaussian Mixture Model (GMM)合并相似样本,需要保存和优化的样本集数量降到C-COT的1/8
3.改变更新策略–sparser updating scheme:每隔5帧做一次优化更新模型参数,不但提高了算法速度,而且提高了对突变,遮挡等情况的稳定性。 - ECO-HC是在ECO基础上去掉CNN特征,仅使用HOG+CN特征,并将特征从41维降到13维,论文中给出速度在CPU上可达到60FPS
1.cpu上达到的实时的tracker(Inter i3 CPU @ 3.70GHz, 8GB,64位,没有GPU,软件MATLAB R2016a,OTB-100测试集)
9 VOT2018(DCF+SiamNet)
- 依然是VOT2016的测试序列,共72个tracker
9.1 比赛结果
- 公测结果
1.72个参赛算法中占比最高的是DCF类和SiamNet类,其中38个是DCF类方法占比51%,feature以来自VGGNet的深度特征为主;14个是SiamNet类占比18%,backbone以SiamFC中的AlexNet为主,今年SiamNet类占比大幅提高
2.鲁棒性前四名:MFT, LADCF, RCO, UPDT(Martin Danelljan),都是DCF类方法,CNN特征提取的backbone都是ResNet-50
3.准确性前两名:SiamRPN(商汤), SA-Siam-R, 都是SiamNet类方法,这两个算法都表现出准确性奇高,而鲁棒性前十最差的特点 - 内测结果
1.冠军:MFT是VOT2017年CFWCR的发展,在DCF框架中加multi-resolution和multi-solution,多种特征Res50, SE-Res50, Hog, 和CN组合
2.UPDT是Martin大神ECCV 2018最新工作,在ECO的基础上特征网络换成了ResNet-50,并加入Data Augmentation提取特征,浅层特征和深度特征分治,两部分自适应融合,是SRDCF到C-COT到ECO之后的又一次飞跃
- 实时测试结果
1.商汤的SiamRPN是Short-term real-time sub-challenge冠军
2.前10个中除第5名cdrtpp和第8名CSTEM(CPU速度),其他8个都是SiamNet类方法 (GPU速度)
10 总结
- 跟踪算法开始从short-term向long-term及real-time方向过渡
- DCF的方法仍然是目前跟踪的主流方向,但从最早的MOOSE–>CSK–>KCF到SRDCF、DeepSRDCF再到C-COT–>ECO,相关滤波的高效性一去不复返了;
- 特征趋向于在传统的特征(HOG+CN)上加上CNN特征,但效率都较低;
- SiamFC是目前唯一可与DCF方法抗衡的跟踪算法,但鲁棒性较差,应该是与端到端离线训练,无法在线更新有关
- CNN网络结构用得最多是VGG和ResNet,但出于效率考虑,在嵌入式上也可考虑mobilenet
11 参考
- https://zhuanlan.zhihu.com/p/26415747
- https://zhuanlan.zhihu.com/p/46669238
- https://zhuanlan.zhihu.com/p/32489557
这篇关于目标跟踪方法总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!