Abstract
相比于图像分类而言,目标检测器更加复杂,具有多个损失函数。而目前的的检测中,其主要将注意力集中在对象的区域中,但本文指出,从背景中提取的特征信息对于学生模型的学习也是必不可少的。且由于目标区域和背景区域包含的信息不同,所以所授予的权重也应该时不同的。在此基础上,本文提出了一种新的基于解耦特征的蒸馏算法DeFeat,性能有所提升,
1. Introduction
先介绍了为了提升目标检测的准确性,计算资源成本的增加和检测速度的明显降低。解决方法有:量化、剪枝、网络设计和知识蒸馏等。接下来介绍了几个基于知识蒸馏的目标检测算法,FGFI让学生网络学习教师网络目标的附近锚定位置;TADF通过颈部特征中的高斯mask对对象区域和检测头中的正样本作为学生网络学习对象。但这些方法仅从目标区域提取知识,忽略背景。
通过实验可知,即仅通过背景区域特征提取学生也可以显著提高学生的学习能力,甚至可以获得与通过目标区域提取学生相类似的结果(如下图)。
之前的文献也有表明,物体和背景之间有很强的关系,对象可能性 P ( O ∣ V o , V b ) = P ( O ∣ V b ) P ( V o ∣ O , V b ) P ( V o ∣ V b ) P (O|V_o, V_b)=P (O|V_b)\frac{P (V_o|O,V_b)}{P (V_o|V_b)} P(O∣Vo,Vb)=P(O∣Vb)P(Vo∣Vb)P(Vo∣O,Vb) 。其中, V o , V b V_o, V_b Vo,Vb表示目标特征和背景特征,通过公式可知,所有的概率都与背景信息有关。同时,通过观察以前的论文可知:目标区域和背景区域都可以通过蒸馏独立地受益于目标检测,但一旦集成在一起,性能会下降。
基于上述分析,提出将知识蒸馏的特征解耦,并分别赋予不同的重要性,包含两个阶段的特征:即FPN特征和ROI-Aligned特征。使用 ground-truth mask将FPN特征分割成目标和背景,并在教师和学生之间使用均方误差损失:ROI-Aligned特征也被分为pos和neg部分,基于这些解耦的RoI-Aligned特征生成的分类分数是使用KL散度损失来得到的。
2. Related Work
综上所述,现有的目标检测提取框架忽略了背景区域在中间特征中的重要作用和分类头中的负区域proposal(但对整个特征映射的模拟和分类头中的提取都忽略了前景和背景的不平衡,这可能导致次优结果)。
3. Distillation via Decoupled Features
一般来说,目标检测器由三到四个部分组成:1)backbone-用于提取特征 2)neck-融合多层特征 3)RPN-用于生成proposals 4)开始对象分类和边界看回归。蒸馏的目的是让学生网络学习教师网络的知识,可以是中间层特征或分类头中的propos的软预测。
定义
S
∈
R
H
×
W
×
C
和
T
∈
R
H
×
W
×
C
S ∈ R^{H×W ×C} 和 T ∈ R^{H×W ×C}
S∈RH×W×C和T∈RH×W×C分别为学生和教师的中间特征。通过中间特征进行蒸馏的表述为:
L
f
e
a
=
γ
2
N
∑
h
=
1
H
∑
w
=
1
W
∑
c
=
1
C
I
(
ϕ
(
S
h
,
w
,
c
)
−
T
h
,
w
,
c
)
2
L_{fea} = \frac{\gamma}{2N}\sum_{h=1}^{H}\sum_{w=1}^{W}\sum_{c=1}^{C}{I(\phi(S_{h,w,c}) − T_{h,w,c})^2}
Lfea=2Nγh=1∑Hw=1∑Wc=1∑CI(ϕ(Sh,w,c)−Th,w,c)2
其中
N
=
H
W
C
N=HWC
N=HWC是元素总数 ,
γ
\gamma
γ为蒸馏损失的调节系数,
ϕ
\phi
ϕ表示适应层,
I
I
I表示掩膜。
对RPN输出的K个区域的proposals, 分类头需要计算所有proposals的软标签。通过软标签预测的蒸馏可表述为:
L
c
l
s
=
1
K
∑
i
=
1
K
L
C
E
(
y
i
s
,
Y
i
)
+
λ
K
∑
i
=
1
K
L
K
L
(
y
i
s
,
y
i
t
)
L_{cls} = \frac{1}{K}\sum_{i=1}^{K}L_{CE}(y^s_i , Y_i)+\frac{\lambda}{K}\sum_{i=1}^{K}L_{KL}(y^s_i , y^t_i)
Lcls=K1i=1∑KLCE(yis,Yi)+Kλi=1∑KLKL(yis,yit)
超参数
λ
\lambda
λ用来平衡不同的损失,
L
C
E
L_{CE}
LCE和
L
K
L
L_{KL}
LKL分别表示交叉熵损失和KL散度损失,
Y
i
Y_i
Yi表示真实值,
y
i
s
,
y
i
t
y^s_i , y^t_i
yis,yit分别表示
学生预测标签和老师预测标签。学生网络的整体损失为:
L
=
L
f
e
a
+
L
c
l
s
+
L
r
e
g
+
L
r
p
n
L = L_{fea} + L_{cls} + L_{reg} + L_{rpn}
L=Lfea+Lcls+Lreg+Lrpn
L
r
e
g
L_{reg}
Lreg 是边界盒回归损失,
L
r
p
n
L_{rpn}
Lrpn是RPN损失
3.1 Decouple Intermediate Features in Distillation
如下图所示。,仅通过背景区域的蒸馏仍然可以获得与仅通过对象区域的蒸馏相当的结果, 因此中间特征中的背景区域可以补充目标区域,进一步帮助学生检测器的训练。问题是如何在蒸馏过程中适当的整合这两类区域。
基于以上观察,通过解耦特征提取学生。对于尺寸为
H
×
W
H × W
H×W的特征, 首先我们根据ground-truth生成一个二值掩码M:
M
i
,
j
=
1
[
(
i
,
j
)
∈
B
]
M_{i,j} = 1\quad[(i, j) ∈ B]
Mi,j=1[(i,j)∈B]
其中
M
∈
{
0
,
1
}
H
×
W
M ∈ \{0, 1\}^{H×W}
M∈{0,1}H×W,如果
(
i
,
j
)
(i,j)
(i,j)属于对象,则
M
=
1
M=1
M=1,否则为0。如果detector包含可以输出多层特征的FPN,就将每个ground-truth分配到相应级别,然后分别生成掩码M。最后使用生成的二进制掩码来解耦颈部特征。
中间特征的蒸馏损失为:
L
f
e
a
=
α
o
b
j
2
N
o
b
j
∑
h
=
1
H
∑
w
=
1
W
∑
c
=
1
C
M
h
,
w
(
ϕ
(
S
h
,
w
,
c
)
−
T
h
,
w
,
c
)
2
+
α
b
g
2
N
b
g
∑
h
=
1
H
∑
w
=
1
W
∑
c
=
1
C
(
1
−
M
h
,
w
)
(
ϕ
(
S
h
,
w
,
c
)
−
T
h
,
w
,
c
)
2
L_{fea} = \frac{α_{obj}}{2N_{obj}}\sum_{h=1}^{H}\sum_{w=1}^{W}\sum_{c=1}^{C}M_{h,w}(\phi(S_{h,w,c}) − T_{h,w,c})^2+\frac{α_{bg}}{2N_{bg}}\sum_{h=1}^{H}\sum_{w=1}^{W}\sum_{c=1}^{C}(1-M_{h,w})(\phi(S_{h,w,c}) − T_{h,w,c})^2
Lfea=2Nobjαobjh=1∑Hw=1∑Wc=1∑CMh,w(ϕ(Sh,w,c)−Th,w,c)2+2Nbgαbgh=1∑Hw=1∑Wc=1∑C(1−Mh,w)(ϕ(Sh,w,c)−Th,w,c)2
其中,
N
o
b
j
=
C
∑
h
=
1
H
∑
w
=
1
W
M
w
,
h
N_{obj} = C\sum_{h=1}^{H}\sum_{w=1}^{W}M_{w, h}
Nobj=C∑h=1H∑w=1WMw,h,,表示目标区域的元素数,
N
o
b
j
=
C
∑
h
=
1
H
∑
w
=
1
W
(
1
−
M
w
,
h
)
N_{obj} = C\sum_{h=1}^{H}\sum_{w=1}^{W}(1-M_{w, h})
Nobj=C∑h=1H∑w=1W(1−Mw,h),表示背景元素的个数。
α
o
b
j
,
α
b
g
\alpha_{obj}, \alpha_{bg}
αobj,αbg分别表示目标区域和背景区域的系数
3.2. Decouple Region Proposals in Distillation
目标对象(positive)的蒸馏损失始终大于背景(negative)的蒸馏损失.如果不平衡两者,则背景proposals产生的小梯度会淹没在positive proposas的大梯度中,从而限制进一步细化。因此,我们建议在提取分类头时,将区域建议解耦为正(对象)propoals和负(背景)proposals,以达到最佳收敛。我们将教师检测器生成的区域建议输入教师和学生的头部,以生成类别预测 p t p_t pt和 p s p_s ps,positive proposal和negative proposal分别处理,如下图所示:
对于positive proposals的概率
z
z
z,使用温度
T
o
b
j
T_{obj}
Tobj来软化(这是温度为T的softmax):
p
s
,
T
o
b
j
(
c
∣
θ
s
)
=
e
x
p
(
z
c
s
/
T
o
b
j
)
∑
j
=
1
C
e
x
p
(
z
j
s
/
T
o
b
j
)
c
∈
Y
p^{s,T_{obj}} (c | θ^s) = \frac {exp(z^s_c/T_{obj})}{\sum_{j=1}^{C}exp(z^s_j /T_{obj})}\;c ∈ Y
ps,Tobj(c∣θs)=∑j=1Cexp(zjs/Tobj)exp(zcs/Tobj)c∈Y
p t , T o b j ( c ∣ θ t ) = e x p ( z c t / T o b j ) ∑ j = 1 C e x p ( z j t / T o b j ) c ∈ Y p^{t,T_{obj}} (c | θ^t) = \frac {exp(z^t_c/T_{obj})}{\sum_{j=1}^{C}exp(z^t_j /T_{obj})}\;c ∈ Y pt,Tobj(c∣θt)=∑j=1Cexp(zjt/Tobj)exp(zct/Tobj)c∈Y
其中, θ s \theta^{s} θs和 θ t \theta^t θt分别表示教师学生网络和教师网络的参数, Y = { 1 , 2 , . . . , C } Y = \{1, 2, ..., C\} Y={1,2,...,C}是类别。
为了从教师中提取学生的知识,使用了KL散度:
L
c
l
s
=
β
o
b
j
K
o
b
j
∑
i
=
1
K
b
i
L
K
L
(
p
i
s
,
T
o
b
j
,
p
i
t
,
T
o
b
j
)
+
β
b
g
K
b
g
∑
i
=
1
K
(
1
−
b
i
)
L
K
L
(
p
i
s
,
T
b
g
,
p
i
t
,
T
b
g
)
L_{cls} = \frac{β_{obj}}{K_{obj}}\sum_{i=1}^{K}b_iL_{KL}(p_i^{s, T_{obj}}, p_i^{t, T_{obj}}) +\frac{β_{bg}}{K_{bg}}\sum_{i=1}^{K}(1-b_i)L_{KL}(p_i^{s, T_{bg}}, p_i^{t, T_{bg}})
Lcls=Kobjβobji=1∑KbiLKL(pis,Tobj,pit,Tobj)+Kbgβbgi=1∑K(1−bi)LKL(pis,Tbg,pit,Tbg)
L K L ( p s , T , p t , T ) = T 2 ∑ c = 1 C p t , T ( c ∣ θ t ) l o g p t , T ( c ∣ θ t ) p s , T ( c ∣ θ s ) L_{KL}(p^{s,T} , p^{t,T} ) = T^2\sum_{c=1}^{C}p^{t,T}(c|θ^t)log\frac{p^{t,T}(c | θ_t)}{p^{s,T}(c|θ^s)} LKL(ps,T,pt,T)=T2c=1∑Cpt,T(c∣θt)logps,T(c∣θs)pt,T(c∣θt)
其中, b i b_i bi表示真实对象的第i个标签, β o b j \beta_{obj} βobj和 β b g \beta_{bg} βbg表示阳性和阴性的系数, K o b j = ∑ i b i K_{obj}=\sum_{i}b_i Kobj=∑ibi和 K b g = ∑ i ( 1 − b i ) K_{bg}=\sum_{i}(1-b_i) Kbg=∑i(1−bi)表示positive proposals和negative proposals的数量。 T 2 T^2 T2用来保证梯度大小的比例。