这是2016CVPR收录的
在此之前,目标追踪一般都是online的,在这里引入了深度学习offline的训练,他提出了一种思想:similarity learning
他有三大contribution:
- 首先在速度上可以实现实时检测
- 通过一个范本来定位想要的被追踪物体(detection物体为卷积核,卷积下一帧的feature map)
- 使用了全卷积网络
他的 缺点:
- 如果物体size变化太大时效果不太好
- 如果有一堆相似的目标混在一起,效果不好,容易追岔
- 如果物体视觉上发生了变化,如:关照改变,部分遮挡,物体形变,则效果不好
思路
function
它通过function 来学习第一帧detection到的物体和接下来几帧图片之间的关系,如果相似则score大,反之则score小。这里我们使用了deep conv-net来作为这个function。也就是将gt提取feature map,把feature map作为卷积核来卷积下一帧图片的feature map:.卷积之后的feature map 中,相似区域的值大,不相似的区域值小,这个卷积只是运算,不需要学习,所以可以加一个bias。,
fully-convolutional Siamese architecture
全卷积网络的优势在于,它对于图片输入的大小没有限制,它可以在输入时输入一个更大的图像,而不是相同大小的图片,然后一个再一次评估中计算所有图片的相似性。
training
使用logistic loss来训练正负样本,v是计算的真实值,是gt,然后将score map的loss设为:
图像是从视频的两个帧中提取的,这两个帧都包含对象并且最多相隔T帧,相隔过多则gt不准。训练期间忽略对象的类。在不破坏图像的宽高比的情况下对每个图像内的对象的比例进行归一化。如果score在中心的半径R内(考虑到网络的步幅k),则score属于正例。
训练数据生成
定义范本大小为127127,被匹配图片为255255,Image 被分为严丝合缝的bbox (w,h)+一圈边界p,同时要乘上缩放因子S 。 这样才能让bbox位于范本的中央。
同时为了保证图形不形变,对于不满足大小的图片进行,取像素的平均值进行填充。
backbone
Alex net
PS:siamese-RPN的backbone也用了alexnet,为啥不用VGG,resnet呢,这里有别的大佬给的回答。
原文:https://blog.csdn.net/qq_35945399/article/details/81192003
个人的理解是这样,VGG,Inception,ResNet这些模型学到的是每一类物体的特点,因此在测试时可以输出物体的类别。Siamese-RPN模型真正学到的,并不是某一类或某几类物体的特点,而是通过这些物体来学习所有物体形变的特点。也就是说虽然物体的种类有很多,但任何物体的形变都是有规律的,是可迁移的,或者说是可数的。当然,所有形变的种类加起来是无数种(比如旋转,可以旋转0~360之间任何一个角度,还包括扭曲、弯折等更复杂的形变),但由于它们都有规律,那么当训练集足够大时,就可以囊括(或者说模型可以学到)各种各样的规律,这样就可以用《用只包含有限物体的训练集而训练出的模型》来《对任意物体进行跟踪》。因此即使模型在面对一个没见过的物体时,也能正确进行跟踪。
tracking
对1717的结果进行上采样,通过线性插值的方法映射到272272,将score map中响应值最大点映射回272*272目标位置。(说实话这里怎么插值没看懂)
evaluation
OTB-13
VOT-14