GFLv2
(一)Title
论文地址:https://arxiv.org/abs/2011.12885
代码地址:https://github.com/implus/GFocalV2
前言:GFLv1文章名:Generalized Focal Loss Learning Qualified and Distributed Bounding Boxes for Dense Object Detection。GFLv1已经很漂亮了,没想到GFLv2能利用分布的统计特征来进行定位质量估计,而且还取得优于卷积特征的效果,感觉作者太强了也。
(二)Summary
目前Localization Quality Estimation(LQE)在目标检测中是很Popular的一种做法,能够产生更加准确的rank scores用于NMS,从而提升性能。
通常的估计Localization Quality 的方法是通过分类分支或者回归分支的共享卷积特征来预测LQE分数(这说的是IoU-aware single-stage object detetor那篇文章,这篇文章在我的博客同样有论文阅读笔记)
本文中作者提出基于学习到的bounding box四个参数的分布来进行LQE(Localization Quality Estimation)
这个bounding box的分布在GFLv1(博客)中提到,并且很好地描述了bounding box的不确定性。
作者提出bounding box的统计分布和它真实的定位质量是高度相关的。
具有sharp peak的边界框分布通常对应于high localization quality
从上图中可以看出,峰越高表示的定位质量就越好,
因此在本文中作者利用上这个关系,作者提出了一个相当轻量级的Distribution-Guided Quality Predictor(DGQP)进行可靠的定位质量估计。从而产生了GFLv2,这是首个利用高度相关的统计表示方法进行的Localization Quality Estimation
性能表现
GFLV2 (ResNet-101)以14.6FPS取得了46.2的AP值,超过了baseline(43.6AP at 14.6 FPS),在训练和测试阶段都没有损失效率。
文章的主要贡献点
- 首个将统计分布和定位质量估计结合起来的端到端的目标检测框架。
- GFLv2中的DGQP子网络很轻量级,基本上的cost-free的,但是同时在性能上可以提升AP指标。
- 使用多尺度测试,使得GFLV2取得了53.3的AP,在COCO数据集上。
(三)Research Object
目前研究者的工作主要集中在如何进行更加准确的LQE(定位质量估计),大多数研究者的工作基于卷积特征进行定位质量的估计,在GFLv1中将定位质量(IoU)和classfication score进行联合表示,但是进行定位质量估计仍然使用的是卷积特征,在本文中,我们受到GFLv1中预测的box分布和Localization Quality之间强相关性的启发,提出利用分布统计来进行定位质量的估计。
(四)Problem Statement
目前进行定位质量估计(LQE)基本上是基于卷积特征(点,边界或者区域的特征)。我们从GFLv1得到的box分布中得到启发,可以基于box4个边分布的Top-1(峰值)来估计定位质量,两者之间是具有较强的相关性的。受上述box分布和定位质量之间强相关性的启发,作者提出一个非常轻量级的子网络sub-network,只有几十个(例如,64个)隐藏单元,在这些分布统计的基础上产生可靠的LQE分数,显著提高了检测性能。作者称这个轻量级的子网络为Distribution-Guided Quality Predictor(DGQP)
(五)Method
5.1 GFL(Generalized Focal Loss)v1
Quality Focal Loss
c
∈
{
1
,
2
,
…
,
m
}
c \in\{1,2, \ldots, m\}
c∈{1,2,…,m},其中
m
m
m表示类别数,GFLv1利用类别分支来产生类别和IoU的联合表示,对应m个类别的输出分别为
J
=
[
J
1
,
J
2
,
…
,
J
m
]
\mathbf{J}=\left[J_{1}, J_{2}, \ldots, J_{m}\right]
J=[J1,J2,…,Jm],其中每一项为:
J
i
=
{
IoU
(
b
pred
,
b
g
t
)
,
if
i
=
c
0
,
otherwise
J_{i}=\left\{\begin{array}{ll} \operatorname{IoU}\left(b_{\text {pred}}, b_{g t}\right), & \text { if } i=c \\ 0, & \text { otherwise } \end{array}\right.
Ji={IoU(bpred,bgt),0, if i=c otherwise
也就是利用真实的IoU的值来代替类别标签1.
Distribution Focal Loss
目前目标检测中用于描述bounding box的分布往往是
δ
\delta
δ分布,或者高斯分布,在GFLv1中提出使用任意分布
P
(
x
)
P(x)
P(x)描述bounding box。对于回归目标我们看成是随机变量
Y
Y
Y,我们限定Y的取值范围为
[
y
0
,
y
n
]
[y_0,y_n]
[y0,yn]之间,那么我们计算分布对应的期望值为:
y
^
=
∫
−
∞
+
∞
P
(
x
)
x
d
x
=
∫
y
0
y
n
P
(
x
)
x
d
x
\hat y = \int_{-\infty}^{+\infty} P(x) x \mathrm{~d} x=\int_{y_{0}}^{y_{n}} P(x) x \mathrm{~d} x
y^=∫−∞+∞P(x)x dx=∫y0ynP(x)x dx
接着对
[
y
0
,
y
n
]
[y_0,y_n]
[y0,yn]范围进行离散化,采用相同大小的间隔
Δ
\Delta
Δ,得到
[
y
0
,
y
1
,
…
,
y
i
,
y
i
+
1
,
…
,
y
n
−
1
,
y
n
]
\left[y_{0}, y_{1}, \ldots, y_{i}, y_{i+1}, \ldots, y_{n-1}, y_{n}\right]
[y0,y1,…,yi,yi+1,…,yn−1,yn],并且每一个间隔
Δ
=
y
i
+
1
−
y
i
,
∀
i
∈
{
0
,
1
,
…
,
n
−
1
}
\Delta=y_{i+1}-y_{i}, \forall i \in\{0,1, \ldots, n-1\}
Δ=yi+1−yi,∀i∈{0,1,…,n−1},此时原来的连续概率密度
P
(
x
)
P(x)
P(x)变成了离散的概率值
G
(
x
)
G(x)
G(x),满足
∑
i
=
0
n
P
(
y
i
)
=
1
\sum_{i=0}^{n} P\left(y_{i}\right)=1
∑i=0nP(yi)=1,并且离散情况下计算期望为:
y
^
=
∑
i
=
0
n
P
(
y
i
)
y
i
\hat{y}=\sum_{i=0}^{n} P\left(y_{i}\right) y_{i}
y^=i=0∑nP(yi)yi
我们GFLv2的工作就是基于这个分布来估计Localization Quality的。
5.2 Generalized Focal Loss V2
Localization Quality Estimation
作者提出GFLv1中 仅仅使用classification branch去预测object classification和Quality Estimation联合表示存在着一些限制,这里将这个联合表示进行decompose(解耦合)并进行显示表示,分别使用类别(classification branch)
C
\mathbf{C}
C和回归分支(regression branch)
I
{I}
I:
J
=
C
×
I
\mathbf{J}=\mathbf{C} \times I
J=C×I
其中
C
=
[
C
1
,
C
2
,
.
.
.
,
C
m
]
\mathbf{C} = [C_1,C_2,...,C_m]
C=[C1,C2,...,Cm],
C
i
∈
[
0
,
1
]
C_i \in [0,1]
Ci∈[0,1],m个类别的分类表示
I
∈
[
0
,
1
]
I \in [0,1]
I∈[0,1]是一个标量,表示IoU。
这里将联合表示解耦成两部分的原因在于:
我们的这里 I I I是定位质量估计,是利用regression branch估计出来的分布得到的,而不是我们原来计算predict box和Ground Truth之间的IoU得到的,在网络中需要分开到回归分支和分类分支上,因此这里需要先解耦,但是当我们得到这两部分之后,将两者相乘得到最终的一个Score,再将这个Score使用QFL进行训练,同时在Inference阶段,按照乘起来之后的Score进行排序,做NMS。从思想上是和GFLv1一致,将classification score和Localization Quality进行联合表示。
GFLv2的精髓之处:Distribution-Guided Quality Predictor
利用学习到的分布的统计特征(Top-1 value)输入到a tiny sub-nerwork中,在上面网络架构图的中用红色点框住的部分,得到预测的IoU 标量 I I I,
回归目标这里使用的是from the location 到bounding box四个边的距离
{
l
,
r
,
t
,
b
}
\{l, r, t, b\}
{l,r,t,b},这个距离是利用通用分布
P
(
x
)
P(x)
P(x)表示的,我们的通用分布在这里是
P
w
=
[
P
w
(
y
0
)
,
P
w
(
y
1
)
,
…
,
P
w
(
y
n
)
]
\mathbf{P}^w = \left[P^{w}\left(y_{0}\right), P^{w}\left(y_{1}\right), \ldots, P^{w}\left(y_{n}\right)\right]
Pw=[Pw(y0),Pw(y1),…,Pw(yn)],其中
w
∈
l
,
r
,
t
,
b
w \in {l,r,t,b}
w∈l,r,t,b
从之前我们关于网络学习到的bounding box分布越sharp peak,我们的Localization Quality越好的分析中,可以认为和这个General Distribution的平坦度flatness相关的统计特征,这些统计特征和 Localization Quality之间存在着较强的相关性
作者在实际实验中使用每一个分布 P w \mathbf{P}^w Pw的Top-k值以及对应的Top-k的均值concate组成一个向量:
F = Concat ( { Top km ( P w ) ∣ w ∈ { l , r , t , b } } ) \mathbf{F}=\operatorname{Concat}\left(\left\{\operatorname{Top} \operatorname{km}\left(\mathbf{P}^{w}\right) \mid w \in\{l, r, t, b\}\right\}\right) F=Concat({Topkm(Pw)∣w∈{l,r,t,b}})
如下图所示:
其中 F ∈ R 4 ( k + 1 ) \mathbf{F} \in \mathbb{R}^{4(k+1)} F∈R4(k+1),从表达式上来看,这里应该是将一个bounding box预测的4个边的分布,从每一个分布中分别取出Top-k个以及Top-k个的均值,每一个分布一共(k+1)个值,4个分布再进行Concate得到 4 ( k + 1 ) 4(k+1) 4(k+1)个值
并且作者指出:
由于 ∑ i = 0 n P w ( y i ) = 1 \sum_{i=0}^{n} P^{w}\left(y_{i}\right)=1 ∑i=0nPw(yi)=1,因此,Top-k value以及他们的均值能够反映分布的平坦程度,越大的越sharper,越小的越平坦flatter。
采用Top-k以及其均值的方法对分布具有平移不变性,分布发生位移的话,得到的Top-k值以及对应的均值不发生改变,如上图中所示的情况,虽然分布向右发生了平移,但是我们的Top-k值以及均值mean都没有改变
作者将bounding box分布组成的向量
F
\mathbf{F}
F经过一个sub-network
F
(
⋅
)
\mathcal{F}(\cdot)
F(⋅)去预测最终的IoU 质量估计,这个子网络有两个全连接层,后面分别跟着ReLu和Sigmoid。最终的IoU scalar
I
I
I可以表示为:
I
=
F
(
F
)
=
σ
(
W
2
δ
(
W
1
F
)
)
I=\mathcal{F}(\mathbf{F})=\sigma\left(\mathbf{W}_{2} \delta\left(\mathbf{W}_{1} \mathbf{F}\right)\right)
I=F(F)=σ(W2δ(W1F))
其中
δ
\delta
δ表示ReLU函数,
σ
\sigma
σ表示sigmoid 函数,
W
1
∈
R
p
×
4
(
k
+
1
)
\mathbf{W}_{1} \in \mathbb{R}^{p \times 4(k+1)}
W1∈Rp×4(k+1),
W
2
∈
R
1
×
p
\mathbf{W}_{2} \in \mathbb{R}^{1 \times p}
W2∈R1×p,
k
k
k表示的是Top-k的参数,
p
p
p表示的是隐层的通道维数。
这里需要对DGQP的计算复杂度进行说明:DGQP与整个检测模型的参数数量相比可以忽略不计。例如,对于ResNet-50 [11]和FPN [20]的模型,DGQP模块的额外参数仅占0.003%。第二,DGQP模块由于结构极轻,计算开销也很小。几乎没有降低原始检测器的训练和推理速度。
(六)Experiment
6.1 实验细节设置
- 使用COCO benchmark,使用trainval35k共115k图像进行训练,使用minival 5K图像进行验证,此外,作者的结果是在test-dev 共20k图像上进行的。使用mmdetection进行的实验,
- 采用mmdetection中默认的超参数,1x的学习策略(12个epoch)
- 没有引入多尺度训练
- backbone使用ResNet-50 backbone
6.2 Ablation Study
在Top-k(
k
=
4
k=4
k=4)以及DGQP隐层单元为64的设置下,验证Top-k值,mean以及var对AP值的影响
从上图中可以看出,当取Top-k以及mean时能够得到最佳的结果
DGQP(即k,p)的结构,也就是k和p取不同值对于最终结果的影响
和使用基于卷积特征进行Quality Estimation 的进行对比
组合分类score
C
\mathbf{C}
C和质量估计
J
\mathbf{J}
J的两种形式
这里
I
\mathbf{I}
I中的
d
d
d表示的应该是特征图的厚度。得到了如下的实验结果
Composed Form 产生的结果在速度和精度上都不如Decomposed Form
将我们的GFLv2框架引入到其他的检测框架中
6.3 和State-of-art分类器的比较
使用多尺度训练以及2x学习策略(24个epochs)
6.4 对于DGQP有效性的分析
分别计算预测的IoU和真实IoU之间的 Pearson Correlation Coefficients(PCC)皮尔森相关系数
我们的模型预测的IoU和真实的IoU之间具有较大的PCC系数,这也是我们模型为什么能够取得较好效果的原因。
从训练损失上来看
其中V2 GFL的DGQP成功地加速了训练过程并收敛到更低的损失。
Top-1和IoU之间的相关性
训练效率和inference效率
定性的分析结果
可以看到使用GFLv2经过NMS后能够产生更加显著的分类IoU
(七)Conclusion
作者提出建议使用bounding box的分布的统计来学习到更可靠的定位质量估计,着是不同于之前的文献的,在此基础上,作者设计了DGQPsub-network,在仅仅增加少量计算复杂度的基础上实现了模型性能的提升。
(八)Notes
8.1 GFLv1中得到的bounding box的分布和IoU之间关系的一个探讨
从上图中可以看到,四个边的Top-1 Value分别指的是4个边分布上的最大概率值,取4个边的最大概率值的均值,得到了右图中的横轴,右图中的纵轴为预测的bounding box和真实的Ground Truth之间的IoU值(这些bounding box取的是COCO验证集的数据),画出散点图就是右图。
8.2 Localization Quality Estimation的发展情况
- 在早期的研究中,在进行NMS时,排序分数使用的是classification score,很多文献指出classification score和IoU score(Localization Quality)之间的相关性很差,
- 在FCOS和ATSS中,引入了Centerness:用于描述到Ground Truth 中心点的距离,最近的研究表明,它有一定的局限性,对LQE可能是次优的,SABL中将averaged bucketing confidence作为LQE的形式化表示
- 在IoU-Net [13], Fitness NMS [34], MS R-CNN [12], IoU-aware [36],中引入单独的分支来预测IoU
- 在GFLv1中,将classification score和IoU进行一个联合表示。
目前大多数的方法都是基于卷积进行的定位质量估计,而我们的方法则是基于预测的box的分布来进行Localization Quality的估计