【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
由RCNN到FAST RCNN一个很重要的进步是实现了多任务的训练,但是仍然使用Selective Search算法来获得ROI,而FASTER RCNN就是把获得ROI的步骤使用一个深度网络RPN来实现。一个FASTER RCNN可以看作是一个RPN + FAST RCNN的组合,两者通过共享CONV LAYERS组合在一起。
RPN网络
一张图片先经过CONV LAYERS得到feature map,图片的大小是任意的。然后,使用一个小的滑动网络,它与feature map的一个n*n的小窗口全连接。在论文中,n会取值3(但不知道是否指的是n*n个像素的窗口),虽然小窗口不大,但实际上由于feature map经过pooling和convolution,映射回输入图像会有一个很大的感受野。通过这个滑动的小网络提取ROI并映射到一个低纬度的特征向量,用于回归和分类(两个1*1的convolution layer)。

对于滑动的n*n的窗口,在每个位置都会预测k个regional proposal,称为anchor。每个anchor都以窗口为中心,它们有不同的尺度以及宽高比,论文中去k = 9,即3种尺度与3种宽高比。映射得到的低维特征向量,输入到两个box回归层与softmax(二分类,即logistic,用于预测窗口中有或者没有物体的概率)。例如一个VGGnet,它映射到的低维特征为512维,由于k = 9,而且回归层和分类层都是1*1的,因此输出层的参数有512 * (4 + 2) * 9个。如果feature map的大小为W * H,则总共会有W * H * k个anchors。
(n*n应该是一个卷积层,而VGG最后会有512个通道,每个anchor都会映射到低维的特征,而这低维的特征应该与通道数相关。。。。猜测, 额,这里的映射到低维的特征与anchor的关系确实有点模糊……)
论文中实现的不同尺度以及宽高比的anchor,而不需要多尺度的image或者filter。
RPN的损失函数
学习一个RPN的网络也是一个多任务的学习过程,是一个通过参数迁移后对网络进行fine tune的有监督过程,需要标示正类与负类。正例样本有两种(1)与一个ground truth的IOU最高的anchor(2)与任意一个ground truth的IOU高于0.7的anchor。于是,类似于FAST RCNN的定义,LOSS函数为:

其中
为1如果anchor的正样例,否则为0。
表示anchor里是一个object的概率。而
即是FAST RCNN中smooth函数的定义。
是一个平衡因子,具体设置可以参考论文,它与Ncls和Nreg有关。
训练RPN
RPN的训练使用的是BP算法,权值更新使用随机梯度下降法实现。Mini_batch的抽样从单一的图片中选择anchor,尽量是的正例和负例的比是1:1。RPN权值的初始使用高斯分布初始化。
RPN与FAST RCNN的共享

由上图可以看出,RPN与FAST RCNN共享conv layer层以及feature map。论文中训练这个网络提供了几种方法:
(1)交替训练。首先训练RPN,得到proposal之后去训练FAST RCNN。得到的NETWORK又去训练RPN。迭代交替
(2)把两者近似的融合训练。如上图,中间层输出proposal去训练FAST RCNN。后向传播时,对于共享层像平常一样更新,把来自RPN的loss和FAST RCNN的loss结合。而对于proposal 的box坐标预测的梯度,直接忽略,因而得到一个近似的解。但实际上,proposal层的网络权值也是会更新的。
论文中采取一种新的不同于上述的方法:
(1)用imagenet模型初始化,独立训练一个RPN网络。
(2)仍然使用imagenet初始化,利用第一步得到的proposal作为输入训练一个FAST RCNN网络,此时参数完全不共享。
(3)用(2)得到的参数初始化RPN的网络,把RPN与FAST RCNN共享的卷积层的学习率设为0,仅更新RPN特有的网络层,重新训练,此时网络共享共有的卷积层。
(4)固定共享的层,加入FAST RCNN,fine tune它特有的网络。
细节:
对于每个anchor的三种scale为128*128,256*256,512*512,,三种宽高比1:1,1:2,2:1。
对于一些RPN的proposal,采用非极大值抑制的办法选择过滤一部分,减少冗余。
【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks的更多相关文章
- 深度学习论文翻译解析(十三):Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
论文标题:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 标题翻译:基于区域提议(Regi ...
- [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...
- 中文版 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 摘要 最先进的目标检测网络依靠区域提出算法 ...
- 论文阅读笔记二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)
论文源址:https://arxiv.org/abs/1506.01497 tensorflow代码:https://github.com/endernewton/tf-faster-rcnn 室友对 ...
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks论文理解
一.创新点和解决的问题 创新点 设计Region Proposal Networks[RPN],利用CNN卷积操作后的特征图生成region proposals,代替了Selective Search ...
- 目标检测(四)Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
作者:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun SPPnet.Fast R-CNN等目标检测算法已经大幅降低了目标检测网络的运行时间. ...
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(理解)
0 - 背景 R-CNN中检测步骤分成很多步骤,fast-RCNN便基于此进行改进,将region proposals的特征提取融合成共享卷积层问题,但是,fast-RCNN仍然采用了selectiv ...
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
将 RCN 中下面 3 个独立模块整合在一起,减少计算量: CNN:提取图像特征 SVM:目标分类识别 Regression 模型:定位 不对每个候选区域独立通过 CN 提取特征,将整个图像通过 CN ...
- 论文阅读笔记三十五:R-FCN:Object Detection via Region-based Fully Convolutional Networks(CVPR2016)
论文源址:https://arxiv.org/abs/1605.06409 开源代码:https://github.com/PureDiors/pytorch_RFCN 摘要 提出了基于区域的全卷积网 ...
随机推荐
- 【转】mysql INSERT的用法
转自:http://www.cnblogs.com/ggjucheng/archive/2012/11/05/2754938.html insert的语法 INSERT [LOW_PRIORITY | ...
- 安装linux mint 18.3 后要做的
使用u盘安装的linux mint 18.3,安装过程基本顺利 发现在安装过程中使用中文语言的话会使得下载附加软件的速度快很多 安装完成之后要做的事情有: 1.字体 默认的楷体字比较难看,在软件管理器 ...
- 理解 CSS 布局和块级格式上下文
前言 BFC 的概念始于 CSS2,是个蛮古老的 CSS 话题了,网上也到处能搜到 BFC 的介绍,但是都不够简洁.本文系翻译自 Rachel Andrew 女士的博文 Understanding C ...
- NodeJS、NPM安装配置步骤
安装NodeJS和NPM 1.Node JS 官网下载地址 https://nodejs.org/en/download/ 2.安装完后,使用cmd 命令输入两个命令,查看安装状态 node -v n ...
- axios 正确打开方式
一.安装1. 利用npm安装npm install axios --save2. 利用bower安装bower install axios --save3. 直接利用cdn引入<script s ...
- java生成excel
package test.poi; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; ...
- 【转】上传并解析excel
[转载自]http://blog.csdn.net/u011563331/article/details/51322523 通过解析excel,将数据存储到数据库中.现在将方法保存下来. 使用的是ap ...
- spring思想分析
摘要: EveryBody in the world should learn how to program a computer...because it teaches you how to th ...
- 03Struts2基本使用流程
Struts2基本使用流程 1.新建web工程 2.引入struts2类库 3.创建并配置Struts2的核心控制器web.xml用来拦截客户端请求并将请求转发到相应的Action类中来处理 4.创建 ...
- cin的返回对象
//有时间回来补坑 //先记上几个有用的博客 https://blog.csdn.net/candj/article/details/4419585https://www.cnblogs.com/gy ...