论文链接:https://arxiv.org/pdf/2006.04388.pdf

1 Introduction

已有方法中,单阶段密集检测器一般分为三个输出内容

  • 检测框质量估计confidence:
    channel维度上占 1;
    训练时正样本标签为当前grid_ceil对应的标签框和预测框的iou score、或者centerness score,负样本为0。

  • 检测框box:
    channel维度上占4;分别为xywh的转化值。

  • 分类class。
    channel维度上占n位(n为类别数量);

已有方法存在的两个问题

  1. classification score 和 IoU/centerness score 训练测试不一致。
    • (1)在近期的密集检测器中,检测框质量估计和分类得分是独立训练的,但在推理过程中是综合使用 (如乘法)。下图中左边是训练时,右侧是测试时。
      在这里插入图片描述
    • (2)定位质量估计的监督目前只针对正样本,这是不可靠的,因为负样本可能有机会获得无法控制的高质量预测(图2(a))。
      这部分作者说的是部分论文。个人长期阅读yolo系列,其损失函数中的有且仅有质量评估项,正样本负样本都会参与训练,会存在正负样本不均衡,然后在yolov5中,增加了正样本扩充的操作。
      在这里插入图片描述
      这两个因素导致了训练和测试之间的差距,并可能会降低检测性能,例如,在NMS中,随机高质量分数的负实例可能排名在质量预测较低的正实例前面。
  2. 边界框的的表示不灵活:
    在数学中,狄拉克δ函数(Dirac Delta function)是在实直线上定义的,除了零以外的点都等于零,而其在整个定义域上的积分等于1 的广义函数或分布。有时认为δ函数是原点处的一个无限高、无限细,总面积为1的尖峰。它是由理论物理学家保罗·狄拉克引入的,物理上代表了理想化的质点或点电荷的密度。在信号处理中它往往被称为单位脉冲函数 。
    目前 边界框表示被建模为一个简单的狄拉克分布,并采用回归方式进行训练。简单的说,边界框为狄拉克分布,就是框的边界位置是唯一确定的。
    但是,它没有考虑到数据集的模糊性和不确定性。如下图中的边界不清晰,因此真实标签(白色框)有时不可信,狄拉克分布无法很好的表示这些问题。但能够知道的是边界在一定范围。
    虽然最近的一些工作是将box作为高斯分布,但捕获边界框位置的真实分布太简单了。事实上,真实分布可以是更任意和更灵活的,而不需要像高斯函数一样对称。
    在这里插入图片描述

本论文 解决方法的提出
为了解决上述问题,我们为边界框、质量评估 设计了新的表示方法。

  1. 分类IoU联合表示:分类onehot向量的标签 在真实类别位置上的是其相应的定位质量(在本文中,通常是预测box和对应的真实box的iou得分)。这样,我们可以以端到端方式进行训练,同时在推理过程中直接使用(图1(b))。因此,它消除了训练-测试的不一致性,并使定位质量和分类之间具有最强的相关性。
    举例子:5分类的任务,第1类别的分类标签onehot应为 [0,1,0,0,0],当前训练时检测框和对应标签框的iou为0.65,则此时分类的标签不再使用 [0,1,0,0,0],而是使用分类-iou联合表示:[0,0.65,0,0,0]。
    在这里插入图片描述
    此外,阴性结果将以0分的质量分数进行监督,因此整体质量预测变得更加可靠。
  2. 对于边界框表示,我们建议通过直接学习box位置上的离散概率分布,而不引入任何其他更强的先验。因此,我们可以获得更可靠和准确的边界框估计,同时了解它们的各种潜在分布。
    在这里插入图片描述

解决方案的具体操作

  • Focal Loss (FL):传统上对于密集检测器,分类分支采用 FL 进行优化。FL可以通过重塑标准交叉熵损失来成功地解决类的不平衡问题。FL目前只支持离散的{1,0}类别标签。
  • Quality Focal Loss (QFL):对于提出的分类-iou联合表示,它是一个连续IoU标签 (0∼1) 。QFL 将FL 从{1,0}离散版本扩展到其连续变量。专注于一组稀疏的困难样本的同时,对相应的类别进行连续的0∼1质量估计。
  • Distribution Focal Loss (DFL):使网络快速关注于学习在任意和灵活的分布下,目标边界框的连续位置附近的值的概率。
  • Generalized Focal Loss (GFL):将QFL和DFL统一表达公式,称其为 GFL。GFL考虑了一种非常普遍的情况,即全局优化的解决方案能够针对任意期望的连续值,而不是离散的连续值。

Generalized Focal Loss 的三个优点

  • (1)它缩小了训练和测试之间的差距,从而使分类和定位质量得到更简单、联合和有效的表示;
  • (2)它很好地模拟了边界框灵活的底层分布,提供了信息更丰富、更准确的box位置;
  • (3)可以在不引入额外开销的情况下持续提高单阶段探测器的性能。在COCO测试开发中,GFL使用ResNet-101骨干实现了45.0%的AP,超过了最先进的SAPD(43.5%) 和ATSS(43.6%)。我们最好的模型可以在一个2080Ti的GPU上运行,同时在10 FPS上实现48.2%的单模型单尺度AP。

2 相关公式

这里回顾下交叉熵的定义和公式,以及Focal Loss的公式和由来。

  • 交叉熵的介绍
    • 信息量
      假设 X 是一个离散型随机变量,其取值 x 的集合为 χ \chi χ(即 x ∈ χ x\in \chi xχ),概率分布函数 y ( x ) = P r ( X = x ) y(x)=Pr(X=x) y(x)=Pr(X=x)。则定义事件 X = x 0 X=x_0 X=x0的信息量为: I ( x 0 ) = − log ⁡ ( y 0 ) I(x_0)=-\log(y_0) I(x0)=log(y0)其中 y ( x 0 ) ∈ [ 0 , 1 ] y(x_0)\in [0,1] y(x0)[0,1] I ( x 0 ) ∈ [ 0 , 1 ) I(x_0)\in[0,1) I(x0)[0,1)
      对于一个事件,大概率的状态发生了,我们获取到的信息很小;但小概率的状态发生,我们获取的信息量就很大。比如:连续五天的大晴天,第六天如果下大雨,就带来了非常大的信息量,会改变我们对后面时间的天气带来新的预测
    • 熵(信息量的期望)
      当有了信息量的定义,然后用熵表示所有信息量的期望,即: H ( Y X ) = − ∑ i = 1 n y i log ⁡ ( y i ) H(Y_X)=-\sum_{i=1}^{n}y_i\log(y_i) H(YX)=i=1nyilog(yi)其中n代表事件X所有发生的可能。
    • 相对熵(KL散度)
      对于同一个随机变量x,有两个单独的概率分布 Y ( x ) Y(x) Y(x) P ( x ) P(x) P(x),我们可以使用相对熵来衡量这两个分布的差异。(例如,神经网络中分类任务,标签(理想表达)属于一个分布,模型的输出(大致表达)属于一个分布,两个分布是独立的,我们就可以使用相对熵来衡量这两个分布的差异,也就是距离)。 D K L ( y ∣ ∣ q ) = ∑ i = 1 n y i log ⁡ ( y i p i ) = ∑ i = 1 n y i log ⁡ ( y i ) − ∑ i = 1 n y i log ⁡ ( p i ) = H ( Y X ) + [ − ∑ i = 1 n y i ) log ⁡ ( p i ) ) ] \begin{aligned} D_{KL}(y||q)&=\sum_{i=1}^{n}y_i\log(\frac{y_i}{p_i}) \\ &=\sum_{i=1}^{n}y_i\log(y_i) - \sum_{i=1}^{n}y_i\log(p_i) \\ &= H(Y_X) + [-\sum_{i=1}^{n}y_i)\log(p_i))] \end{aligned} DKL(y∣∣q)=i=1nyilog(piyi)=i=1nyilog(yi)i=1nyilog(pi)=H(YX)+[i=1nyi)log(pi))]
    • 交叉熵
      相对熵 D K L ( y ∣ ∣ q ) D_{KL}(y||q) DKL(y∣∣q) 衡量了同一个变量x的两个独立分布之间的差距。在深度学习中,将其设置为损失函数并最小化,就是使模型的输出的分布尽量靠近标签的分布。我们可以发现交叉熵中,第一项 H ( y ( x ) ) H(y(x)) H(y(x))是一项定值,所以可以只关注第二项。故对第二项定义为交叉熵: H ( X ) = − ∑ i = 1 n y i log ⁡ ( p i ) H(X)=-\sum_{i=1}^{n}y_i\log(p_i) H(X)=i=1nyilog(pi)
    • 二分类的交叉熵
      当n=2时(也就是只有两种可能性时),公式变为 H ( x ) = − y 0 log ⁡ ( p 0 ) − y 1 log ⁡ ( p 1 ) H(x) = -y_0\log(p_0)-y_1\log(p_1) H(x)=y0log(p0)y1log(p1)其中当预测的概率通过sofamax之后总和为1: p 1 = 1 − p 0 p_1=1-p_0 p1=1p0;标签本身: y 1 = 1 − y 0 y_1=1-y_0 y1=1y0。上面的公式可化简为 H ( x ) = − y log ⁡ ( p ) − ( 1 − y ) log ⁡ ( 1 − p ) H(x)=-y\log(p)-(1-y)\log(1-p) H(x)=ylog(p)(1y)log(1p)该公式就是我们最常见的表达。若将其展开情况写。则有 H = { − log ⁡ ( p ) ( y = 1 ) − log ⁡ ( 1 − p ) ( y = 0 ) ) \begin{aligned} H&=\left\{\begin{matrix} -\log(p) & (y=1) & \\ -\log(1-p) & (y=0)) & \end{matrix}\right. \end{aligned} H={log(p)log(1p)(y=1)(y=0))然后用一个公式统一它 H = − log ⁡ ( p t ) p t = { p ( y = 1 ) 1 − p ( y = 0 ) ) \begin{aligned} H&=-\log(p_t) \\ p_t&=\left\{\begin{matrix} p & (y=1) & \\ 1-p & (y=0)) & \end{matrix}\right. \end{aligned} Hpt=log(pt)={p1p(y=1)(y=0))

  • Focal Loss(FL)
    最初的FL 被提出用来解决单阶段目标检测场景,在训练过程中前景和背景类之间经常存在极端的不平衡。在演变的过程中,也增加了系数,来应对困难样本的情况。FL的提出是在二分类交叉熵的基础上演变的
    • FL调节正负样本权重
      由于正负样本数量不一致,我们认为设定权重,给正样本以较大权重,给负样本以小的权重,其中 α ∈ ( 0 , 1 ) \alpha \in(0,1) α(0,1)属于超参数 H = { − log ⁡ ( p ) ∗ ( α ) ( y = 1 ) − log ⁡ ( 1 − p ) ∗ ( 1 − α ) ( y = 0 ) \begin{aligned} H&=\left\{\begin{matrix} -\log(p) *(\alpha ) & (y=1) & \\ -\log(1-p) *(1-\alpha ) & (y=0) & \end{matrix}\right. \end{aligned} H={log(p)(α)log(1p)(1α)(y=1)(y=0)

    • 调节困难样本
      只要是预测值与真值距离越远,样本越困难。那么如何改善这样的问题呢?
      我们可以给困难样本以较大的权重,简单样本以较小的权重。自动降低简单样本的贡献,并迅速将模型集中在困难样本上。
      在训练过程中,当假设为1 的标签(负样本同理):

      • 若预测为0.9,说明该样本为简单样本。权重可为(1-0.9);
        若预测为0.65,说明该样本为稍微困难样本。权重为(1-0.65);
        若预测为0.3,则说明为困难样本。权重为(1-0.3)。

      然后想在这样的权重上给予一定的超参,去修改权重的程度,可加个指数超参数。
      按照此归纳,FL可为 H = { − log ⁡ ( p ) ∗ ( 1 − p ) γ ( y = 1 ) − log ⁡ ( 1 − p ) ∗ ( p ) γ ( y = 0 ) \begin{aligned} H&=\left\{\begin{matrix} -\log(p) *(1-p )^\gamma & (y=1) & \\ -\log(1-p) *(p )^\gamma & (y=0) & \end{matrix}\right. \end{aligned} H={log(p)(1p)γlog(1p)(p)γ(y=1)(y=0)

    • 最终的公式
      将上面的公式合并,并将两种情况统一成一种表达 H = − α t ∗ ( 1 − p t ) γ ∗ log ⁡ ( p t ) p t = { p ( y = 1 ) 1 − p ( y = 0 )      α t = { α ( y = 1 ) 1 − α ( y = 0 ) \begin{aligned} H&=-\alpha _t*(1-p_t )^\gamma*\log(p_t) \\ p_t&=\left\{\begin{matrix} p & (y=1) & \\ 1-p & (y=0) & \end{matrix}\right.\,\,\ \alpha _t&=\left\{\begin{matrix} \alpha & (y=1) & \\ 1-\alpha & (y=0) & \end{matrix}\right. \end{aligned} Hpt=αt(1pt)γlog(pt)={p1p(y=1)(y=0) αt={α1α(y=1)(y=0)


    为了简单起见,我们在原始论文[18]中忽略了 α t α_t αt
    F L ( p ) = − ( 1 − p t ) γ l o g ( p t ) , p t = { p ,       w h e n    y = 1 1 − p ,       w h e n    y = 0 \begin{aligned} &FL(p)=-(1-p_{t})^{\gamma }log(p_t),\\ \\ &p_t=\left\{\begin{matrix} p,\,\,\,\,\,when\,\,y=1 & & \\ 1-p,\,\,\,\,\,when \,\,y=0 & & \end{matrix}\right. \end{aligned} FL(p)=(1pt)γlog(pt),pt={p,wheny=11p,wheny=0
    • 其中, y ∈ { 1 , 0 } y∈\{1,0\} y{1,0}为真实标签类别, p ∈ [ 0 , 1 ] p∈[0,1] p[0,1]为标签对应类别的估计概率。 γ γ γ为可调制参数。
    • 具体来说,FL由一个标准的交叉熵 − l o g ( p t ) −log(p_t) log(pt) 和一个动态比例因子 ( 1 − p t ) γ (1−pt)^γ (1pt)γ 组成,其中比例因子 ( 1 − p t ) γ (1−pt)^γ (1pt)γ 在训练过程中自动降低简单样本的贡献,并迅速将模型集中在困难样本上。
    • 经典的FL只支持{1,0}离散标签。

3 Method

在本节中,我们详细介绍了改进的定位质量估计和边界框的表示,它们分别通过提出的Quality Focal Loss(QFL) 和Distribution Focal Loss(DFL) 成功优化。 最后,我们将QFL和DFL的公式总结为一个统一的视角,称为 Generalized Focal Loss(GFL),作为FL的一个灵活的扩展,以促进未来进一步的推广和普遍的理解。

  • Quality Focal Loss(QFL)
    为了解决上述训练和测试阶段之间的不一致问题,我们提出了一个 定位质量(目标框质量评估) 和分类得分的联合表示,这种标签是软化onehot类别标签形式,类别数值是浮动数值 y ∈ [ 0 , 1 ] y∈[0,1] y[0,1]。在训练过程中,定位质量标签y遵循传统的定义:预测边界框与其对应的真实边界框之间的IoU得分,动态值为0∼1。我们采用sigmoid操作 σ ( ⋅ ) σ(·) σ(),用来实现多类别的分类。为了表示简单,对输出进行sigmoid操作记为 σ σ σ
    下图中,对于正样本positives,左边的已有工作onehot形式,表达中类别位置为1;而右侧中的为0.9,是一个浮点值,表示目标IoU得分为0.9的阳性样本。在这里插入图片描述

    由于所提出的分类-iou联合表示需要对整个图像进行密集的监督,并且仍然存在类不平衡问题,因此必须继承FL的思想。但经典的FL只支持{1,0}离散标签,但我们的新标签是浮点型。因此,我们扩展FL的两部分,Quality Focal Loss 公式为:
    Q F L = − ∣ y − σ ∣ β ( ( 1 − y ) log ⁡ ( 1 − σ ) + y log ⁡ ( σ ) ) QFL=-|y-\sigma|^\beta((1-y)\log(1-\sigma)+y\log(\sigma)) QFL=yσβ((1y)log(1σ)+ylog(σ))

    • 交叉熵:【 − log ⁡ ( p t ) −\log(p_t) log(pt)】—>【 − ( ( 1 − y ) log ⁡ ( 1 − σ ) + y log ⁡ ( σ ) ) −((1−y)\log(1−σ)+ y \log(σ)) ((1y)log(1σ)+ylog(σ))】;
    • 调制因子:【 ( 1 − p t ) γ (1−p_t)^γ (1pt)γ】—> 【 ∣ y − σ ∣ β |y−σ|^β yσβ,(β≥0)】,这里 ∣ ⋅ ∣ |·| 保证了非负性。
      与FL类似,QFL的 ∣ y − σ ∣ β |y−σ|^β yσβ表现为一个调制因子:当一个例子的质量估计不准确且偏离标签y时,调制因子相对较大,因此更加重视学习这个困难的例子。当质量估计变得准确,即σ→y,因子变为0,估计良好的例子的损失被降低加权,其中参数β平滑地控制降加权率(在我们的实验中,β=2对QFL最有效)。
    • 另外, σ = y σ = y σ=y 是QFL的全局最小解。在质量标签y = 0.5下,下图中几个β值的QFL可视化。
      在这里插入图片描述

  • Distribution Focal Loss (DFL)
    在已有工作中,采用从该位置到边界框四面的相对偏移量作为回归目标。边界框的常规操作是使用回归方法,回归标签y为狄拉克分布 δ ( x − y ) δ(x−y) δ(xy)。它满足 ∫ − ∞ + ∞ δ ( x − y ) d x = 1 \int_{-\infty }^{+\infty }\delta (x-y)dx=1 +δ(xy)dx=1,通常通过完全连接的层实现。更正式地说,恢复的积分形式如下: y = ∫ − ∞ + ∞ δ ( x − y ) x d x y=\int_{-\infty }^{+\infty }\delta (x-y)xdx y=+δ(xy)xdx 我们不建议使用狄拉克或高斯假设,而是直接学习潜在的一般分布 P ( x ) P(x) P(x),而不引入任何其他先验(比如统计出来的anchor)。给定标签y的范围为 y 0 ≤ y ≤ y n , n ∈ N + y_0≤y≤y_n,n∈N^+ y0yynnN+,我们可以从模型中得到估计值 y ^ \hat{y} y^, 也满足 y 0 ≤ y ^ ≤ y n y_0≤\hat{y}≤y_n y0y^yn y ^ = ∫ − ∞ + ∞ P ( x ) x d x = ∫ y 0 y n P ( x ) x d x \hat{y}=\int_{-\infty }^{+\infty }P(x)xdx=\int_{y_0}^{y_n}P(x)xdx y^=+P(x)xdx=y0ynP(x)xdx
    为了与卷积神经网络保持一致,我们将连续域上的积分转换为离散表示,从离散范围[y0,yn]到一个集合 { y 0 , y 1 , . . . , y i , y i + 1 . . . , y n − 1 , y n } \{y0,y1,...,y_i,y_{i+1}...,y_{n−1},y_n\} {y0y1...yiyi+1...yn1yn},其间隔∆=1。因此,给定离散分布性质 ∑ i = 0 n P ( y i ) = 1 \sum_{i=0}^{n}P(y_i)=1 i=0nP(yi)=1,估计的回归值 y ^ \hat{y} y^可以表示为: y ^ = ∑ i = 0 n P ( y i ) y i \hat{y}=\sum_{i=0}^{n}P(y_i)y_i y^=i=0nP(yi)yi
    • y ^ \hat{y} y^可以采用传统的损失函数端到端的训练(如SmoothL1、IoU Loss或GIoU Loss)。
    • P(x)可以很容易地通过由n+1个单位组成的softmax 层来实现,所以这里简单起见将 P ( y i ) P(y_i) P(yi)表示为 S i S_i Si
      但是,P(x)有无限的值组合,不同的灵活的分布可得到相同的积分值y,如下图所示,这可能会降低学习效率。
      在这里插入图片描述
      与(1)和(2)直观地相比,分布(3)是紧凑的,对边界框估计更可信和精确。
      怎么理解这里呢?具体这个怎么反应box框的长宽呢?
      我们假设box的左边框距离中心距离5.6,我们使用一个长度为10的向量表达这个距离,只需要满足
      p 0 + p 1 + p 2 + p 3 + p 4 + p 5 + p 6 + p 7 + p 8 + p 9 = 1 p_0+p_1+p_2+p_3+p_4+p_5+p_6+p_7+p_8+p_9=1 p0+p1+p2+p3+p4+p5+p6+p7+p8+p9=1
      p 0 ∗ 0 + p 1 ∗ 1 + p 2 ∗ 2 + p 3 ∗ 3 + p 4 ∗ 4 + p 5 ∗ 5 + p 6 ∗ 6 + p 7 ∗ 7 + p 8 ∗ 8 + p 9 ∗ 9 = 5.6 p_0*0+p_1*1+p_2*2+p_3*3+p_4*4+p_5*5+p_6*6+p_7*7+p_8*8+p_9*9=5.6 p00+p11+p22+p33+p44+p55+p66+p77+p88+p99=5.6即可。
      对于第三种分布,就是使得 p 5 + p 6 = 1 p_5+p_6=1 p5+p6=1 p 5 ∗ 5 + p 6 ∗ 6 = 5.6 p_5*5+p_6*6=5.6 p55+p66=5.6

      这促使我们通过对接近目标y的高概率值的明确鼓励,来优化P(x)分布的形状。因此,我们引入了Distribution Focal Loss(DFL),它通过扩大 y i y_i yi y i + 1 y_{i+1} yi+1(最接近于y,y_i≤y≤y_{i+1})的概率,迫使网络快速关注标签y附近的值。由于边界框的学习只适用于正样本,且不存在类不平衡问题的风险,所以我们可以简单地应用QFL中的完全交叉熵部分来定义DFL: D F L ( S i , S i + s ) = − ( ( y i + 1 − y ) log ⁡ ( S i ) + ( y − y i ) log ⁡ ( S i + 1 ) ) DFL(S_i,S_{i+s})=-((y_{i+1}-y)\log(S_i)+(y-y_{i})\log(S_{i+1})) DFL(Si,Si+s)=((yi+1y)log(Si)+(yyi)log(Si+1))
      直观地说,DFL的目标是为了 扩大边界两侧值的概率 y i y_i yi y i + 1 y_{i+1} yi+1。DFL的全局最小解,即 S i = y i + 1 − y y i + 1 − y i , S i + 1 = y − y i y i + 1 − y i S_i=\frac{y_{i+1}-y}{y_{i+1}-y_i},S_{i+1}=\frac{y-y_i}{y_{i+1}-y_i} Si=yi+1yiyi+1y,Si+1=yi+1yiyyi(见补充材料),可以保证估计回归目标yˆ无限接近相应的标签y, y ^ = ∑ j = 0 n P ( y i ) y i = S i y i + S i + 1 y i + 1 = y i + 1 − y y i + 1 − y i y i + y − y i y i + 1 − y i y i + 1 = y \hat{y}=\sum_{j=0}^{n}P(y_i)y_i=S_iy_i+S_{i+1}y_{i+1}=\frac{y_{i+1}-y}{y_{i+1}-y_i}y_i+\frac{y-y_i}{y_{i+1}-y_i}y_{i+1}=y y^=j=0nP(yi)yi=Siyi+Si+1yi+1=yi+1yiyi+1yyi+yi+1yiyyiyi+1=y这也确保其作为损失函数的正确性。

  • Generalized Focal Loss(GFL)
    请注意,QFL和DFL可以统一为一般形式,这在本文中被称为Generalized Focal Loss。
    • 公式
      假设一个模型估计两个变量 y l , y r ( y l < y r ) y_l,y_r(y_l<y_r) yl,yr(yl<yr)的概率: p y l , p y r ( p y l ≥ 0 , p y r ≥ 0 , p y l + p y r = 1 ) p_{y_l},p_{y_r}(p_{y_l}\geq 0,p_{y_r}\geq 0,p_{y_l}+p_{y_r}= 1) pyl,pyr(pyl0,pyr0,pyl+pyr=1)
      最终预测的线性组合 y ^ = y l p y l + y r p y r ( y l ≤ y ^ ≤ y r ) \hat{y}=y_lp_{y_l}+y_rp_{y_r}(y_l\leq \hat{y}\leq y_r) y^=ylpyl+yrpyr(yly^yr)。预测 y ^ \hat{y} y^对应的浮点标签 y y y 也满足 y l ≤ y ≤ y r y_l≤y≤y_r ylyyr
      以绝对距离 ∣ y − y ^ ∣ β |y−\hat{y}|^β yy^β(β≥0)作为调制因子。
      G F L ( p y l , p y r ) = − ∣ y − ( y l p y l + y r p y r ) ∣ β ( ( y r − y ) log ⁡ ( p y l ) + ( y − y l ) log ⁡ ( p y r ) ) GFL(p_{y_l},p_{y_r})=-|y-(y_lp_{y_l}+y_rp_{y_r})|^\beta\left ( (y_r-y)\log(p_{y_l})+(y-y_l)\log(p_{y_r}) \right ) GFL(pyl,pyr)=y(ylpyl+yrpyr)β((yry)log(pyl)+(yyl)log(pyr))
    • 属性
      p y l ∗ = y r − y y r − y l ,     p y r ∗ = y − y l y r − y l p_{y_l}^{*}=\frac{y_{r}-y}{y_{r}-y_l},\,\,\,p_{y_r}^{*}=\frac{y-y_l}{y_r-y_l} pyl=yrylyry,pyr=yrylyyl时, G F L ( p y l , p y r ) GFL(p_{y_l},p_{y_r}) GFL(pyl,pyr)达到全局最小值,这也就意味着估计的 y ^ \hat{y} y^ 完美匹配着浮点型的连续标签。显然,FL 和QFL和DFL都是GFL的特例(补充资料有说明)。请注意,GFL可以应用于任何单阶段检测器。
      改进后的探测器与原探测器有两个方面的不同。
      (1)在推理过程中,我们直接将分类分数(与质量估计联合表示)作为NMS分数,而不需要乘以任何个体质量预测(如FCOS [26]和ATSS[31]中的中心度)。
      (2)用于预测边界框每个位置的回归分支的最后一层现在有n个+1个输出,而不是1个输出,这带来的额外计算成本可以忽略不计,如表3所示。用GFL训练密集的探测器。
    • GFL训练时损失 L = 1 N p o s ∑ z L Q + 1 N p o s ∑ z 1 c z ∗ > 0 ( λ 0 L B + λ 1 L D ) L =\frac{1}{N_{pos}}\sum_{z}^{}L_{Q}+\frac{1}{N_{pos}}\sum_{z}^{}1_{c_z^{*}>0}(\lambda _0L_B+\lambda_1L_D ) L=Npos1zLQ+Npos1z1cz>0(λ0LB+λ1LD) 其中, L Q L_Q LQ为QFL, L D L_D LD为DFL, L B L_B LB通常为的GIoU Loss。 N p o s N_{pos} Npos 代表正样本的数量。 λ 0 λ_0 λ0 λ 1 λ_1 λ1分别是LQ和LD的平衡权重, λ 0 λ_0 λ0 通常默认为2, λ 1 λ_1 λ1设置为1/4 ,因为在四个方向上平均。在金字塔特征图上的所有位置z上计算出这个总和。 1 c z ∗ > 0 1_{c^*_z>0} 1cz>0是指示器函数,如果 c z ∗ > 0 c^*_z > 0 cz>0,则为1,否则为0。在训练时我们也利用质量得分来平衡 L B L_B LB L D L_D LD

4 Experiment

实验的部分不做详细介绍,这里简单说下结论:

  • QFL 和 GFL 两者的作用是正交的,他们的增益互不影响。所以两者同时使用可达效果最优。
    基于Restnet50的backbone的ATSS上1x 训练无multi-scale涨点1%(39.2–>40.2).
  • 在 2x multi-scale的训练模式下,在COCO test-dev上,Resnet50的backbone使用GFL可达43.1的ap。
    基于Resnet-Xt-101-32x4d-DCN的backbone,使用GFL可达48.2的ap 在2080Ti上10FPS,是一个较佳的speed-accuracy strade-off。

    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐