admin管理员组

文章数量:1579438

论文 : Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. PAMI2017.

GitHub :

    1. matlab version : https://github/ShaoqingRen/faster_rcnn

    2. python version : https://github/rbgirshick/py-faster-rcnn

    3. 补充程序Detectron : https://github/facebookresearch/Detectron (Detectron is Facebook AI Research's software system that implements state-of-the-art object detection algorithms, including Mask R-CNN. It is written in Python and powered by the Caffe2 deep learning framework.)

1. 前言

在Faster R-CNN出现之前,已经存在了R-CNN(无法实现End-to-End训练)和Fast R-CNN(Selective Search耗时),Shaoqing Ren在2016年NIP上提出了Faster R-CNN. 从上面的结构上,我们能够看出来,Faster R-CNN将特征提取proposal提取Bounding Box RegressionClassification整合到一个网络中,目标检测速度有了很大的提升。与R-CNN、Fast R-CNN相比,Faster R-CNN具体执行步骤如下:

  • 特征提取(convolutional layer)。Faster R-CNN首先使用一组基础的conv+relu+pooling层提取候选图像的特征图。该特征图被共享用于后续RPN(Region Proposal Network)层和全连接(fully connection)层。
  • 区域候选网络(Region Proposal Network)。RPN网络用于生成区域候选图像块。该层通过softmax判断锚点(anchors)属于前景(foreground)或者背景(background),再利用边界框回归(bounding box regression)修正anchors获得精确的proposals
  • 目标区池化(Roi Pooling)。该层收集输入的特征图候选的目标区域,综合这些信息后提取目标区域的特征图,送入后续全连接层判定目标类别。
  • 目标分类(Classification)。利用目标区域特征图计算目标区域的类别,同时再次边界框回归获得检测框最终的精确位置。

由此,我们也能看出,Faster R-CNN最大的亮点在于提出了一种有效定位目标区域的方法,然后按区域在特征图上进行特征索引,大大降低了卷积计算的时间消耗,所以速度上有了非常大的提升。

以如上GitHub中Python的项目为例,可以更加直接分析Faster R-CNN的设计思想。

  1. 对于任意PxQ的图像,首先裁剪到固定大小MxN。然后,利用VGG16全卷积模型计算该图像对应的特征图。
  2. 特征图的一个分支输入RPN网络用于计算Region Proposal。RPN网络首先经过3x3卷积,再分别生成前景锚点(foreground anchors)边界框回归(bounding box regression)偏移量ÿ

本文标签: fasterCNN