1

【RCNN系列】F

 2 years ago
source link: https://sevenold.github.io/2019/04/object-detection-FasterRCNN/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【RCNN系列】Faster RCNN

【RCNN系列】_

2019年4月10日 上午

1.2k 字

13 分钟

43 次

本文最后更新于:14 天前

链接:Faster R-CNN

​ 最先进的目标检测网络依靠区域提出算法来假设目标的位置。SPPnetFast R-CNN等研究已经减少了这些检测网络的运行时间,使得区域提出计算成为一个瓶颈。在这项工作中,我们引入了一个区域提出网络(RPN),该网络与检测网络共享全图像的卷积特征,从而使近乎零成本的区域提出成为可能。RPN是一个全卷积网络,可以同时在每个位置预测目标边界和目标分数。RPN经过端到端的训练,可以生成高质量的区域提出,由Fast R-CNN用于检测。我们将RPN和Fast R-CNN通过共享卷积特征进一步合并为一个单一的网络——使用最近流行的具有“注意力”机制的神经网络术语,RPN组件告诉统一网络在哪里寻找。对于非常深的VGG-16模型,我们的检测系统在GPU上的帧率为5fps(包括所有步骤),同时在PASCAL VOC 2007,2012和MS COCO数据集上实现了最新的目标检测精度,每个图像只有300个提出。

  • 主干网络:13Conv+13relu+4pooling
  • RPN:3x3+背景前景区分+初步定位
  • ROIPooling
  • 分类+位置精确定位

【VGG-Model】

【RPN】

​ 经典的检测方法生成检测框都非常耗时, 如RCNN使用SS(Selective Search)方法生成检测框。而Faster RCNN则抛弃了传统的滑动窗口和SS方法,直接使用RPN生成检测框,这也是Faster RCNN的巨大优势,能极大提升检测框的生成速度。

上图展示了RPN网络的具体结构。可以看到RPN网络实际分为2条线

  • 粗分类:上面一条通过softmax分类anchors获得foreground和background(检测目标是foreground)
  • 粗定位:下面一条用于计算对于anchors的bounding box regression偏移量,以获得粗略的proposal。

而最后的Proposal层则负责综合foreground anchors和bounding box regression偏移量获取proposals,同时剔除太小和超出边界的proposals。其实整个网络到了Proposal Layer这里,就完成了相当于目标定位的功能。

【anchors】

​ 首先使用一个(3, 3)的sliding window在feature map上滑动(就是做卷积,卷积的本质就是卷积核滑动求和),然后取(3, 3)滑窗的中心点,将这个点对应到原图上,然后取三种不同的尺寸(128, 256, 512)和三种比例(1:1, 2:1, 1:2)在原图上产生9个anchor,所以feature map上的每个点都会在原图上对应点的位置生成9个anchor,而我们从上边的分析已经得知feature map的大小为输入图片的1/16倍,所以最终一共有 m16×n16×9 个anchor。

和之前的目标检测网络训练类似,都是在一个预训练网络的基础上进行训练的。一般使用4-step交替训练法来训练Faster R-CNN,主要步骤如下:

  1. 在ImageNet预训练的网络来训练RPN网络。
  2. 使用ImageNet预训练的网络来训练一个单独Fast R-CNN检测网络,网络中的proposal是第一步训练RPN网络中得到的porposal。
  3. 使用上一步训练的detection网络的参数来初始化练RPN网络,并且在训练过程中固定shared conv layers这部分,只更新RPN网络专有的那些层。
  4. 固定shared conv layers这部分,只更新Fast R-CNN专有的那些层,其中proposal也是上一步训练RPN网络中得到的proposal。

使用方法 缺点 改进

R-CNN 1、SS提取RP;2、CNN提取特征;3、SVM分类;4、BB盒回归。 1、 训练步骤繁琐(微调网络+训练SVM+训练bbox); 2、 训练、测试均速度慢 ;3、 训练占空间 1、 从DPM HSC的34.3%直接提升到了66%(mAP);2、 引入RP+CNN

Fast R-CNN 1、SS提取RP;2、CNN提取特征;3、softmax分类;4、多任务损失函数边框回归。 1、 依旧用SS提取RP(耗时2-3s,特征提取耗时0.32s);2、 无法满足实时应用,没有真正实现端到端训练测试;3、 利用了GPU,但是区域建议方法是在CPU上实现的。 1、 由66.9%提升到70%;2、 每张图像耗时约为3s。

Faster R-CNN 1、RPN提取RP;2、CNN提取特征;3、softmax分类;4、多任务损失函数边框回归。 1、 还是无法达到实时检测目标;2、 获取region proposal,再对每个proposal分类计算量还是比较大。 1、 提高了检测精度和速度;2、 真正实现端到端的目标检测框架;3、 生成建议框仅需约10ms。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK