文章只是粗浅理解,并不详细,可能有不准确的地方,敬请指正

0. 概述

RPN, Reigion Proposal Network, 中文名称为候选区域提取网络,最早在faster RCNN一文中提出,用于提取目标候选框。

1. 产生动机

RCNN系列的三篇文章都是two-stage目标检测方法,将目标的检测和识别分开来做,也就是说先找到哪些区域可能存在目标,然后在将这个框送进目标识别网络。在faster RCNN的前作,RCNNfast RCNN网络中,使用的SS(Selective Search)方法,该方法计算量巨大,基本上2秒才能处理一幅图像,缺点太大。因此针对这一问题,faster RCNN作者在文中提出了RPN网络来代替SS算法,将速度提升了将近10倍。

2. 网络结构

RPN网络还是要结合faster RCNN来说,faster RCNN的网络结构如下:
在这里插入图片描述
faster RCNN网络分为三个部分:
1、用于提取特征的CNN网络,也就是backbone;
2、用于提取候选框的RPN网络;
3、用于目标识别的识别网络。

在feature map进入RPN网络后,会首先经过一个3×33×33×3的卷积层,然后分别经过两路1×11×11×1的卷积层,上边一路输出的是候选框的置信度,即该框有目标的置信度;下边的框输出的是候选框的位置信息。
在这里插入图片描述
为了获取proposal(候选框),在最后共享的卷积层输出的卷积特征图上滑动一个小的网络,也就是那个3×33×33×3的卷积层,每个位置会生成 kkk 个proposal,在论文里边 k=9k=9k=9,也就是说如果feature map的尺寸是 M×NM×NM×N,那么会生成 M×N×kM×N×kM×N×k 个proposal。

对于分类网络的输出,输出尺寸为 M×N×k×2M×N×k×2M×N×k×2, 为什么每个框输出两个类别呢,可以看到分类网络里边有一个softmax层,这是一个二分类网络
对于回归网络的输出,每个proposal输出4个位置数据,于是输出的尺寸为M×N×k×4M×N×k×4M×N×k×4

3. 训练方法

RPN网络是一个神经网络,他需要进行训练才能达到我们预期的效果。在训练的时候,我们会给予RPN提取出的proposals标签。

  1. 对以下两种情况的proposals,给于positive标签:
  • 与groundtruth有最大的IOU交并比(可能不足0.7);
  • 与某个groundtruth的交并比大于0.7。
  1. 如果与任意groundtruth交并比小于0.3,则为负标签,即该proposal是背景;
  2. 交并比大于0.3,但小于0.7,忽略,不纳入损失函数计算。

4. 推理使用

在网络进行推理的时候,RPN网络生成的这些proposals,数量是庞大的,而且重复性非常高,如果把这些框全都塞进目标识别网路,时长一定会感动你的… 所以要对这些框进行筛选。

剔除步骤:
1、 将初步确定的proposal映射回原图,判断初步确定的proposal是否大范围超过边界,剔除严重超出边界的proposal;
2、将proposals按照分类得分排序,选取前2000个分数最大的框;
3、最后对剩下的proposals进行NMS计算

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐