0 摘要
域自适应目标检测(DAOD)旨在通过最小化源域和目标域之间的特征分布来提高目标域的检测性能。最近的方法通常是通过对抗学习将这种分布按类别进行对齐,并取得了一些进展。然而,当物体在不同尺度上分布不均匀时,这种类别级对齐会导致不平衡的物体特征学习,即不同尺度上类别对齐的不一致性。为了更好地进行类别级特征对齐,我们提出了一种联合类别和尺度信息的新型 DAOD 框架,称为 CSDA。具体来说,我们的框架由两个密切相关的模块实现:
1)SGFF(尺度引导特征融合)融合不同领域的类别表征来学习特定类别的特征,其中特征由三个尺度的判别器对齐。
2) SAFE(尺度辅助特征增强)将尺度坐标编码到一组标记中,并通过自我关注增强不同尺度下类别特定特征的表示。
在基于锚的 Faster-RCNN 和无锚 FCOS 检测器的基础上,实验表明我们的方法在三个 DAOD 基准上取得了最先进的结果。
1 出发点
- 同一类别的实例特征在不同的尺度(实例在图像中的大小)上存在很大的差异,甚至超过了类别间的差异,这造成了类别级特征对齐的次优效果。虽然有一些方法给实例分配不同尺度的标签,进行了精细的对齐(如US-DAF),但是他们忽略了同一尺度下域内/域间的类别级特征一致性。
- 目标检测器对小目标的感知能力弱,这是由于小目标在图像中的像素占据很小,细粒度信息少。但是人类只要能识别近处的车,也能学会识别远处的车。出于这种直觉,有必要促进不同尺度目标之间的相互学习。
因此,作者提出一种尺度-类别联合特征的域自适应目标检测算法(基于faster rcnn和fcos开发),尺度引导的特征融合模块(Scale-Guided Feature Fusion module,SGFF),以对抗学习的方式将相同尺度的特征拉近,不同尺度的特征推远。缓解不同尺度特征错误对齐造成模型退化的问题。尺度辅助的特征增强模块(Scale-Auxiliary Feature Enhancement module,SAFE),将不同目标的类别特征和尺度信息编码为一组标记,使用自我注意机制来学习不同尺度之间的关系,从而增强不同尺度下的特征交互。如图1所示,在类别2中,之前的类别级特征将不同尺度实例特征不加以区分的对齐,而本文提出的CSDA,对不同尺度的特征相互推开。并在不同尺度特征之间进行增强学习。
2 方法简述
检测器主干
使用 VGG16 作为骨干。对于 Faster RCNN ,提取最后一级 C5 作为像素级特征。对于 FCOS ,我们 VGG16 的最后三个阶段,并通过 FPN 将其组合成多级特征图,作为像素级特征,包括 P3、P4、P5、P6 和 P7。
和之前的方法一致,首先在检测器主干使用像素、实例级判别器 Dpix(-) 和 Dins(-) 分别用于对特征图进行像素和实例级配准。损失函数如下式所示,
L
p
i
x
=
−
∑
(
i
,
j
)
[
L
(
D
p
i
x
(
F
s
(
i
,
j
)
)
,
y
i
,
j
s
)
+
L
(
D
p
i
x
(
F
t
(
i
,
j
)
)
,
y
i
,
j
t
)
]
\begin{gathered} L_{pix} =-\sum_{(i,j)}\left[L(D^{pix}(F^s(i,j)),y_{i,j}^s)\right. +L(D^{pix}(F^t(i,j)),y_{i,j}^t)~] \end{gathered}
Lpix=−(i,j)∑[L(Dpix(Fs(i,j)),yi,js)+L(Dpix(Ft(i,j)),yi,jt) ]
使用交叉熵函数,对特征图的每个位置都进行对抗训练。
L
i
n
s
=
−
∑
i
n
[
L
(
D
i
n
s
(
F
i
s
)
,
y
i
s
)
+
L
(
D
i
n
s
(
F
i
t
)
,
y
i
t
)
]
L_{ins}=-\sum_i^n\left[L(D^{ins}(F_i^s),y_i^s)+L(D^{ins}(F_i^t),y_i^t)\right.]
Lins=−i∑n[L(Dins(Fis),yis)+L(Dins(Fit),yit)]
n表示实例个数,i表示第i个区域提案roi实例特征。
模型在主干阶段先完成初步的域自适应,输出roi特征和目标域的伪标签为下阶段所用,因此该阶段的损失包括像素、实例级的对抗损失和检测器自身的有监督检测损失。
SGFF
现有的域自适应方法大多侧重于类别层面的配准,忽略了尺度的影响。然而,同一类别内不同尺度的特征方差可能大于类别间相似尺度的特征方差,这就无法实现高级配准。使用图卷积网络GCN 对域内/域间关系进行建模,并通过判别器对同一尺度的域间类别级特征进行配准。
基于图的特征融合
使用RPN的输出的提案特征ROI建图
G
k
=
(
V
k
,
E
k
)
G^{k}=(V^{k},E^{k})
Gk=(Vk,Ek),其中可以是s或者t,表示源域或者目标域。
V
k
V^{k}
Vk表示图的节点集,由ROI特征组成。
E
k
E^{k}
Ek表示图的边,由ROI特征之间的类别标签
C
k
=
{
c
i
k
}
i
=
1
n
k
C^k=\{c_i^k\}_{i=1}^{n^k}
Ck={cik}i=1nk和相似度关系确定,公式为,
e
i
,
j
k
=
{
1
i
f
c
i
k
=
c
j
k
C
o
s
i
n
e
S
i
m
<
v
i
k
,
v
j
k
>
i
f
c
i
k
≠
c
j
k
e_{i,j}^k=\begin{cases}1&\mathrm{~if~}c_i^k=c_j^k\\CosineSim\left<v_i^k,v_j^k\right>&\mathrm{~if~}c_i^k\neq c_j^k&\end{cases}
ei,jk={1CosineSim⟨vik,vjk⟩ if cik=cjk if cik=cjk
根据上述的建图流程,首先分别构建源域和目标域的域内关系图
G
C
N
i
n
t
r
a
_
s
GCN_{intra\_s}
GCNintra_s和
G
C
N
i
n
t
r
a
_
t
GCN_{intra\_t}
GCNintra_t经过图卷积后,又构建域间图
G
C
N
i
n
t
e
r
GCN_{inter}
GCNinter,上述流程可以写为:
O
=
G
C
N
i
n
t
e
r
[
G
C
N
i
n
t
r
a
_
s
(
V
s
,
E
s
)
⨀
G
C
N
i
n
t
r
a
_
t
(
V
t
,
E
t
)
,
E
]
\begin{gathered}O=GCN_{inter}\left[GCN_{intra\_s}(V^{s},E^{s})\right. \bigodot GCN_{intra\_t}(V^{t},E^{t}),E]\end{gathered}
O=GCNinter[GCNintra_s(Vs,Es)⨀GCNintra_t(Vt,Et),E]
⨀
\bigodot
⨀表示concat拼接操作,
O
=
{
o
i
}
i
=
1
n
s
+
n
t
O=\left\{o_i\right\}_{i=1}^{n^s+n^t}
O={oi}i=1ns+nt表示经过域内域间图卷积的节点ROI特征。
类别引导的对齐
为保持在图卷积的过程中节点能继续保持类别信息,即矫正图节点之间的关系,使用由两个全连接层组成的分类器 fcls(-),利用交叉熵对其训练进行监督。其损失函数可表示为:
L
c
g
=
−
∑
i
=
1
n
s
+
n
t
y
i
log
(
s
o
f
t
m
a
x
(
f
c
l
s
(
o
i
)
)
)
L_{cg}=-\sum_{i=1}^{n^s+n^t}y_i\log{(softmax(f_{cls}(o_i)))}
Lcg=−i=1∑ns+ntyilog(softmax(fcls(oi)))
其中
y
i
y_i
yi表示类别标签。
尺度引导的特征对齐
通过图卷积网络学习域内域间关系后,进一步在不同尺度上对齐特征。根据 COCO,提案的规模可分为三类:小型
[
0
,
3
2
2
]
[0, 32^2]
[0,322]、中型
(
3
2
2
,
9
6
2
]
(32^2, 96^2]
(322,962]和大型
(
9
6
2
,
+
∞
)
(96^2, +∞)
(962,+∞),受对抗学习机制的启发,我们使用三个判别器 Ds(-)、Dm(-) 和Dl(-),将具有相同尺度的域间特征集合在一起,这有助于 GCN 更加关注相同尺度之间的特征融合。因此,尺度配准的损失函数可以定义为:
L
s
g
=
∑
i
∈
{
s
,
m
,
l
}
∑
j
λ
i
L
(
D
i
(
o
i
,
j
)
,
y
i
,
j
)
L_{sg}=\sum_{i\in\{s,m,l\}}\sum_j\lambda_iL(D^i(o_{i,j}),y_{i,j})
Lsg=i∈{s,m,l}∑j∑λiL(Di(oi,j),yi,j)
其中,L 表示二元交叉熵函数,Di(-) 表示不同尺度的判别器,λi 是平衡因子,yi,j 是根据 oi,j 来自哪个域(i∈{s, m, l})得出的地面实况。
SAFF
为了进一步探索网络感知不同尺度物体的能力,设计了 SAFE,通过不同尺度特征之间的交互学习来进一步增强特征表征。它由一个用于将区域建议尺度编码成高维特征的尺度编码器和一个用于跨尺度交互学习特征的特征增强模块组成。
尺度编码器
大尺度物体包含丰富而精细的类别信息。因此,对于尺度不同的两组物体,如果每组内的尺度差相同,则尺度较小的一组中的特征之间的差异要大于尺度较大的一组。简而言之,10 × 10 和 20 × 20 大小的物体之间的差异要大于 200 × 200 和 210 × 210 大小的物体之间的差异,尽管它们的比例差同样为 10 像素。基于上述考虑,提出了一种新的比例映射函数 fsm(-),用于将物体比例编码为可嵌入高维特征的向量,其表达式如下:
f
s
m
(
x
)
=
α
1
−
e
−
x
β
1
+
e
−
x
β
f_{sm}(x)=\alpha\frac{1-e^{-\frac x\beta}}{1+e^{-\frac x\beta}}
fsm(x)=α1+e−βx1−e−βx
其中 x 是提案的宽度或高度,α 和 β 是可调因子。我们调整 β 的值,然后用对数运算对中心点偏移进行编码,用 fsm(-) 对宽度或长度进行编码,从而生成四维特征。按照文献[34]中计算不同波长的余弦函数和正弦函数的方法,将该 4 维特征嵌入高维表示法,并通过 FC 层 Ws 编码为比例相似性矩阵(表示为
S
s
S_s
Ss)。
使用基于变换器的自注意机制来实现特征间的交互学习。具体来说,首先使用 FC 层 Wq、Wk 和 Wv 将所有提议编码为 query Q = { q i } i = 1 n s + n t \mathcal{Q}=\{q_i\}_{i=1}^{n^s+n^t} Q={qi}i=1ns+nt,key K = { k i } i = 1 n s + n t \mathcal{K}=\{k_i\}_{i=1}^{n^s+n^t} K={ki}i=1ns+nt,value V = { v i } i = 1 n s + n t \mathcal{V}=\{v_i\}_{i=1}^{n^s+n^t} V={vi}i=1ns+nt。ns 和 nt 分别是源域和目标域中的提案数。
然后,根据 Q 和 K,可以计算出所有提案之间的特征相似性矩阵,用
S
f
S_f
Sf表示。我们将上述得到的特征相似性矩阵
S
f
=
{
q
i
k
j
T
}
i
,
j
=
1
n
s
+
n
t
S_f=\left\{q_ik_j^T\right\}_{i,j=1}^{n^s+n^t}
Sf={qikjT}i,j=1ns+nt 和尺度相似性矩阵
S
s
=
{
s
i
,
j
}
i
,
j
=
1
n
s
+
n
t
S_s~=~\{s_{i,j}\}_{i,j=1}^{n^s+n^t}
Ss = {si,j}i,j=1ns+nt结合起来,通过 Softmax 的加权公式生成提案特征间的潜在关系
A
=
{
a
i
,
j
}
i
,
j
=
1
n
s
+
n
t
A=\{a_{i,j}\}_{i,j=1}^{n^s+n^t}
A={ai,j}i,j=1ns+nt,公式如下:
a
i
,
j
=
s
i
,
j
⋅
e
x
p
(
q
i
k
j
T
)
∑
m
=
1
n
s
+
n
t
s
i
,
m
⋅
e
x
p
(
q
i
k
m
T
)
a_{i,j}=\frac{s_{i,j}\cdot exp(q_ik_j^T)}{\sum_{m=1}^{n^s+n^t}s_{i,m}\cdot exp(q_ik_m^T)}
ai,j=∑m=1ns+ntsi,m⋅exp(qikmT)si,j⋅exp(qikjT)
其中,ai,j 指第 i 项提案与第 j 项提案之间的亲和度得分。
最后,根据亲和度得分 A 对值 V 进行加权得到残差,并将残差与 SGFF 的输出 O相加,作为 SAFE O ~ = { o ~ i } i = 1 n s + n t \tilde{O}=\{\tilde{o}_i\}_{i=1}^{n^s+n^t} O~={o~i}i=1ns+nt的输出,公式为 o ~ i = o i + ∑ j = 1 n s + n t a i , j v j \tilde{o}_i=o_i+\sum_{j=1}^{n^s+n^t}a_{i,j}v_j o~i=oi+j=1∑ns+ntai,jvj
同样,该模块要用类别信息进行监督,损失函数 L f e L_{fe} Lfe 和SGFF中的类别引导对齐一致。
总的损失函数
如上所述,基线部分的损失由
L
b
a
s
e
l
i
n
e
L_{baseline}
Lbaseline 监督。此外,SGFF 在类别和规模上进行了优化,分别表示为
L
c
g
L_{cg}
Lcg 和
L
s
g
L_{sg}
Lsg,SAFE 受
L
f
e
L_{fe}
Lfe 约束。总体训练损失函数定义为
L
=
L
b
a
s
e
l
i
n
e
+
ω
1
⋅
(
L
c
g
+
L
s
g
)
+
ω
2
⋅
L
f
e
L=L_{baseline}+\omega_1\cdot(L_{cg}+L_{sg})+\omega_2\cdot L_{fe}
L=Lbaseline+ω1⋅(Lcg+Lsg)+ω2⋅Lfe
其中,其中,ω1 和 ω2 为平衡因子。
3 实验分析
实验使用在 ImageNet上预先训练好的 VGG16作为骨干,并基于两种不同的检测器(即 Faster-RCNN和 FCOS)来执行 DAOD 框架。将所有图像的短边尺寸调整为 600(Faster-RCNN)和 800(FCOS)。在 FCOS 中,只使用随机水平翻转作为数据增强,而在 Faster-RCNN 中则增加了额外的多尺度增强。使用 SGD 优化器训练模型,学习率为 0.0025,批量大小为 4,动量为 0.9,权重衰减为 5 × 10-4。平衡因子设为 λs = 0.01、λm = 0.05、λl = 0.1,尺度编码器中的β设为 20,总损失函数中的ω1 = 1.0、ω2 = 0.2。所有实验均在 PyTorch 中实现。
C2F
S2C K2C
消融实验
4 结论
在这项工作中,研究了物体尺度对现有基于类别级对齐的 DAOD 方法的影响,然后分析了不同尺度下的大特征方差以及小物体的弱感知所带来的挑战。为了避免由于物体尺度的影响而导致的特征退化,提出了一种联合类别和尺度特征学习的新型 DAOD 框架,称为 CSDA。它包括:1)尺度引导的特征融合模块(SGFF),用于学习尺度分离的特定类别特征,消除不同尺度下特征差异过大的负面影响;2)尺度辅助特征增强模块(SAFE),用于促进不同尺度间的特征交互,避免对小物体的弱感知。在三个广泛使用的基准上,实验结果表明,在不同的探测器上,与现有的 SOTA 方法相比,所提出的 CSDA 具有明显的优势。