RPN(Region Proposal Network)提取候选框

Posted 一颗小树x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPN(Region Proposal Network)提取候选框相关的知识,希望对你有一定的参考价值。

 前言

RPN全称是Region Proposal Network,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。

目录

一、RPN的由来

二、RPN思路流程

三、feature maps与锚框 anchor boxes

四、判断anchor boxes是否包含物体

五、修正边界框

六、Proposal(最有可能包含物体的区域)


一、RPN的由来

在RCNN和Fast RCNN等物体检测架构中,提取候选框的方法通常是传统的Selective Search,比较耗时。

在Faster RCNN中,RPN专门用来提取候选框,这也是RPN第一次被使用;RPN耗时少。

Faster RCNN = RPN + Fast RCNN

二、RPN思路流程

RPN网络的任务是找到proposals。输入:feature map。输出:proposal。

RPN总体流程:

  1. 生成anchors(anchor boxes)。
  2. 判断每个 anchor box 为 foreground(包含物体) 或者 background(背景) ,二分类;softmax分类器提取positvie anchors 。
  3. 边界框回归(bounding box regression) 对 anchor box 进行微调,使得 positive anchor 和真实框(Ground Truth Box)更加接近。
  4. Proposal Layer生成proposals。

三、feature maps与锚框 anchor boxes

feature maps 的每一个点都配9个锚框,作为初始的检测框。重要的事说三遍:

锚框作为初始的检测框!、 锚框作为初始的检测框!、 锚框作为初始的检测框!

虽然这样得到的检测框很不准确,但后面可通过 bounding box regression 来修正检测框的位置。

 下面介绍那9个anchor boxes 锚框,先看看它的形状:

 这里一共有9个框框,绿色3个,红色3个,蓝色3个。有3种形状,长宽比分别是1:1, 1:2, 2:1

四、判断anchor boxes是否包含物体

在feature map上,设置了密密麻麻的候选anchor boxes  锚框。为什么会有这么多?因为 feature maps 的每一个点都配9个锚框,如果一共有1900个点,那一共有1900*9=17100个锚框了。

设 feature maps 的尺寸为 W*H,那么总共有 W*H*9个锚框。(W:feature maps的宽;H:feature maps 的高。)

然后用cnn去判断哪些anchor box是里面有目标的positive anchor,哪些是没目标的negative anchor。所以,RPN做的只是个二分类。

关于cnn的模型结构,可以参考下图:

五、修正边界框

已知anchor box 包含物体称为positive anchors,那怎么调整,才能使得 anchor box 与 ground truth 更接近?

图中红框为positive anchors,绿框为真实框(Ground Truth Box,简称GT)

positive anchors 和GT的梯度可以有dx, dy, dw, dh四个变换表示,bounding box regression通过线性回归学习到这个四个梯度,使positive anchors 不断逼近GT,从而获得更精确的proposal。

bounding box regression 思路,简单一点的,可以先做平移,再做缩放,最终包含物体anchor box和真实框很接近。

六、Proposal(最有可能包含物体的区域)

通过上面的判断anchor boxes是否包含物体,对有物体的anchor boxes通过回归进行修正它的尺子,最终包含物体anchor box和真实框很接近。RPN会输出一些框框,和这些框框包含物体的概率。

总结一下,Proposal 的输入有三个:

  • softmax 分类矩阵
  • Bounding Box Regression 坐标矩阵
  • im_info 保存了缩放的信息

 输出为:

  • rpn_rois: RPN 产生的 ROIs (Region of Interests,感兴趣的区域)
  • rpn_roi_probs: 表示 ROI 包含物体的概率

RPN 只挑选出了可能包含物体的区域(rpn_rois)以及其包含物体的概率(rpn_roi_probs)。在后续处理中,设定一个阈值 threshold,如果某个ROI包含物体的概率的概率大于阈值,再判断其类别;否则直接忽略。

参考:https://zhuanlan.zhihu.com/p/106192020https://zhuanlan.zhihu.com/p/31426458

https://www.cnblogs.com/Terrypython/p/10584384.html

本文只提供参考学习,谢谢。

以上是关于RPN(Region Proposal Network)提取候选框的主要内容,如果未能解决你的问题,请参考以下文章

Faster RCNN超详细入门 02网络细节与训练方法 (anchors,RPN,bbox,bounding box,Region proposal layer……)

目标检测基础学习-Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 阅读笔记

论文翻译 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

论文笔记Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

深度学习Faster-RCNN网络

HBase Region Locality