Siamese系列文章

说明

在学习目标追踪方面,慢慢读懂论文,记录论文的笔记,同时贴上一些别人写的非常优秀的帖子。


综述类型笔记

目标跟踪之Siamese网络
单目标跟踪paper小综述

SiamFC

SiamFC:基于全卷积孪生网络的目标跟踪算法
【ECCV 2016】SiamFC 细节笔记
SiamFC完整的跟踪过程
Siam-FC代码,逐行超详细解读。

笔记

       SiamFC在初始脱机阶段,训练深度卷积网络来解决更一般的相似度学习问题,然后在跟踪过程中简单地在线评估此函数。
       主要是训练一个Siamese网络来在一个更大的搜索图像中定位一个样本图像。新提出的Siamese架构,它对于搜索图像是完全卷积的密集和高效的滑动窗口评估是通过一个双线性层来实现的,该层计算两个输入的相互关系。
在这里插入图片描述
       重要贡献是:脱离了用于跟踪的传统在线学习方法,展示了一种侧重于在离线阶段学习强嵌入的替代方法。提出Siamese网络开创性的一个框架。

  • 优点:提前离线训练好,只是在线检测,不更新。不更新目标模板图像使得计算速度更快,但对特征的要求也更高。特征必须对各种干扰和形变都非常鲁棒。SiamFC的特征来自AlexNet的conv5,属于高层语义特征,不会像HoG那样寻求纹理相似度。在线不更新带来的另一个好处表现在long-term跟踪。因为目标模板不会被污染,而且检测区域足够大,一般的干扰不会造成跟踪失败。
  • 在线更新与在线不更新对比:
    在线更新:优点->随时适应目标的变化和背景信息的变化。对特征的要求较低,低层特征计算速度快分辨率高;缺点->模型更新会累计误差,遮挡或失败时会学到背景,一旦丢失即造成跟踪失败。
    在线不更新:优点->不更新速度更快,目标模板不会被污染,long-term特性优秀;缺点->对特征的要求高,必须是表达能力足够强足够鲁棒的高层语义特征,通常计算速度慢、分辨率低。
  • 缺点:短时间追踪,不能应对目标丢失,或者在方块外,对目标没进行进一步处理

SiamRPN

1.SiamRPN阅读笔记:High Performance Visual Tracking with Siamese Region Proposal Network 写的很好,重点看!!!!
2.【论文笔记】CVPR2018_SiamRPN
3.SiamRPN 论文理解
4.关于RPN的理解一文读懂Faster RCNN
(RegionProposal Network)RPN网络结构及详解

笔记

SiamRPN将siam与检测领域的RPN进行结合,它由特征提取的Siamese子网络和区域建议子网络组成,包括分类分支和回归分支。
在这里插入图片描述
重要贡献是:
       1.提出基于大规模图像对的端到端离线训练的SiameseRPN网络(SiameseRPN)用于跟踪任务,
       2.在在线跟踪过程中,提出的框架被制定为一个局部一次性检测任务。

  • 跟踪过程:
  1. 输入模板帧和检测帧,分别使用Siamese网络提取特征,使用RPN生成k个proposal
  2. 对模板支路的proposal和检测支路的proposal做相似性度量,获得bounding box
  3. 使用NMS(Non-maximum-suppression)对最后预测输出的bounding box进行筛选
  4. 目标尺寸更新
  • 优点:在跟踪阶段,SiamRPN将跟踪视作单样本检测任务(one-shot detection task),就是把第一帧的目标视为检测的模板,在后续帧里面检测与它相似的目标。得益于这些改良,传统的多尺度测试和在线微调可以被舍弃,同时大大提高了速度。

  • 缺点:siamRPN缺陷分析:

  1. 在训练阶段,存在样本不均衡问题。即大部分样本都是没有语义的背景(注:背景不是非target的物体,而是指那些既不属于target,也不属于干扰物,没有语义的图像块,例如大片白色。)这就导致了网络学到的仅仅是对于背景与前景的区分,即在图像中提取出物体,但我们希望网络还能够识别target与非target物体。作者从数据增强的角度解决此问题。
  2. 模型判别性不足,缺乏模板的更新,即在heatmap中很多非target的物体得分也很高;甚至当图像中没有目标时,依然会有很高的得分存在。作者认为与target相似的物体对于增强模型的判别性有帮助,因此提出了distractor-aware module对干扰(得分很高的框)进行学习,更新模板,从而提高siam判别性。但是排名靠前的都是与target很相似的物体,也就是说该更新只利用到了target的信息,没有利用到背景信息。
  3. 由于第二个缺陷,原始的siam以及siamRPN使用了余弦窗,因此当目标丢失,然后从另一个位置出现,此时siam不能重新识别target, (siamRPN的搜索区域是上一阵的中心加上预设的搜索区域大小形成的搜索框),该缺陷导致siam无法适应长时间跟踪的问题。对此作者提出了local-to-global的搜索策略,其实就是随着目标消失帧数的增加,搜索区域逐渐扩大。

DaSiamRPN

DaSiamRPN(ECCV2018)论文详解: 朱政- 高性能单目标跟踪算法的探索
DaSiamRPN学习

笔记

DaSiamRPN结构图和SiamRPN类似,通道进行了改变。
在这里插入图片描述
重要贡献是:
       1.分析了SiamRPN存在的问题(在上面)
       2.能够长时间的追踪,并且对于有目标丢失(受到遮挡或者出了检测范围)在此出现后能继续追踪

  • 优点: 能够长时间的追踪,并且对于有目标丢失(受到遮挡或者出了检测范围)在此出现后能继续追踪

​作者通过数据增强解决训练时样本不均衡问题。

​1. 作者发现siamRPN对于未训练过的类别的目标,跟踪的效果会变差。因此增加训练类别对结果还有改善。其实就是增大训练集类别,除了直接增加训练集外,可以人为的增强,例如将target抠出来,换个背景,以此来增加正样本的数量。
2. 增加来自不同类别的负样本可以抑制网络随意匹配前景的问题,例如在目标被遮挡以及消失时预测点乱飘。
​3.增加来自同一类别的负样本,可以增强网络的对target的细粒度区分。
4.在常规的数据增强方法外,作者发现增加图像的运动模糊也有效

Distractor-aware
​ 作者对heatmap得到目标先NMS去除一些冗余框,然后将相似度靠前的框(干扰物)拿出来,让网络对其学习,拉大target_embedding与这些干扰物之间的相似度。
实质上是对exemplar的更新修正。注意此处可以看到exemplar采用的不是第一帧,而是上一帧的目标,这就会带来模板污染问题,但是DaSiam却可以胜任长时间跟踪问题,可见该跟新策略的抗污染性不错。可以分析,污染问题的结果就是target及其相似物体的得分随着迭代次数的增加,得分排名变化,但是该更新策略不是暴力的直接替换,而是综合了排名靠前的框,因此可以有效的抑制模板污染问题。
从后面的实验结果也可以看到加入了更新策略的DaSiam比不更新的SiamRPN无论是在A还是R上都要高。证明该更新策略有效。

DaSiamRPN for Long-term Tracking
​ siamRPN的搜索区域好像只是上一帧目标的附近,因此当目标跟踪失败后,当目标重新出现时无法再次有效识别目标,因为目标很可能已经离开了搜索区域。

​ 所以DaSiamRPN的loacl-to-global策略就是当目标跟踪失败后,搜索区域不断增大。

  • 缺点

SiamRPN++

SiamRPN++详解-比较详细
【SiamRPN++】论文阅读笔记
SiamRPN++算法详解
SiamRPN++论文阅读SiamRPN++论文和代码阅读–代码解读(重要)

笔记

SiamRPN++的贡献
1、对Siamese跟踪器进行了深入分析,证明了在使用深度网络时,由于平移不变性再到破坏,导致精度下降。
2、提出了一种简单而有效的采样侧策略,打破了空间不变性的限制,成功地训练了一种基于ResNet网络结构的Siamese跟踪器。
3、提出了一种逐层特征聚合结构,用于互相关操作,帮助跟踪器从多个层次的特征中预测相似度图。
4、提出了一种逐深度互相关结构,增强了互相关性,生成了多组语义相似度图。

复现

这里贴一下复现的结果,采用coco数据集15/1000的数据进行训练,采取10个epoch,第5个epoch开始对backbone进行更新,共用时间10min,并且和已经训练好的进行对比,如下:

--------------------------------------------------------
| Tracker name  | Success | Norm Precision | Precision |
--------------------------------------------------------
| checkpoint_e1 |  0.060  |     0.000      |   0.067   |
--------------------------------------------------------

--------------------------------------------------------
| Tracker name  | Success | Norm Precision | Precision |
--------------------------------------------------------
| checkpoint_e3 |  0.211  |     0.000      |   0.279   |
--------------------------------------------------------
--------------------------------------------------------
| Tracker name  | Success | Norm Precision | Precision |
--------------------------------------------------------
| checkpoint_e5 |  0.282  |     0.000      |   0.433   |
--------------------------------------------------------
--------------------------------------------------------
| Tracker name  | Success | Norm Precision | Precision |
--------------------------------------------------------
| checkpoint_e7 |  0.381  |     0.000      |   0.588   |
--------------------------------------------------------
---------------------------------------------------------
|  Tracker name  | Success | Norm Precision | Precision |
---------------------------------------------------------
| checkpoint_e10 |  0.319  |     0.000      |   0.527   |
---------------------------------------------------------

--------------------------------------------------------
| Tracker name         | Success | Norm Precision | Precision |
--------------------------------------------------------
| Siamrpn-resnet-trainok|  0.661  |     0.000      |   0.872   |
--------------------------------------------------------

SiamDW

SiamDW阅读笔记
SiamDW论文作者张志鹏视频笔记
SiamDW阅读笔记:Deeper and Wider Siamese Networks for Real-Time Visual Tracking

笔记

作者工作分为两部分:

  • 作者通过系统的实验发现了主干网络影响孪生网络的三个重要因素,也就是最后一层感受野大小、网络总步长和特征的padding的有无,并且提出了一个孪生网络结构的设计指南。
  • 在这个指南的帮助下,作者提出了一个新的网络结构,它能深能宽,替换了SiamFC和SiamRPN的主干网络,使之性能较之原来的跟踪器得到提升,并取得了State-of-the-Art
    在之后的设计中,可以借鉴下这篇文章的思路。

SiamFC++

AAAI2020跟踪算法SiamFC++的配置(SiamFC++: Towards Robust and Accurate Visual Tracking)
SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines 论文学习
单目标追踪论文阅读系列(二)——《SiamFC++(AAAI 2020)》

笔记

guide:
提出四个准则,通过ablation study (消融实验),验证了提出的可行性,类似SiamDW。

  • G1 : 分类和状态估计任务的分离:分类任务将目标从干扰物和背景中分类出来,目标状态的估计如bbox回归等有利于对目标尺度变化的适应性
  • G2 : 得分无歧义:分类分数应该直接表示目标存在的置信度分数,即在“视野”中对应像素的子窗口,而不是预设置的锚点框。如SiamRPN容易产生假阳性结果,从而导致跟踪失败。
  • G3 : 无先验:不应该有目标比例/比率这样的先验知识,基于数据分发的先验知识阻碍了模型的泛化能力。
  • G4 : 预测质量的评估:直接使用分类置信度进行边框选择会导致性能下降,所以应该使用与分类无关的估计质量评分。目标状态评估分支(例如ATOM和DiMP:基于IoU-Net)的准确性很大程度上取决于此准则。

UpdateNet++

【论文阅读】目标跟踪: UpdateNet - 精读笔记 (这篇文章写的非常详细)

笔记

  • 原文摘要部分:
    Siamese方法通过从当前帧中提取一个外观模板来解决视觉跟踪问题,该模板用于定位下一帧的目标。一般来说,这个模板与前一帧的累积模板是线性组合的,导致信息随着时间呈指数衰减。虽然这种更新方法带来了改进的结果,但它的简单性限制了学习更新可能获得的潜在收益。因此,我们建议用一种学习更新的方法来代替手工制作的更新函数。我们使用一个卷积神经网络,称为UpdateNet,它给出了初始模板,累积模板和当前帧的模板,目的是估计下一帧的最优模板。UpdateNet是紧凑的,可以很容易地集成到现有的Siamese跟踪器。
  • 简单来说,之前跟踪器都是样本模板是第一帧,现在加了一个(UpdateNet)更新网络,不断对初始模板进行更新,得到更好的模板,从而提高性能。
  • 如果对于网络追踪器,应该都可以加上这么一部分,提高性能。

SiamBAN

SiamBAN详细分析,一看就懂! 这篇文章写的很详细。
SiamFC++与SiamBAN这两个的对比。

笔记

  • 利用全卷积网络的表达能力,提出了一个简单而有效的视觉跟踪框架SiamBAN,该框架不需要多尺度搜索模式和预定义的候选框。SiamBAN直接对对象进行分类,并在统一的网络中回归边界框。因此,视觉跟踪问题就变成了分类回归问题
  • SIamBAN,按照意思分析是孪生自适应框。“孪生”,说明该跟踪使用了Siamese网络架构;而“自适应框”,则是该跟踪器采用了anchor-free的策略,不预先设定anchor框的尺寸,使得框拥有更大强大的自由度。

可以得出特征图对应搜索补丁上每点预测框的左上角和右下角(注意理想情况下每点的预测框应该相同,因为原理中的偏差是每点与真实框的距离,那么反推回来每点预测的应该都是真实框)。通过将左上角和右下角的转换,可以得到特征图对应搜索补丁上每点的预测框,进而也能得到预测框与真实框的IOU。利用回归损失函数:1 − I O U 1-IOU1−IOU可以进行训练

SiamMask

【阅读笔记】SiamMask
SiamMask算法详解

笔记

作者提出的模型,可以同时实现视频目标跟踪和视频目标分割这两个任务,并能达到实时的效果。作者称这个模型为SiamMsk。该模型通过在用于目标跟踪的全卷积Siamese神经网络上增加mask分支来实现目标的分割,同时增强网络的loss,优化网络。一旦网络训练好之后,SiamMask仅依赖于初始的一个bounding box就可以实现类别无关的目标实时跟踪及分割(at 35 frames per second)。这个模型简单,功能多样,速度快,其效果也超越了其他跟踪方法。同时,还在DAVIS-2016, DAVIS-2017视频分割数据集上取得了具有竞争力的表现和最快的速度。

SiamCAR

SiamCAR的详细解答,一看就会,不会请打我

笔记

SiamCAR 和SiamFC++ 大体差不多,采用了resnet50的框架,SiamFC++采用AlexNet , SiamBAN是对0 ,1 分类进行了创新,但是SiamBAN在特征提取网络论文中说实现了,三个互相关层的自适应融合,但是在代码中并没有实现,只是简单采用了 平均法1/3,而SiamCAR实现了自适应融合。这里上面的链接写的很详细。

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值