说明

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

文章目录

  • 说明
  • 综述类型笔记
  • SiamFC
    • 笔记
  • SiamRPN
    • 笔记
  • DaSiamRPN
    • 笔记
  • SiamRPN++
    • 笔记
    • 复现
  • SiamDW
    • 笔记
  • SiamFC++
    • 笔记
  • UpdateNet++
    • 笔记
  • SiamBAN
    • 笔记
  • SiamMask
    • 笔记
  • SiamCAR
    • 笔记

综述类型笔记

目标跟踪之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框的尺寸,使得框拥有更大强大的自由度。

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实现了自适应融合。这里上面的链接写的很详细。

Siamese系列文章相关推荐

  1. 数据结构学习系列文章合集

    数据结构学习系列文章目录 前言 1.稀疏数组和队列 稀疏数组和二位数组的转换 数组队列的实现 环形队列的介绍与实现 2.链表 单链表的增.删.改.查 总结 前言 学习数据结构记录,作为自己的笔记,同时 ...

  2. 积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引

    [源码下载] 积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引 作者:webabcd Flash 之 ActionScript 3.0  1.积少成 ...

  3. Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)

    前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...

  4. Enterprise Library系列文章回顾与总结

    Enterprise Library系列文章回顾与总结 自Enterprise Library 1.1 推出以来,Terry写了一系列的关于Enterprise Library的文章,其中得到了很多朋 ...

  5. 系列文章|OKR与敏捷(三):赋予团队自主权

    OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...

  6. 系列文章|OKR与敏捷(二):实现全栈敏捷

    OKR与敏捷开发的原理有着相似之处,但已经使用敏捷的团队再用OKR感觉会显得多余.这种误解的根源就在于对这两种模式不够了解,运用得当的情况下,OKR和敏捷可以形成强强联合的效果,他们可以创造出以价值为 ...

  7. C#网络编程系列文章索引

    1. 网络协议简介 介绍了网络分层: 网络层 数据链路层 网络层 传输层 应用层 2. HTTP协议详解 介绍应用层的HTTP协议,是Asp.net开发人员必须掌握的协议 HTTP请求 HTTP响应 ...

  8. [推荐推荐][提供下载]ORACLE SQL:经典查询练手系列文章收尾(目录篇)

    [推荐推荐][提供下载]ORACLE SQL: 经典查询练手系列文章收尾(目录篇) --通过知识共享树立个人品牌. 通过近一个月的努力,<经典查询练手系列>也快告一段落,但并不代表结束,以 ...

  9. 推荐介绍一项新的工程技术:[威胁建模]的相关系列文章《威胁建模Web 应用程序》...

    以往我们建立和开发web应用,特别是要部署到Internet上的工程项目,都要多多少少考虑一些安全性问题,分析可能存在的漏洞,来决定如何有效防范攻击,但是很少有公司或个人将这种行为活动归结到项目的建模 ...

最新文章

  1. mysql二进制日志管理_MYSQL二进制日志管理脚本
  2. java 多线程 同步 观察者 并发集合的一个例子
  3. 小程序支持php版本是多少,小程序体验版本什么意思
  4. Floating-point exception
  5. @entity 不限字节长度的类型_在微信程序员眼里,1024字节能玩出什么花样?
  6. PHP + NGINX 控制视频文件播放,并防止文件下载
  7. C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
  8. serversocket中的backlog是什么_输入网址按回车,到底发生了什么
  9. 解决 transaction-manager Attribute transaction-manager is not allowed here
  10. linux 查找字母c结尾的内容,linux如何查找以某个字母打头的文件或文件夹 比如,/etc目录下很多文件,我想列出所有以c开头的文件或文件...
  11. django python版本选择
  12. 东方卫视收视率查询_全国电视台收视率排名(最新排行榜)
  13. unity零基础学习
  14. AI实现五子棋机器人(一)
  15. 人人开源的遇到的错误
  16. windows域管理
  17. 用户路径分析之利器“桑基图”
  18. 39. 组合总和(Python)
  19. vue中的class和style在行内中用发有几种
  20. [小说]魔王冢(2)意乱情迷

热门文章

  1. 期末WEB大作业——做一个可视化大屏
  2. Hexagon LLVM编译架构介绍(12)
  3. 集成基于CAS协议的单点登陆
  4. 只要打气,没有飞不起来的汽球
  5. Android 获取4g信号强度
  6. 直播预告:欧特克传媒娱乐行业2022新产品在线发布会
  7. 让我郁闷的不行的SQL Anywhere 10
  8. cocosstudio Armature 转换为 cocosCreator的DragonBones格式
  9. Ridge和Lasso回归
  10. qa 芯片测试_[转]芯片设计中验证Verification,确认Validation以及测试Test的区别