原文地址:http://blog.csdn.NET/cv_family_z/article/details/46864473

摘要:SPPNet和Fast R-CNN降低了网络学习特征的时间,SS由于需耗时1~2s,EdgeBoxes 
耗时约0.2s,提取proposal的方法成为检测的瓶颈。本文提出了Region Proposal Networks(RPNs)实现实时提取proposals,它能与检测网络共享全图像卷积特征。RPNs是一个能够预测某位置上的目标bbox和objectness的全卷积网络。对于VGG-16网络,检测系统在GPU上的速度为5fps。VOC2007的mAP为73.2%,每幅图像大约300个proposals。

灵感:基于区域的检测使用的卷积特征图,如FRCN,同样可以用来生成proposals。在这些卷积层之后,作者通过增加两个卷积层构建了RPNs,一个将卷积图编码为低维(256d)向量,另外一个在每个卷积图的位置上生成一个objectness score和k个proposals的回归bbox,k=9。

RPNs网络 
RPNs将图像作为输入,输出带有objectness score的bbox。使用一个小的网络在最后一个卷积层输出的卷积特征图上产生区域proposals,这个小网络与输入的特征图以n*n的窗口进行全连接,每个滑动窗之后映射到一个低维向量(ZF5-256d,VGG-512d),之后将向量送入两个全连接的子层:一个bbox回归层和一个bbox分类层。网络的结构如下图所示: 

平移不变的锚点 
每一个滑动窗滑过的位置有k个proposals,cls子层输出每个proposal的object\non-object的2k个scores,reg子层输出对应坐标的4k个节点。k个proposals根据k个锚点进行参数化,每个锚点是对应尺度和长宽比的中心,文中使用3个尺度,3个长宽比,得到9个锚点。如果特征图大小为W×H,则共有WHk个锚点。

Proposals学习的损失函数 
按照以下规则对锚点分配二值类别标记。正样本标记:(1)与groundtruth的IoU最高的锚点,(2)与任意groundtruth IoU>0.7的锚点,某个groundtruth有可能对应几个正锚点。负样本:与groundtruth的IoU<0.3的锚点。其余的锚点不在训练使用的范围内。使用FRCN的multi-task loss最小化目标函数,某个锚点box的损失函数为: 
 
式中pi 是锚点i为物体的预测概率,Lcls 是而分类object/non-object的softmax loss。

优化 
RPN是一个全卷积网络,可使用bp及SGD训练,使用FRCN中的image-centric进行训练,为了避免样本偏斜,每幅图采样256个样本计算loss,正负样本为1:1。

Region proposal与目标检测共享卷积特征 
使用交替优化学习共享特征的4步训练法: 
1)训练RPN,使用ImageNet初训练的网络进行end-to-end的微调; 
2)使用FRCN及RPN生成的proposal训练一个检测网络,该步未共享特征; 
3)使用检测网络初始化RPNs训练,固定共享的卷积层只微调为RPN新增的层; 
4)固定共享层,微调FRCN的全连接层

实现细节 
使用单尺度图像训练RPNs和FRCN,缩放图像使得短边为600像素。对于每个锚点,三个尺度对应的box面积分别为1282,2562 和5122,3个长宽比分别为1:1,1:2,2:1,学习到的平均proposal大小如下表所示: 
 
对于1000×600 的输入图像,约有20k个锚点,如果忽略cross-boundary的锚点,约有6k个用来训练。检测时,基于cls score使用NMS将proposal压缩至2k个,之后用top-N个proposal来检测。

实验结果 
使用SS,EB,RBN生成proposal的实验结果及ablation的实验结果如下表所示: 

ablation实验结果表明共享卷积特征mAP能提升1.2%,主要是在共享的第三步使用了微调的检测特征来微调RPN。

每一步的运行时间如下表所示 

R-CNN学习笔记5:Faster R-CNN相关推荐

  1. R语言学习笔记(1):R是什么

    1. R初窥 从CRAN(The Comprehensive R Archive Network)cran.r-project.org-mirrors.html中选择一个镜像,然后下载合适的安装包(R ...

  2. R语言学习笔记︱Echarts与R的可视化包——地区地图

    笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...

  3. R软件学习笔记-5(R软件画图)

    转自:http://www.dataguru.cn/article-2421-1.html 摘要: 一.直方图 绘制直方图函数:hist()对x1进行直方图分析 hist(x$x1)二.散点图 散点图 ...

  4. R语言学习笔记 07 Probit、Logistic回归

    R语言学习笔记 文章目录 R语言学习笔记 probit回归 factor()和as.factor() relevel() 案例11.4复刻 glm函数 整理变量 回归:Logistic和Probit- ...

  5. R语言学习笔记 06 岭回归、lasso回归

    R语言学习笔记 文章目录 R语言学习笔记 比较lm.ridge和glmnet函数 画岭迹图 图6-4 <统计学习导论 基于R语言的应用>P182 图6-6<统计学习导论 基于R语言的 ...

  6. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP

    原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron  python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...

  7. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR

    原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression  python源代码(GitHub下载 CSDN免费下载) ...

  8. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  9. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

  10. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

最新文章

  1. 企业生产常用的磁盘管理方式介绍
  2. 淘宝宝贝浏览量提升刷新工具 - 最好的淘宝宝贝流量提升工具
  3. 【约束布局】ConstraintLayout 屏障 Barrier 约束 ( 简介 | 屏障适用场景 | 位置说明 | 相关属性 | 可视化操作 | 代码示例 | 总结 )
  4. python读写文件的文本模式_Python中文件的读写、写读和追加写读三种模式的特点...
  5. 大众伪原创软件 支持外链引蜘蛛 全自动操作
  6. Zookeepr 如何进行权限控制?
  7. 山财燕山学院计算机科学与技术专业,山东财经大学燕山学院
  8. 全网首发:跟踪分析This parser does not support specification “null“ version “null“
  9. Atitit. 如何判断软件工程师 能力模型 程序员能力模型  项目经理能力模型
  10. cvt公链采用什么结构_好马配好鞍,迈锐宝上全新的CVT变速箱,是什么来头?
  11. 关于 extern inline
  12. mxplayer battle游戏接入
  13. matlab中的fig文件怎么编辑,matlab fig文件的操作
  14. 如何注册企业邮箱,联系人邮箱是什么?
  15. 数据分析的数据来源都有哪些?
  16. PS更改图片的背景颜色
  17. android style(样式)和theme(主题)设置
  18. 使用 arp-scan 快速扫描局域网 IP -> raspberry pi ssh vnc
  19. 车机蓝牙通话流程分析的流程分析
  20. PMP证书好考吗?难度如何?

热门文章

  1. Gym 100963B
  2. python flask应用部署
  3. 国士工作室 企业级Android软件开发和实战培训专家
  4. Android中文API(125) —— VideoView
  5. 【网络流24题】魔术球
  6. 陈梓涵:关于编程的胡扯
  7. jni.h头文件详解一
  8. 项目经理,别让猴子跳回背上!
  9. ASP.NET的HTTP模块和处理程序之模块实现
  10. 解题报告 poj 2528 (罕见的浮水法解这个题的。。。。。。)