目录
原文地址
Cross-Domain Few-Shot Object Detection via Enhanced Open-Set Object Detector
主要内容(待更新)
Abstract
本文研究了具有挑战性的跨域小样本目标检测(CD-FSOD),旨在研发在极少标签样本的新域仍精确的目标检测器。当基于transformer的开放集(open-set)检测器,如DE-ViT在传统小样本目标检测表现较好时,它在CD-FSOD上的推广仍不明确:(1)这样的开放集检测方法能够轻易地泛化到CD-FSOD吗?(2)如果不能,面对巨大的域差,模型应该怎样改进增强?为解答第一个问题,我们使用了风格、类间方差(ICV)和无法定义的边界(indefinable boundaries,IB)等方法来衡量域差。基于这些测量方法,建立新的基准(benchmark),名为CD-FSOD,用于评估目标检测方法。它揭示了大部分现有的方法都不能在跨域上泛化。从技术上讲,我们观察到效果变差和前面提出的测量方法:风格、ICV和IB有关。因此,提出了几个新的模块解决这些问题。一,可学习实例功能使初始固定实例域目标类别一致,增强特征独特性。二,实例重新赋权值模块将更高的重要性赋予低IB值的高质量实例。三,域提示器可以在不改变语义内容的情况下通过合成假想域弹性地将特征设置成不同样式。这些技术共同促进了跨域视觉Transformer(Cross-Domain Vision Transformer)到CD-FSOD(CD-ViTO)的发展,极大地提升了DE-ViT。实验数据证明了我们模型的有效性。数据集和代码可以从http://yuqianfu.com/CDFSOD-benchmark.获得。
1 Introduction
2 Related Works
3 CD-FSOD: Setup, Metrics, and Benchmark
3.1 Task Configurations
任务公式化。形式上,给出源数据集,记为
D
S
=
{
I
,
y
}
\mathcal{D}_S = \{I, y\}
DS={I,y},
y
∈
C
S
y \in \mathcal{C}_S
y∈CS,分布为
P
S
\mathcal{P}_S
PS;给出新的目标数据集,记为
D
T
=
{
I
,
y
}
\mathcal{D}_T = \{I, y\}
DT={I,y},
y
∈
C
T
y \in \mathcal{C}_T
y∈CT,分布为
P
T
\mathcal{P}_T
PT。和FSOD一样,CD-FSOD支持带标签数据,因为源类
C
S
\mathcal{C}_S
CS有大量标签实例,但是
C
T
\mathcal{C}_T
CT中每个新目标类的实例只有少量标签实例。所有目标类对于模型来说都是新的(没见过的),即
C
S
∩
C
T
=
∅
\mathcal{C}_S \cap \mathcal{C}_T = \varnothing
CS∩CT=∅。此外,不同于FSOD模型假设源数据的分布
P
S
\mathcal{P}_S
PS与目标数据的分布
P
S
\mathcal{P}_S
PS一致,CD-FSOD模型采取了更切实际的假设:
P
S
≠
P
T
\mathcal{P}_S \neq \mathcal{P}_T
PS=PT。模型在
D
S
\mathcal{D}_S
DS上训练,在
D
T
\mathcal{D}_T
DT上测试。
N-way K-shot协议。为评估CD-FSOD模型的FSL(Few-Shot Learning,小样本学习)能力,采用N-way K-shot评估协议。具体来说,对于
C
T
\mathcal{C}_T
CT中的每个新类,提供K个标签样本,称为支持集
S
S
S;其余无标签样本作为查询集
Q
Q
Q。数学形式为
∣
S
∣
=
N
×
K
,
N
=
∣
C
T
∣
|S| = N \times K, N = |\mathcal{C}_T|
∣S∣=N×K,N=∣CT∣。
训练策略。采用“预训练,微调,测试”的流水线,这在很多CD-FSL方法中使用过。该流水线具体为:先在源数据集
D
S
\mathcal{D}_S
DS上训练,然后使用来自目标数据集
D
T
\mathcal{D}_T
DT的少量的支持集
S
S
S微调可训练参数,最后在查询集
Q
Q
Q上测试。训练和微调的典型目标函数有边界框回归损失和类别损失。
3.2 Metrics for Domain Difference
我们意图通过以下3个方面评估数据集来解决困难与挑战。
风格。我们识别风格在各种域相关的任务如域适应、域泛化以及跨域小样本学习中的核心作用。常见的风格有:真实,卡通,素描等等。
类间方差(Inter-class variance, ICV)。ICV,学习任务中广泛使用的度量标准,衡量不同类之间的差异性。ICV值越高越容易识别语义标签。比较粗糙的数据集如COCO的ICV值较高,而细粒度的数据集的ICV值较低。
无法定义的边界(Indefinable Boundaries, IB)。IB,借自伪装目标检测领域,反映出目标物体与背景的混淆程度。高混淆度为目标检测器带来困难与挑战。例如,检测干净背景中的人比较简单直接,但识别珊瑚礁中的鱼就非常困难了。我们将ICV值分为大、中、小3个级别,IB值分为轻微、中度、重度3个级别。数据集的ICV和IB级别测量方法的相关细节请见追加材料。
3.3 Benchmark of Different Domains
基于风格、ICV和IB度量方法,我们仔细地审查并重构了现有的目标检测数据集,构建了基准(benchmark)CD-FSOD。该基准包括7个数据集。COCO,目标检测任务广泛使用的数据集,它提供了大量的物体类别,例如人、动物、交通工具以及各种日常生活物品,用作
D
S
\mathcal{D}_S
DS。其他6个数据集包括ArTaxOr,Clipart1k,DIOR,DeepFish,NEUDET和UODD,用作
D
T
\mathcal{D}_T
DT。这些数据集的部分样本以及对应的风格、ICV和IB级别如图2所示。注意,DeepFish只有一个类别,所以没有ICV值。更多关于数据集的细节请见追加材料。
4 Methodology
4.1 Overview of CD-ViTO
初步认识(Preliminary)。DE-ViT通过使用源于预训练大模型的可视化特征以及解决定位和分类任务的方式构建开放集检测器。基础DE-ViT的流水线如图3(a)的蓝色箭头所示。它主要包括一个预训练的DINOv2 ViT,一个区域候选网络(
M
R
P
N
M_{RPN}
MRPN),一个ROI(Region of Interest,感兴趣区域)对齐模块(
M
R
O
I
M_{ROI}
MROI),一个检测头(
M
D
E
T
M_{DET}
MDET),和一个一对多(one-vs-rest)分类器(
M
C
L
S
M_{CLS}
MCLS)。具体来说,给出查询图像
q
q
q和支持集
S
S
S,DE-ViT首先使用DINOv2提取实例特征
F
i
n
s
=
{
F
i
n
s
o
b
,
F
i
n
s
b
g
}
F_{ins} = \{F_{ins}^{ob}, F_{ins}^{bg}\}
Fins={Finsob,Finsbg},其中
F
i
n
s
o
b
F_{ins}^{ob}
Finsob表示来自
S
S
S的前景目标的特征,
F
i
n
s
b
g
F_{ins}^{bg}
Finsbg表示背景的特征。然后
F
i
n
s
o
b
F_{ins}^{ob}
Finsob对目标类别数取平均、
F
i
n
s
b
g
F_{ins}^{bg}
Finsbg保持不变,得到类别原型
F
p
r
o
=
{
F
p
r
o
o
b
,
F
i
n
s
b
g
}
F_{pro} = \{F_{pro}^{ob}, F_{ins}^{bg}\}
Fpro={Fproob,Finsbg}。对于查询图像
q
q
q,DE-ViT对其使用DINOv2、
M
R
P
N
M_{RPN}
MRPN和
M
R
O
I
M_{ROI}
MROI生成候选区域
R
q
R_{q}
Rq、视觉特征
F
q
F_q
Fq和ROI特征
F
q
r
o
i
F_{q_{roi}}
Fqroi。接着,
R
q
R_q
Rq、
F
q
F_q
Fq和
F
p
r
o
F_{pro}
Fpro作为
M
D
E
T
M_{DET}
MDET的输入,完成定位任务得到
L
l
o
c
\mathcal{L}_{loc}
Lloc。在此期间,
M
C
L
S
M_{CLS}
MCLS基于
F
q
r
o
i
F_{q_{roi}}
Fqroi和
F
p
r
o
F_{pro}
Fpro完成分类任务得到
L
c
l
s
\mathcal{L}_{cls}
Lcls。通过
L
l
o
c
\mathcal{L}_{loc}
Lloc和
L
c
l
s
\mathcal{L}_{cls}
Lcls两个损失函数优化网络。
据说,DE-ViT不需要微调就能检测任何新类物体,但是实验表明它在跨域的目标数据集上不能泛化。这就是提升DE-ViT的跨域识别能力、形成新方法的动机。注意,DE-ViT的基本组件包括:DINOv2、
M
R
P
N
M_{RPN}
MRPN、
M
R
O
I
M_{ROI}
MROI、
M
D
E
T
M_{DET}
MDET、
M
C
L
S
M_{CLS}
MCLS、
L
l
o
c
\mathcal{L}_{loc}
Lloc和
L
c
l
s
\mathcal{L}_{cls}
Lcls,这些在FSOD任务上确实有效并直接应用在本文的框架中。本文提出的方法CD-ViTO如图3(a)中橙色增强高亮部分所示。在小节1部分曾说明CD-FSOD的域差与目标数据集的ICV、IB和风格有密切关系。因此,这启发我们通过处理这些特征设计CD-ViTO。于是,提出了新组件可学习实例特征(
M
L
I
F
M_{LIF}
MLIF)、实例重赋权(
M
I
R
M_{IR}
MIR)、域提示器(
M
D
P
M_{DP}
MDP)分别处理小ICV、重度IB以及变换风格。此外,微调(FT)已经在跨域相关的任务中探索过,但是在本文的基准中还是探讨了它。
具体来说,给出
S
S
S和
q
q
q作为输入,执行与DE-ViT相同的流程获得实例特征
F
i
n
s
=
{
F
i
n
s
o
b
,
F
i
n
s
b
g
}
F_{ins} = \{F_{ins}^{ob}, F_{ins}^{bg}\}
Fins={Finsob,Finsbg},候选区域
R
q
R_q
Rq,视觉特征
F
q
F_q
Fq和ROI特征
F
q
r
o
i
F_{q_{roi}}
Fqroi。但是不同于直接对
F
i
n
s
o
b
F_{ins}^{ob}
Finsob取平均获得类原型
F
p
r
o
o
b
F_{pro}^{ob}
Fproob,首先使用
M
L
I
F
M_{LIF}
MLIF将已经计算好的
F
i
n
s
F_{ins}
Fins转为可学习的特征,然后通过执行分开的检测任务(即
L
l
o
c
\mathcal{L}_{loc}
Lloc监督的定位任务和
L
c
l
s
\mathcal{L}_cls
Lcls监督的分类任务)将其改变为
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea1。因为在训练数据打上了类别的标签,这个优化(应该是指
M
L
I
F
M_{LIF}
MLIF)会将实例特征与对应的类别对齐,从而提高特征的辨识度、解决ICV小的问题。接着考虑到图像质量,尤其是目标实例的IB,使用
M
I
R
M_{IR}
MIR给
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea中的目标权重重新赋值,得到新的原型
F
p
r
o
′
F_{pro}^\prime
Fpro′。一般情况下,
M
I
R
M_{IR}
MIR会给IB级别为轻微的高质量实例分配更高的权重。这样高质量实例对它的类原型贡献更大。
M
I
R
M_{IR}
MIR放置在
M
L
I
F
M_{LIF}
MLIF之后,使用相同的
L
l
o
c
\mathcal{L}_{loc}
Lloc和
L
c
l
s
\mathcal{L}_{cls}
Lcls优化。此外,为使模型在变换的风格上具有更好的鲁棒性,提出了
M
D
P
M_{DP}
MDP用于合成几个虚拟域
F
d
o
m
a
i
n
F_{domain}
Fdomain。
M
D
P
M_{DP}
MDP的目的是引入域扰动并使特征在不同域之间保持一致。为保证引入的域的多样性并约束这些域不会影响特征的语义,引进了另一个损失
L
d
p
\mathcal{L}_{dp}
Ldp。
M
D
P
M_{DP}
MDP放置在被
M
I
R
M_{IR}
MIR重赋权的原型,即
F
p
r
o
′
F_{pro}^\prime
Fpro′之上,而
L
d
p
\mathcal{L}_{dp}
Ldp和
L
l
o
c
\mathcal{L}_{loc}
Lloc、
L
c
l
s
\mathcal{L}_{cls}
Lcls一同作用。
至于微调操作,只微调前2个模块,即
M
D
E
T
M_{DET}
MDET和
M
C
L
S
M_{CLS}
MCLS。尽管这简单,但是它在为CD-FSOD使用开放集检测器的情境下仍值得探讨。实验结果(5.2小节)同样表明了该方法的必要性。总体而言,CD-ViTO通过可学习实例特征、实例重赋权和域提示器等有用的干扰以及微调关键组件解决了跨域问题。所有引进的参数(图3(a)中火焰图标部分)是轻量级的,优化它们的目标函数
L
\mathcal{L}
L是:
L
=
L
l
o
c
+
L
c
l
s
+
L
d
p
(
1
)
\mathcal{L} = \mathcal{L}_{loc} + \mathcal{L}_{cls} + \mathcal{L}_{dp}\quad\quad\quad\quad\quad\quad(1)
L=Lloc+Lcls+Ldp(1)
4.2 Key Components of Our CD-ViTO
可学习实例特征
M
L
I
F
M_{LIF}
MLIF。可学习实例特征
M
L
I
F
M_{LIF}
MLIF的实现十分简单和高效。给出计算好的实例特征
F
i
n
s
∈
R
(
N
×
K
+
N
b
g
)
×
D
F_{ins} \in \mathcal{R}^{(N \times K + N_{bg}) \times D}
Fins∈R(N×K+Nbg)×D,其中
N
N
N、
K
K
K、
N
b
g
N_{bg}
Nbg、
D
D
D分别表示目标类别数、样本数、背景实例数、视觉特征的维度,而
M
L
I
F
M_{LIF}
MLIF定义了新的可学习矩阵
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea,该矩阵维度与
F
i
n
s
F_{ins}
Fins相同并使用
F
i
n
s
F_{ins}
Fins初始化。数学表达为:
F
i
n
s
l
e
a
∈
R
(
N
×
K
+
N
b
g
)
×
D
F_{ins}^{lea} \in \mathcal{R}^{(N \times K + N_{bg}) \times D}
Finslea∈R(N×K+Nbg)×D,
F
i
n
s
l
e
a
=
F
i
n
s
F_{ins}^{lea} = F_{ins}
Finslea=Fins。通过优化
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea的值,获得与目标语义信息对齐得更好的实例特征。可学习实例特征的想法与视觉提示学习相对应,视觉提示学习旨在调整输入以更好地适应下游任务。而在本文中,提出了通过设置关键实例特征为可学习参数来调整它们的方法。更重要的是,该模块作为使特征具有更好的辨识度的方法,能够更好地处理低ICV的目标数据。
实例重赋权模块
M
I
R
M_{IR}
MIR。
M
I
R
M_{IR}
MIR使得高质量目标实例,例如IB轻度级别的目标,对类别原型的贡献(影响)更大。
M
I
R
M_{IR}
MIR的结构如图3(b)所示。
M
L
I
F
M_{LIF}
MLIF输出可学习实例特征
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea,首先拿到
F
i
n
s
l
e
a
F_{ins}^{lea}
Finslea中的目标实例特征,记为
F
i
n
s
0
∈
R
(
N
×
K
×
D
)
F_{ins}^0 \in \mathcal{R}^{(N \times K \times D)}
Fins0∈R(N×K×D)。
M
I
R
M_{IR}
MIR有2条使用残差方式连接的路径。更具体地,居于下方的路径输入
F
i
n
s
0
F_{ins}^0
Fins0,进入MLP模块并得到权重分数,该分数用于下一步与
F
i
n
s
0
F_{ins}^0
Fins0的初始值加权求和,得到半成品的原型
F
p
r
o
a
t
t
∈
R
N
×
D
F_{pro}^{att} \in \mathcal{R}^{N \times D}
Fproatt∈RN×D。居于上方的路径对
F
i
n
s
0
F_{ins}^0
Fins0取平均得到
F
p
r
o
a
v
g
∈
R
N
×
D
F_{pro}^{avg} \in \mathcal{R}^{N \times D}
Fproavg∈RN×D。最后,目标原型
F
p
r
o
o
b
′
F_{pro}^{ob^\prime}
Fproob′计算方式为:
α
f
c
(
F
p
r
o
a
t
t
)
+
(
1
−
α
)
F
p
r
o
a
v
g
\alpha fc(F_{pro}^{att}) + (1 - \alpha) F_{pro}^{avg}
αfc(Fproatt)+(1−α)Fproavg,其中
f
c
(
⋅
)
fc(\cdot)
fc(⋅)是一层全连接层,
α
\alpha
α是超参数。最终利用目标原型
F
p
r
o
o
b
′
F_{pro}^{ob^\prime}
Fproob′和背景特征,形成新的原型
F
p
r
o
′
F_{pro}^\prime
Fpro′。
域提示器(Domain Prompter)
M
D
P
M_{DP}
MDP。为使目标原型特征
F
p
r
o
o
b
′
F_{pro}^{ob^\prime}
Fproob′在不同域上具有鲁棒性,需要达到两个目标:(1)合成几个多样性的“域”;(2)使用这些“域”作用于特征时避免语义漂移。为实现这些目标,
M
D
P
M_{DP}
MDP先引进几个可学习向量
F
d
o
m
a
i
n
∈
R
N
d
o
m
×
D
F_{domain} \in \mathcal{R}^{N_{dom} \times D}
Fdomain∈RNdom×D作为视觉域,然后提出若干损失函数用作监督。该“提示器(prompter)”的设想与提示调优(prompt tuning)相关但又有所不同。值得注意的是,这两种方法都使用可训练参数作为提示器,但是一般的提示调优方法通过高效的调整促进预训练模型的转换,而本文引入提示器是用作扰动。
M
D
P
M_{DP}
MDP的图示如图3(b)所示。
N
d
o
m
N_{dom}
Ndom是超参数。具体来说,给定
F
d
o
m
a
i
n
F_{domain}
Fdomain和
F
p
r
o
o
b
′
F_{pro}^{ob^\prime}
Fproob′,首先提出域域差异性损失
L
d
o
m
a
i
n
\mathcal{L}_{domain}
Ldomain,确保不同域,如
f
d
i
f^{d_i}
fdi和
f
d
j
f^{d_j}
fdj,之间是完全不同的。其次,对于
F
p
r
o
o
b
′
F_{pro}^{ob^\prime}
Fproob′中的一个原型
f
p
i
f_{p_i}
fpi,从
F
d
o
m
a
i
n
F_{domain}
Fdomain采样出两个不同的域
f
d
k
f^{d_k}
fdk和
f
d
m
f^{d_m}
fdm,用来随机扰动
f
p
i
f_{p_i}
fpi形成两个扰动原型
f
p
i
d
k
f_{p_i}^{d_k}
fpidk和
f
p
i
d
m
f_{p_i}^{d_m}
fpidm。扰动操作通过叠加特征,如
f
p
i
d
k
=
f
p
i
+
f
d
k
f_{p_i}^{d_k} = f_{p_i} + f^{d_k}
fpidk=fpi+fdk,完成。域
f
d
m
f^{d_m}
fdm同样地与其他目标原型叠加形成
f
p
j
d
m
f_{p_j}^{d_m}
fpjdm,其中
j
=
1
,
…
,
N
j = 1, \dots, N
j=1,…,N。同时约束
f
p
i
d
k
f_{p_i}^{d_k}
fpidk和
f
p
i
d
m
f_{p_i}^{d_m}
fpidm接近,但是不同类别原型得到的扰动原型之间是不同的。这就引申出原型一致性损失
L
p
r
o
t
o
\mathcal{L}_{proto}
Lproto。
L
d
o
m
a
i
n
\mathcal{L}_{domain}
Ldomain和
L
p
r
o
t
o
\mathcal{L}_{proto}
Lproto均由InfoNCE loss实现,公式如下:
L
d
o
m
a
i
n
=
−
1
N
d
o
m
∑
i
=
1
N
d
o
m
(
log
exp
(
f
d
i
⋅
f
d
i
/
τ
)
∑
j
=
1
N
d
o
m
exp
(
f
d
i
⋅
f
d
j
/
τ
)
)
(
2
)
L
p
r
o
t
o
=
−
1
N
∑
i
=
1
N
(
log
exp
(
f
p
i
d
k
⋅
f
p
i
d
m
/
τ
)
∑
j
=
1
N
exp
(
f
p
i
d
k
⋅
f
p
j
d
m
/
τ
)
)
(
3
)
\mathcal{L}_{domain} = - \frac{1}{N_{dom}} \sum_{i=1}^{N_{dom}} \left(\log \frac{\exp (f^{d_i} \cdot f^{d_i} / \tau)}{\sum_{j=1}^{N_{dom}} \exp(f^{d_i} \cdot f^{d_j} / \tau)}\right)\quad\quad\quad(2)\\ \mathcal{L}_{proto} = - \frac{1}{N} \sum_{i=1}^N \left(\log \frac{\exp(f_{p_i}^{d_k} \cdot f_{p_i}^{d_m} / \tau)}{\sum_{j=1}^N \exp(f_{p_i}^{d_k} \cdot f_{p_j}^{d_m} / \tau)} \right)\quad\quad\quad\quad\quad(3)
Ldomain=−Ndom1i=1∑Ndom(log∑j=1Ndomexp(fdi⋅fdj/τ)exp(fdi⋅fdi/τ))(2)Lproto=−N1i=1∑N(log∑j=1Nexp(fpidk⋅fpjdm/τ)exp(fpidk⋅fpidm/τ))(3)其中
τ
\tau
τ是温度超参数(temperature hyperparameter)。此外,扰动特征也做了分类,如
f
p
i
d
k
f_{p_i}^{d_k}
fpidk和对应的类标签之间引申出新的交叉熵损失函数
L
p
r
o
t
o
c
l
s
\mathcal{L}_{proto_{cls}}
Lprotocls。基于
L
d
o
m
a
i
n
\mathcal{L}_{domain}
Ldomain、
L
p
r
o
t
o
\mathcal{L}_{proto}
Lproto和
L
p
r
o
t
o
c
l
s
\mathcal{L}_{proto_{cls}}
Lprotocls,有:
L
d
p
=
L
d
o
m
a
i
n
+
L
p
r
o
t
o
+
L
p
r
o
t
o
c
l
s
(
4
)
\mathcal{L}_{dp} = \mathcal{L}_{domain} + \mathcal{L}_{proto} + \mathcal{L}_{proto_{cls}}\quad\quad\quad\quad\quad(4)
Ldp=Ldomain+Lproto+Lprotocls(4)
5 Experiments
5.1 Evaluated Methods
5.2 Main Results on CD-FSOD
5.3 Analysis on the Proposed Modules
6 Conclusion
7 Implementation Details(此节开始为追加内容)
8 More Results
8.1 Results on Standard FSOD
8.2 Ablation Results on Each Module
8.3 More Visualization Results
8.4 More Discussion with Related Works
9 More Details of Proposed Benchmark
9.1 Target Datasets
9.2 Domain Metrics
原文为“But different from directly averaging F i n s o b F_{ins}^{ob} Finsob to obtain class prototypes F p r o o b F_{pro}^{ob} Fproob for objects, we first utilize our M L I F M_{LIF} MLIF to make the precalculated F i n s F_{ins} Fins learnable and adapt them as F i n s l e a F_{ins}^{lea} Finslea by performing the disentangled detection tasks i.e., the localization task supervised by L l o c \mathcal{L}_{loc} Lloc and the classification task supervised by L c l s \mathcal{L}_{cls} Lcls. ”,这句意思我不确定“by”后面的方式有没有作用到“and”前面的“make learnable”事件。 ↩︎