RCNN,Fast RCNN, Faster RCN解析
文章目录
- Region Proposal + CNN(R-CNN)
- Region Proposal
- 步骤
- 改进及缺陷
- 改进
- 缺陷
- Spatial Pyramid Pooling(SPPNet)
- 解析
- Fast R-CNN
- 步骤
- 解析
- 最后一个卷积层后加了一个ROI pooling layer
- 损失函数使用了多任务损失函数(multi-task loss),将边框回归Bounding Box Regression直接加入到CNN网络中训练
- 贡献
- Faster R-CNN
- Region Proposal Network(RPN)
- 步骤
- 总结
Region Proposal + CNN(R-CNN)
关于定位问题主流有两个思路
- 直接回归边框值
- 使用图像框回归
这个方法延续了使用图像框回归的思路
Region Proposal
该思路是先利用图像的浅层信息(纹理、边缘、颜色等)预先找到图中可能出现的位置,这样可以在较少的候选框中保持较高的召回率(Recall),即候选框是真正有用的。
本文只讲述实际论文中使用的方法,其他方法对比可以查看PAMI2015的“What makes for effective detection proposals?”,在另外的一篇再详细讲解候选框生产方法总结
步骤
- 在图片上使用Selective Search提取2000个左右的Region Proposal;
- 统一缩放(warp)为 [227×227][227 \times 227][227×227]
- 每个候选框都接一个CNN网络,CNN的末端输出作为特征
- CNN提取的feature输入到SVM进行分类
- 做Box regression
改进及缺陷
改进
- 摆脱了穷举方法
缺陷
- 每个框都需要进行CNN提特征+SVM分类,计算量很大,导致R-CNN检测速度很慢,一张图都需要47s
Spatial Pyramid Pooling(SPPNet)
RCNN的致命缺陷在于对一张图像做了过多的卷积特征抽取,那么我们完全做如下操作
- 对图像提一次卷积层特征,
- 将region proposal在原图的位置映射到卷积层特征图上,
- 然后将每个region proposal的卷积层特征输入到全连接层做后续操作。
这样的问题在于全连接层需要固定的输入,但是上述并没有warp或者剪切截取操作,训练由于最终特征的维度不一致导致无法训练,由此引出SPPNet
既然由于全连接FC层的存在,普通的CNN需要通过固定输入图片的大小来使得全连接层的输入固定。那借鉴卷积层可以适应任何尺寸,为何不能在卷积层的最后加入某种结构,使得后面全连接层得到的输入变成固定的呢?
解析
首先是使用了上述的单次卷积
- 原图进行一次卷积计算,得到整张图的卷积特征feature map;
- 然后找到每个候选框在feature map上的映射patch,
- 将此patch作为每个候选框的卷积特征输入到SPP layer
然后目标是统一feature尺寸,在SPP layer中每一个pooling的filter会根据输入调整大小,而SPP的输出则是固定维数的向量,然后给到全连接FC层。
Fast R-CNN
Fast RCNN在RCNN基础上,引入SPPNet
步骤
- 在图片上使用Selective Search提取2000个左右的Region Proposal;
- 接一个CNN网络,CNN的末端输出到ROI pooling;
- ROI pooling 统一尺寸为[7×7][7 \times 7][7×7]
- softmax 做分类,+ box regression,region分类和并成为了一个multi-task模型,实际实验也证明,这两个任务能够共享卷积特征,并相互促进
解析
最后一个卷积层后加了一个ROI pooling layer
ROI pooling layer实际上是SPP-NET的一个精简版,SPP-NET对每个proposal使用了不同大小的金字塔映射,而ROI pooling layer只需要下采样到一个7x7的特征图。对于VGG16网络conv5_3有512个特征图,这样所有region proposal对应了一个77512维度的特征向量作为全连接层的输入
损失函数使用了多任务损失函数(multi-task loss),将边框回归Bounding Box Regression直接加入到CNN网络中训练
边框回归
什么是边框回归
贡献
看到了Region Proposal + CNN这一框架实时检测的希望
Faster R-CNN
Faster要解决的就是Fast存在的问题
Select search
解决: 加入一个提取边缘的神经网络,也就说找到候选框的工作也交给神经网络来做(RPN)
Region Proposal Network(RPN)
- Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search
- 引入anchor box应对目标形状的变化问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal)
- 将RPN放在最后一个卷积层的后面
- RPN直接训练得到候选区域
一种网络,四个损失函数;
•RPN calssification(anchor good.bad)
•RPN regression(anchor->propoasal)
•Fast R-CNN classification(over classes)
•Fast R-CNN regression(proposal ->box)
步骤
- 对整张图片输进CNN,得到feature map
- 卷积特征输入到RPN,得到候选框的特征信息
- 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
- 对于属于某一类别的候选框,用回归器进一步调整其位置
总结
R-CNN(Selective Search + CNN + SVM)
SPP-net(ROI Pooling)
Fast R-CNN(Selective Search + CNN + ROI)
Faster R-CNN(RPN + CNN + ROI)
RCNN,Fast RCNN, Faster RCN解析相关推荐
- PyTorch 实现经典模型6:RCNN (Fast RCNN, Faster RCNN)
RCNN (Fast RCNN, Faster RCNN) 适用范围 图像分类(Image classification) 目标检测(Object detection) 网络结构 代码 Ref R-C ...
- R-CNN , Fast R-CNN , Faster R-CNN原理及区别
github博客传送门 csdn博客传送门 ==RCNN== 1.生成候选区域 使用Selective Search(选择性搜索)方法对一张图像生成约2000-3000个候选区域,基本思路如下: (1 ...
- RCNN,fast R-CNN,faster R-CNN
转自:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别. ...
- 动手学深度学习——目标检测 SSD R-CNN Fast R-CNN Faster R-CNN Mask R-CNN
来源:13.4. 锚框 - 动手学深度学习 2.0.0-beta1 documentation 目标检测:锚框算法原理与实现.SSD.R-CNN_神洛华的博客 目录 目标检测简介 目标检测模型 编辑 ...
- 计算机视觉知识点之RCNN/Fast RCNN/Faster RCNN
Rcnn 第一步:输入图像,采用Selective Search 从原始图片中提取2000个左右区域候选框 第二步:划分区域提案,进行归一化:将所有候选框变为固定大小的(227*227)区域,对每个候 ...
- 目标检测(Object Detection)综述--R-CNN/Fast R-CNN/Faster R-CNN/YOLO/SSD
1. 目标检测 1.1 简介 如何理解一张图片?根据后续任务的需要,有三个主要的层次. 一是分类(Classification),即是将图像结构化为某一类别的信息,用事先确定好的类别(string)或 ...
- [转]一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/88016151 一.目标检测常见算法 object ...
- faster rcnn resnet_RCNN, Fast R-CNN 与 Faster RCNN理解及改进方法
RCNN 这个网络也是目标检测的鼻祖了.其原理非常简单,主要通过提取多个Region Proposal(候选区域)来判断位置,作者认为以往的对每个滑动窗口进行检测算法是一种浪费资源的方式.在RCNN中 ...
- 实例分割模型Mask R-CNN详解——从R-CNN,Fast R-CNN,Faster R-CNN再到Mask R-CNN
转载自 jiongnima 原文链接 https://blog.csdn.net/jiongnima/article/details/79094159 Mask R-CNN是ICCV 2017的bes ...
最新文章
- 剑指Offer 替换空格
- Oracle字符集问题总结
- git本地创建新分支并推送到远程仓库
- python123手机版math库-python学习笔记---math,random,operator(三)
- php 配置文件类,PHP配置文件类
- 笔试的图形推理题怎么做?
- lede做无线打印服务器吗,OpenWrt/PandoraBox/LEDE做打印服务器连接HP1020问题汇总
- Skyline TEP5.1.3二次开发入门——初级(四)
- 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第7章 数据挖掘
- GaN制备Micro-led(二)——光子晶体倒装 Micro-LED 制备的关键工艺(纳米压印光刻、干法刻蚀、介质薄膜沉积、物理气相沉积)
- Java常量池与方法区
- 私域运营是不是就是社群运营?
- 帮助睡眠最好的办法是什么?对睡眠好的东西分享
- 他抛了27亿粒米粒儿近似计算出了圆周率
- 上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域: 0区 1区 2区 3区 4区 同城 临近两省 1500公里(含)以内 1500——2500公里 2500公里以上 上海 江苏
- reporting service odbc mysql_Reporting Services
- 游戏直播视频太大了,怎么一键压缩视频?--QVE视频压缩
- 最新wifi大师独立版4.0.5分销小程序搭建教程
- SpringMVC中的文件上传与下载,json转换,及三大框架的整合
- TOPSIS(优劣解距离法)【附Python实现代码及可视化代码】