Faster-RCNN

1 过程

之前看过该篇论文但是理解不太深刻,如今结合代码看理解的更深一层。急忙做下记录以备日后复习。
分为六个部分:Backbone、RPNHead、RPNOutput、RPNTopProposals、RoiHead、PostProcess_Detection(test)。

  • Backbone
    用于抽取图像特征,如Resnet50-FPN。

  • PRNHead
    将抽取的特征图分别经过两个卷积用于二分类和回归,形状分别为: ( N , 1 ∗ n u m _ a n c h o r s , H , W ) (N, 1*num\_anchors, H, W ) (N,1num_anchors,H,W) ( N , 4 ∗ n u m _ a n c h o r s , H , W ) (N, 4*num\_anchors, H, W) (N,4num_anchors,H,W)

  • RPNOutput
    为特征图每个位置标上anchor和target并计算二分类和回归的损失值。anchors的gt_label取值为{-1, 0, 1},-1表示未用于训练。有两种情况设置gt_label=1:

    1. anchor与gt_box的IOU>0.5
    2. gt_box与所有anchor取得IOU最大值的anchor
  • RPNTopProposals
    该部分不需要更新梯度,所以在with torch.no_grad()下进行,用于选取Top个Proposals并且去掉小的proposals,用于接下来的多分类和回归。因为生成的proposals多达20万左右,在nms前,先去除一部分proposals,训练或测试时只保留前 2000 ∗ k 2000*k 2000k个,(k表示level个数)设置 r p n . n m s . t h r e s h = 0.7 rpn.nms.thresh=0.7 rpn.nms.thresh=0.7

  • RoiHead
    上一层的proposals经过RoiAlign+classification+regression。

  • PostProcess_Detection(test)
    此阶段只在测试阶段才执行。
    此时每一类的proposals仍有多个,首先去除较低分数(小于0.05)的边框,然后在每类上再次经过NMS,设置 b o x _ n m s _ t h r e s h = 0.5 box\_nms\_thresh=0.5 box_nms_thresh=0.5,取top(100)作为最终的结果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值