Spatio-temporal Self-Supervised Representation Learning for 3D Point Clouds
摘要
到目前为止,各种 3D 场景理解任务仍然缺乏实用和可推广的预训练模型,这主要是由于 3D 场景理解的复杂性质及其由相机视图、照明、遮挡等带来的巨大变化。在本文中,我们通过引入时空表示学习(STRL)框架来应对这一挑战,能够以自我监督的方式从未标记的 3D 点云学习。受婴儿如何从野外视觉数据中学习的启发,我们探索了从 3D 数据中获得的丰富的时空线索。具体而言,==STRL从3D点云序列中提取两个时间相关的帧作为输入,利用空间数据增强对其进行变换,并自监督地学习不变量表示。==为了证实 STRL 的有效性,我们对三种类型(合成、室内和室外)的数据集进行了广泛的实验。实验结果表明,与监督学习方法相比,学习的自监督表示有助于各种模型获得可比甚至更好的性能,同时能够将预训练的模型推广到下游任务,包括 3D 形状分类、3D 对象检测和 3D 语义分割。此外,嵌入在 3D 点云中的时空上下文线索显著改善了学习的表示。
简述
作者通过 3D 点云的自监督表示学习来解决一个长期的问题,由于 3D 数据的监督目标性质,监督训练难以产生实用和可推广的预训练模型。
作者在设计模型的过程中考虑以下三个原则:
- 简单性:作者认为重建等自监督学习方法是复杂和不必要的。并且可以通过补充缺失的时间上下文线索来减少或消除,类似于婴儿如何理解这个世界。
- 不变性:通过数据增强和对比学习数据不变性在图像和视频上显示出了有希望的结果。
- 通用性:先前的方法仅验证了合成数据集上形状分类中的自监督表示学习,未能扩充到自然环境的 3D 数据中,不能充分证明通用性。
方法:
STRL 使用两个神经网络,称为和,它们相互作用并相互学习。通过增加一个输入,我们训练在线网络来预测通过单独的增强过程获得的另一个时间相关输入的目标网络表示。
在线网络和目标网络的输入在时间上是相关的,从点云序列中采样。具体地说,对于自然图像/视频,作者采样了两个具有自然视点深度变化序列的帧作为输入对。对于像 3D Shape 这样的合成数据通过旋转、平移和缩放来扩大原始输入,以模拟视点变化。输入之间的时间差异有利于模型捕捉不同视点之间的随机性和不变性。额外的空间增强进一步促进了模型学习点云的 3D 空间结构;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i4SOjZFQ-1670244683086)(assets/image-20221203163701-bi93pb3.png)]
通过输入不同时序的点云对,分别对其进行空间增强。
下游任务:
- 3D 形状分类、3D 对象检测、3D 语义分割
方法
作者设计了两种方法来生成训练点云序列,以处理各种数据源。
-
自然序列:由 RGB-D 传感器捕获的数据序列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-25jWNmhK-1670244683088)(assets/image-20221203164826-sj6h8w3.png)]
-
合成序列:与自然序列相比,缺少关键的时间维度。通过连续旋转、平移和缩放原始点云,以构建一系列点云 { p t } \{p_t\} {pt}:
p t = R t ( p t − 1 ) , t = 1 , . . . , T p_t=R_t(p_{t-1}), t=1, ...,T pt=Rt(pt−1),t=1,...,T
- 其中 t 是变换的索引,rt 是采样变换,模拟时间视图变化。
结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWmZHkJC-1670244683089)(assets/image-20221203165029-3tx4159.png)]
类似 BYOL,通过训练在线网络准确预测目标网络的表示。
-
在线网络:由骨干网络和特征投影头部分组成,其参数 θ \theta θ 通过梯度回传得到。
-
目标网络:同在线网络,不过参数通过动量编码器由在线网络的参数更新,且不进行梯度回传。
- ϕ ← τ ϕ + ( 1 − τ ) θ \phi\leftarrow \tau\phi+(1-\tau)\theta ϕ←τϕ+(1−τ)θ, 其中 τ ∈ [ 0 , 1 ] \tau\in[0, 1] τ∈[0,1]
给定一系列点云 P,通过时间采样器 T \Tau T 对两帧点云 p u , p v ∈ P p^u,p^v \in \mathcal{P} pu,pv∈P 进行采样,再通过空间增强 A \mathcal{A} A 产生两个输入 x u , x v x^u, x^v xu,xv,对每个输入分别送入在线网络和目标网络产生输出, z θ = f θ ( e θ ( x u ) ) z_{\theta}=f_{\theta}(e_{\theta}(x^u)) zθ=fθ(eθ(xu)) 和 z ϕ = f ϕ ( e ϕ ( x v ) ) z_{\phi}=f_{\phi}(e_{\phi}(x^v)) zϕ=fϕ(eϕ(xv)),目标是最小化归一化预测和目标预测之间的均方误差:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90VhEn1O-1670244683091)(assets/image-20221203172016-k5invkf.png)]
再将输入 x v x^v xv 和 x u x^u xu 交换送入到网络中计算 L v → u \mathcal{L}_{v \rightarrow u} Lv→u,总共的损失定义为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2i59B6N-1670244683092)(assets/image-20221203172336-0ra7txe.png)]
在每个训练步骤中,。在训练结束时保留在线网络的骨干编码器作为学习模型。
空间数据扩充和时间序列生成:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xhGfbX3-1670244683094)(assets/image-20221203191137-w6smnv7.png)]
合成序列生成:
- Random rotation
- Random translation
- Random scaling
空间增强:
- Random cropping
- Random cutout.
- Random jittering
- Random drop-out
算法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Wz7S07d-1670244683095)(assets/image-20221203191846-owiwgm2.png)]
实验
预训练
作者分别对合成数据集和真实数据集生成点云的时间序列和样本输入对。
对于shapenet:通过使用等式(2)中定义的时间变换将每个点云放大为两个不同的视图,我们生成了两个时间校正的点云。进一步应用空间增强以产生作为输入的点云对。
对于室内和室外场景:从相邻帧之间的时间相关性中学习时间不变性。
室内场景训练数据集:ScanNet
- 每100帧对原始深度序列进行子采样,作为每个场景的关键帧,从而生成1513个序列,总计约25000帧。在预训练期间,基于每个序列的关键帧生成固定长度的滑动窗口,并在每个窗口中采样两个随机帧。通过使用等式(1)反向投影两个帧,我们在世界坐标系中生成点云。我们使用相机位置将两个点云转换为相同的世界坐标;第一帧的相机中心是原点。
室外场景预训练数据集:KITTI
- 对于每个场景,图像和点云以大约10 FPS的速度记录。我们只使用Velodyne激光雷达传感器捕获的点云序列。平均而言,每帧大约有12万点。与ScanNet类似,我们在滑动窗口中对关键帧和采样帧对进行子采样,作为训练对。
对于自然场景的预训练,使用等式(2)中的合成时间变换应用于两点云,进一步增强了数据的多样性, 同时进行数据增强。
下游任务
Shape Understanding:
在Shapenet上预训练主干模型。
分类:
流程:在编码的全局特征向量上附加了一个线性支持向量机(SVM)。#TODO#
backbone:pointnet和DGCNN。
训练过程:利用ModelNet40数据集训练集中提取的全局特征对支持向量机进行训练。在预训练和支持向量机训练期间,我们从每个形状中随机抽样2048个点。
ModelNet40对形状分类的线性评价比较:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HYIrH0Zd-1670244683095)(assets/image-20221205101844-abmfu9u.png)]
形状分类的有监督微调
预训练的模型作为点云编码器的初始权重,根据ModelNet40数据集上的标签对DGCNN网络进行微调。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xf53dXKP-1670244683096)(assets/image-20221205102635-4mzs58o.png)]
表a:在modelnet40上进行微调,自监督预训练模型作为监督学习方法的初始权重。即有监督训练,只不过模型权重初始化为预训练的模型权重。
表b:以不同比例随机抽样训练数据,并确保每个类别至少选择一个样本。接下来,在监督下对这些有限样本上的预训练模型进行微调,并评估其在全测试集上的性能。
可视化PointNet和DGCNN模型的学习特征:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V55dGhtZ-1670244683097)(assets/image-20221205103946-759h4d1.png)]
Indoor Scene Understanding
训练方式:首先在ScanNet数据集上对STRL进行自监督预训练,接下来通过标签微调来评估3D对象检测和语义分割的性能。
3D目标检测:
微调数据集:SUNRGB-D
使用VoteNet进行实验,在预训练期间,稍微修改了它的PointNet++主干,在末尾添加了一个最大池层,以获得全局特性。
预训练:VoteNet + ScanNet数据集 预训练
微调:VoteNet + SUNRGB-D数据集 微调
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cCrsoZhp-1670244683099)(assets/image-20221205110033-agyus3p.png)]
与从头开始训练VoteNet相比,预训练将检测性能提高了1.2 mAP,这表明从大型数据集(即ScanNet)学习到的特征可以成功地转移到不同的数据集,并通过微调提高高级任务的性能。它还比最先进的自我监督学习方法高出0.7mAP。
3D语义分割:
微调数据集:S3DIS
预训练:STRL + ScanNet + DGCNN网络
微调:S3DIS + DGCNN网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-btJ5rIzm-1670244683100)(assets/image-20221205111225-un7ph3m.png)]
每次在区域1-5中的一个区域上微调预训练模型,并在区域6上测试模型。
Outdoor Scene Understanding
作者将学习到的特征迁移到户外场景的3D对象检测任务来评估所提出的STRL的性能。
使用PV-RCNN在KITTI数据集上预训练模型。与VoteNet类似,通过添加最大池层来修改PV-RCNN的骨干网络以进行预训练,从而获得全局特征。
PV-RCNN:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sMKvGIhx-1670244683101)(assets/image-20221205112846-uq3zhzh.png)]
微调数据集:kitti
实验结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lTbVM0pu-1670244683105)(assets/image-20221205112951-geoypp3.png)]
分析实验与讨论
泛化性
ScanNet vs ShapeNet预训练什么样的数据可以使学习的模型更好地泛化到其他数据领域,作者在现有最大的自然数据集ScanNet和合成数据ShapeNet上对模型进行预训练,并测试它们在不同领域的可推广性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AT5TQaIf-1670244683106)(assets/image-20221205114647-tkpam5l.png)]
表6列出了跨域实验设置和结果,证明了从在自然场景上预训练的模型到合成形状域的成功转换,在线性评估下实现了可比的形状分类性能。
实验结果显示在ShapeNet数据集上预训练的VoteNet模型在SUN RGB-D对象检测中的性能优于ScanNet预训练,证明了ShapeNet的数据具有更好的通用性。
原因:
- Xie等人[73]中用于学习点云特征的编码器过于简单,无法从预训练的ShapeNet数据集中捕获足够的信息。
- ShapeNet数据集提供了具有干净空间结构和较少噪声的点云,这有利于预训练模型学习有效表示。
- 尽管ScanNet中的序列数据量很大,但由于只有707个场景,因此模态可能仍然有限。
Temporal Transformation
我们从物体形状的合成视图变换和物理场景的自然视图变换中学习。为了研究它们的效果,我们在ShapeNet数据集上进行预训练时,通过移除某些转换来生成合成形状的训练数据,从而解开组合;表7a总结了结果。对于物理场景,我们在KITTI数据集上预训练PV-RCNN,并比较使用和不使用来自自然序列的采样输入数据训练的模型;表7b总结了结果。在这两种情况下,时间转换都会带来显著的性能提升。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAd5Tkk2-1670244683107)(assets/image-20221205125900-zwoilyx.png)]
Spatial Data Augmentation
我们通过关闭某些类型的增强来研究空间数据增强的效果;见表8。通过将点云扩展为不同的形状和维度,随机裁剪提高了性能,而随机裁剪则会破坏点云的结构连续性,这对于从邻居进行逐点特征聚合至关重要。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q7Mz5kMt-1670244683108)(assets/image-20221205130012-1ll0pev.png)]
结论
本文设计了一个用于学习3D点云表示的时空自监督学习框架。我们的方法具有简单的结构,并在将学习到的表示转移到各种下游3D场景理解任务方面显示了有希望的结果。未来,我们希望探索如何将现有方法扩展到整体3D场景理解以及如何通过对来自不同域的未标记数据的联合训练来弥合域差距。