一:总体流程
1、将图像输入网络得到相应的特征图。
2、使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵。
3、将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
二:PRN
1、对于特征图上的每个3x3的滑动窗口,计算出滑动窗口中心点对应原始图像上的中心点,如下图。
2、计算出k个anchor boxes(注意和proposal的差异),如下图。
每位置生成的anchor boxes,如下图。
3、通过cls判断原图的anchor box为前景还是背景,再通过reg调整anchor box的中心点和宽高,如下图。
4、对生成的anchor boxes进行筛选过程:
对于一张1000x600x3的图像,大约有60x40x9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。
三:RPN训练样本的选取(正负样本)
从上一步生成20k个anchors中,随机选取256张anchors,其中正负样本的比例为1:1,若正样本的数量不足256/2,则以负样本填充。
正样本:选取与真实图片的IOU大于0.7的anchor,或者与真实图片IOU值最大的anchor。
负样本:选取与所有真实图片的IOU小于0.3的anchor。
四:RPN损失函数
分类损失:
边界框回归损失:
五:faster-rcnn相对于fast-rcnn的改进
在 Faster R-CNN 中,引入了一个额外的网络模块称为 Region Proposal Network(RPN)来生成候选目标框,而不是使用 Selective Search 等传统方法。RPN 是一个全卷积网络,可以共享卷积特征提取层,并且通过锚框(anchor)的方式来生成候选框,特征提取网络和 RPN 网络可以一起进行训练。这种设计使得 Faster R-CNN 可以在单个前向传播过程中同时进行目标检测和生成候选框,从而加速了检测过程。