任意对象跟踪的问题是通过仅仅在线地学习对象外观的模型来解决,使用视频本身作为唯一的训练数据。 尽管这些方法取得了成功,但他们的在线方法本质上限制了他们可以学习的模型的丰富性。需要跟踪的目标是通过起始帧的选择框给出的。框中可能是任意物体,甚至只是物体的某个部分。由于给定跟踪目标的不确定性,我们无法做到提前准备好数据,并且训练出一个具体的(specific)detector。过去几年出现了TLD,Struck和KCF等优秀的算法,但由于上述原因,用于跟踪的模型往往是一个简单模型,通过在线训练,来进行下一帧的更新。
论文提出了一种全连接孪生网络,实现了端到端的训练。基于相似度学习(similarity learning)的跟踪器SiamFC,通过进行离线训练,线上的跟踪过程只需预测即可。证明这种方法在速度远远超过帧速率要求的情况下在现代跟踪基准测试中实现了非常有竞争力的性能。达到了超过实时的帧率(86 fps 在VOT-15上)
7.4.1.1 架构
7.4.1.2 网络结构与训练过程
SiamFC设计的网络结构将原始图像缩小了8倍,即𝑘=8,并且,该网络没有padding。
模型训练过程
由于论文提出的Siamese结构是全卷积网络结构,这样的好处是能够输入输出任意大小的结构。不用受限制于要输入相同大小的图片尺寸,可以在跟踪的时候使用全图作为输入去比较,找到目标的位置,保证目标不丢失。并且可以使用ImageNet数据集中的图片,把标注的目标位置作为模板样本,把整张图片作为搜索样本对网络进行训练,得到最终的参数。从标注的 video 数据集上,通过提取 exemplar 和 search images 得到的 Pairs,是在 target 中心的。从一个 video 的两帧上得到的 images 包括物体。在训练的过程中,不考虑物体的类别。
labels:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
7.4.1.2 测试过程
1、确定预测的目标框的中心
2、确定目标框的大小:
这样由中心位置和框的大小,就可以画出输入的这这一帧搜索图的中心被跟踪物体了。
7.4.1.2 算法特点
1、多尺度检测:多尺度检测通常是将目标先进行不同尺度的采样(如生成图像金字塔),再对不同尺度的图像分别进行检测。在SiameseFC中,对图像先进行不同尺度的采样、再resize到固定的分辨率,可以合并为一个步骤,因此可以并行地生成多张分辨率相同但尺度不同的目标图像(将尺度不同的目标图像resize到同一分辨率即可),集合成一个mini-batch,送进网络进行多尺度检测,从而实现SiameseFC的尺度适应性。
2、在线不更新:SiamFC是非常优秀的long-term跟踪算法。SiameseFC在预测的时候,不在线更新模板图像。这使得SiameseFC的计算速度很快,以便在后续帧中能够应对各种变换。而在另一方面,不在线更新模板图像的策略,可以确保跟踪目标的不变性和纯净性,在long-term跟踪算法上具有天然的优势。
7.4.1.3 算法细节
7.4.1.5 实验
实验设备是NVIDIA GeForce GTX Titan X显卡和Intel Core i7-4790K 4.0GHz处理器。共做了两种不同的算法版本,一种是5种尺度SiamFC,另一种是3种尺度SiamFC-3s,分别在OTB2013和VOT数据集上进行了测试。
1、OTB2013
在测试过程中,作者将25%对图像样本转化为灰度图像,其余不变,效果如下。可以看到SiamFC和SiamFC-3s的效果都居于前两名。其中单次成功率OPE可达0.62,时间鲁棒性TRE(将不同帧打乱)可达0.612,而空间鲁棒性SRE(从帧内不同框位置开始)可达0.564。
2、VOT
VOT-2014结果:除了和VOT2014的前十名的跟踪算法相比,还另外加入了Staple和GOTURN。算法主要两个评价指标:accuracy和robustness,前者是计算平均IOU,后者是计算总是失败帧数。下图显示了Accuracy-Robustness plot(按照accuracy和robustness分别进行排名,再进行平均)。
VOT-2015结果:下图显示了VOT-2015排名前41名的跟踪算法,另外还用表格显示出了排名前15的跟踪算法的更加细节的比较(包括速度)
7.4.1.5.6 SiamFC的发展
SiamFC短短一年就有很多跟进paper,可以说开创了目标跟踪的另一个方向。从VOT2017的结果来看,SiamFC系列位数不多的end2end离线训练tracker,是可以得益于大数据和深度学习的最具发展潜力的方向。
注:有兴趣可以看看相关论文
商汤科技智能视频团队首次开源其目标跟踪研究平台 PySOT。PySOT 包含了商汤科技 SiamRPN 系列算法,以及刚被 CVPR2019 收录为 Oral 的 SiamRPN++。
由于存在遮挡、光照变化、尺度变化等一些列问题,单目标跟踪的实际落地应用一直都存在较大的挑战。过去两年中,商汤智能视频团队在孪生网络上做了一系列工作,包括将检测引入跟踪后实现第一个高性能孪生网络跟踪算法的 SiamRPN(CVPR 18),以及最新的解决跟踪无法利用到深网络问题的 SiamRPN++(CVPR 19)。其中 SiamRPN++ 在多个数据集上都完成了 10% 以上的超越,并且达到了 SOTA 水平,是当之无愧的目标跟踪最强算法。
7.4.2.1 结构
由Siamese子网络和区域生成的候选区域子网络组成
相比于SiameseFC的改进:
RPN的引入,使得Siamese网络自然拥有了多尺度检测的能力(通过anchor机制cover各种size),并且可以准确地回归出目标的位置及大小。
Siamese feature extraction subnetwork
该子网络由模板分支和检测分支组成:模板分支将历史帧的目标块作为输入,用 z 表示;检测分支用当前帧的目标块作为输入,用 x表示。两个网络共享CNN参数,用 φ(z) 和 φ(x)表示网络输出。
Region proposal subnetwork
该子网络由分类分支和回归分支组成,分类分支输出有 2k个channels(前景和背景),回归分支有 4k个channels(x,y,w,h),其中 k表示anchors,即每个位置预测框的个数。分类分支使用cross-entropy损失,回归分支使用Faster R-CNN中的smooth L1损失。
7.4.2.2 训练
预测过程
模板分支在初始帧得到的输出作为检测分支的卷积核,然后在整个跟踪过程中固定不变。
7.4.2.3 实验效果
在基线算法 SiamFC 的基础上,让tracker可以回归位置、形状,可以省掉多尺度测试,进一步提高性能并加速。SiamRPN 实现了五个点以上的提升(OTB100,VOT15/16/17 数据集);同时还达到了更快的速度(160fps)、也更好地实现了精度与速度的平衡。
VOT2015效果
VOT2016效果
7.4.2.4 总结
与SiamFC对比
之前的孪生网络,都是基于比较浅的卷积网络 (比如AlexNet) 。但如果直接引入深度网络,性能反而会大幅下降。
现存很多基于SiamNet算法的网络深度基本与Alext相似,作者多次尝试使用ResNet等深层网络,但性能并没有什么提升。经分析知,由于paddingpadding导致特征图失去了严格的裁剪不变性,不能很好的根据响应图位置反推目标的位置。为了能够使用深层网络来提取更加鲁棒的特征,作者提出一种有效的采样方式来打破空间不变的限制。
7.4.3.1 架构
使用ResNet-50作为特征提取的网络构架,提出depthwise和layerwise操作针对特征进行优化,提升SiamRPN网络的性能。下图为该算法框架图
1、不同层特征应用
使用深层网络作为特征提取结构,网络的输出是目标的深层语义特征,而那些用于定位目标的浅层特征则未被利用。为了合理的结合深-浅层特征,作者提出channel-wise模块用于结合不同层特征,最大化提升网络的跟踪性能。
上图红框框出了不同层间跟踪性能,其中多层结合对极大地提升算法的跟踪性能,大概3%左右
2、减少参数数量
针对SiamRPN网络中UP-Channel操作带来的巨大网络参数量以及训练时难以拟合,作者提出一种Channel-wise操作,针对通道间进行卷积,有效的减少了网络参数量,同时加快了网络的拟合。 普通卷积、UP-Channel卷积、Channel-wise卷积如下图所示:
上图(b)中,可以明显的看出网络的通道数增加了2k倍,不仅带来了巨大的内存消耗,同时还难以拟合优化;图(c)采用了Channel-wise则有效的减少了网络的内存开销以及网络的优化参数。
3、添加Shift
针对padding带来的裁剪不变性丢失的问题,作者引入了一种新的有效的采样策略。深层网络中使用padding会导致网络习得隐藏的规律,目标所在的位置就在中心,从而导致响应图的最大值在中心附近。为了打破这种规律,作者在训练时将样本对中标签样本分布添加一个shift,从而保证样本中心的一种近似随机分布。
上图中从左往右显示了不同shift的响应图可视化。可以看出添加shift后,响应图的最大值分布会往四周扩散,有效地减轻了网络习得的中心化响应。
7.4.3.2 实验
在VOT2018数据集上,Siam-RPN++在EAO、accuracy、AO指标上获得最佳成绩。
在OTB2015数据集上,性能也优于采用KCF方法的ECO算法,在成功率指标上获得最佳性能。
7.4.3.3 总结
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187018.html原文链接:https://javaforall.cn