一文整理Faster R-CNN容易混淆的三次anchor筛选机制(creator)

本博客主要是基于Faster R-CNN的pytorch版本。见https://github.com/jwyang/faster-rcnn.pytorch

一、了解anchor

Faster R-CNN 是一种anchor-based的双阶段目标检测算法,下面先了解一下锚框anchor机制。

区域候选网络(RPN:region proposal network)网络是在Faster R-CNN中被提出的,它代替了Fast R-CNN的选择性搜索,大大提高了网络的速度。

一开始的anchor是一系列固定的候选框,在实验当中,可以设置锚框的宽高比以及面积的大小。然后就会再每一个特征图上生成不同种比例的锚框,比例种数取决于宽高比的种数与面积种数的乘积。如果宽高比为{1:1、1:2、2:1}且有三种,尺寸大小的面积,那么其示意图如下图所示。然后利用不同种比例的初始锚框在特征图上进行滑动窗口的操作,特征图上的每个点都会有不同种比例的初始锚框,就像一个暴力列举,大多数能够将实际的框给包含覆盖。
在这里插入图片描述

args.set_cfgs = ['ANCHOR_SCALES', '[8, 16, 32]', 'ANCHOR_RATIOS', '[0.5,1,2]', 'MAX_NUM_GT_BOXES', '20']

self.anchor_scales = cfg.ANCHOR_SCALES
self.anchor_ratios = cfg.ANCHOR_RATIOS

len(self.anchor_scales) * len(self.anchor_ratios)则为每个特征点的anchor数目,即3*3=9个。

二、相关程序函数

(1)faster_rcnn.py里面的类class _fasterRCNN(nn.Module),仅列举部分相关语句。

rois, rpn_loss_cls, rpn_loss_bbox = self.RCNN_rpn(base_feat, im_info, gt_boxes, num_boxes)  #区域候选网络RPN

roi_data = self.RCNN_proposal_target(rois, gt_boxes, num_boxes) #第三次筛选

rois, rois_label, rois_target, rois_inside_ws, rois_outside_ws = roi_data

pooled_feat = self.RCNN_roi_pool(base_feat, rois.view(-1,5))

cls_score = self.RCNN_cls_score(pooled_feat)

(2)self.RCNN_rpn对应的区域候选网络rpn.py里class _RPN(nn.Module)类。

# define proposal layer
self.RPN_proposal = _ProposalLayer(self.feat_stride, self.anchor_scales, self.anchor_ratios)
rois = self.RPN_proposal((rpn_cls_prob.data, rpn_bbox_pred.data,
                         im_info, cfg_key),target=target) #第一次筛选

# define anchor target layer
self.RPN_anchor_target = _AnchorTargetLayer(self.feat_stride, self.anchor_scales, self.anchor_ratios)
rpn_data = self.RPN_anchor_target((rpn_cls_score.data, gt_boxes, im_info, num_boxes)) #第二次筛选

return rois, self.rpn_loss_cls, self.rpn_loss_box

最后,

三、self.RPN_proposal的第一次筛选机制

RPN提供RoIs(region of interests)给Faster RCNN的RoIHead(第二阶段)作为训练样本。RPN生成RoIs的过程(_ProposalLayer)如下:

  • 对于每张图片,利用它的feature map, 计算 (H/16)× (W/16)×9(大概20000)个anchor属于前景的概率,以及对应的位置参数。
  • 选取概率较大的12000个anchor
  • 利用回归的位置参数,修正这12000个anchor的位置,得到RoIs
  • 利用非极大值(Non-maximum suppression, NMS)
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值