- 论文标题:Cross-modal Learning for Domain Adaptation in 3D Semantic Segmentation
- 作者:
Maximilian Jaritz
,Tuan-Hung Vu
,Raoul de Charette
,Émilie Wirbel
, andPatrick Pérez
- 来源:TPAMI
- 论文链接:https://arxiv.org/pdf/2101.07253.pdf
- 整理:HT
摘要
域适应是在标签稀缺时实现学习的一项重要任务。虽然大多数工作只关注图像模态,但存在许多重要的多模态数据集。为了利用多模态进行域适应,我们提出了跨模态学习,我们通过相互模仿来加强两种模态的预测之间的一致性。我们限定网络对标记的数据做出正确的预测,并对未标记的目标域数据进行跨模态的一致性预测。无监督和半监督的域适应 settings 的实验证明了这种新颖的域适应策略的有效性。具体来说,我们评估来自 2D 图像、3D 点云或两者都有的 3D 语义分割任务。我们利用最近的自动驾驶数据集来产生各种各样的域适应场景,包括场景布局上、光照上、传感器设置上、天气上的变化,以及 synthetic-to-real
的设置。在所有域适应场景中,我们的方法显著地改进了以前的单模态域适应的 baseline 。
关键词:域适应、无监督学习、半监督学习、语义分割、2D/3D
一、 引言
场景理解是许多应用程序的核心,除其他任务外,图像语义分割已得到广泛研究。然而,对于涉及与世界交互的应用程序,例如机器人、自动驾驶或虚拟现实,场景应该以 3D 形式理解。在这种情况下,3D 语义分割正受到关注,越来越多的数据集提供联合标注的 3D 点云 ( PCs
) 和 2D 图像。这些模态是互补的,因为 PCs
提供几何特征,而图像捕捉纹理和颜色。
手动分割 [1] 在图像中很繁琐,且在 3D 点云PCs
中更是如此,因为标注器必须从不同的视点检查场景 [2]。这导致标注成本很高。不幸的是,是否可以获得足够的 ground truth
来训练大型神经网络,这个问题可能是计算机视觉系统成败的关键。在这项工作中,我们的目标是通过迁移学习来缓解这个问题,特别是域适应 (DA
),即我们利用多模态 (2D/3D) 来改进模型对目标域的适应。
我们考虑无监督和半监督的域适应 DA
,即标签在源域中可用,但在目标域中不可用(或仅部分可用)。域适应 DA
文献研究图像模态 [3]、[4]、[5]、[6]、[7],但只有少数涉及点云模态 [8]。与这些不同的是,我们同时对图像和点云执行域适应 DA
,目的是显示地利用多模态来实现域适应目标。
我们使用来自同步摄像机和 LiDARs
的自动驾驶数据,并希望从这些传感器的域差距不同的这一事实中获益。例如,LiDAR
对光照变化(例如,白天/黑夜)比相机更鲁棒。另一方面,LiDAR
感应密度随传感器设置而变化,而相机始终输出密集图像。由于 dual-head
架构,我们的工作利用了跨模态差距,同时保持了每个传感器的最佳性能 —— 从而避免了一种模态的局限性对另一种模态的性能产生负面影响。
图 1:提出的用于域适应的跨模态学习概述。在这里,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.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 网络。
图 2:我们用于域适应的跨模态无监督学习架构。有两个独立的网络流:一个 2D 流(红色),它以图像作为输入,并使用 U-Net 风格的 2D ConvNet
[12];以及一个 3D 流(蓝色),它以点云为输入,并使用 U-Net 风格的 3D SparseConvNet
[13]。两个流输出的特征张量的第一维大小为N,等于3D点的个数。为了实现这种平等,我们将存在标签的 3D 点投影到图像中,并在相应的像素位置对 2D 特征进行采样。四个分割输出包括:主要预测 、 和模拟预测 、 。我们使用 KL 散度 来跨模态迁移知识,其中 2D 模拟预测的目标是估计 3D 主要预测,反之亦然,即为 。
三、域适应的跨模态学习
我们的目标是利用多模态作为域适应中无监督学习的知识来源。因此,我们提出了一个跨模态学习目标,作为模态之间的相互模仿的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
函数来产生类概率。
图 3: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 无监督的域适应(xMUDA)
我们提出了 xMUDA
,即跨模态无监督的域适应,它考虑源域数据集 S,其中每个样本由 2D 图像 、3D 点云 和 具有 类的 3D 分割标签 组成,以及一个缺少标注的目标域数据集 ,其中每个样本仅由图像 和点云 组成
在下文中,我们定义了常规的监督学习设置,我们的跨模态损失 和一个另外的变体 “ xMUDA~PL~ ” ,它进一步使用伪标签来提高性能。学习设置的概述如图 4a 所示。我们的跨模态学习与现有的单模态 UDA 技术
(例如: Pseudo-labels
[11]、MinEnt
[5] 或 Deep logCORAL
[20] )之间的差异如图 4b 所示。
图 4:域适应的跨模态训练。 (a) 由于2D/3D 之间的跨模态学习,xMUDA
从源域的监督(纯线)和目标域的自监督(虚线)中学习。(b) 我们考虑四个数据子集:源域 2D、目标域 2D、源域 3D 和目标域 3D。与现有技术相比,xMUDA
为 UDA
引入了跨模态自训练机制。
3.2.1 监督学习
3D 分割的主目标是通过交叉熵,以经典的监督范式对源域数据进行学习。 表示由分割模型关联到 个 3D 兴趣点的软分类图,对于给定的输入 , 中给定训练样本的每个网络 stream(2D 和 3D)的分割损失 为:
3.2.2 跨模态学习
跨模态的无监督学习的目标是双重的。首先,在目标域数据集上,我们希望将知识从一种模态迁移到另一种模态。例如,如果一种模态对域迁移比另一种更敏感,那么鲁棒模态应该 teach
敏感模态,在目标域中没有可用标签数据时的对应正确类别。其次,我们在源域和目标域上设计一个辅助目标,其任务是估计其他模态的预测。通过不仅模仿最大概率的类别,而且模仿 类似teacher-student
蒸馏[38]中的整个分布,进而交换了更多信息,从而产生了更软的标签。
我们为跨模态损失 选择 散度,并将其定义如下:
这里, , 其中 来自主预测的目标域分布,将由模拟预测 估计。此损失应用于源域和目标域,同时它不需要 ground-truth
标签,并且它是我们提出的域适应框架的关键。在源域中, 可以看作是除了主分割损失 之外的辅助模仿损失。
每个网络 stream(2D 和 3D)的最终目标,为源域数据上的分割损失 和两个域上的跨模态损失 的组合:
其中 , 是分别在源域和目标域上加权 的超参数, 是 2D 或 3D stream 的网络权重。
我们的方法与 Deep Mutual Learning
[55]存在相似之处,例如:协同训练两个网络并使用 KL 散度作为模仿损失。然而,与这项工作不同的是,我们的跨模态学习是在无监督的情况下建立了跨模态(2D/3D)的一致性。
3.2.3 使用伪标签进行自训练
跨模态学习是对伪标签 [11] 的补充,伪标签最初用于半监督学习,最近用于 UDA
[7]、[15]。为了从两者中受益,每一次都使用公式 4 优化了模型。我们离线提取伪标签,根据预测的类概率选择置信度高的标签。然后,我们使用生成的伪标签从头开始再次训练,从而在目标域训练集上增加额外的分割损失。优化问题为 :
其中 为伪标签分割损失的加权,而 是伪标签。为清楚辨识,将使用伪标签进行附加自训练的 xMUDA
变体,我们称之为 xMUDA~PL~
3.3 半监督的域适应(xMoSSDA)
跨模态学习也可以用于半监督域适应,从而受益于目标域中的一小部分标记数据。
形式上,我们在 xMoSSDA
中考虑一个带标记的源域数据集 ,其中每个样本包含一个图像 、一个点云 和标签 。与无监督学习不同,目标域数据集由通常较小的标记部分 组成,其中每个样本包含图像 、点云 和标签 ;以及通常更大的未标记部分 ,其中每个样本仅由图像 和点云 组成。
3.3.1 监督学习
与 xMUDA
不同,我们不仅在源域数据集 上应用了公式 1 的分割损失 ,也在标记的目标域数据集 上应用了公式 1 中的分割损失。因此,适用于在 中的样本 ,以及在 中的样本 。请注意,在实现时,我们通过在同一 batch 中连接来自两者的样本,同时在源域和目标域上进行训练。
3.3.2 跨模态学习
我们应用公式 2 的无监督跨模态损失 。在所有数据集上,即(标记的)源域数据集 、标记的目标域数据集 和 未标记的目标域数据集 。与通常小得多的标记部分 相比,后者未标记数据的通常是占大部分的。随后,无监督损失对数据集 也是有益的,例如跨模态学习。完整的目标是两部分的组合:有监督分割损失 ,其中标签可用(即在数据集 和 中);各个数据集上的无监督跨模态损失 (即在数据集 、 和 上) 。这加强了2D 和 3D 预测之间的一致性。具体如下:
其中 、 和 是 的加权超参数。在实现时,为了简单起见,我们选择让 。
3.3.3 使用伪标签进行自训练
与无监督环境一样,我们扩展了半监督跨模态学习,进而也可以从伪标签中受益。在使用 公式6 训练模型后,我们使用该模型在无标记的目标域数据集 上生成预测,并提取置信度高的伪标签,将使用这些伪标签从头开始再次训练,目标如下:
其中 是对伪标签分割损失的加权,而 是伪标签。我们将此变体称为 xMoSSDA~PL~。
四、实验
为了评估,我们选了五个与自动驾驶相关的域适应 (DA
) 场景,如图 5 所示,并根据最近的 baselines 评估了我们提出的方法。
此后,我们首先将描述数据集(第 4.1 节)、实现 backbone 和训练的细节(第 4.2 节),然后评估 xMUDA
(第 4.3 节)和 xMoSSDA
(第 4.4 节)。最后,我们将我们的跨模态
框架扩展到融合(第 4.5 节),证明了它的全局优势。
4.1 数据集
为了构成图 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 的扫描。
所有的训练数据和数据集拆分都可以用我们的代码复现,更多细节可见补充材料。
4.2 实现细节
下面简单介绍一下我们的具体实现。请参阅我们的代码,以获取更多详细信息。
表 1:提出的所有 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
来生成伪标签,而不是使用可以提供监督信号的最佳权重。
图 5:提出的五个 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 上的 baseline FDA
[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 。
在一些相反的域适应方向上,我们也成功地实验了我们的方法,细节在补充材料中。
4.4 xMoSSDA
在本节中,我们在域适应场景nuSc-Lidarseg:USA/Singap
、A2D2/SemanticKITTI
和 Waymo OD
上评估了 xMoSSDA
。为了创建实际相关的 SSDA 条件,我们确保未标记的目标域数据集 远大于标记域的目标数据集 。因此,数据集划分不同于 UDA(参见表 1)。
我们将 xMoSSDA 与八个 baselines 进行比较。三个 baselines 是纯监督的,要么仅在源域()数据集,或者仅标记的目标域()数据集上训练,要么在源域和标记的目标域^2^( )上训练。此外,我们报告了两个 UDA baselines,即 xMUDA 和 xMUDA~PL~,它们使用源域和未标记的目标域数据集 ( )。最后,我们报告了三个 SSDA 的 baselines(在 上训练)改编自单模态 UDA baselines [5]、[7]、[20]。如下所示:在 上,我们使用类似于监督 baseline 所使用的 50%/50% 的 batches 来进行训练,但在 上添加了相应的域适应损失。我们的提出半监督方法 xMoSSDA 和 xMoSSDA~PL~ 也是以这种方式进行训练。(注释:2. 后者使用来自 和 的 50%/50%
示例进行训练,且大小为 8 的 batch size,其中包括 4 个来自 的随机样本和 4 个来自 的随机样本。)
为了实现 ,我们将 Waymo OD
和 SemanticKITTI
(我们使用隐藏测试集)的未标注数据包含到 中。因此,不可能像在表 2 中那样训练 Oracle。相反,我们回答这个问题:“通过对 进行额外训练,我们可以在有监督的 baseline 上提高多少?”。我们将其称为 “无监督的优势”,计算的是 xMoSSDA~PL~ ( ) 和有监督 baseline ( ) 之间的差异。请注意,由于目标域和源域数据集较小,我们分别排除了 nuSc-Lidarseg: Day/Night
和 Virt.KITTI/Sem.KITTI
,但仍然在补充材料中评估了 Virt.KITTI/Sem.KITTI
。
我们在表 3 中报告了 3D 分割的 mIoU。注意后面的结果不能和表 2 相互比较。因为数据划分不同。我们对表 3 进行观察,与表 2 类似,A2D2/SemanticKITTI
(最大 )上的数据集间的域适应差距 比 nuSc-Lidarseg:USA/Singap
(最大 )和 Waymo OD
(最大 )上的数据集内的域适应差距大得多。正如预期的那样,xMUDA 和 xMUDA~PL~ ( ) 比 baseline () 有所改善,但(Waymo OD
除外)比 baseline ( ) 差。我们还观察到 xMoSSDA 进一步改进了 2D 和 3D (最大 2.0),这比集成结果 2D 3D
要多(最大 0.4),相比较于 baseline( )。我们将此行为归因于在 2D 和 3D 预测不同时集成 (2D 3D)的表现最佳,尽管我们的跨模态损失与 2D/3D 预测保持一致。在 xMoSSDA~PL~ 中,单独的 2D/3D 伪标签作为这种对齐的平衡,导致类似的 2D、3D 和 2D 3D 改进。
最后,在 9 个案例的 8 个案例中,xMoSSDA~PL~ 做的比所有的 baseline 高出 。图 7 中的结果显示了对薄结构(灌木、自行车、行人)的分割效果更好。
4.5 Fusion 扩展
到目前为止,我们使用的是具有独立 2D/3D streams 的架构。但是,xMUDA 是否也可以应用于两种模态进行联合预测的融合设置?
一种常见的融合架构是 late fusion
,其中来自不同来源的特征被连接起来(见图 8a)。然而,当 main 2D/3D 分支合并为一个独特的 fusion head 时,我们不能再应用跨模态学习(如图 3a 所示)。为了解决这个问题,我们提出了“xMUDA Fusion”,我们在 fusion layer 之前为 2D 和 3D 网络 streams 添加了一个额外的分割头,目的是模仿中间的 fusion head(见图 8b)。请注意,这个想法也可以应用于其他 fusion 架构之上。
在表 4 中,我们展示了不同的 fusion 方法得到的结果,其中我们指定了使用哪种架构(图 8a 中的 Vanilla late fusion
或图 8b 中的 xMUDA Fusion)。我们观察到 xMUDA fusion 架构比使用 Vanilla 架构的 UDA baselines 产生了更好的结果。这论证了如何在 fusion 设定中有效地应用跨模态学习。
图 6:xMUDA 的定性结果。对于UDA Baseline (PL) 和 xMUDA~PL~,我们目标域测试数据集上展示了集成结果 (2D 3D)。
nuScenes-Lidarseg : USA/Singapore
:UDA Baseline (PL) 未能正确地分类公共汽车,而 xMUDAPL 成功。nuScenes-Lidarseg : Day/Night
:迎面而来的摩托车。白天(摩托车可见)的视觉外观与夜间(仅大灯可见)有很大不同。单模态 UDA 的 baseline 无法学习这一新的视觉外观。但是,在 xMUDA~PL~ 中,如果交换相机和robust-at-night LiDAR
之间的信息,则可以在夜间正确地检测出摩托车。A2D2/SemanticKITTI
:在传感器发生变化时(带有不同角度的 层的 LiDAR 变成 64 层的 LiDAR ),xMUDA~PL~ 有助于稳定并提高分割的性能。VirtualKITTI/SemanticKITTI
:UDA baseline (PL
) 对建筑物和道路的分割效果很差,而 xMUDA~PL~ 可以成功。
图 7:xMoSSDA 的定性结果。我们展示了有监督的 baseline (在 上训练)在目标域测试数据集上的集成结果(
2D 3D
),以及 xMUDA~PL~(在 上训练)、xMoSSDA~PL~(在 上训练)。
nuScenes-Lidarseg : USA/Singapore
:一个灌木丛被有监督的 baseline 和 xMUDA~PL~ 错误地分类成了车辆类别,但 xMoSSDA~PL~ 能将其正确分类成植被类别。A2D2/SemanticKITTI
:对于有监督的 baseline,中心的自行车没有与 “Nature” 背景区分开来。但 xMUDA~PL~ 也是如此,仍然分类错误;而 xMoSSDA~PL~ 分类是正确的。Waymo OD : SF,PHX,MTV/KRK
:xMUDA~PL~ 对行人进行分割的效果要优于有监督的 baseline ,而 xMoSSDA~PL~ 的分割效果最好。
表 3:关于 3D 语义分割的 xMoSSDA 实验。我们报告每个网络 stream(2D 和 3D)在目标域数据集上的 mIoU(最佳和第二最佳),并采用了 2D 和 3D上的概率(2D 3D
)的平均值作为集成结果。在半监督域适应 (SSDA) 中,我们有一个与 UDA 中类似的源域数据集 ,而与 UDA 不同的是,目标域数据集由一个小的标记部分 和一个大的未标记部分 组成。我们提供了三个 baseline ,我们要么只在源域数据集()上训练,要么只在标记的目标域数据集( )上训练,要么在两者上同时训练( ),且每一 batch 的 ratio 设定为 50%/50%。为了比较,我们报告了不使用 数据集的 “ xMUDA” 和 “xMUDA~PL~” 的实验结果。三个单模态 SSDA 的 baseline “Deep logCORAL
”、“MinEnt
” 和 “PL
” 以及我们的跨模态方法 “xMoSSDA” 和 “xMoSSDA~PL~” ,在 数据集上进行有监督地训练,在每一 batch中的 ratio 设定为 50%/50%;并且在 数据集上进行无监督地训练。我们报告了域差距和 “Unsupervised advantage” ,即 xMoSSDA~PL~ 和 “baseline (src 和 lab.trg)” 之间的差异以及相对改进。我们评估了 SSDA 场景:nuScenes-Lidarseg(USA/Singapore)
、A2D2 /SemanticKITTI
和 Waymo OD
。
图 8:融合架构。 (a) 在 Vanilla Fusion
中,将 2D 和 3D 的特征联合起来,输入到带有 ReLU 的线性层中以混合它们,然后是另一个线性层和 softmax 以获得融合预测 。(b) 在 xMUDA Fusion
中,我们添加了两个单模态输出 和 ,用于模拟融合输出 。
五、消融研究
5.1 Single vs. Dual Segmentation Head
在这里,我们证明我们的 dual head
优于更简单的 single-head
架构,如图 3 所示。在 single-head
架构中(图 3a),跨模态损失 直接应用于 2D 和 3D main heads
之间。除了有监督分割损失 之外,还通过对齐两个输出来增强一致性。因此,heads 必须同时满足两个目标,即分割和一致性。为了展示这种架构的缺点,我们训练 xMUDA(如公式 4 所示)并改变目标域上的跨模态损失 的权重 ,这是 UDA 主要的 driver
。图 9 中 single-head
架构(图 3a)的结果表明,将 λt 从 增加到 会略微提高 mIoU,但将 进一步增加到 和 会产生很大的负面影响。在极端情况下,当 ,2D 和 3D 分支总是预测成同一个类别,因此只满足了一致性,但不满足分割的目标。
dual head
架构(图 3b)通过引入一个辅助 mimicking head
来解决这个问题,其目的是在训练期间模仿其他模态的 main head
,并且在之后可以丢弃。这有效地将应用于 mimicking head
的模仿目标与应用于 main head
的分割目标分离出来。图 9 表明,将 dual head
的 增加到 ,总体上会产生最好的结果,这比 single-head
的 等于任何值时都要好。并且,即使在 时,结果也是鲁棒的。
表 4:fusion 方法的比较。两种 UDA 场景的 mIoU 性能:nuScenes-Lidarseg :USA/Singapore
和 A2D2
/ SemanticKITTI
。我们将有监督的 baseline “Baseline(仅限 src)”和 UDA baseline (“Deep logCORAL
”、“MinEnt
”、“PL
”)适应于图 8a 中描述的 vanilla fusion
的架构。我们提出了使用图 8b 架构的 “ xMUDA Fusion ”。
图 9:Single vs. Dual Head 架构。 nuScenes-Lidarseg:USA/Singapore
数据集上两种架构的 mIoU,目标损失权重 具有不同的值,且 。
表 5:提出的跨模态损失在有监督学习中的益处。 在 nuScenes-Lidarseg(Singapore)
和 Waymo OD(KRK)
数据集上,且仅使用带标记的目标域数据集 ,当有和没有跨模态损失 时,有监督学习的 mIoU 性能 。在 Singapore
数据集的实验中,使用跨模态损失训练的模型,相当于表 2 中该数据集上的 oracle
。
5.2 源域上的跨模态学习
在公式 4 中,跨模态损失 应用于源域和目标域,尽管我们已经在源域上应用了有监督的分割损失 。当在源域上添加 而不是只在目标域上应用时,我们观察到 2D上的增益为 mIoU , 3D 上的增益为 。这表明,在源域数据上训练 mimicking head
是很重要的,从而稳定预测,这可以在目标域输入时的域适应过程中被利用。
5.3 跨模态的有监督学习
为了评估跨模态学习对纯有监督学习 settings 可能的益处,在两个不同的目标域数据集上:nuScenes-Lidarseg
和 Waymo OD
,我们进行了添加跨模态损失和不添加跨模态损失 的实验。结果显示在表 5 中,并展示了添加跨模态损失 时的性能提升。我们假设额外的跨模态目标可能是有益的,类似于 multi-task learning
。在 Waymo OD
数据集上,我们观察到 2D 上的显著提升。在训练曲线(validation)中,我们观察到跨模态学习减少了 2D 上的过拟合。我们假设,受过拟合影响较小的 3D ,对 2D 可以产生正则化的效果。
六、总结
在这项工作中,在无监督 (xMUDA) 和半监督 (xMoSSDA) 设定中,我们提出了用于域适应的跨模态学习。为此,我们设计了一种 two-stream
、dual-head
的架构,并在 3D 语义分割任务中将跨模态损失应用于图像和点云模态。跨模态损失由应用于两种模态预测间的 KL 散度组成,从而增强了一致性。
关于四个无监督和四个半监督的域适应场景的实验表明,跨模态学习优于单模态域适应的 baseline ,并且这与伪标签学习是互补的。
我们认为跨模态学习可以泛化到许多涉及多模态输入数据的任务,并且不局限于域适应或者只是图像和点云模态。
七、参考文献(部分)
[1] M. Cordts, M. Omran, S. Ramos, T. Rehfeld, M. Enzweiler, R. Be- nenson, U. Franke, S. Roth, and B. Schiele, "The cityscapes dataset for semantic urban scene understanding," in CVPR, 2016.
[2] J. Behley, M. Garbade, A. Milioto, J. Quenzel, S. Behnke, C. Stach- niss, and J. Gall, "SemanticKITTI: A dataset for semantic scene understanding of LiDAR sequences," in ICCV, 2019.
[3] J. Hoffman, E. Tzeng, T. Park, J.-Y. Zhu, P. Isola, K. Saenko, A. Efros, and T. Darrell, "Cycada: Cycle-consistent adversarial domain adaptation," in ICML, 2018.
[4] J. Hoffman, D. Wang, F. Yu, and T. Darrell, "FCNs in the wild: Pixel-level adversarial and constraint-based adaptation," arXiv, 2016.
[5] T.-H. Vu, H. Jain, M. Bucher, M. Cord, and P. Prez, "Advent: Adversarial entropy minimization for domain adaptation in semantic segmentation," in CVPR, 2019.
[6] Y.-H. Tsai, W.-C. Hung, S. Schulter, K. Sohn, M.-H. Yang, and M. Chandraker, "Learning to adapt structured output space for semantic segmentation," in CVPR, 2018.
[7] Y. Li, L. Yuan, and N. Vasconcelos, "Bidirectional learning for domain adaptation of semantic segmentation," in CVPR, 2019.
[8] B. Wu, X. Zhou, S. Zhao, X. Yue, and K. Keutzer, "Squeezesegv2: Improved model structure and unsupervised domain adaptation for road-object segmentation from a lidar point cloud," in ICRA,2019.
[9] M. Jaritz, T.-H. Vu, R. d. Charette, E. Wirbel, and P. Prez, "xmuda: Cross-modal unsupervised domain adaptation for 3d semantic segmentation," in CVPR, 2020.
[10] H. Caesar, V. Bankiti, A. H. Lang, S. Vora, V. E. Liong, Q. Xu, A. Krishnan, Y. Pan, G. Baldan, and O. Beijbom, "nuScenes: A multimodal dataset for autonomous driving," CVPR, 2020.
[11] D.-H. Lee, "Pseudo-label: The simple and efficient semi- supervised learning method for deep neural networks," in ICML Workshops, 2013.
[12] O. Ronneberger, P. Fischer, and T. Brox, "U-net: Convolutional networks for biomedical image segmentation," in MICCAI, 2015.
[13] B. Graham, M. Engelcke, and L. van der Maaten, "3d semantic segmentation with submanifold sparse convolutional networks," in CVPR, 2018.
[14] Y. Yang and S. Soatto, "FDA: Fourier domain adaptation for semantic segmentation," in CVPR, 2020.
[15] Y. Zou, Z. Yu, X. Liu, B. V. Kumar, and J. Wang, "Confidence regularized self-training," in ICCV, 2019.
[16] A. Saporta, T.-H. Vu, M. Cord, and P. Prez, "Esl: Entropy-guided self-supervised learning for domain adaptation in semantic seg- mentation," in CVPR Workshop, 2020.
[17] L. T. Triess, M. Dreissig, C. B. Rist, and J. M. Zllner, "A survey on deep domain adaptation for lidar perception," in IV Workshop on Autonomy at Scale, 2021.
[18] C. Qin, H. You, L. Wang, C.-C. J. Kuo, and Y. Fu, "Pointdan: A multi-scale 3d domain adaption network for point cloud repre- sentation," in NeurIPS, 2019.
[19] I. Achituve, H. Maron, and G. Chechik, "Self-supervised learning for domain adaptation on point clouds," WACV, 2021.
[20] P. Morerio, J. Cavazza, and V. Murino, "Minimal-entropy corre- lation alignment for unsupervised deep domain adaptation," in ICLR, 2018.
本文仅做学术分享,如有侵权,请联系删文。