Faster RCNN系列4——生成Proposal与RoI

Faster RCNN系列:

Faster RCNN系列1——Anchor生成过程
Faster RCNN系列2——RPN的真值与预测值概述
Faster RCNN系列3——RPN的真值详解与损失值计算
Faster RCNN系列4——生成Proposal与RoI
Faster RCNN系列5——RoI Pooling与全连接层

一、生成Proposal

  生成Proposal的过程如下图所示,首先生成大小固定的全部Anchors,然后将网络中得到的回归偏移作用到Anchor上使Anchor更加贴近于真值,并修剪超出图像尺寸的Proposal, 得到最初的建议区域。在这之后,按照分类网络输出的得分对Anchor排序,保留前12000个得分高的Anchors.由于一个物体可能会有多个Anchors重叠对应,因此再应用非极大值抑制(NMS)将重叠的框去掉,最后在剩余的Proposal 中再次根据RPN的预测得分选择前2000个,作为最终的Proposal,输出到下一个阶段。

在这里插入图片描述

二、生成RoI

  在训练时,上一步生成的Proposal 数量为2000个,其中仍然有很多背景框,真正包含物体的仍占少数,因此完全可以针对Proposal 进行再一步筛选,过程与RPN中筛选Anchor的过程类似,利用标签与Proposal构建IoU矩阵,通过与标签的重合程度选出256个正负样本。

  具体实现时,首先计算Proposal与所有的物体标签的IoU矩阵,然后根据IoU矩阵的值来筛选出符合条件的正负样本。筛选标准如下:

  • 对于任何- -个Proposal,其与所有标签的最大IoU如果大于等于0.5,则视为正样本。

  • 对于任何一个Proposal, 其与所有标签的最大IoU如果大于等于0且小于0.5,则视为负样本。

  经过上述标准的筛选,选出的正、负样本数量不一,在此设定正、负样本的总数为256个,其中正样本的数量为p个。为了控制正、负样本的比例基本满足 1 : 3 1:3 1:3,在此正样本数量p不超过64,如果超过了64则从正样本中随机选取64个。剩余的数量256-p为负样本的数量,如果超过了 256 − p 256-p 256p则从负样本中随机选取 256 − p 256-p 256p个。经过上述操作后,选出了最终的256个Rol,并且每一个 RoI都赋予了正样本或者负样本的标签。在此也可以进一步求得每一个RoI的真值,即属于哪一个类别及对应真值物体的偏移量。

参考文章

《深度学习之Pytorch物体检测实战》

猜你喜欢

转载自blog.csdn.net/python_plus/article/details/130241529