Faster Rcnn RPN代码解析

1、anchor_target_layer.py

首先产生K*A个anchor,K=w*h,w和h分别是map图的宽和高

然后去掉超出边界的anchor,剩下N个

利用剩下的N个anchor和N1个gt-box计算overlap,维度是N*N1

接下来定义正负样本,正样本为1,负样本为0,其余为-1,不参与反传,通常RPN的batch为256,选择cfg.TRAIN.RPN_FG_FRACTION * cfg.TRAIN.RPN_BATCHSIZE为最终正样本数量,如果已有的正样本超过这个数,删掉多余的正样本,cfg.TRAIN.RPN_BATCHSIZE - np.sum(labels == 1),负样本数量这个样子来获得,一旦已有的负样本大于这个数,也是删掉多余的负样本,置位-1

最终返回全部anchor,只不过对应的标签大部分设置为-1,不参与最后的计算和反传了


2、proposal layer

利用已经生成的2*A张map图,和bbox预测来的坐标位移来生成proposal

对于每一个anchor,利用bbox的位移生成proposal

然后将超出边界的proposal减掉超出部分

根据每个anchor的得分,排序,选取topN个,经验是6000

然后nms之后选取topN个,经验是300,返回这300个proposal的坐标,并且在加上一个维度,设置为0,最后返回300*5个proposal


3、proposal_target_layer

首先利用传进来的proposal,决定哪些为正样本,哪些是负样本,最后剩下N张,返回N*1的label,N*5的rois,N*(4*cls)的bbox_targets,N*(4*cls)的bbox_inside_weights

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值