paper:https://openaccess.thecvf.com/content/ICCV2021/papers/Zhang_Self-Supervised_Pretraining_of_3D_Features_on_Any_Point-Cloud_ICCV_2021_paper.pdf
文章目录
2. 论文介绍
Abstract
- 对大型标记数据集进行预训练是在许多计算机视觉任务(如图像识别、视频理解等)中获得良好性能的先决条件。但是,预训练并未广泛用于 3D 识别任务,因为最先进的方法从头开始训练模型。一个主要原因是缺少大型注释数据集,因为 3D 数据标记非常耗时。
- 最近的工作表明,自监督学习对于预训练 3D 模型很有用,但需要多视图数据和点对应
- 我们提出了一种简单的自我监督预训练方法,可以处理由各种传感器获取的单视图深度扫描,无需 3D 配准和点对应
- 我们预训练基于标准点云和体素的模型架构,并表明联合预训练进一步提高了性能。
- 我们在对象检测、语义分割和对象分类的 9 个基准上评估我们的模型,它们在这些基准上取得了最先进的结果。最值得注意的是,我们在 ScanNet (69.0% mAP) 和 SUNRGBD (63.5% mAP) 上为对象检测设置了新的最先进技术。
- 我们的预训练模型具有标签效率,并且可以通过很少的示例提高类的性能。
1. Introduction
- 当对标注受限时,在大型标记数据集上预训练视觉特征是实现良好性能的先决条件 [27、46、52、87]。
- 最近,自监督预训练已成为监督预训练的一种流行替代方案,特别是对于注释耗时的任务,例如图像中的检测和分割 [9, 36, 37, 56, 93] 或视频中的跟踪 [41]。
- 在 3D 视觉中,注释也很难获得。标记由数千个 3D 点组成的 3D 场景非常耗时,每个场景可能需要大约 22 分钟 [18]。
- 这种繁琐的注释过程导致缺少大型注释的 3D 数据集。
- 然而,由于消费级深度传感器的出现,例如在手机中,以单视图深度图的形式获取 3D 数据变得比以往任何时候都容易 [24,73,83]
- 虽然可以利用这些深度图来预训练自我监督的 3D 特征,但可以应用的工作却很少
- 最近的工作 [105] 将自监督预训练应用于 3D 模型,但使用具有点对应的多视图深度扫描
- 由于 3D 传感器仅获取单视图深度扫描,多视图深度扫描和点对应通常通过 3D 重建获得。不幸的是,即使使用良好的传感器,3D 重建也很容易由于各种原因而失败,例如非静态环境、快速相机运动或里程计漂移 [16]。
- 在本文中,我们介绍了一个简单的对比框架 DepthContrast,用于表示来自单视图深度扫描
- 从实际的角度来看,单视图深度扫描的自我监督学习更广泛地适用于 3D 数据。仅使用单视图信息是否可以为 3D 中的自监督学习提供好处也是一个有趣的科学问题
- 我们的方法基于 Wu 等人的 Instance Discrimination 方法 [103]应用于深度图。我们回避配准点云或对应关系的需要,将每个深度图视为一个实例并区分它们,即使它们来自同一场景
- 由于不同的 3D 应用需要不同的 3D 场景表示,例如用于分割的体素 [17]、用于检测的点云 [64],因此我们将我们的方法用于体素和点云
- 我们通过将相同 3D 场景的体素和点云视为使用相关网络处理的数据增强来共同学习特征 [93]。
- 我们的贡献可以总结如下:
- 我们展示了单视图 3D 深度扫描可用于自我监督学习。
- 我们的单视图表示的性能相当,或者在某些设置中比它们的多视图对应物更好,这表明单视图深度扫描对于学习特征确实很强大。
- 我们的方法适用于不同的模型架构、室内/室外 3D 数据、单/多视图 3D 数据。我们还表明,它可用于预训练高容量 3D 架构,否则会过度拟合检测和分割等任务。
- 我们表明,不同输入表示(如点和体素)的联合训练对于学习良好的表示很重要,而对比学习的简单应用可能不会产生好的结果
- 我们展示了九个下游任务的性能改进,并为两个对象检测任务(ScanNet 和 SUNRGBD)设置了新的最新技术。我们的模型是高效的小样本学习器
2. Related Work
我们的方法建立在自我监督学习文献的工作之上,以 3D 数据为应用。在本节中,我们将概述自我监督和 3D 表示的最新进展
-
Self-supervised learning for images:
- 自监督学习是机器学习和计算机视觉中一个经过充分研究的问题[53,60,69,72,95]。
- 学习表示的方法有很多种——聚类 [7, 8, 43],GAN [20, 55],代理任务 [19, 59, 97] 等。
- 最近的进展 [9, 13, 30, 36, 37, 47, 56, 94] 表明,自监督预训练是二维识别任务的监督预训练的可行替代方案
- 我们的工作建立在对比学习 [34, 61] 的基础上,其中训练模型以区分每个实例 [21],而没有明确的分类器 [103]。
- 这些实例判别方法可以扩展到多种模态 [57, 62, 93]。
- 我们的方法扩展了 Wu [103]等人的工作, 遵循 Tian [93] 等人的多种 3D 输入格式,使用动量编码器 [36] (momentum encoder) 代替 memory bank。
-
Self-supervised learning for 3D data:
- 大多数自监督学习方法都集中在单个 3D 对象表示上,它们在重建、分类或部分分割方面具有不同的应用 [1、2、25、33、35、44、49、74、99、110]。
- 最近Xie[105]等人 提出了一种自监督方法来构建场景级点云的表示。他们的方法依赖于场景的完整 3D 重建,在点云的不同视图之间具有逐点对应关系。这些逐点对应需要通过将不同的深度图注册到单个 3D 场景中来对数据进行后处理。他们的方法只能应用于已经注册好的静态场景,极大地限制了他们工作的应用。 (registering:注册 = 配准)
- 我们展示了一种简单的自我监督方法,该方法可以从单视图 3D 数据中学习最先进的表示,也可以应用于多视图数据。
-
Representations of 3D scenes:
- 有多种方法可以以不同的矢量化形式表示 3D 信息,例如点云、体素或网格( point-clouds, voxels or meshes)
- 基于点云的模型 [66, 68] 广泛用于分类和分割任务 [6, 40, 45, 66, 68, 91, 98, 100, 106, 107],3D 重建 [23, 90, 110] 和3D 对象检测 [63、64、77、98、112、112、114]。
- 由于许多 3D 传感器根据 3D 点获取数据,因此点云是深度网络的便捷输入。
- 然而,由于直接在点云上使用卷积操作很困难 [31, 66],体素化数据是另一种流行的输入表示
- 3D 卷积模型 [3, 17, 28, 31, 38, 50, 70, 85, 92] 广泛用于 3D 场景理解 [32, 82, 109, 116]。
- 也有人努力组合不同的 3D 输入表示 [29, 76, 96, 113-115]。
- 在这项工作中,我们建议联合预训练两种用于点和体素的架构,即用于点的 PointNet++ [68] 和用于体素的基于稀疏卷积的 U-Net [17]。
-
3D transfer tasks and datasets:
- 我们使用形状分类、场景分割和对象检测(shape classification, scene segmentation, and object detection)作为迁移学习的识别任务。
- 形状分类技术 [11, 54, 66–68, 86] 在我们使用的 ModelNet [102] 数据集上得到广泛评估。它包含合成的 3D 数据,每个样本只包含一个对象。我们还使用更通用的 3D 场景理解任务评估完整的 3D 场景
- 以场景为中心的数据集可以大致分为室内场景 [5, 10, 18, 39, 58, 63, 75, 81, 84, 104] 和室外(自动驾驶)场景 [26, 71, 88]。
- 我们使用这些数据集并评估我们的方法在室内检测 [12、22、64、65、114]、场景分割 [17、68、92、101、108] 和室外检测任务 [15、48、 76-78、109、111]。
个人总结: 每段相关工作最后都表明作者与其它工作的不同之处:1. 使用使用动量编码器 [36] (momentum encoder) 代替 memory bank; 2. 单视图 代替 多视图;3. 联合架构:联合预训练两种用于点和体素的架构,即用于点的 PointNet++ [68] 和用于体素的基于稀疏卷积的 U-Net [17]; 4. 数据集使用多,不局限于ModelNet
3. DepthContrast
- 我们展示了我们的无监督 3D 表示学习方法。 DepthContrast 可以从未处理的单视图或多视图深度图中学习
- Our method, illustrated in Fig 2, is based on the instance discrimination framework from Wu et al. [103] with a momentum encoder [36].
- 我们还展示了基于 [93] 的 DepthContrast 的扩展,它学习跨 3D 输入格式(如点和体素)以及跨 3D 架构的表示。
3.1. Instance Discrimination
其中 τ 是控制 softmax 分布平滑度的温度。这种损失鼓励来自同一场景的不同增强的特征相似,而与其他场景的特征不同。因此,它学习了专注于场景判别区域的特征,使其与数据集中的其他场景不同。
Minimal assumptions on input data(对输入数据的最小假设).
- 我们的方法对输入 X 做了最小的假设,即它是一个未处理的单视图深度图。它不需要对重叠的多视图 3D 输入 [105] 或以对象为中心的深度图 [35、44] 进行仔细采样。这些最小假设使我们能够从第 4 节中的大型单视图 3D 深度图和从不同传感器获得的室外 3D 深度图中学习,而无需依赖第 5.3 节中的 3D 校准。
Momentum encoder.
- 由于使用大量负例(negatives)对于对比学习很重要 [13,36,56,103],我们使用 He 等人的方法[36] ,其中等式 1 中的其他增强 vi,2 和负样本 vj 的特征分别使用动量编码器和队列获得。这允许我们在不增加训练批量大小的情况下使用大量 K 个负样本。
3.2. Extension to Multiple 3D Input Formats
-
多种输入格式通常用于表示 3D 数据 - 点云、体素、网格等。不同的输入格式可以轻松地从一种转换到另一种,并具有其特定的深度学习架构和应用程序。我们的自我监督方法可以自然地扩展以适应这些输入格式和架构。
-
对于每个输入格式 f,我们将相应的输入样本表示为 Xf,将特定格式的编码器网络表示为 g f,将提取的特征表示为 v f。扩展 Eq 1,我们可以最小化在输入格式 a、b 内和跨输入格式执行实例区分的单个目标:
-
当输入格式 a、b 相同时,此目标退化为公式 1 的格式内损失,并且当 a̸= b 时,此目标对齐使用不同网络架构 g f 跨格式 f 获得的特征表示 v f = g f (Xf )。如图 3 所示,我们使用两种流行的输入格式——点云和体素,并使用单个联合损失函数训练这些特定于格式的模型
-
类似的技术已经在不同模式的数据的背景下进行了探索,例如彩色和灰度图像 [93]、音频和视频 [57、62] 等。虽然这些方法使用不同的模式,但我们的扩展使用相同的 3D 数据,并且仅更改输入格式。
3.3. Model Architecture
我们描述了用于我们的输入格式特定编码器的模型架构。两个编码器都对相同的增强输入 3D 数据进行操作,并且仅在表示输入的方式上有所不同。我们在补充材料中提供了完整的分层架构细节。
Point input:
Voxel input
3.4. Data Augmentation for 3D
- 数据增强是我们框架的重要组成部分
- 我们首先采用[64]中提出的标准点云数据增强方法,即随机点上/下采样、xy轴随机翻转和随机旋转
- 但是,添加这些方法后,网络仍然很容易区分不同的训练实例
- 因此,我们添加了两种新的数据增强方法:随机长方体和随机掉落补丁( random cuboid and random drop patches)
3.5. Implementation Details
4. Experiments
4.1. Pretraining with Point Input Format
4.1.1 Training Higher Capacity Models
4.1.2 Using More Single-view Pretraining Data
4.1.3 State-of-the-art Detection Frameworks
4.1.4 Label Efficiency of Pretrained Models
4.2. Pretraining with Multiple Input Formats
5. Analysis
5.1. Importance of Data Augmentation
5.2. Impact of Single-view or Multi-view 3D Data
5.3. Generalization to Outdoor LiDAR data
6. Conclusion
- 我们提出了 DepthContrast——一种易于实现的自我监督方法,它适用于模型架构、输入数据格式、室内/室外、单/多视图 3D 数据。
- DepthContrast 为 3D 识别任务预训练高容量模型,并利用可能没有多视图信息的大规模 3D 数据。
- 我们在检测和分割基准上展示了最先进的性能,优于所有先前的检测工作。
- 我们提供了重要的见解,使我们的简单实施工作良好 - 与多种输入数据格式和新的数据增强联合训练。我们希望 DepthContrast 有助于 3D 自监督学习的未来工作