论文要解决单阶段目标检测中的两个问题:
1. 训练和推理时定位质量评估与分类分数是非一致的( Inconsistent usage of localization quality estimation and classification score between training and inference)
如上图左半边所示,现有方法对分类分数和iou感知分数的训练与推理策略是不一致的,这可能会导致推理时出现论文figure2中的极端情况。理论上预测的IoU很高时cls分数也应该很高(框得很准那分类判断也应该不差),反之同理。文章提出的解决办法就是将两者合并为一个统一的表达,即一个单变量。为了更有效优化这种新的表达方式,作者基于Focal loss提出了 Quality Focal Loss (QFL)。
2. 边界框的表征是不够灵活的(Inflexible representation of bounding boxes)
在边界框回归任务中,要回归的四个坐标是服从狄拉克δ分布(Dirac delta distribution)的,网络的预测结果是这分布最高概率值所对应的横坐标,但由于遮挡阴影模糊等原因,groundtruth有时并不是那么可信,即其实边界应该是一种很模糊的情况,狄拉克δ分布不能很好表示这类情况,高斯分布也是同样的问题,无法应对所有情形。
作者提议通过直接学习边界框在其连续空间中四个离散化概率分布来表示边界框位置坐标的任意分布。这样可以得到更精准更可靠的边界框估计,同时学到更多潜在的分布。进而提出了 Distribution Focal Loss(DFL),基于任意和灵活的分布下,快速并专注于学习边界框连续位置周围的概率值。作者认为边界框的概率分布应该是如下图所示的:
作者根据两个问题所提出的解决方法统称为GFL,目前听着还是比较模糊,我们沿着文章思路对这两个问题继续进行更深入的解析:
Quality Focal Loss (QFL)
如上图中QFL所示,分类分支的标签
y
y
y是soft one-hot 标签,某类的概率值代表了该类下预测框与gt的IoU,即预测框的质量, y ∈ [0, 1]。
首先回顾Focal loss:
其中的缩放因子
(
1
−
p
t
)
γ
(1−pt)^{\gamma}
(1−pt)γ在训练中自动降低简单例子的贡献,提高困难例子的比重。
作者把FL的两个部分进行了扩展, 以用于学习soft one-hot或者说连续的概率值:
(1)交叉熵部分
−
log
(
p
t
)
- \log(p_{t})
−log(pt) 扩展为了
−
[
(
1
−
y
)
log
(
1
−
σ
)
+
y
log
(
σ
)
]
-[(1-y) \log (1-\sigma)+y \log (\sigma)]
−[(1−y)log(1−σ)+ylog(σ)], 其中 σ是类别的输出概率,经sigmoid得到。可以看做是将原式做了分解加权,标签y越接近1,
log
(
σ
)
)
\log (\sigma))
log(σ)) 的权重就越大;y越接近0,
log
(
1
−
σ
)
\log (1-\sigma)
log(1−σ)的权重就越大,两项系数和为1。
(2) 缩放因子
(
1
−
p
t
)
(1−pt)
(1−pt)泛化为σ到y的绝对距离,这个很好理解,FL中是σ到0或1的绝对距离。
最终得到QFL表达式如下:
作者在对比实验中包含以下几种cls 分数表征的形式,第一种的代表应该是RetinaNet,还有YOLO v1,第二种代表就是FOCS,第三种有YOLOv2,v3,v4,v5,yolox应该也属于第三种,但多了一个obj分支。在figure7的对比实验结果中,QFL大多取得了最佳结果。总之,这个部分的改进能使得训练与推理时cls分数的产生完全一致,在NMS中能得到更好的BBox。
Distribution Focal Loss (DFL)
首先阐述传统的传统的BBox回归是将标签
y
y
y建模为狄拉克δ分布(一个冲激函数的分布):
y
y
y 可以根据下式重建:
将分布推广到
P
(
x
)
P(x)
P(x),那么由上式,根据模型得到的任意分布
P
(
x
)
P(x)
P(x) ,则可以得到预测值
y
^
\hat{y}
y^:
其中积分上下限是标签
y
y
y的范围,将
y
y
y的取值范围离散化为n+1个点,可得:
作者还说,
P
(
y
i
)
P(y_{i})
P(yi)可以很简单地由n+1个单元的Softmax层实现,记作
S
(
i
)
S(i)
S(i)。 同时,由于
S
(
i
)
S(i)
S(i)最终学到的主要是一个单峰值分布(大多数情况下gt的标签真实分布就是接近冲激函数的,只有较少情况比较模糊,分布会比较均匀)。因此,作者设计DFL迫使网络聚焦位于标签
y
y
y附近的两个预测值
y
i
y_{i}
yi、
y
i
+
1
y_{i+1}
yi+1对应的概率:
S
(
i
)
S(i)
S(i)、
S
(
i
+
1
)
S(i+1)
S(i+1):
因为边界框回归只针对正样本进行学习,不存在类别不平衡的问题,所以没有缩放因子项。看到这个式子不禁感叹真的巧妙。作者还给出了S的两个全局最小值解,以验证该损失的准确性。
Generalized Focal Loss (GFL)
QFL和DFL可以统一为一种形式,作者命名为GFL。
假定网络预测两个概率值为
p
y
l
,
p
y
r
p_{y_{l}}, p_{y_{r}}
pyl,pyr,这两个p对应的y为
y
l
和
y
r
y_{l}和y_{r}
yl和yr,那么最终的预测值可表示为:
y
^
=
y
l
p
y
l
+
y
r
p
y
r
(
y
l
≤
y
^
≤
y
r
)
\hat{y}=y_{l} p_{y_{l}}+y_{r} p_{y_{r}}\left(y_{l} \leq \hat{y} \leq y_{r}\right)
y^=ylpyl+yrpyr(yl≤y^≤yr)
那么GFL可写为:
作者在补充材料中证明了QFL和DFL是GFL的两个特例。我没看证明,写一下自己的理解,对于QFL
y
l
和
y
r
y_{l}和y_{r}
yl和yr分别为0和1,预测的两个概率分别为1-
σ
\sigma
σ和
σ
\sigma
σ来对应0和1的概率。
DFL很好理解,
就是缩放系数项的幂次为0时的特例。
相比于传统的检测头,GFL对应的检测头有两大区别:
- 在推理时直接将cls 分数作为NMS的排序分数,由于糅合了IoU感知,所以作为最后的NMS排序分数是很可靠的。
- 回归分支的位置预测层不再是4个输出,而是4*(n+1)个数出,每(n+1)个输出预测一个位置信息的概率分布。
训练时的总损失函数定义为:
L = 1 N pos ∑ z L Q + 1 N pos ∑ z 1 { c z ∗ > 0 } ( λ 0 L B + λ 1 L D ) \mathcal{L}=\frac{1}{N_{\text {pos }}} \sum_{z} \mathcal{L}_{\mathcal{Q}}+\frac{1}{N_{\text {pos }}} \sum_{z} \mathbf{1}_{\left\{c_{z}^{*}>0\right\}}\left(\lambda_{0} \mathcal{L}_{\mathcal{B}}+\lambda_{1} \mathcal{L}_{\mathcal{D}}\right) L=Npos 1∑zLQ+Npos 1∑z1{cz∗>0}(λ0LB+λ1LD)
Q
,
B
,
D
\mathcal{Q}, \mathcal{B},\mathcal{D}
Q,B,D 分别为QFL,GIoU los和DFL。
N
pos
N_{\text {pos }}
Npos 为正样本数量,
λ
0
和
λ
1
\lambda_{0}和\lambda_{1}
λ0和λ1是两个超参,文中取2和0.25,用来平衡GIoU los和DFL。
这个
1
{
c
z
∗
>
0
}
\mathbf{1}_{\left\{c_{z}^{*}>0\right\}}
1{cz∗>0}是指在所有的z个多尺度特征图上只要cls分支的标签大于0该项就为1。
剩下部分主要是实验结果的展示了,就不赘述了。
我的理解:
对于文中的第一个问题,NMS时最佳的排序分数如果剔除类别置信度的影响,就应该是IoU,这样才能将回归最准确的框留下。关于这个问题VarifocalNet: An IoU-aware Dense Object Detector这篇21年的文章有更详细的相关实验设计。
对于第二个问题,之前没有意识到其实BBox回归预测的量其实就是个狄拉克δ分布,也没有看过将BBox回归量做为高斯分布的文章,这篇文章直接做成了任意分布的,而且还是用sofmax就能实现,还是蛮有趣的,感觉数学上很完整。同时很容易想到利用所得到的边界框离散概率分布进行回归质量评估,作者在GFL2中将其实现了。