RPN网络解读

RPN网络源码解读

在高层的feature map初次计算anchor box点数值 60x40x9。9代表一个特征维度生成9个anchor box, 但特征层w,h为啥是60,40不应该是相等的?毕竟backbone网络一系列操作,w,h同时缩小的?解读源码之后才明白,原来图像预处理并不是对原图像简单的resize操作,因为这样的话迫使原图变形了,源码上给出的处理是:一个batch中最大原图的W作为该batch的W;一个batch中最大原图的H作为该batch的H,遍历整个batch进行0填充,使batch内的原图都一样大。那么问题来了,每个batch的W,H都不一样了啊,对,就是不一样,以至于经过backbone后feature map的w,h都不一样,生成的anchor也都不一样多,但是batch内的一定是一样的。

step1:原始生成大约20000boxs,再进行2k排序(每个boxs得分为目标或背景的概率,不管是背景还是目标都要得分高的)设定阈值为12000,也就是说最多保留12000,也有的源码设定2000。

step2:score排序完保留12000个,再进行NMS非极大抑制,这里的非极大抑制要设定阈值,注意下面的话是关键:先选出score打分最高的,根据这个得分框剔除重合度高的,何为重合度高?就是IOU值大的。其实我们知道得分就够了,并不需要知道它是背景还是目标(我之前的解读就是错误的,我以为是利用GT的IOU值,你想想如果利用GT的话,剔除的更多的岂不是正样本?负样本怎么剔除,负样本本来就与GT的IOU重合度低)这样的话就保留2000个boxs,这2000个就是属于那种最可能是目标或者最可能是背景的框了。
step3:上面生成的anchor boxs(2000个)是用来训练fastrcnn网络?不,在源码中还是进行了进一步的筛选(进一步筛选就是计算与GTBOX的IOU值,这一条件作为判断,IOU值大的自然就保留下来,很遗憾一开始的RPN网络选出大多数都是背景,难道就让fastrcnn计算一堆背景么,实际处理有个技巧,就是把GT加进出充当正样本),最终一张图片剩余的是512个proposal,然后将这512个boxs映射到feature map上,然后进行ROI pooling操作,输入全连接层+交叉熵损失层或者smooth损失函数进行各个目标和背景的分类,并同时进行框的回归参数修正,损失目标函数是一个联合损失,有目标的要回归,背景就不必计算回归损失了,没必要,也没有GTBOXS作为参考。
总结:以上所述操作就是RPN网络筛选proposal用于训练fastrcnn网络的内容(ps:这绝不是用于训练RPN网络的anchorboxs框),你觉得RPN网络的sore得分选出来的框再来训练自己还有意思么,这就好比,我自己出题给自己做,然后再打分,这也违背了监督式学习
下面再写RPN网络的训练过程,以及RPN训练的监督框是怎么来的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV_er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值