faster-rcnn代码阅读4

这一节讲述proposal层,和这一层有关的结构图如下:

proposal层的prototxt定义如下:

layer {
  name: 'proposal'
  type: 'Python'
  bottom: 'rpn_cls_prob_reshape'
  bottom: 'rpn_bbox_pred'
  bottom: 'im_info'
  top: 'rpn_rois'
#  top: 'rpn_scores'
  python_param {
    module: 'rpn.proposal_layer'
    layer: 'ProposalLayer'
    param_str: "'feat_stride': 16"
  }
}

这一层的功能是对卷积网络中RPN输出的bbox_deltas, scores做后处理,主要步骤如下:

1、同上节中的第一步,生成anchor;

2、将anchor和RPN网络输出的bbox_deltas叠加,得到proposals,剔除超出图像区域的proposal,并删除在原图尺度(不是输入网络的尺度)上长或宽小于16的proposal;

3、将proposals按分数从大到小排序,并取前12000个做NMS,overlap阈值为0.7;

4、NMS之后,proposals仍然是按分数从大到小排序的,取前2000个(如果NMS之后proposal个数小于2000,则取全部)proposals;

5、给proposals(n x 4)添加一列,表示batch_inds(都为0),添加在第一列,最后得到的proposals的shape为n x 5。

这一层的代码链接见这里,此外涉及到的其他函数有bbox_transform_invclip_boxesnms

猜你喜欢

转载自www.cnblogs.com/pursuiting/p/11204538.html