Faster R-CNN算法

  Faster R-CNN算法是作者Ross Girshick对Fast R-CNN算法的一种改进。Fast R-CNN在速度和精度上都有了不错的结果,但仍有一些不足之处。Faster R-CNN算法同样使用VGG-16网络结构,检测速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在ILSVRC和COCO 2015竞赛中获得多个项目的第一名。在Faster R-CNN中提出了区域生成网络(Region Proposal Network,RPN),将候选区域的提取和Fast R-CNN中的目标检测网络融合到一起,这样可以在同一个网络中实现目标检测。Faster R-CNN主要是解决Fast R-CNN存在的问题:

  • 候选区域提取方法耗时较长;
  • 没有真正实现end-to-end训练测试。

  Faster R-CNN算法步骤:

  • 将图像输入网络得到相应的特征图;
  • 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵;
  • 将每个特征矩阵通过ROl pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

Faster R-CNN算法
  上图中各层的主要功能:

  • 1) conv layers提取特征图
      作为一种CNN网络目标检测方法,Faster R-CNN首先使用一组基础的conv+relu+pooling层提取input image的feature maps,该feature maps会用于后续的RPN层和全连接层。

  • 2) RPN(Region Proposal Networks):
      RPN网络主要用于生成region proposals,首先生成一堆Anchor box,对其进行裁剪过滤后通过softmax判断anchors属于前景(foreground)或者后景(background),即是物体或者不是物体,所以这是一个二分类;同时,另一分支bounding box regression修正anchor box,形成较精确的proposal(注:这里的较精确是相对于后面全连接层的再一次box regression而言)。

  • 3) RoI Pooling:
      该层利用RPN生成的proposals和VGG16最后一层得到的feature map,得到固定大小的proposal feature map,进入到后面可利用全连接操作来进行目标识别和定位。

  • 4) Classifier:
      会将RoI Pooling层形成固定大小的feature map进行全连接操作,利用Softmax进行具体类别的分类,同时利用L1 Loss完成bounding box regression回归操作获得物体的精确位置。

  Faster R-CNN算法可以看作是由R-CNN和Fast R-CNN演化而来。

Faster R-CNN存在的问题:

  1. 还是无法达到实时检测目标;
  2. 获取region proposal,再对每个proposal分类计算量还是比较大。
上一篇:解锁苹果Mac计算器的隐藏功能,不止加减乘除


下一篇:Faster R-CNN 学习笔记