R-CNN学习笔记5:Faster R-CNN
原文地址: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相关推荐
- R语言学习笔记(1):R是什么
1. R初窥 从CRAN(The Comprehensive R Archive Network)cran.r-project.org-mirrors.html中选择一个镜像,然后下载合适的安装包(R ...
- R语言学习笔记︱Echarts与R的可视化包——地区地图
笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...
- R软件学习笔记-5(R软件画图)
转自:http://www.dataguru.cn/article-2421-1.html 摘要: 一.直方图 绘制直方图函数:hist()对x1进行直方图分析 hist(x$x1)二.散点图 散点图 ...
- R语言学习笔记 07 Probit、Logistic回归
R语言学习笔记 文章目录 R语言学习笔记 probit回归 factor()和as.factor() relevel() 案例11.4复刻 glm函数 整理变量 回归:Logistic和Probit- ...
- R语言学习笔记 06 岭回归、lasso回归
R语言学习笔记 文章目录 R语言学习笔记 比较lm.ridge和glmnet函数 画岭迹图 图6-4 <统计学习导论 基于R语言的应用>P182 图6-6<统计学习导论 基于R语言的 ...
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR
原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression python源代码(GitHub下载 CSDN免费下载) ...
- R语言学习笔记(1~3)
R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...
- r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...
- R语言学习笔记——入门篇:第一章-R语言介绍
R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...
最新文章
- 企业生产常用的磁盘管理方式介绍
- 淘宝宝贝浏览量提升刷新工具 - 最好的淘宝宝贝流量提升工具
- 【约束布局】ConstraintLayout 屏障 Barrier 约束 ( 简介 | 屏障适用场景 | 位置说明 | 相关属性 | 可视化操作 | 代码示例 | 总结 )
- python读写文件的文本模式_Python中文件的读写、写读和追加写读三种模式的特点...
- 大众伪原创软件 支持外链引蜘蛛 全自动操作
- Zookeepr 如何进行权限控制?
- 山财燕山学院计算机科学与技术专业,山东财经大学燕山学院
- 全网首发:跟踪分析This parser does not support specification “null“ version “null“
- Atitit. 如何判断软件工程师 能力模型 程序员能力模型 项目经理能力模型
- cvt公链采用什么结构_好马配好鞍,迈锐宝上全新的CVT变速箱,是什么来头?
- 关于 extern inline
- mxplayer battle游戏接入
- matlab中的fig文件怎么编辑,matlab fig文件的操作
- 如何注册企业邮箱,联系人邮箱是什么?
- 数据分析的数据来源都有哪些?
- PS更改图片的背景颜色
- android style(样式)和theme(主题)设置
- 使用 arp-scan 快速扫描局域网 IP -> raspberry pi ssh vnc
- 车机蓝牙通话流程分析的流程分析
- PMP证书好考吗?难度如何?