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这个词,能否准确解释一下?
还有我找到了一个比较好的关于卷积公式的解释: