RCNN,Fast RCNN, Faster RCN解析

Region Proposal + CNN(R-CNN)

关于定位问题主流有两个思路

  1. 直接回归边框值
  2. 使用图像框回归
    这个方法延续了使用图像框回归的思路

Region Proposal

该思路是先利用图像的浅层信息(纹理、边缘、颜色等)预先找到图中可能出现的位置,这样可以在较少的候选框中保持较高的召回率(Recall),即候选框是真正有用的。
本文只讲述实际论文中使用的方法,其他方法对比可以查看PAMI2015的“What makes for effective detection proposals?”,在另外的一篇再详细讲解候选框生产方法总结

步骤

  1. 在图片上使用Selective Search提取2000个左右的Region Proposal;
  2. 统一缩放(warp)为 [ 227 × 227 ] [227 \times 227] [227×227]
  3. 每个候选框都接一个CNN网络,CNN的末端输出作为特征
  4. CNN提取的feature输入到SVM进行分类
  5. 做Box regression
    转自https://blog.youkuaiyun.com/sonnyxin/article/details/84112212

改进及缺陷

改进
  1. 摆脱了穷举方法
缺陷
  1. 每个框都需要进行CNN提特征+SVM分类,计算量很大,导致R-CNN检测速度很慢,一张图都需要47s

Spatial Pyramid Pooling(SPPNet)

RCNN的致命缺陷在于对一张图像做了过多的卷积特征抽取,那么我们完全做如下操作

  1. 对图像提一次卷积层特征,
  2. 将region proposal在原图的位置映射到卷积层特征图上,
  3. 然后将每个region proposal的卷积层特征输入到全连接层做后续操作。

这样的问题在于全连接层需要固定的输入,但是上述并没有warp或者剪切截取操作,训练由于最终特征的维度不一致导致无法训练,由此引出SPPNet

既然由于全连接FC层的存在,普通的CNN需要通过固定输入图片的大小来使得全连接层的输入固定。那借鉴卷积层可以适应任何尺寸,为何不能在卷积层的最后加入某种结构,使得后面全连接层得到的输入变成固定的呢?

解析

首先是使用了上述的单次卷积

  1. 原图进行一次卷积计算,得到整张图的卷积特征feature map;
  2. 然后找到每个候选框在feature map上的映射patch,
  3. 将此patch作为每个候选框的卷积特征输入到SPP layer

然后目标是统一feature尺寸,在SPP layer中每一个pooling的filter会根据输入调整大小,而SPP的输出则是固定维数的向量,然后给到全连接FC层。

Fast R-CNN

Fast RCNN在RCNN基础上,引入SPPNet

在这里插入图片描述

步骤

  1. 在图片上使用Selective Search提取2000个左右的Region Proposal;
  2. 接一个CNN网络,CNN的末端输出到ROI pooling;
  3. ROI pooling 统一尺寸为 [ 7 × 7 ] [7 \times 7] [7×7]
  4. 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)

  1. Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search
  2. 引入anchor box应对目标形状的变化问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal)
  3. 将RPN放在最后一个卷积层的后面
  4. RPN直接训练得到候选区域

一种网络,四个损失函数;
•RPN calssification(anchor good.bad)
•RPN regression(anchor->propoasal)
•Fast R-CNN classification(over classes)
•Fast R-CNN regression(proposal ->box)
在这里插入图片描述

步骤

  1. 对整张图片输进CNN,得到feature map
  2. 卷积特征输入到RPN,得到候选框的特征信息
  3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
  4. 对于属于某一类别的候选框,用回归器进一步调整其位置

总结

R-CNN(Selective Search + CNN + SVM)
SPP-net(ROI Pooling)
Fast R-CNN(Selective Search + CNN + ROI)
Faster R-CNN(RPN + CNN + ROI)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值