SiameseRPN详解
SiameseRPN
- 论文来源
- 论文背景
- 一,简介
- 二,研究动机
- 三、相关工作
- 论文理论
- 注意:
- 网络结构:
- 1.Siamese Network
- 2.RPN
- 3.LOSS计算
- 4.Tracking
- 论文的优缺点分析
- 一、Siamese-RPN的贡献/优点:
- 二、Siamese-RPN的缺点:
- 代码流程
- 一、训练部分:
- 二、跟踪部分
- 论文翻译
- 学术词语知识
- Abstract
- 1. Introduction
- 2. Related Works
- 2.1. Trackers based on Siamese network structure
- 2.2. RPN in detection
- 2.3. One-shot learning
- 3. Siamese-RPN framework
- 3.1. Siamese feature extraction subnetwork
- 3.2. Region proposal subnetwork
- 3.3. Training phase: End-to-end train Siamese-RPN
- 4. Tracking as one-shot detection
- 4.1. Formulation
- 4.2. Inference phase: Perform one-shot detection
- 4.3. Proposal selection
- 5. Experiments
- 5.1. Implementation details
- 5.2. Result on VOT2015
- 5.3. Result on VOT2016
- 5.4. Result on VOT2017 real-time experiment
- 5.5. Result on OTB2015
- 5.6. Discussion
- 6. Conclusion
论文来源
论文链接:这里
本文参考:
论文阅读:Siam-RPN
【SOT】Siamese RPN论文解读和代码解析
[深度学习] [目标跟踪] Siamese-RPN论文阅读笔记
【论文笔记】目标跟踪算法之Siamese-RPN
论文阅读,目标跟踪 SiameseRPN
论文背景
一,简介
这篇文章是在SiamFC的基础上改进的,其特征提取网络跟SiamFC一模一样,不同的是引入了目标检测领域的区域推荐网络(RPN),通过RPN网络的回归避免多尺度测试,一方面提升了速度,另一方面可以得到更加准确的目标框。另一个强大的地方在于,该算法可以利用稀疏标注的数据进行训练,如Youtube-BB,该数据集不是每一帧都有标注,而是隔几十帧标注一帧,这样极大地扩充了训练数据,大家都知道跟踪届的数据是非常宝贵的。要训练一个好的模型,数据量大是关键啊。
二,研究动机
作者将流行的跟踪算法分为两类,一类是基于相关滤波类并进行在线更新的跟踪算法,另一类是使用深度特征抛弃在线更新的跟踪算法,前者严重限制了跟踪速度,后者没有使用域特定信息(即某个特定的跟踪视频的信息)。
作者提出的网络分为模板支和检测支。训练过程中,在相关特征图上执行proposal extraction、没有预定义好的类别信息;在跟踪过程中使用one-shot检测框架和meta-learning。其中,两个原因使得跟踪算法效果很好:大量数据训练;RPN结构使得跟踪尺度和比例都非常好。
三、相关工作
相关滤波类的跟踪算法:GOTURN、Re3、Siamese-FC、CFNet。后两个没有做回归去调整候选框位置,并且需要多尺度测试,破坏了模型的优雅性。
RPN网络:RPN网络广泛应用在目标检测任务中,从RCNN到Faster-RCNN,RPN网络产生proposals代替了原始的selective search方法,提高了检测速度,后来FPN改进了RPN网络,提高了对微小物体的检测能力,以及后来的PRN的改进版本的使用,像SSD、YOLO等都是非常高效的检测器。
One-shot learning:贝叶斯方法和meta-learning方法。后者用新的神经网络估计目标网络前向传播的梯度。(However, the performance of Learnet is not competitive the modern DCF based methods, e.g.CCOT in multiple benchmarks )
论文理论
注意:
特别注意:RPN首次是从Faster RCNN中引入过来的
如果对其中某些参数不明白,可以参考一文读懂Faster RCNN
网络结构:
- Siamese Network
- RPN
- LOSS计算
- Tracking
1.Siamese Network
Siamese网络用来提取特征。
该孪生网络接受两个输入,一个叫做template frame(模板帧),是从视频第一帧中人为框出来(可以理解为原图中裁剪的一个区域)的物体位置;另一个输入叫做detection frame(检测帧),是被检测的视频段除了第一帧之外的其他帧。该Siamese(AlexNet)网络将这两个图像分别映射为6x6x256大小的特征图z 和22x22x256大小的特征图 x。
2.RPN
1、在RPN子网络中需要将z的输出通过不同卷积核resize成4×4×2k×256和4×4×4k×256的尺寸,这里k表示k个anchor,anchor的概念在Faster R-CNN中介绍。本文使用一种尺度的anchor,用五种不同的比例,所以这篇文章中k为5;
2、其中2k中两个通道分别表示这个anchor是正样本和负样本的概率,4k表示anchor和ground-truth之间的差别;
3.LOSS计算
SiameseRPN使用的损失函数与faster rcnn的损失函数一样。在分类上使用了softmax,回归bounding box使用了smooth L1损失。这里只简单介绍回归的损失。
首先来看看什么是smooth L1损失函数。
借用一下知乎尹博的图
从图中可以看到,在远离坐标原点处,图像和L 1 L1L1 损失很接近,而在坐标原点附近,转折十分平滑,不像L 1 L1L1损失那样有个尖角,因此叫做smooth L 1 L1L1损失。
smoothL 1 L1L1损失函数的数学表达式为:
(偷偷说一下,代码中的权重为5)
4.Tracking
1.One-shot跟踪:
one-shot检测:
该篇文章是第一次将one-shot策略用在跟踪任务中,这篇文章是讲如何实现one-shot learning的。最核心的思想方法就是通过离线训练的方法得到一个了learner net(文章里简称为learnet),然后通过在线的方式动态生成一个pupil net的参数,而且learnet只需要一张样本就可以生成pupil net的网络参数。Pupil net可以为分类器或者其他任务。为了简单起见,参数为动态生成的只有其中一层或者两层,如图所示,*代表有参数的层,红色的代表参数由learnet动态生成的。
2.proposals选择策略:
论文的优缺点分析
一、Siamese-RPN的贡献/优点:
提出siamese region proposal network(Siamese-RPN)用于解决目标跟踪问题。该网络可利用“图片对”进行端到端地离线训练;
该模型可将在线跟踪任务转换为one-shot检测任务,而不是使用低效费时的多尺度测试(multi-scale test);
该模型将SiameseFC和Faster R-CNN巧妙结合起来,让RPN的计算变成并行,大大降低了运行时间,在保证准确率的同时,达到了较高的速度。
二、Siamese-RPN的缺点:
使用第一帧作为模板匹配,对目标巨大变化不具有鲁棒性;
与SiameseFC相比,这篇文章的方法需要对输入图片resize,丢失一些信息。
代码流程
一、训练部分:
9.
9.9日更新:新推两篇文章在这方面讲的也非常好!
RPN的功能实现(流程与理解)
RPN的深度理解(实现层面)
二、跟踪部分
论文翻译
学术词语知识
对于文章的一些学术词语:
one-short Learning:
参考什么是One-shot Learning 、Zero-shot Learning?
meta-learning:
参考:什么是meta-learning?
affine transformation:
参考:仿射变换(Affine Transformation)
ground truth:
参考:机器学习里经常出现ground truth这个词,能否准确解释一下?
还有我找到了一个比较好的关于卷积公式的解释:
Abstract
1. Introduction
2. Related Works
2.1. Trackers based on Siamese network structure
2.2. RPN in detection
2.3. One-shot learning
3. Siamese-RPN framework
3.1. Siamese feature extraction subnetwork
3.2. Region proposal subnetwork
3.3. Training phase: End-to-end train Siamese-RPN
4. Tracking as one-shot detection
4.1. Formulation
4.2. Inference phase: Perform one-shot detection
4.3. Proposal selection
5. Experiments
5.1. Implementation details
5.2. Result on VOT2015
5.3. Result on VOT2016
5.4. Result on VOT2017 real-time experiment
5.5. Result on OTB2015
5.6. Discussion
6. Conclusion
SiameseRPN详解相关推荐
- SPLT(Skimming-Perusal Tracking)算法详解
'Skimming-Perusal' Tracking: A Framework for Real-Time and Robust Long-term Tracking 论文链接:论文链接 论文代码: ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 通俗易懂word2vec详解词嵌入-深度学习
https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...
- 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法
深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...
- CUDA之nvidia-smi命令详解---gpu
nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...
- Bert代码详解(一)重点详细
这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
最新文章
- Spring Security——login显示[Bad credentials]
- 整理-----内置函数
- python转c报错no module named_python异常No module named 'win32com'
- 985程序员因迟到工资被扣,一怒之下破解钉钉打卡,要不你也试试?
- 安装MYSQL的思考与分析_mysql安装和基本使用
- 哇哦!?固件裁剪到1.82K? 他们是怎么做到的?
- 基于matlab的系统校正,基于MATLAB的控制系统校正_毕业论文
- SimpleBGC三轴云台用户手册
- Python绘制3D立体花
- TIOBE 3 月编程语言排行榜刚刚出炉
- PDF文件删除空白页
- 垂直水平居中的三种实现方式
- 三子棋(井字棋)的实现
- 哈希表及其冲突与排解
- 2019世界机器人大会正式开幕,仿生学科技震撼网友
- h5页面键盘弹出影响页面布局(兼容)
- 吴翰清讲web安全--XSS攻击
- 斯坦福兔子和其他图形学模型数据下载
- camille下的frida与mumu模拟器连接,进行隐私合规检测
- ASP.NET视频总结
热门文章
- C++(纯)虚函数重写时访问权限更改问题
- C++小型公司管理系统
- getsockname函数与getpeername函数的使用
- 437. 路径总和 III
- C# 篇基础知识10——多线程
- 约束布局constraint-layout导入失败的解决方案 - 转
- 基于JavaConfig配置的Spring MVC的构建
- stand up meeting 12/21/2015
- 288.	Unique Word Abbreviation
- 谈谈Angular关于$watch,$apply 以及 $digest的工作原理