1. 域适应的跨模态学习概述
域适应是在标签稀缺时实现学习的一项重要任务。虽然大多数工作只关注图像模态,但存在许多重要的多模态数据集。为了利用多模态进行域适应,我们提出了跨模态学习,我们通过相互模仿来加强两种模态的预测之间的一致性。我们限定网络对标记的数据做出正确的预测,并对未标记的目标域数据进行跨模态的一致性预测。无监督和半监督的域适应 settings 的实验证明了这种新颖的域适应策略的有效性。具体来说,我们评估来自 2D 图像、3D 点云或两者都有的 3D 语义分割任务。我们利用最近的自动驾驶数据集来产生各种各样的域适应场景,包括场景布局上、光照上、传感器设置上、天气上的变化,以及 synthetic-to-real
的设置。在所有域适应场景中,我们的方法显著地改进了以前的单模态域适应的 baseline .
2D 和 3D 网络分别将图像和点云作为输入,并预测它们各自的 3D 分割标签。请注意,2D 预测被转换到 3D。所提出的跨模态学习通过相互模仿来加强 2D 和 3D 预测之间的一致性,这在无监督和半监督的域适应中都被证明是有益的。
我们提出了一种跨模态损失,它加强了多模态预测之间的一致性,如图 1 所示。我们专门设计的 dual-head
架构,通过将有监督的主分割损失与无监督的跨模态损失解耦,进而实现鲁棒地训练。
我们证明了,我们提出的跨模态框架可以应用于无监督的情况(称为 xMUDA
)或者半监督的情况(称为 xMoSSDA
)。
本文是我们工作 [9] 的扩展,它仅仅涵盖了三个场景中评估的 UDA
。除了实验评估(第 4 节)的显著扩展,包括添加了两个新的域适应场景(见图 5)、对新发布的数据集 nuScenesLidarseg
[10] 的评估以及包含新的 baselines ,此外,我们还在第 3.3 节和第 4.4 节中,添加了一个全新的半监督域适应 (SSDA
) 用例。[9] 中的原始代码库,将通过新的实验和 SSDA
设置进行扩展。
总之,我们的贡献是:
- 我们引入了新的域适应场景(4 个无监督和 4 个半监督),用于 3D 语义分割任务,利用最新的带有相机和激光雷达的 2D-3D 自动驾驶数据集;
- 我们提出了一种新的域适应方法,它具有无监督的跨模态损失,可强制执行多模态数据一致性,并补充其他现有的无监督技术[11];
- 我们设计了一个鲁棒的
dual-head
架构,将跨模态损失与主要分割目标分离; - 我们分别评估了
xMUDA
和xMoSSDA
,即我们的无监督和半监督域适应场景,并证明了它们的卓越性能。 - 2 语义分割中域适应的跨模态学习理论
-
2.1 无监督域适应
在过去的几年中,人们对无监督域适应 (
UDA
) 越来越感兴趣,以用于复杂的感知任务,如目标检测和语义分割。在这些方法的背后,有着学习域不变特征的相同本质,即来自不同域的特征应该只引入很小的差异。一些工作通过促进对抗训练,来最小化源域和目标域间的分布差异,无论是在像素 [3]、特征 [4] 还是输出空间 [5]、[6] 上。除了对抗学习,傅里叶变换还可以用于将源图像风格化为目标图像[14]。从半监督学习 [11] 中重新观察,使用伪标签的自训练最近也被证明对UDA
有效 [7]、[15]、[16]。最近的工作开始处理 3D 世界(即点云)中的
UDA
。LiDAR 域适应工作在 [17] 中进行了综述。PointDAN
[18] 提出联合对齐用于分类的局部特征和全局特征。Achituve
等人 [19] 使用自监督学习提高UDA
性能。Wu
等人 [8] 对来自 LiDAR 点云的 3D 分割中的UDA
, 采用激活关联对齐 [20]。Langer
等人 [21] 使用重采样将 64 设计为 32 线 LiDAR,从而在输入点云空间中对齐源域和目标域。Yi
等人[22] 还通过将特定于 LiDAR 的补全网络与和 LiDAR 无关的分割网络链接起来,解决了 LiDAR 采样模式之间的差距。在这项工作中,我们还解决了域适应问题,但从不同的角度,即在输出空间中来对齐 RGB 和 LiDAR。据我们所知,在多模态场景的 2D/3D 语义分割中,以前没有
UDA
的工作。只有一些工作结合其他的模态,例如深度。且仅在源域训练时可用,并利用这些 “特殊信息” 来提高适应性能 [23]、[24]。不同的是,在训练和测试时,我们的工作假设所有模态在源域和目标域上均可用。2.2 半监督域适应
虽然 UDA 已成为一个活跃的研究课题,而半监督域适应 (
SSDA
) 虽然在实际应用中具有很高的相关性,但迄今为止的研究却很少。在SSDA
中,我们希望将知识从具有标记数据的源域迁移到具有部分标记数据的目标域。早期,基于 SVM [25] 的方法已经解决了图像分类和目标检测中的
SSDA
[26]、[27]、[28];很少有和深度网络相关的。最近,Saito
等人 [29] 提出了一种对抗SSDA
学习方案,用于优化具有极大极小熵的few-shot
深度分类模型。Wang
等人[30] 通过进一步对齐标记源域和目标域样本的特征 prototype,将 2D 语义分割中的UDA
技术扩展到SSDA
的 setting。我们的工作,是第一个用于在 点云分割中解决SSDA
问题的。 -
2.3 跨模态学习
在我们的上下文中,我们将跨模态学习定义为模态之间的知识转移。这与多模态融合不同,后者是有监督的训练单个模型以组合互补的输入,例如:
RGB-D
[31]、[32] 或LiDAR
和RGB
[33]、[34]、[35]。Castrejón
等人 [36] 通过跨模态执行类似的统计数据,进而学习与输入模态(真实图像、剪贴画、文本等)无关的联合high-level
特征表征,从而解决跨模态的场景检索问题。Gupta
等人在跨模态设置中采用更直接的蒸馏 [38] 特征对齐技术。自监督学习在没有标签的情况下产生有用的表征,例如通过强制具有不同输入模态的网络来预测相似的输出。
Sayed
等人 [39] 最小化 RGB 和光流特征之间的余弦距离。Alwassel
等人[40] 使用聚类生成伪标签,并相互训练音频和视频网络。Munro
等人 [41] 使用具有 RGB 和流之间时间一致性的自监督。与我们类似,
Gong
等人 [42] 解决了用 RGB 和 LiDAR 进行分割的UDA
,但专注于融合来自多个源域数据集的部分标签。相反,我们使用单一源域数据集并探索UDA
和SSDA
的任务。2.4 点云分割
虽然图像是密集的张量,但 3D 点云可以以多种方式表征,这导致补全网络系列并行发展。
体素与像素相似,但在它们的密集表征中非常浪费内存,因为它们中的大多数通常是空的。一些
3D CNNs
[43]、[44] 依靠OctTree
[45] 来减少内存使用,但没有解决流形扩张的问题。Graham
等人 [13] 以及类似的其他实现 [46] ,通过使用哈希表仅在 active 体素上进行卷积来解决后面的问题。这允许非常高的分辨率,通常每个体素只有一个点。除了立方体素外,[47]、[48] 还使用了圆柱形体素。最后,稀疏point-voxel
卷积 [49] ,受益于对基于点的高分辨率分支的轻量级支持。基于点的网络在连续的 3D 空间中执行计算,因此可以直接接受点云作为输入。
PointNet++
[50] 使用point-wise
卷积、maxpooling
来计算全局特征和局部邻域聚合,用于类似于CNNs
的分层学习。在这个方向上已经提出了许多改进,例如:连续卷积 [51]、可变形卷积核 [52] 或轻量级替代方案 [53]。在这项工作中,我们选择在ScanNet
[54] 上表现最好的SparseConvNet
[13] ,作为我们的 3D 网络。 -
3.域适应的跨模态学习
我们的目标是利用多模态作为域适应中无监督学习的知识来源。因此,我们提出了一个跨模态学习目标,作为模态之间的相互模仿的game 来实现,从而推动来自不同模态的预测之间的一致性。值得注意的是,虽然我们的训练利用了多模态,但 2D/3D 预测仅依赖于我们架构中的 2D 或 3D 输入,因此在推理时是单模态的。具体来说,我们研究了用于 3D 语义分割任务的 2D 图像和 3D 点云的模态,且它是机器视觉的核心任务。
我们在第3.1节中介绍了网络架构。我们的跨模态无监督域适应框架,称为“
xMUDA
”,在第3.2节中。以及它的半监督版本,类似地称为“xMoSSDA
”,在第3.3节中.3.1 架构
我们的架构预测
point-wise
分割标签。它由两个独立的 streams 组成,分别以 2D 图像和 3D 点云作为输入,并分别输出大小为 和 的特征,其中 是摄像机广角范围内的 3D 点数。概述如图 2 所示。通过设计,2D 和 3D streams 是独立的,即在每个stream 中,点云的语义预测仅依赖于各自的模态。这样的架构设计,可以更好地理解每种模态在特定场景中的优缺点;它还有助于突出我们提出的跨模态学习的意义。作为网络
backbones
,我们将SparseConvNet
[13] 用于 3D,将U-Net
[12] 的修改版用于 2D。更多的实现细节在第 4.2 节中提供。Dual 分割头。我们将分割头(图 2 中的 “classify” 箭头)称为网络中的最后一个线性层,它将输出特征转换为
logits
,然后通过一个softmax
函数来产生类概率。 -
Single-head 与 dual-head 架构。 (a) 直接在主分割头之间强制执行一致性的简单方法。(b) 我们提出了一种
dual-head
架构,以将模拟预测与主分割头分离,提高鲁棒性。 -
对于跨模态学习,我们在 2D 和 3D 输出概率之间建立了一个模仿
game
,即每个模态应该预测另一个模态的输出。总体目标推动两种模态达成一致,从而加强输出之间的一致性。在一种简单的方法中,每个模态都有一个分割头(图 3a),并且跨模态优化目标对齐两种模态的输出。不幸的是,这种设定并不鲁棒,因为模仿目标直接与主分割目标竞争。风险在于,来自弱模态的负迁移可能会降低强模态的性能。这就是为什么在实践中,需要降低模仿损失 的权重。分割损失用于提高性能。然而,这是一个严重的约束,因为降低模仿损失的权重也会降低其适应效果。
为了解决这个问题,我们提出将模仿与主分割目标分离。因此,我们提出了一种
dual-head
架构,如图 3 和图 3b 所示。在此设置中,2D 和 3D streams 都有两个分割头:一个用于可能最佳预测的主头,一个用于估计其他模态输出的模拟头。四个分割头的输出(见图 2)的大小为 ,其中 是类的数目,这样我们就可以获得每个 3D 点的类概率向量。两个主要头产生最佳的分割预测,每个分支上分别为 和 。两个模拟头估计另一个模态的输出:2D 估计 3D()和 3D 估计 2D()。在下文中,我们将分别介绍如何在无监督(第 3.2 节)和半监督(第 3.3 节)域适应中,使用所描述的架构进行跨模态学习。
-
3.2 跨模态学习
跨模态的无监督学习的目标是双重的。首先,在目标域数据集上,我们希望将知识从一种模态迁移到另一种模态。例如,如果一种模态对域迁移比另一种更敏感,那么鲁棒模态应该
teach
敏感模态,在目标域中没有可用标签数据时的对应正确类别。其次,我们在源域和目标域上设计一个辅助目标,其任务是估计其他模态的预测。通过不仅模仿最大概率的类别,而且模仿 类似teacher-student
蒸馏[38]中的整个分布,进而交换了更多信息,从而产生了更软的标签。跨模态损失 选择 散度,并将其定义如下: -
-
其中, 来自主预测的目标域分布,将由模拟预测 估计。此损失应用于源域和目标域,同时它不需要
ground-truth
标签,并且它是我们提出的域适应框架的关键。在源域中, 可以看作是除了主分割损失 之外的辅助模仿损失。 -
每个网络 stream(2D 和 3D)的最终目标,为源域数据上的分割损失 和两个域上的跨模态损失 的组合:
-
-
分别在源域和目标域上加权 的超参数, 是 2D 或 3D stream 的网络权重。本方法与
Deep Mutual Learning
[55]存在相似之处,例如:协同训练两个网络并使用 KL 散度作为模仿损失。然而,与这项工作不同的是,我们的跨模态学习是在无监督的情况下建立了跨模态(2D/3D)的一致性。 -
使用伪标签进行自训练
跨模态学习是对伪标签 [11] 的补充,伪标签最初用于半监督学习,最近用于
UDA
[7]、[15]。为了从两者中受益,每一次都使用公式 4 优化了模型。我们离线提取伪标签,根据预测的类概率选择置信度高的标签。然后,我们使用生成的伪标签从头开始再次训练,从而在目标域训练集上增加额外的分割损失。优化问题为 : -
xMUDA
变体,我们称之为 xMUDA~PL -
数据集
为了构成图 5 中展示的域适应场景,我们利用了公共数据集
nuScenes-Lidarseg
[10]、VirtualKITTI
[56]、SemanticKITTI
[2]、A2D2
[57] 和Waymo Open
数据集 (Waymo OD
) [58] 。数据集划分的详细信息在表 1 中。我们的场景涵盖了典型的DA
挑战,例如:场景布局的变化, 如nuScenes-Lidarseg:USA/Singapore
场景中左右侧驾驶之间的变化;光照的变化,如nuScenes-Lidarseg: Day/Night
中白天和黑夜之间的变化;合成到真实的数据集,如VirtualKITTI/SemanticKITTI
中从模拟深度和RGB 到 真实 LiDAR 和相机;不同的传感器设置和特性,如A2D2 / SemanticKITTI
中的分辨率 与FoV
;天气变化,如Waymo OD: SF,PHX,MTV/RK
中阳光明媚的旧金山、凤凰城、Mountain View 和多雨的 Kirkland 之间的变化。在所有数据集中,LiDAR 和相机都是同步校准的,允许 2D/3D 投影。为了跨域数据集的一致性,我们只使用前置摄像头的图像(即使有多个摄像头可用)。
Waymo OD
数据集不提供point-wise
3D 分割标签,因此我们利用 3D 目标的bounding-box
标签。位于框内的点被标记为该类,而所有位于框外的点则被标记为背景。为了抵消源域和目标域的类别不匹配(例如,
VirtualKITTI / SemanticKITTI
),或者说是为了适应类别的不足,我们应用了自定义类别的mapping
,在补充材料中详述描述。请注意,VirtualKITTI
数据集提供了深度图,因此我们通过进行均匀点采样来模拟 LiDAR 的扫描。所有的训练数据和数据集拆分都可以用我们的代码复现,更多细节可见补充材料。
-
提出的所有 DA 场景中 frames 的拆分大小。虽然
UDA
( ) 中只有一个目标域训练集,但SSDA
中有两个:标记的目标域训练集 和 (更大的)未标记训练集 。2D网络。我们使用带有
ResNet34
[59]的U-Net
[12] 修改版本作为编码器,以及带有转置卷积和skip connections
的解码器。为了将 2D 特征提升到 3D,在 个 3D 点投影的像素位置,我们对大小为 、、 的输出特征图进行下采样。因此,2D 网络的输入为图像 ,并输出大小为 、 的特征。3D 网络。我们使用官方的
SparseConvNet
[13] 实现,以及具有 6 次下采样的U-Net
架构。体素的大小设置为 ,小到每个体素只有一个 3D 点。因此,3D 网络的输入为点云 ,并输出大小为 、 的特征。训练。为了解决类别不平衡问题,我们采用标准的 2D/3D 数据增强和
log-smoothed
的类权重。在PyTorch
中,为了计算跨模态损失的 KL 散度,我们分离目标变量以仅在 2D 或 3D 网络中反向传播。我们以 8 的batch size
进行训练,使用 、 的 Adam 优化器进行训练。针对使用小型VirtualKITTI
数据集的场景,训练 30k 次迭代;而对其他所有场景,训练 100k 次迭代。在每次迭代中,我们计算并累加源域和目标域 batch 的梯度,共同训练 2D 和 3D stream。为了将训练放入具有 11GB 内存的单 GPU 中,我们调整了图像的大小,并在VirtualKITTI
和SemanticKITTI
中还对它们进行了裁剪。对于伪标签模型的变体 xMUDA~PL~ 和 xMoSSDA~PL~,我们在 [7] 中分别使用训练模型
xMUDA
和xMoSSDA
中离线生成的伪标签。然后,我们从头开始重新训练,另外使用伪标签,优化 公式5 和 公式7。重要的是,我们只使用最后一个checkpoint
来生成伪标签,而不是使用可以提供监督信号的最佳权重。 -
五个 DA 方案概述。我们使用
metadata
生成nuScenes-Lidarseg
[10] 数据集划分。第三个和第四个DA
场景使用SemanticKITTI
[2] 作为目标域数据集,合成的VirtualKITTI
数据集 [56] 或 真实的A2D2
数据集 [57] 作为源域数据集。请注意,我们展示了使用 LiDAR 覆盖的A2D2 /SemanticKITTI
场景,以可视化密度差异和由此产生的域差距。最后,Waymo OD
[58] 在旧金山 (SF)、凤凰城 (PHX) 和山景城 (MTV) 等城市提供源域数据集,在 Kirkland (KRK) 提供目标域数据集。我们在情景1到4上评估了xMUDA
,在情景 1、4、5、3上评估xMoSSDA
,具体可见补充材料 -
表 2:关于 3D 语义分割的 xMUDA 实验。我们报告每个网络 stream(2D 和 3D)的目标域数据集上的 mIoU 结果(最佳和第二最佳),以及采用 2D 和 3D 概率( '
2D+3D
' )平均值的集成结果。我们提供了在源域数据集 上训练但不在目标域数据集 上训练的下限 “ Baseline(仅限 src)”,以及在目标域数据集 上使用标签进行监督训练的上限 “Oracle
”。我们进一步指出了“ Domain gap ”,即 Oracle 和 Baseline 分数之间的差异。“Deep logCORAL
”、“MinEnt
” 和 “PL
” 是 2D/3D 单模态 UDA baselines,而 “FDA
” 仅是在 2D模态。两个变体 “xMUDA
” 和 “xMUDAPL
” 是我们的提出方法。我们评估了四种 UDA 场景(见图 5)。对于nuScenesLidarseg
数据集(‘nuSc-Lidarseg
’),我们生成具有不同位置( USA/Singapore )和不同时间(Day/Night)的数据集划分。VirtualKITTI
(‘Virt.KITTI
’) 到SemanticKITTI
探索了具有挑战性的合成到真实的域适应。两个真实数据集A2D2
/SemanticKITTI
(‘Sem.KITTI
’) 之间的域差距主要在于传感器的分辨率。4.3 xMUDA
我们在四种无监督域适应场景中评估
xMUDA
,并与单模态 UDA 方法进行比较:Deep logCORAL
[20]、熵最小化 (MinEnt
) [5]、伪标记 (PL) [7] 和傅里叶域适应 (FDA
) [ 14]。对于 [7],image-to-image
转换部分由于其不稳定性、训练高复杂度以及与 LiDAR 数据的不兼容,而被排除在外。关于其他三种单模态技术,我们将已发布的实现方法调整为我们的设定。总之,我们搜索了各自最好的超参数。对于仅在 2D 上的 baselineFDA
[14],我们实现了完整的 MTB 方法,使用了熵以及三个模型的融合来生成伪标签,并重新训练。我们发现没有仅在 3D 上的 UDA baseline 可以直接适用于我们的场景。相反,我们在补充材料中比较了LiDAR transfer
[21],这很大程度上优于他们自己的场景。我们在表 2 中报告了用于 3D 分割的目标域测试集的平均交并比(
mIoU
)。我们使用在验证集上获得最佳分数的 checkpoint, 对测试集进行评估。除了 2D 和 3D 模型的分数之外,我们还展示了集成结果('2D+3D
'),它通过取预测的 2D 和 3D 概率在softmax 之后的平均值得到。单模态 UDA baseline [5]、[7]、[20] 分别应用于每个模态,FDA
[14] 是仅 2D 上的UDA baseline。此外,我们提供了下界 “Baseline(仅限 src)” 的结果,这不是域适应,因为它仅在源域数据集上进行训练,而上界 “Oracle” 仅在带有标签的目标域数据集上进行训练。我们还指出了 “ 域差距 (
O-B
) ”,计算为 Oracle 和 Baseline 之间的差异。它表明了数据集内域间隙在 的范围内 (nuScenes-Lidarseg: USA/Singapore, Day/Night
) ,相比数据集间域间隙在 的范围内要小得多(A2D2/SemanticKITTI, VirtualKITTI/SemanticKITTI
) 。这表明传感器设置的变化(A2D2/SemanticKITTI
)实际上是一个非常困难的域适应问题,类似于 synthetic-to-real的情况(VirtualKITTI/SemanticKITTI
)。重要的是,请注意A2D2/SemanticKITTI
和VirtualKITTI/SemanticKITTI
之间的分数不具有可比性,因为它们使用不同数量的类,且数量分别为 10 和 6。与 “ Baseline ” 相比,xMUDA 使用跨模态损失而不是伪标签,这对所有四种
UDA
场景都带来了显著的域适应效果,并且通常而言要优于所有单模态 UDA 的baseline 。xMUDA~PL~ 在所有场景中都获得了最好的分数,唯一的例外是在Day/Night 2D+3D
场景中 xMUDA 效果更好。此外,使用伪标签 (PL
) 的跨模态学习和自训练是互补的,因为它们在 xMUDA~PL~ 中结合使用通常会比单独使用一种方法获得更高的分数,最高可达到分数增加 4 或 7 。2D/3D oracle
的分数表明,全部使用LiDAR (3D)
数据集始终是最强的模态,这与 3D 分割任务的选择产生了共鸣。然而,xMUDA 不断地改进两种模态(2D 和 3D),例如:即使是强模态也可以从较弱模态中学习。一个值得注意的例子,3D 模态在夜间时,xMUDA 的效果 ( ) 要优于 “ baseline ” 的效果 ( ),尽管这是很小的域差距 () ,这与 LiDAR 主动传感的能力相关 。dual-head
架构可能是这里的关键:每个模态都可以改进它的main
分割头,且独立于其他模态,因为一致性是通过mimicking
分割头来间接实现的。根据 xMUDA,我们还观察到了正则化效应。例如在
VirtualKITTI/SemanticKITTI
数据集上,由于在非常小的VirtualKITTI
数据集上过拟合,“Baseline
” 和 “PL
” 方法在 2D 模态上的表现非常差(26.8 和 21.5),而 3D 模态上则更稳定(42.0 和 44.3)。相比之下,xMUDA 表现更好,因为 3D模态 可以正则化 2D模态。这种正则化甚至可以从伪标签中获益,因为 xMUDA~PL~ 获得了更好的分数。定性结果如图 6 所示,在所有提出的 UDA 场景中,都显示了 xMUDA 的多功能性。在这里, 相对于单模态伪标签 baseline ,xMUDA~PL~的优势在数据集间场景(最后两行)中尤为明显,在查找车辆类别的
nuScenes
场景(前两行)中更为巧妙。我们在补充材料和视频中提供了额外的定性结果,在 http://tiny.cc/cross-modal-learning 。在一些相反的域适应方向上,我们也成功地实验了我们的方法,细节在补充材料中。5
-
5.总结
在这项工作中,在无监督 (xMUDA) 和半监督 (xMoSSDA) 设定中,我们提出了用于域适应的跨模态学习。为此,我们设计了一种
two-stream
、dual-head
的架构,并在 3D 语义分割任务中将跨模态损失应用于图像和点云模态。跨模态损失由应用于两种模态预测间的 KL 散度组成,从而增强了一致性。关于四个无监督和四个半监督的域适应场景的实验表明,跨模态学习优于单模态域适应的 baseline ,并且这与伪标签学习是互补的。跨模态学习可以泛化到许多涉及多模态输入数据的任务,并且不局限于域适应或者只是图像和点云模态。