Faster R-CNN中RPN网络总结

RPN网络处理流程:


1、在底层共享卷积层的输出特征图上,以每个位置为中心生成k个anchor,计算anchor与原始图像GT的IoU,根据IoU结果设置anchor的label为正类1,负类0,忽略-1
2、然后对feature map进行两路卷积,卷积核分别为1x1x2k和1x1x4k,分别表示RPN网络输出的每个anchor中包含物体的概率值以及物体的坐标
3、将RPN网络输出的每个anchor的概率得分和每个anchor中物体的坐标作为预测信号,将第1步中计算的每个anchor的label以及与之对应的Ground Truth的坐标作为监督信号,计算RPN网络的损失,完成RPN网络的训练
4、基于损失函数优化RPN网络的输出结果,使得RPN网络输出的region proposal中包含物体的概率得分和物体坐标位置更准确
5、RPN网络的输出结果(anchor的概率得分和坐标位置)就是region proposal,对region proposal进行NMS只保留预测概率高的region proposal,然后送入RoI Pooling层完成进一步的分类与回归(参照Fast R-CNN)

 

RPN分类分支:计算RPN在每个滑窗位置的预测概率与anchor真实标签的分类损失

RPN回归分支:以anchor和其对应的Ground Truth的bounding box作为监督信号,以RPN在每个滑窗位置的预测坐标和anchor的对应关系作为预测信号,完成坐标的回归训练,使得RPN的预测结果更进阶Ground Truth的bounding box坐标

为什么要引入anchor ?为什么不直接计算Ground Truth与预测结果之间的损失,而要通过anchor来计算预测损失?

个人理解:如果不使用anchor,直接计算Ground Truth与预测结果之间的损失,也可以得到单个目标比较精确的目标bounding box,但是目标检测不仅仅是要得到某个目标对象精确的bounding box,还要尽量检测出图片中所有出现的目标,anchor的作用就为检测所有不同位置,不同大小,不同长宽比的目标提供了参照依据。


备注:Faster R-CNN论文中anchor_scale=[128, 256, 512]是相对于原始像素的,对于采用VGG16作为骨干网络来说,anchor_scale对应到VGG16输出的feature map上是[8, 16, 32],存在16倍的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值