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.作者发现了两个问题:
-
在训练和推理阶段不一致地使用 quality estimation 和 classification。在以下两方面体现出来:
1). 用法不一致: classification 和 quality estimation 在训练的时候各自训练,但是在推理阶段的时候,结合在了一起。
2). 对象不一致。借助Focal Loss的力量,分类分支能够使得少量的正样本和大量的负样本一起成功训练,但是质量估计通常就只针对正样本训练。那么,对于one-stage的检测器而言,在做NMS score排序的时候,所有的样本都会将分类score和质量预测score相乘用于排序,那么必然会存在一部分分数较低的“负样本”的质量预测是没有在训练过程中有监督信号的,也就是说对于大量可能的负样本,他们的质量预测是一个未定义行为。 这就很有可能引发这么一个情况:一个分类score相对低的真正的负样本,由于预测了一个不可信的极高的质量score,而导致它可能排到一个真正的正样本(分类score不够高且质量score相对低)的前面。 -
在localization的时候,在复杂场景中,边界框的表示具有很强的不确定性,而现有的框回归本质都是建模了非常单一的狄拉克分布,非常不flexible。
二、Direction
解决以上问题,作者提出了新的representations。
-
对于第一个问题, 作者把 quality estimation 和 class prediction的分支合起来,形成了一个新的representations (classification-IoU joint representation)。这样的话,classification branch 不再是分类的score,而是改为质量预测的score。因此Focal Loss 在连续的labels上是不适用的。作者因此提出QFL(Quality Focal Loss) 解决 Focal Loss continous labels问题。
-
对于第二个问题, 作者直接回归一个任意分布来建模框的表示。当然,在连续域上回归是不可能的,所以可以用离散化的方式,通过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)=−(1−pt)γlog(pt),pt={pt,y=11−pt,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−σ∣β((1−y)log(1−σ)+ylog(σ))
(2). Scaling factor part:
变成了预测值和真值的距离:
( 1 − p t ) γ (1-p_t)^{\gamma} (1−pt)γ -------------> ∣ 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+1−y)log(Si)+(y−yi)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)∣β((yr−y)log(pyl)+(y−yl)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=Npos1∑zLQ+Npos1∑z1{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
- https://zhuanlan.zhihu.com/p/147691786