Generalized Focal Loss 论文笔记

Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection

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

一、Problem Statement

目前热门的One-stage detector的head末端通常会有三个representation: classification, localization, quality estimation.作者发现了两个问题:

  1. 在训练和推理阶段不一致地使用 quality estimation 和 classification。在以下两方面体现出来:
    1). 用法不一致: classification 和 quality estimation 在训练的时候各自训练,但是在推理阶段的时候,结合在了一起。
    2). 对象不一致。借助Focal Loss的力量,分类分支能够使得少量的正样本和大量的负样本一起成功训练,但是质量估计通常就只针对正样本训练。那么,对于one-stage的检测器而言,在做NMS score排序的时候,所有的样本都会将分类score和质量预测score相乘用于排序,那么必然会存在一部分分数较低的“负样本”的质量预测是没有在训练过程中有监督信号的,也就是说对于大量可能的负样本,他们的质量预测是一个未定义行为。 这就很有可能引发这么一个情况:一个分类score相对低的真正的负样本,由于预测了一个不可信的极高的质量score,而导致它可能排到一个真正的正样本(分类score不够高且质量score相对低)的前面。

  2. 在localization的时候,在复杂场景中,边界框的表示具有很强的不确定性,而现有的框回归本质都是建模了非常单一的狄拉克分布,非常不flexible。

二、Direction

解决以上问题,作者提出了新的representations。

  1. 对于第一个问题, 作者把 quality estimation 和 class prediction的分支合起来,形成了一个新的representations (classification-IoU joint representation)。这样的话,classification branch 不再是分类的score,而是改为质量预测的score。因此Focal Loss 在连续的labels上是不适用的。作者因此提出QFL(Quality Focal Loss) 解决 Focal Loss continous labels问题。

  2. 对于第二个问题, 作者直接回归一个任意分布来建模框的表示。当然,在连续域上回归是不可能的,所以可以用离散化的方式,通过softmax来实现即可。这里面涉及到如何从狄拉克分布的积分形式推导到一般分布的积分形式来表示框。提出的DFL(Distribution Focal Loss)使得网络能够快速地聚焦到标注位置附近的数值,使得他们概率尽可能大

三、Method

GFL (Generalized Focal Loss) = QFL (Quality Focal Loss) + DFL (Distribution Focal Loss)
 

回顾以下Focal Loss 的基本形式;


F L ( p ) = − ( 1 − p t ) γ l o g ( p t ) , p t = { p t , y = 1 1 − p t , y = 0 FL(p) = -(1-p_t)^{\gamma}log(p_t), \qquad p_t = \left\{ \begin{matrix} p_t, \qquad \qquad y=1\\ 1-p_t, \qquad y = 0 \end{matrix} \right. FL(p)=(1pt)γlog(pt),pt={pt,y=11pt,y=0

 

1. QFL (Quality Focal Loss)
因为不再是离散类别分类问题,而是一个连续的IoU score, 因此对于multi-class采用sigmoid 函数 σ \sigma σ
分别对原始Focal Loss的两个部分进行修改:
(1). Cross entropy part:
− l o g ( p t ) -log(p_t) log(pt) 扩展成完整的形式


Q F L ( σ ) = − ∣ y − σ ∣ β ( ( 1 − y ) l o g ( 1 − σ ) + y l o g ( σ ) ) QFL(\sigma) = -|y-\sigma|^{\beta}((1-y)log(1-\sigma)+ylog(\sigma)) QFL(σ)=yσβ((1y)log(1σ)+ylog(σ))

(2). Scaling factor part:
变成了预测值和真值的距离:

( 1 − p t ) γ (1-p_t)^{\gamma} (1pt)γ -------------> ∣ y − σ ∣ β |y-\sigma|^{\beta} yσβ

2. DFL (Distribution Focal Loss)
DFL主要是用于让网络更好地快速地聚焦到label位置附近的数值,使得他们概率尽可能大。因为只有对正样本学习bounding box,没有类别不平衡影响,所以作者使用了QFL中完整的cross entropy 来定义DFL:

D F L ( S i , S i + 1 ) = − ( ( y i + 1 − y ) l o g ( S i ) + ( y − y i ) l o g ( S i + 1 ) ) DFL(S_i, S_{i+1})=-((y_{i+1}-y)log(S_i)+(y-y_i)log(S_{i+1})) DFL(Si,Si+1)=((yi+1y)log(Si)+(yyi)log(Si+1))

其中 S ( . ) 为 s o f t m a x S(.)为softmax S(.)softmax 函数。 DFL扩大了在真值y附近的概率

3.GFL (Generalized Focal Loss)
合并QFL和DFL


G F L ( p y i , p y r ) = − ∣ y − ( y l p y l + y r p y r ) ∣ β ( ( y r − y ) l o g ( p y l ) + ( y − y l ) l o g ( p y r ) ) GFL(p_{y_i}, p_{y_r})=-|y-(y_l p_{y_l}+y_r p_{y_r})|^{\beta}((y_r-y)log(p_{y_l})+(y-y_l)log(p_{y_r})) GFL(pyi,pyr)=y(ylpyl+yrpyr)β((yry)log(pyl)+(yyl)log(pyr))

这样的Detector与原始的有两个不同点:

(1). 在推理时候,直接把joint representation with quality estimation 的 score 进行 NMS操作,不需要再把不同的分支进行相乘融合。
(2). Regression 分支对每一个bounding box的预测有 n + 1 n+1 n+1 个输出,不再是仅仅1个输出。

4.使用GFL训练detector


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+Npos1z1{cz>0}(λ0LB+λ1LD)

L Q , L D , L B L_Q, L_D, L_B LQ,LD,LB 分别是QFL,DFL和GIoU Loss.

A.Appendix
作者在附录里面分析了为什么IoU 分支 比 centerness 分支好。
作者认为有两个理由:
(1). IoU本身就是最终metric的衡量标准,所以用来做质量估计和排序是非常自然的。
(2). centerness有一些不可避免的缺陷,比如对于stride=8的FPN的特征层(也就是P3),会存在一些小物体他们的centerness label极度小甚至接近于0,而IoU就会相对好很多。这意味着IoU的label相对都较大,而centerness的label相对都较小,同时还有非常非常小的。可以想见,如果有一些正样本的centerness的label本身就很小,那么他们最后在做NMS排序的时候,乘上一个很小的数(假设网络学到位了),那么就很容易排到很后面,那自然性能就不容易上去了。所以,综合各种实验以及上述的分析,作者认为centerness可能只是一个中间产物(当然,其在FCOS中提出时的创新性还是比较valuable的),最终历史的发展轨迹还是要收敛到IoU来。

四、Conclusion

用于one-stage 检测器上 调整框本身与框质量估计的representation,因此也修改了Focal Loss形式。

Reference

  1. https://zhuanlan.zhihu.com/p/147691786
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Generalized Focal Loss是一种处理不平衡数据集的损失函数,它在传统的Focal Loss上进行了改进,可以用于多分类和回归任务。YoloV5是一种目标检测算法,它采用一种基于单个神经网络的方法来实现快速而准确的目标检测。结合使用Generalized Focal Loss和YoloV5可以进一步提升目标检测的性能。 在目标检测任务,不同类别的样本数量往往是不平衡的,一些常见的类别可能会有很多样本,而一些罕见的类别可能只有极少数样本。对于这种情况,使用传统的交叉熵损失函数可能会导致网络偏向于训练样本数量较多的类别,而对于那些样本数量较少的类别则表现不佳。 Generalized Focal Loss采用了类似于Focal Loss的方法来处理不平衡数据集,该方法通过降低容易分类的样本的权重来提高难以分类的样本在训练过程的重要性。此外,Generalized Focal Loss还添加了一些参数来控制样本难度的权重,这提高了模型对于罕见类别的识别能力。 结合Generalized Focal Loss和YoloV5可以进一步提高目标检测性能。YoloV5现有的版本已经使用Focal Loss来处理类别不平衡的问题,但使用Generalized Focal Loss可以更加灵活地进行参数调节。通过用Generalized Focal Loss替换原有的损失函数,可以减少误分类样本的影响,提高整个模型对于样本数量较少的类别的识别能力,从而进一步提高整个目标检测系统的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值