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

网络结构:

  1. Siamese Network
  2. RPN
  3. LOSS计算
  4. 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的贡献/优点:

  1. 提出siamese region proposal network(Siamese-RPN)用于解决目标跟踪问题。该网络可利用“图片对”进行端到端地离线训练;

  2. 该模型可将在线跟踪任务转换为one-shot检测任务,而不是使用低效费时的多尺度测试(multi-scale test);

  3. 该模型将SiameseFC和Faster R-CNN巧妙结合起来,让RPN的计算变成并行,大大降低了运行时间,在保证准确率的同时,达到了较高的速度。

二、Siamese-RPN的缺点:

  1. 使用第一帧作为模板匹配,对目标巨大变化不具有鲁棒性;

  2. 与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详解相关推荐

  1. SPLT(Skimming-Perusal Tracking)算法详解

    'Skimming-Perusal' Tracking: A Framework for Real-Time and Robust Long-term Tracking 论文链接:论文链接 论文代码: ...

  2. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  3. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  4. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  5. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  6. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  7. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  8. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

  9. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

最新文章

  1. Spring Security——login显示[Bad credentials]
  2. 整理-----内置函数
  3. python转c报错no module named_python异常No module named 'win32com'
  4. 985程序员因迟到工资被扣,一怒之下破解钉钉打卡,要不你也试试?
  5. 安装MYSQL的思考与分析_mysql安装和基本使用
  6. 哇哦!?固件裁剪到1.82K? 他们是怎么做到的?
  7. 基于matlab的系统校正,基于MATLAB的控制系统校正_毕业论文
  8. SimpleBGC三轴云台用户手册
  9. Python绘制3D立体花
  10. TIOBE 3 月编程语言排行榜刚刚出炉
  11. PDF文件删除空白页
  12. 垂直水平居中的三种实现方式
  13. 三子棋(井字棋)的实现
  14. 哈希表及其冲突与排解
  15. 2019世界机器人大会正式开幕,仿生学科技震撼网友
  16. h5页面键盘弹出影响页面布局(兼容)
  17. 吴翰清讲web安全--XSS攻击
  18. 斯坦福兔子和其他图形学模型数据下载
  19. camille下的frida与mumu模拟器连接,进行隐私合规检测
  20. ASP.NET视频总结

热门文章

  1. C++(纯)虚函数重写时访问权限更改问题
  2. C++小型公司管理系统
  3. getsockname函数与getpeername函数的使用
  4. 437. 路径总和 III
  5. C# 篇基础知识10——多线程
  6. 约束布局constraint-layout导入失败的解决方案 - 转
  7. 基于JavaConfig配置的Spring MVC的构建
  8. stand up meeting 12/21/2015
  9. 288. Unique Word Abbreviation
  10. 谈谈Angular关于$watch,$apply 以及 $digest的工作原理