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 网络结构及代码解析 - 哔哩哔哩

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐