百度飞桨PicoDet 目标检测介绍

文章介绍了4head网络结构中的cls分类和reg位置回归信息,特别是GeneralizedFocalLoss如何处理边框回归,不使用固定值预测,而是通过概率分布来预测坐标。reg_max表示预设坐标段的数量,例如,每个坐标轴被分为reg_max+1段,预测值为各段概率与坐标值乘积的总和。如果cls和reg共用卷积层,输出通道数为两部分之和。
摘要由CSDN通过智能技术生成

4 head

4.1 cls分类信息

4.2 reg位置回归信息

Generalized Focal Loss 

重点是边框回归的位置信息,这里和常规的Anchor box的回归方式不一样。采用的是Generalized Focal Loss 中的概率分布形式。

head_reg = self.add_sublayer(
    "head_reg" + str(i),
    nn.Conv2D(
        in_channels=self.feat_in_chan,
        out_channels=4 * (self.reg_max + 1),
        kernel_size=1,
        stride=1,
        padding=0,
        weight_attr=ParamAttr(initializer=Normal(
            mean=0., std=0.01)),
        bias_attr=ParamAttr(initializer=Constant(value=0))))

可以看到,输出的通道数是 4 * (self.reg_max + 1),这个是怎么来的呢,reg_max又是什么意思?

直观的理解:预测的并不是一个固定的值,而是一段概率分布,以4点坐标边框形式(h,w,c_x,c_y)中的c_x为例,我将可能的预设的中心x的坐标范围 假设是 0-18 中插入reg_max个分割点,假设是8个,那么x的预设范围就被划分为9段了 [x0,x1,x2...x8], X0 = 0.0-2.0, x1 = 2.0-4.0 依次类推。每段的预测概率是P,最后的实际预测值就是sum (pi*xi) 。 单个坐标需要的输出值就是 reg_max + 1, 4个坐标总的就是4 * (self.reg_max + 1)。这么做的好处详情可以查阅论文。

如果是cls和reg共用前面的卷积的话,最后的输出就是 两边的输出通道数相加。 

out_channels=self.cls_out_channels + 4 * (self.reg_max + 1) 

参考:

PicoDet 网络结构及代码解析 - 哔哩哔哩

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值