这是黑客帝国,尼奥和史密斯雨中打斗的样子。

目标追踪AI要在光照急剧变化、物体形状大小也不断改变的场景里,准确锁定尼奥的头。

红色是商汤最新算法SiamRPN++的表现,它中选了CVPR 2019的Oral。

蓝色是它的对手,来自ECCV 2018的优秀前辈UPDT

动作太快,看不出红蓝谁更强?有截图啊:

肉眼看去,商汤SiamRPN++更胜一筹,几乎不受复杂场景的影响。

不止如此,它已经在多个数据集上成为了State-of-the-Art

同时也成了商汤Siam家族的骄傲。现在,整个家族都开源

  • SiamMask (CVPR 2019)

  • SiamRPN++ (CVPR 2019 oral)

  • DaSiamRPN (ECCV 2018)

  • SiamRPN (CVPR 2018)

  • SiamFC (ECCV 2016)

但这到底是一个怎样的家族?

显赫之家

Siam是Siamese的缩略,所以整个家族都是孪生网络

所谓孪生,就是两个网络的所有权重都一样

给它们输入不同的数据,便可以测量两个输入的相似度,做分类之用。

经年累月,团队死磕孪生网络,用这类算法来做目标跟踪。

在这之中,SiamRPN赫然挺立,中选了CVPR 2018的Spotlight。

SiamRPN:把检测算法引入跟踪

这只AI的诞生,是因为团队发现:虽然孪生网络能对目标快速定位,但不能对目标框作出调整,也就不能调节目标的形状

可目标跟踪并不是只要定一个点,目标所在的范围也同样重要。

于是,团队为孪生网络引入了区域推荐网络 (RPN) 。

孪生网络可以实现对目标的适应,利用被跟踪目标的信息,完成检测器的初始化;而RPN可以让算法对目标位置 (范围) 做出更精准的预测。

两者结合,就有了可以端到端训练的SiamRPN。除了算法上的创新之外,由于支持端到端训练, (在VID之外) 大规模数据集Youtube-BB也成了它的训练集,进一步提升性能。

于是,在OTB100、VOT15/16/17数据集上,SiamRPN都比基线算法SiamFC高出了5%以上,速度也更快。它被CVPR 2018选作了Spotlight。

DaSiamRPN:改进训练集,增强判别能力

虽然,SiamRPN取得了好成绩,但它是用VID和Youtube-BB训练的:里面的类别非常少,大概二三十类,很难胜任现实任务。

COCOImageNet DET的检测数据集,分别有80类和200类。且孪生网络的训练只需要图像对,不用完整的视频,所以轻松就把这些数据集引入了。

可引入之后又有新问题:这个网络会对所有有语义的样本进行响应,不只对目标物体有响应。比如目标是一个人,而AI遇到一把椅子也有很高的响应。

因为之前的训练中,负样本 (和目标无关的样本) 只有背景信息,限制了网络的判别能力。

于是,团队改进了方法——增加一些有语意的负样本对,来增强跟踪器的判别能力。

这就是说,训练过程中不再让模板 (Template) 和搜索区域 (Search Region) 是相同目标;是让网络学习判别能力,去搜索区域里找模版更相似的物体,而不是一个简单的有语义的物体。

做了这样的改动,DaSiamRPN可以从短时跟踪拓展到长时跟踪,且在UAV20L数据集上比之前成绩最好的方法提高了6%。

DaSiamRPN被ECCV 2018收录,且在VOT workshop比赛上,获得了实时赛的冠军,比上年冠军提升了80%

SiamRPN++:让孪生网络用上深度架构

算法也改过了,训练集也改过了。

所以,团队这一次瞄准了还没改过的孪生网络本身。

之前的孪生网络,都是基于比较浅的卷积网络 (比如AlexNet) 。但如果直接引入深度网络,性能反而会大幅下降。

想有效利用深网络,就要解决位置偏见的问题。于是,研究人员提出了“位置均衡的采样策略”:

不把正样本放在中心,而是以均匀分布的采样方式,让目标在中心点附近进行偏移。

随着偏移范围增大,深度网络慢慢开始发挥作用。不止可以跟踪更多细节信息 (浅层网络特征) ,也能跟踪更多语义信息 (深层网络特征) 。多层融合信息,来进一步提升性能。

除此之外,团队还提出了新的连接部件,Depthwise Cross Correlation (下图c) 。它可以极大减少参数量,平衡两支的参数量,同时让训练更加稳定,也更好地收敛。

结果,SiamRPN++在5个大型跟踪数据集上,都拿到了最好成绩:OTB2015,VOT2018,UAV123,LaSOT,以及TrackingNet。

突破了孪生网络和深度架构之间的障碍,这只AI顺理成章地中选了CVPR 2019的Oral。

大规模开源

这些孪生网络,现在都开源了。

商汤发布了一个叫做PySOT的目标跟踪库,基于PyTorch,把整个Siam家族装了进去。回顾一下,包括这些模型:

  • SiamMask (CVPR 2019)

  • SiamRPN++ (CVPR 2019 oral)

  • DaSiamRPN (ECCV 2018)

  • SiamRPN (CVPR 2018)

  • SiamFC (ECCV 2016)

PySOT库提供了3种不同的backbone,有深有浅:

  • ResNet{18, 34, 50}

  • MobileNetV2

  • AlexNet

模型评估,目前支持这些数据集:

  • OTB2015

  • VOT16/18/19

  • VOT18-LT

  • LaSOT

  • UAV123

PySOT里面,还包含了评估工具的接口。

所以,大家可以尽情探索了。

PySOT传送门:https://github.com/STVIR/pysot

SiamRPN论文传送门:http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_High_Performance_Visual_CVPR_2018_paper.pdf

DaSiamRPN论文传送门:https://arxiv.org/abs/1808.06048

SiamRPN++论文传送门:https://arxiv.org/abs/1812.11703

声明:本文来自量子位,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。