CoIn: Contrastive Instance Feature Mining for Outdoor 3D Object Detection with Very Limited Annotations
原文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Xia_CoIn_Contrastive_Instance_Feature_Mining_for_Outdoor_3D_Object_Detection_ICCV_2023_paper.pdf
1. 引言
目前,使用有限的有标签数据训练有效的3D目标检测器 得到了广泛关注。但标注有限时,有两个主要问题:
- 不可区分的特征:在少量标签下训练的模型难以在特征空间中区分前景/背景点或来自不同物体的点。二分类任务中可以使用对比学习增强特征区分度,但较少被应用于3D检测的多分类任务。
- 缺少初始伪标签:一些半监督方法使用伪标签标记无标签数据,但这需要初始检测器的性能足够可靠。但当标签有限的情况下,初始检测器不能生成合理的伪标签。
目前有限标签的3D目标检测方法采用3种策略:弱监督、半监督和稀疏监督。弱监督使用非实例级的标注(如点级标注);半监督选择一部分场景进行完整标注;稀疏监督则在每个场景内标注某些实例。尽管可以减少标注负担,但这些方法对大数据级来说仍然费力,且后两者仍需要可靠的初始检测器生成伪标签。
本文提出的方法由多类对比学习模块(MCcont)、实例特征挖掘模块(InF-Mining),以及有标签到伪标签的对比学习模块(LPcont)。MCcont从多类别中同时提取特征,相同类别的特征组成正样本空间,其余类别的空间组成负样本空间,从而减小特征空间中的类内距离并增大类间距离。InF-Mining模块通过同类特征的相似度挖掘特征级别的伪标签,并从特征级伪标签的位置解码3D物体的位置。LPcont则选择有标签实例特征作为正样本,并限制伪正样本的冗余性。
3. 方法
本文提出CoIn,可为稀疏监督检测器提供强监督信号。其以CenterPoint为基本框架,结构如下图所示。
3.1 多类别对比学习
对比学习可增强特征的区分度,但在标注有限的情况下,对比学习的采样空间很小,从而限制了对比学习的有效性。本文提出MCcont,利用所有类别的信息,以提高采样空间的利用率。
设 F = { f ( i , j ) ∣ i = 1 , ⋯ , h , j = 1 , ⋯ , w } \mathcal F=\{f(i,j)|i=1,\cdots,h,j=1,\cdots,w\} F={f(i,j)∣i=1,⋯,h,j=1,⋯,w}为主干网络输出的 h × w h\times w h×w的BEV特征图。 Y k ∈ [ 0 , 1 ] w × h Y_k\in[0,1]^{w\times h} Yk∈[0,1]w×h表达CenterPoint类别 k ( k = 1 , ⋯ , K ) k(k=1,\cdots,K) k(k=1,⋯,K)的(真实)热图,且实例特征集合为 I k = { f ( i , j ) ∣ Y k ( i , j ) = 1 } \mathcal I_k=\{f(i,j)|Y_k(i,j)=1\} Ik={f(i,j)∣Yk(i,j)=1},因为热图值为1的位置对应物体中心; n k = ∣ I k ∣ n_k=|\mathcal I_k| nk=∣Ik∣为类别 k k k下的有标签实例数。对比学习优化目标是提高 I k \mathcal I_k Ik中实例特征的相似度,并区分 I k \mathcal I_k Ik与 { I i ∣ i = 1 , ⋯ , K , i ≠ k } \{\mathcal I_i|i=1,\cdots,K,i\neq k\} {Ii∣i=1,⋯,K,i=k}。
本文将多类对比学习视为查字典任务。设计参考矩阵 M K × N \mathcal M^{K\times N} MK×N,其每一行表达一个类别,不同元素达不同实例。 N = max ( n k ) N=\max(n_k) N=max(nk)。查询矩阵 M ′ K × N \mathcal M'^{K\times N} M′K×N通过交换 M \mathcal M M的列得到。参考矩阵和查询矩阵同一行的元素表示同一类别的不同实例,组成正样本对;不同行的元素组成负样本对。通过矩阵乘法计算 M \mathcal M M与 M ′ T \mathcal M'^T M′T的相似度,可得到相似度矩阵 S ∈ [ 0 , 1 ] K × K \mathcal S\in[0,1]^{K\times K} S∈[0,1]K×K。相似度矩阵的对角线即正样本对的相似度,需要被最大化;其余位置为负样本对的相似度,需要被最小化。
但是,直接使用
M
\mathcal M
M与
M
′
\mathcal M'
M′会需要每个样本与一个样本组成正样本对,与
K
−
1
K-1
K−1个样本组成负样本对。本文使用“滚动”操作,循环地移动
M
′
\mathcal M'
M′的每一列,并堆叠以获得新的查询矩阵
M
ˉ
′
K
×
N
2
\mathcal {\bar M'}^{K\times N^2}
Mˉ′K×N2;此外,沿行方向复制
M
\mathcal M
M
K
−
1
K-1
K−1次,获得新矩阵
M
ˉ
K
×
N
2
\bar{\mathcal M}^{K\times N^2}
MˉK×N2(如下图所示)。这样,每个样本可与
K
−
1
K-1
K−1个样本组成正样本对,与
(
K
−
1
)
N
(K-1)N
(K−1)N个样本组成负样本对。由于3D场景中的实例有限,矩阵不会很大。
最后,MCcont的损失函数为:
L
M
C
c
o
n
t
=
−
1
K
∑
i
=
1
K
log
exp
(
d
(
M
ˉ
(
i
,
:
)
,
M
ˉ
′
(
:
,
i
)
)
N
2
/
τ
)
∑
j
≠
i
exp
(
d
(
M
ˉ
(
i
,
:
)
,
M
ˉ
′
(
:
,
j
)
)
N
2
/
τ
)
\mathcal L_{MCcont}=-\frac 1 K\sum_{i=1}^K\log\frac{\exp(\frac{d(\bar M(i,:),\bar M'(:,i))}{N^2}/\tau)}{\sum_{j\neq i}\exp(\frac{d(\bar M(i,:),\bar M'(:,j))}{N^2}/\tau)}
LMCcont=−K1i=1∑Klog∑j=iexp(N2d(Mˉ(i,:),Mˉ′(:,j))/τ)exp(N2d(Mˉ(i,:),Mˉ′(:,i))/τ)
其中 τ \tau τ为温度缩放参数, d ( ⋅ , ⋅ ) d(\cdot,\cdot) d(⋅,⋅)为逐元素相乘和求和。MCcont可使同类特征更相似,而不同类特征更有区分度。
3.2 实例特征挖掘
得到有区分性的特征 F ˘ = { f ˘ ( i , j ) ∣ i = 1 , ⋯ , h , j = 1 , ⋯ , w } \mathcal {\breve F}=\{\breve f(i,j)|i=1,\cdots,h,j=1,\cdots,w\} F˘={f˘(i,j)∣i=1,⋯,h,j=1,⋯,w}后,可以使用参考实例特征与无标签实例特征之间的相似性挖掘更强的监督信号。
首先使用加权平均操作获取各类的元实例特征:
E
k
=
∑
i
,
j
f
˘
(
i
,
j
)
⋅
Y
k
(
i
,
j
)
∑
i
,
j
Y
k
(
i
,
j
)
,
k
=
1
,
⋯
,
K
E_k=\frac{\sum_{i,j}\breve f(i,j)\cdot Y_k(i,j)}{\sum_{i,j}Y_k(i,j)},k=1,\cdots,K
Ek=∑i,jYk(i,j)∑i,jf˘(i,j)⋅Yk(i,j),k=1,⋯,K
未知特征被记为
U
k
(
i
,
j
)
=
{
f
˘
(
i
,
j
)
∣
Y
k
(
i
,
j
)
=
0
}
\mathcal U_k(i,j)=\{\breve f(i,j)|Y_k(i,j)=0\}
Uk(i,j)={f˘(i,j)∣Yk(i,j)=0}。计算未知特征与已知实例之间的欧式距离和余弦相似度:
S
k
′
(
i
,
j
)
=
min
(
D
1
(
E
k
,
U
k
(
i
,
j
)
)
,
D
2
(
E
k
,
U
k
(
i
,
j
)
)
)
S'_k(i,j)=\min(D_1(E_k,\mathcal U_k(i,j)),D_2(E_k,\mathcal U_k(i,j)))
Sk′(i,j)=min(D1(Ek,Uk(i,j)),D2(Ek,Uk(i,j)))
其中
D
1
=
1
−
min
(
L
2
,
1
)
,
D
2
=
(
c
o
s
s
i
m
+
1
)
/
2
D_1=1-\min(L_2,1),D_2=(cossim+1)/2
D1=1−min(L2,1),D2=(cossim+1)/2,
S
′
∈
[
0
,
1
]
S'\in[0,1]
S′∈[0,1]。两个指标均接近1时,视为相似特征。伪热图
Y
^
\hat Y
Y^生成如下:
Y
^
k
(
i
,
j
)
=
{
η
S
′
(
i
,
j
)
若
Y
k
(
i
,
j
)
=
0
,
S
′
(
i
,
j
)
≥
T
Y
k
否则
\hat Y_k(i,j)=\left\{\begin{matrix}\eta S'(i,j)&若Y_k(i,j)=0,S'(i,j)\geq T\\Y_k&否则\end{matrix}\right.
Y^k(i,j)={ηS′(i,j)Yk若Yk(i,j)=0,S′(i,j)≥T否则
其中超参数
η
\eta
η为缩放因子,
T
T
T为相似度阈值。伪热图会替代原始热图作为监督信号,以训练检测器。InF-Mining的分类损失为:
L
I
n
F
−
M
i
n
i
n
g
=
L
h
e
a
t
m
a
p
(
Y
ˉ
,
Y
^
)
\mathcal{L}_{InF-Mining}=\mathcal{L}_{heatmap}(\bar Y,\hat{Y})
LInF−Mining=Lheatmap(Yˉ,Y^)
其中 Y ˉ \bar Y Yˉ为预测热图, L h e a t m a p \mathcal{L}_{heatmap} Lheatmap为CenterPoint的热图预测损失。
3.3 有标签到伪标签的对比学习
由于伪热图存在误差,本文提出LPcont,使用有标签正样本实例特征监督伪正实例的预测。
对类别
k
k
k,获取有标签正样本实例特征集合
I
˘
k
=
{
f
˘
(
i
,
j
)
∣
Y
k
(
i
,
j
)
=
1
}
=
{
I
˘
k
1
,
⋯
,
I
˘
k
n
k
}
\breve I_k=\{\breve f(i,j)|Y_k(i,j)=1\}=\{\breve I_k^1,\cdots,\breve I_k^{n_k}\}
I˘k={f˘(i,j)∣Yk(i,j)=1}={I˘k1,⋯,I˘knk}和伪正样本实例特征集合
O
k
=
{
f
˘
(
i
,
j
)
∣
t
o
p
_
m
k
(
Y
ˉ
k
(
i
,
j
)
)
}
=
{
O
k
1
,
⋯
,
O
k
m
k
}
O_k=\{\breve f(i,j)|top\_m_k(\bar Y_k(i,j))\}=\{O_k^1,\cdots,O_k^{m_k}\}
Ok={f˘(i,j)∣top_mk(Yˉk(i,j))}={Ok1,⋯,Okmk}。
t
o
p
_
m
k
top\_m_k
top_mk函数返回输入中
m
k
m_k
mk个最大的元素。为增强元实例特征
E
k
E_k
Ek的区分度,需要减小元实例与有标签实例在特征空间中的距离。将元实例特征与伪正样本实例特征放在一起:
I
^
k
=
{
O
k
1
,
⋯
,
O
k
m
k
,
E
k
}
=
{
I
^
k
1
,
⋯
,
I
^
k
m
k
,
I
^
k
m
k
+
1
}
\hat I_k=\{O_k^1,\cdots,O_k^{m_k},E_k\}=\{\hat I_k^1,\cdots,\hat I_k^{m_k},\hat I_k^{m_k+1}\}
I^k={Ok1,⋯,Okmk,Ek}={I^k1,⋯,I^kmk,I^kmk+1}
并计算损失函数:
L
L
P
c
o
n
t
=
−
1
n
k
×
(
m
k
+
1
)
×
K
∑
n
=
1
n
k
∑
k
=
1
K
∑
m
=
1
m
k
+
1
log
exp
(
I
˘
k
n
,
I
^
k
m
)
/
τ
∑
i
≠
k
exp
(
I
˘
k
n
,
I
^
i
m
)
/
τ
\mathcal L_{LPcont}=-\frac 1 {n_k\times(m_k+1)\times K}\sum_{n=1}^{n_k}\sum_{k=1}^K\sum_{m=1}^{m_k+1}\log\frac{\exp(\breve I_k^n,\hat I_k^m)/\tau}{\sum_{i\neq k}\exp(\breve I_k^n,\hat I_i^m)/\tau}
LLPcont=−nk×(mk+1)×K1n=1∑nkk=1∑Km=1∑mk+1log∑i=kexp(I˘kn,I^im)/τexp(I˘kn,I^km)/τ
则LPcont最大化 I ˘ k \breve I_k I˘k与 I ^ k \hat I_k I^k之间的相似度,最小化 I ˘ k \breve I_k I˘k与 { I ^ i , i ≠ k } \{\hat I_i,i\neq k\} {I^i,i=k}的相似度。使用有标签实例特征作为参考,以增强正确预测的竞争力,然后过滤掉伪正样本实例特征。
3.4 训练损失
上述三个模块的损失,加上CenterPoint中的回归损失即为总损失。
3.5 CoIn++和其余检测器的扩展
CoIn++:基于自训练的伪标签挖掘方法依赖初始伪标签的质量。本文可生成更好的初始伪标签,因此可以使用自训练方法进行伪标签挖掘。见补充材料。
其余检测器的扩展:对于一阶段检测器而言,将检测头替换为CenterHead即可。但对于二阶段或多阶段检测器,直接使用CoIn预测的RoI使得仍需要监督信号进行边界框修正。本文基于预测RoI的分数,生成伪RoI标签。这是因为一阶段CoIn成功挖掘出了无标签监督信号,可帮助后续阶段修正。
4. 实验
4.1 KITTI数据集与评估指标
KITTI训练集的10%仅保留一个实例标注;其余标注被丢弃。
4.2 实施细节
使用随机翻转、全局缩放、全局旋转、GT采样数据增广。
4.3 主要结果
与SotA方法比较:与SotA半监督/稀疏监督方法比较,本文方法(CoIn、CoIn++)能有最好的性能。
与全监督方法比较:在有限标签下,全监督方法性能严重下降;CoIn++的性能能接近完整标签下的全监督方法。
在nuScenes和Waymo open数据集上的评估:在有限标签下,本文的方法能大幅超过CenterPoint。
4.4 消融研究
MCcont、InF-Mining、LPcont的有效性:依次增加模块,均能提高性能。其中InF-Mining对性能的影响最大,这说明特征级伪标签能有效捕捉潜在的未标注监督信号。
不同标注率的比较:随着标注率的降低,CenterPoint的性能严重下降。CoIn则能在CenterPoint的基础上带来大幅提升。
相似度阈值:为了挖掘更可靠的伪标签, T T T被设置得较大,因为较小的阈值会引入噪声标签。但过大的阈值会使模型难以挖掘特征级伪标签。