GFLv1 论文学习

1. 解决了什么问题?

GFLv1 论文学习_第1张图片

单阶段目标检测器通过密集预测的方式进行分类、定位。分类一般使用 Focal Loss,而边框回归则通过 Dirac delta 分布来学习。近年来的改进方向是引入一个单独的分支,预测定位的质量,然后用该质量分数去辅助分类得分,提升检测的表现。但质量预测存在两个问题:

  • 训练和推理时,定位质量和类别预测是不一致的。它们各自单独训练,但推理的时候是耦合在一起用的。此外,学习定位质量的监督信号只分配给了正样本,负样本就不受限制了,有可能得到更高的质量得分。如下图所示,负样本得到的质量得分是随机的,NMS 时有可能排到质量得分低的正样本前面。
  • 边框表征不够灵活:当复杂场景中出现模糊和不确定的情况时,定位用的 Dirac delta 分布不够灵活。如上图,因为遮挡、阴影、模糊等,目标边界不够清晰,ground-truth 标签有时不够可信,Dirac delta 分布就不够灵活了。本文方法所学到的表征能反映出目标的形状,扁平的分布表示边界模糊,而尖锐的分布则表示边界清晰。

下图(a) 是一些背景区域,但它们的定位质量得分很高。图(b) 的蓝点说明预测的类别得分和质量得分之间的关系较弱,红圈包含了大量的负样本,但它们的预测定位质量得分都很高。
GFLv1 论文学习_第2张图片

下图 (a) 展示了现有方法,有一个单独的质量预测分支(IoU 或 center-ness 得分),图 (b) 是本文方法,将类别得分和定位质量得分融合到一起使用。
GFLv1 论文学习_第3张图片

2. 提出了什么方法?

对于定位质量表征,将质量预测融入类别预测的向量,得到定位质量和分类的联合表征,使用统一的向量表示边框定位的任意分布。在类别向量中,ground-truth 索引位置的值是其相应的定位质量得分(通常是预测框和 gt 框的 IoU)。这样,改进后的表征在训练和推理时就一致了,而且能准确描述真实数据的分布情况,但 IoU ( 0 ∼ 1 ) (0\sim 1) (01)标签是连续的,Focal Loss 只能解决 { 0 , 1 } \lbrace0,1\rbrace {0,1}二值标签,于是提出了 Generalized Focal Loss,从离散形式扩展到连续形式。GFL 可以具化为 Quality Focal Loss 和 Distribution Focal Loss。QFL 关注于一组稀疏的难例样本,输出它们相应的类别在 0 ∼ 1 0\sim 1 01之间的质量预测得分。DFL 让网络快速聚焦于学习目标框连续坐标的概率。

对于边框表征,在连续空间内学习离散的概率分布,表示边框坐标的任意分布。

2.1 Focal Loss

原来的 Focal Loss 用于解决单阶段目标检测,前景和背景类别不均衡的问题。形式如下:
F L ( p ) = − ( 1 − p t ) γ log ⁡ ( p t ) , p t = { p , y = 1 1 − p , y = 0 \mathbf{FL}(p)=-(1-p_t)^{\gamma}\log(p_t),\quad p_t=\left\{ \begin{array}{ll} \quad p \quad,y=1 \\ 1-p\quad, y=0 \end{array} \right. FL(p)=(1pt)γlog(pt),pt={p,y=11p,y=0
y ∈ { 0 , 1 } y\in \lbrace0,1\rbrace y{0,1}是 gt 框的类别, p ∈ [ 0 , 1 ] p\in \left[0,1\right] p[0,1]是对于类别标签 y = 1 y=1 y=1预测的置信度。 γ \gamma γ是控制系数。FL 包含了一个标准的交叉熵 − log ⁡ ( p t ) -\log(p_t) log(pt),和一个动态缩放乘数 ( 1 − p t ) γ (1-p_t)^{\gamma} (1pt)γ,自动降低容易样本的损失贡献,快速聚焦于困难样本。

2.2 QFL

将定位质量得分和类别得分联合起来表示,降低 one-hot 类别标签的约束,对应类别上的目标值是一个浮点数 y ∈ [ 0 , 1 ] y\in \left[0,1\right] y[0,1] y = 0 y=0 y=0表示负样本,定位质量得分是 0 0 0 0 < y ≤ 1 00<y1表示正样本, y y y是 IoU 得分。虽然有了联合表征,但是类别不均衡的问题依然存在,于是作者借鉴 Focal Loss,扩展 Focal Loss 的两个部分:

  • 交叉熵部分 − log ⁡ ( p t ) -\log(p_t) log(pt)扩展为完全形式 − [ ( 1 − y ) log ⁡ ( 1 − σ ) + y log ⁡ ( σ ) ] -\left[(1-y)\log(1-\sigma) + y\log(\sigma)\right] [(1y)log(1σ)+ylog(σ)]
  • 缩放乘数 ( 1 − p t ) γ (1-p_t)^{\gamma} (1pt)γ归纳为预测得分 σ \sigma σ和浮点数标签 y y y的绝对值距离 ∣ y − σ ∣ β , ( β ≥ 0 ) |y-\sigma|^{\beta},(\beta\geq 0) yσβ,(β0)

所以,QFL 的表达式为:
Q F L ( σ ) = − ∣ y − σ ∣ β [ ( 1 − y ) log ⁡ ( 1 − σ ) + y log ⁡ ( σ ) ] \mathbf{QFL}(\sigma)=-|y-\sigma|^{\beta}\left[(1-y)\log(1-\sigma) + y\log(\sigma)\right] QFL(σ)=yσβ[(1y)log(1σ)+ylog(σ)]

σ = y \sigma=y σ=y时,QFL 全局最小。 ∣ y − σ ∣ β |y-\sigma|^{\beta} yσβ是调节系数,当某样本的质量预测 σ \sigma σ不够准确、偏离标签 y y y,调节系数就会增大,从而更关注于困难样本。当质量预测得准确时 σ → y \sigma\rightarrow y σy,该系数趋近于 0 0 0,损失就会降低。 β \beta β控制着权重的降低(QFL 实验时 β = 2 \beta=2 β=2)。
GFLv1 论文学习_第4张图片

上图比较了传统方法和本文方法。GFL 包括了 QFL 和 DFL。QFL 学习类别得分和定位质量得分的联合表征,DFL 将边框的位置建模为 general distribution,驱使网络快速聚焦于目标位置相邻点的概率。

2.3 DFL

本文将坐标点距离目标框四条边的相对偏移量作为回归目标。传统的边框回归方法是将回归标签 y y y建模为 Dirac Delta 分布 δ ( x − y ) \delta(x-y) δ(xy),满足 ∫ − ∞ + ∞ δ ( x − y ) d x = 1 \int_{-\infty}^{+\infty}\delta(x-y)\mathop{dx}=1 +δ(xy)dx=1,通常用全连接层实现。Dirac Delta 分布可以认为在一个点的概率密度为无穷大,而其它点的概率密度都为 0。其还原 y y y的积分形式就是:
y = ∫ − ∞ + ∞ δ ( x − y ) x d x y=\int_{-\infty}^{+\infty}\delta(x-y)x \mathop{dx} y=+δ(xy)xdx

然而在真实场景,目标边界并非是十分清楚的,因此如下图(b) 学习一个宽范围的分布更加合理。给定标签 y y y ( y 0 ≤ y ≤ y n , n ∈ N + ) (y_0\leq y\leq y_n,n\in \mathbb{N}^+) (y0yyn,nN+),模型预测的值 y ^ \hat{y} y^就是( y 0 ≤ y ^ ≤ y n y_0 \leq\hat{y} \leq 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)x \mathop{dx}=\int_{y_0}^{y_n} P(x)x \mathop{dx} y^=+P(x)xdx=y0ynP(x)xdx

但 CNN 用的是离散表征,作者将值域 [ y 0 , y n ] \left[y_0,y_n\right] [y0,yn]离散为集合 { y 0 , y 1 , . . . , y i , y i + 1 , . . . , y n − 1 , y n } \lbrace y_0,y_1,...,y_i,y_{i+1},...,y_{n-1},y_n\rbrace {y0,y1,...,yi,yi+1,...,yn1,yn},间隔是 Δ \Delta Δ,即从 y y y可能存在的区间 [ y 0 , y n ] \left[y_0, y_n\right] [y0,yn]中均匀采样,这样就从一个回归问题变成了多分类问题。给定离散分布性质 ∑ i = 1 n P ( y i ) = 1 \sum_{i=1}^n P(y_i)=1 i=1nP(yi)=1,预测的回归值 y ^ \hat{y} y^表示为:
y ^ = ∑ i = 0 n P ( y i ) ⋅ y i \hat{y}=\sum_{i=0}^n P(y_i)\cdot y_i y^=i=0nP(yi)yi

作者使用 Softmax 函数可以很容易地实现离散形式的任意分布。 P ( x ) P(x) P(x)用 softmax S ( ⋅ ) \mathcal{S}(\cdot) S()实现, P ( y i ) P(y_i) P(yi)记做 S i \mathcal{S}_i Si y ^ \hat{y} y^可以用 SmoothL1、IoU 损失和 GIoU 损失训练。但是如下图(b)所示, P ( x ) P(x) P(x)的值可能有无数种组合来让最终的积分结果为 y y y,这会降低学习的效率。与 (1) (2) 相比,(3) 更加紧凑、更加确信边框定位的准确性。如果存在最适合的位置,它一定不会离目标标签很远。因此作者提出了 DFL,通过增大 y i y_i yi y i + 1 y_{i+1} yi+1的概率( y i y_i yi y i + 1 y_{i+1} yi+1是最接近 y y y的两个点, y i ≤ y ≤ y i + 1 y_i\leq y\leq y_{i+1} yiyyi+1),让网络快速关注到标签 y y y附近的点。边框的学习只需关注正样本,不用担心正负类别
不均衡问题,于是 DFL 形式为:
D F L ( S i , S i + 1 ) = − [ ( y i + 1 − y ) log ⁡ ( S i ) + ( y − y i ) log ⁡ ( S i + 1 ) ] \mathbf{DFL}(\mathcal{S}_i,\mathcal{S}_{i+1})=-\left[(y_{i+1}-y)\log(\mathcal{S}_i) + (y-y_i)\log(\mathcal{S}_{i+1})\right] DFL(Si,Si+1)=[(yi+1y)log(Si)+(yyi)log(Si+1)]

DFL 通过学习增大 y y y左右两个点的概率( S i \mathcal{S}_i Si S i + 1 \mathcal{S}_{i+1} Si+1),使网络分布聚焦到标签点的附近。当 DFL 达到全局最小点(即 S i = y i + 1 − y y i + 1 − y i \mathcal{S}_i=\frac{y_{i+1}-y}{y_{i+1}-y_i} Si=yi+1yiyi+1y S i + 1 = y − y i y i + 1 − y i \mathcal{S}_{i+1}=\frac{y-y_{i}}{y_{i+1}-y_i} Si+1=yi+1yiyyi),可以保证预测值 y ^ \hat{y} y^无限地接近对应的标签 y y y,即 y ^ = ∑ j = 0 n P ( y j ) y j = 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_j)y_j = \mathcal{S}_iy_i + \mathcal{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(yj)yj=Siyi+Si+1yi+1=yi+1yiyi+1yyi+yi+1yiyyiyi+1=y
GFLv1 论文学习_第5张图片

2.4 GFL

QFL 和 DFL 可以整合为一个通用形式。假设一个模型预测两个变量 y l , y r ( y l < y r ) y_l,y_r(y_lyl,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_l p_{y_l}+y_r p_{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 \leq y \leq y_r ylyyr。将绝对距离 ∣ y − y ^ ∣ β ( β ≥ 0 ) |y-\hat{y}|^{\beta}(\beta\geq 0) yy^β(β0)作为调节系数,GFL 可以写作:
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 ) ) \mathbf{GFL}(p_{y_l},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(pyl,pyr)=y(ylpyl+yrpyr)β((yry)log(pyl)+(yyl)log(pyr))

2.5 GFL 性质

p y l ∗ = y r − y y r − y l p_{y_l}^*=\frac{y_r-y}{y_r-y_l} pyl=yrylyry p y r ∗ = y − y l y r − y l p_{y_r}^*=\frac{y-y_l}{y_r-y_l} pyr=yrylyyl时, G F L ( p y l , p y r ) \mathbf{GFL}(p_{y_l},p_{y_r}) GFL(pyl,pyr)达到全局最小,也就是说 y ^ \hat{y} y^完美地匹配上了连续标签 y y y,即 y ^ = y l p y l ∗ + y r p y r ∗ = y \hat{y}=y_lp_{y_l}^*+y_rp_{y_r}^*=y y^=ylpyl+yrpyr=y。QFL、DFL 和原版 FL 都是 GFL 的特殊形式。GFL 可以用到任意的单阶段目标检测器上。推理时,直接将分类得分(质量预测的联合表征)作为 NMS 分数,而无需乘上质量预测得分。预测边框每个位置的回归分支的最后一层现在有 n + 1 n+1 n+1个输出,而不只是 1 1 1个输出。

2.6 GFL 训练密集检测器

L = 1 N p o s ∑ z L Q + 1 N p o s ∑ z I { c z ∗ > 0 } ( λ 0 L B + λ 1 L D ) \mathcal{L}=\frac{1}{N_{pos}}\sum_z \mathcal{L_Q}+\frac{1}{N_{pos}}\sum_z \mathbb{I}_{\lbrace c_z^*>0\rbrace}(\lambda_0\mathcal{L_B}+\lambda_1 \mathcal{L_D}) L=Npos1zLQ+Npos1zI{cz>0}(λ0LB+λ1LD)

L Q \mathcal{L_Q} LQ是 QFL, L D \mathcal{L_D} LD是 DFL。 L B \mathcal{L_B} LB是 GIoU 损失。 N p o s N_{pos} Npos是正样本个数。 λ 0 = 2 \lambda_0=2 λ0=2 λ 1 = 1 4 \lambda_1=\frac{1}{4} λ1=41平衡 QFL 和 DFL。对特征金字塔上所有的位置 z z z计算求和。 I { c z ∗ > 0 } \mathbb{I}_{\lbrace c_z^*>0\rbrace} I{cz>0}是指标函数。

你可能感兴趣的:(目标检测,学习)