RPN(Region Proposal Network)提取候选框
Posted 一颗小树x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPN(Region Proposal Network)提取候选框相关的知识,希望对你有一定的参考价值。
前言
RPN全称是Region Proposal Network,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。
目录
三、feature maps与锚框 anchor boxes
一、RPN的由来
在RCNN和Fast RCNN等物体检测架构中,提取候选框的方法通常是传统的Selective Search,比较耗时。
在Faster RCNN中,RPN专门用来提取候选框,这也是RPN第一次被使用;RPN耗时少。
Faster RCNN = RPN + Fast RCNN
二、RPN思路流程
RPN网络的任务是找到proposals。输入:feature map。输出:proposal。
RPN总体流程:
- 生成anchors(anchor boxes)。
- 判断每个 anchor box 为 foreground(包含物体) 或者 background(背景) ,二分类;softmax分类器提取positvie anchors 。
- 边界框回归(bounding box regression) 对 anchor box 进行微调,使得 positive anchor 和真实框(Ground Truth Box)更加接近。
- 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/106192020、https://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