专栏名称: 学姐带你玩AI
这里有人工智能前沿信息、算法技术交流、机器学习/深度学习经验分享、AI大赛解析、大厂大咖算法面试分享、人工智能论文技巧、AI环境工具库教程等……学姐带你玩转AI!
目录
相关文章推荐
央视新闻  ·  当心!这些常喝的饮品,正在悄悄升高你的尿酸 ·  17 小时前  
半岛晨报  ·  突发!刘诗诗将所持股权转让给吴奇隆 ·  3 天前  
51好读  ›  专栏  ›  学姐带你玩AI

ECCV'24 涨点神器!通过3D感知微调提升2D特征!项目已开源

学姐带你玩AI  · 公众号  ·  · 2024-09-16 18:20

正文

来源:投稿  作者:橡皮
编辑:学姐

论文链接:https://arxiv.org/abs/2407.20229

项目主页:https://ywyue.github.io/FiT3D

unset unset 摘要: unset unset

当前的视觉基础模型纯粹基于非结构化 2D 数据进行训练,限制了它们对对象和场景的 3D 结构的理解。在这项工作中,我们表明对 3D 感知数据进行微调可以提高新兴语义特征的质量。我们设计了一种方法,将语义 2D 特征提升为高效的 3D 高斯表示,这使我们能够为任意视图重新渲染它们。使用渲染的 3D 感知功能,我们设计了一种微调策略,将这种 3D 感知转移到 2D 基础模型中。我们证明,以这种方式微调的模型产生的特征可以通过简单的线性探测轻松提高语义分割和深度估计中的下游任务性能。值得注意的是,尽管在单个室内数据集上进行了微调,但这种改进可以转移到各种室内数据集和域外数据集。我们希望我们的研究能够鼓励社区在训练 2D 基础模型时考虑注入 3D 意识。

unset unset 1 引言 unset unset

自从深度神经网络出现以来,视觉系统主要在二维数据集上进行训练。借助视觉变换器 (ViT) 等最新架构的可扩展性,一些大型视觉模型已通过监督或自监督学习从一组丰富的二维图像中训练出来。视觉基础模型作为通用特征提取器表现出令人印象深刻的实用性,可用于改善下游任务的结果,例如分割、深度估计或对应估计。它们在大量现成的二维图像上进行训练,从而学习二维像素空间中物体和场景结构的统计数据。

图像是我们 3D 世界的简单投影,易于获取,并提供了一种描绘视觉世界的有效方法,同时丢弃了明确的 3D 几何信息。预计纯粹在 2D 图像上训练的视觉系统无法完全理解我们世界的底层 3D 结构。我们的 3D 世界有几个有希望的特性,例如多视图一致性和用于解决单视图模糊性的多视图融合。这些模型的训练设置的一个关键限制是它们没有完全推理所见物体的 3D 结构。训练图像以非结构化的方式呈现给网络,没有任何多视图或视频对应关系,无法从多个视图匹配对同一物体的观察。因此,这些模型对从不同视图观察到的物体的 3D 理解有限,例如,不同视图不会产生视图一致的特征。

相比之下,当我们人类观察图像时,我们不仅能感知二维视觉内容,还能利用推断出的底层三维结构,从而轻松实现整体理解,而这些结构是我们通过终生观察立体和时间信息学到的。在这项研究中,我们研究了大型二维视觉模型是否也能从通过展示正确类型的数据而获得的这种三维感知理解能力中获益。

图 1:我们提出 3D 感知微调来改进 2D 基础特征。我们的方法首先将 2D 图像特征(例如 DINOv2 [44])(b)提升为 3D 表示。然后我们使用 3D 感知特征微调 2D 基础模型(c)。我们证明,结合微调后的特征(d)可以提高下游任务(例如语义分割和深度估计)的性能,这些任务在各种数据集上都只需简单的线性探测(右)。使用主成分分析 (PCA) 可视化特征图。

为此,我们设计了一种新颖的两阶段方法来提高二维基础模型的 3D 感知理解能力。在第一阶段,我们的目标是获得 3D 感知特征作为训练数据。受神经场景表示的最新进展的启发,我们设计了一种方法,将多视图二维基础特征提升为高效的 3D 高斯表示。提升过程利用了多视图一致性,并允许来自不同视图的二维特征相互补充。此外,由于从多视图 RGB 指导中学习到的 3D 结构,融合特征(图 1(c))表现出高分辨率和精细细节。一旦经过训练,3D 高斯就可以为任意视图渲染特征。在下文中,我们将以这种方式获得的特征称为 3D 感知。在第二阶段,我们利用渲染的 3D 感知特征来微调二维基础模型(图 2)。为此,我们设计了一种有效的微调策略,将这种 3D 感知转移到 2D 基础模型中。微调后,我们评估下游任务的特征质量,这些任务可能受益于更好的 3D 理解,即语义分割和深度估计。大量实验表明,结合 3D 感知特征可以通过简单的线性探测改进下游任务,并在域外数据集上表现出泛化能力。

图 2:我们的 3D 感知微调是通用的,适用于各种 2D 视觉模型,例如 DINOv2、DINOv2-reg、CLIP、MAE 和 DeiT-III(参见第 4.5 节)。

unset unset 2 相关工作 unset unset

我们在第 2.1 节中概述了最近的自监督 2D 表示学习技术,并在第 2.2 节中介绍了如何将新兴特征提炼成 3D 表示。然后,我们在第 2.3 节中讨论了利用 3D 信息改进 2D 表示方法的先前工作。

2.1 二维表示学习

表示学习在图像领域取得了令人瞩目的进展。它旨在从丰富的数据中学习可泛化的视觉特征。自监督表示学习由于不需要标记数据而引起了特别的兴趣。早期的工作采用借口任务进行预训练,旨在利用固有数据属性自动生成替代标签。后来,对比学习通过利用图像或图像组之间的判别信号被广泛用于表示学习。最近,受 BERT 的启发,一种新的掩蔽图像建模范式已被提出用于可扩展的视觉学习。然而,所有这些方法都只是在二维图像数据上进行训练,而没有访问底层的三维结构。我们的工作旨在用三维意识来补充纯粹从二维观察中学习到的特征。

2.2 提取特征融合域

神经辐射场 (NeRF) 是一种很有前途的场景表示,可用于高质量的 3D 重建和新颖的视图合成。最近,一些研究探索通过神经渲染将预训练的图像特征(例如 DINO、CLIP、LSeg 或 OpenSeg)提炼到 NeRF 中。这种提炼的特征融合场不需要任何标签,可以实现多个零样本 3D 场景理解任务,例如分割、场景编辑和开放词汇查询。我们从这些研究中获得类似的灵感,将 2D 特征提炼成 3D 表示。然而,我们不是专注于使用特征场进行感知任务,而是有兴趣利用渲染的 3D 感知特征来改进 2D 特征提取器。我们证明了转移的 3D 感知可以轻松改进语义和几何任务上的 2D 特征。此外,我们扩展了最近基于高斯的表示,设计了一种将 2D 特征提炼成 3D 高斯的方法,同时保持高效率和内存限制。目前已有多项研究引入了具有语义特征的三维高斯模型。然而,这些研究都没有将特征提炼回二维模型。我们的研究首次表明,将语义特征融合到三维表示中可以通过微调有效改进二维基础模型。

2.3 将 3D 先验注入2D

现有研究主要集中于将多视图 2D 特征融合到 3D 表示中。很少关注将 3D 感知融入 2D 表示学习的另一个方向。Pri3D 使用来自 RGB-D 重建的几何约束(多视图一致性和 2D-3D 对应)来学习基于图像的表示的 3D 先验,并进行对比学习。最近,受到蒙版自动编码器 (MAE) 的启发,一些研究采用蒙版图像建模策略来学习 3D 先验。然而,所有这些方法都需要使用手工制作的借口任务对 2D 特征提取器(通常是 Vision Transformer (ViT) 主干)进行预训练。然后通过微调将预训练的模型应用于下游任务。相比之下,我们的目标是通过微调将嵌入在多视图融合特征中的 3D 感知转移到 2D 特征提取器,并且只需要很少的计算资源。我们的 3D 感知特征可以通过简单的线性探测轻松提高下游任务性能。此外,我们发现与原始的 2D 特征相比,我们的 3D 感知特征呈现出更清晰、更详细的特征图(参见附录中的 D 节),而几项同时进行的工作专门对 2D 特征图进行去噪或锐化。

unset unset 3 方法 unset unset

在本节中,我们介绍了使用 3D 感知特征微调 2D 基础模型的方法。我们提出了一个两阶段流程(参见图 3)。在第一阶段,我们将每个视图的 2D 特征提升为多视图一致且 3D 感知的表示。表示和设置在 3.1 节中描述。在第二阶段,我们使用获得的 3D 感知特征表示作为训练数据集来微调 2D 特征提取器,这将在第 3.2 节中详细介绍。最后,我们在第 3.3 节中描述了用于特征评估的线性探测方法。

3.1 将特征提升至3D

将语义 2D 特征提升到 3D 是最近的趋势,并且存在几种不同的选择(参见第 2 节)。对于我们使用大量场景作为 2D 模型的训练数据的目的,最重要的方面是效率。表示需要 (1) 能够有效地将大量场景融入 3D 表示中,以及 (2) 具有快速渲染机制,以便有效地集成到 2D 基础模型的微调循环中。因此,我们利用 3D 高斯分层的最新进展,实现快速优化和实时渲染。图 4 说明了我们如何扩展高斯分层以提升 2D 基础特征,我们将在下面详细介绍该方法。

图 3:整体流程。我们提出了一个两阶段流程。在第一阶段,我们通过训练 3D 高斯表示 Gi 将 2D 基础特征(例如 DINOv2)提升为 3D 感知特征。在第二阶段,我们使用渲染的特征来微调 2D 基础模型 ε 2D。用 → 表示梯度流。

3D 特征高斯。 根据 3D 高斯分布的公式,我们定义一组 3D 高斯为

其中 是高斯的 3D 均值, 是高斯尺度, 是其方向, 是每高斯不透明度,**SH **是球面谐波系数向量,用于编码视图相关的颜色。高斯协方差矩阵由比例和方向的组合获得,即 。除了原始参数之外,我们还引入了一个每高斯特征向量 来将提炼的 2D 特征存储在 3D 空间中。使用我们设计的特征光栅化器将这些特征向量光栅化为 2D 特征图像。受到高斯溅射可微分颜色光栅化的启发,我们使用基于点的 α 混合对特征进行光栅化,如下所示:

其中 N 是一组与像素重叠的有序高斯函数, 是每个高斯函数的特征,αi 是通过评估协方差 Σ 乘以学习到的每点不透明度的二维高斯函数得出的。

向上投射的特征。 3D 高斯作为表示的一个主要限制是其内存消耗。由于每个场景可能有数百万个高斯,因此不可能直接在每个 3D 高斯上存储例如 384 维 DINO 特征。因此,为了保持内存效率并保持快速渲染过程,我们选择存储较低维特征 ,其中 D << 384 并训练场景特定的像素空间 CNN 解码器 以在渲染后将特征图像向上投影到高维特征空间。我们将在第 4.6 节中分析此方法引入的权衡。

图 4:将 2D 特征提升为 3D 高斯表示。我们为每个高斯配备一个低维特征向量 f。我们使用与高斯分布相同的颜色光栅化器渲染颜色。我们设计了一个特征光栅化器来渲染低维特征图像 F low,随后使用简单的 CNN 将其投影为高维特征图像 F high。我们使用来自模型 ε 2D 的 2D 基础特征 F 来监督特征学习。

优化。 对于给定场景,可以使用优化获得完整的 3D 高斯表示,包括我们提取的特征。令 为具有相应相机参数的场景多视图图像集, 为来自 2D 特征提取器(例如 DINOv2)的相应特征图集, 分别为使用图像 i 的相机姿态 将一组高斯图像渲染为 RGB 或特征图像的光栅化函数。然后,我们优化高斯参数,以最佳地表示图像 和特征图像

其中 是 RGB 图像上逐像素 l1 损失与 D-SSIM 项相结合的结果,而 是特征图像上逐像素 l1 损失的结果。值得注意的是,我们仅使用来自 (特征图像)的梯度来优化 f,其余参数仅在 (RGB 损失)上优化。事实证明,这对于获得一致的 3D 特征表示至关重要,因为来自特征空间的损失不会导致正确的高斯均值、协方差和不透明度。我们推测,造成这种情况的原因是 2D 特征提取器缺少 3D 一致性。只有通过强制将它们转换为 3D 一致表示,我们才能使它们保持一致。

3.2 3D感知微调

上一节中描述的过程用于拟合 K 个场景的 3D 特征高斯表示。3D 感知微调的算法概述于算法 1 中。微调过程需要训练原始 2D 特征图和 3D 感知特征图对。由于保存特征图会占用大量内存,因此我们会动态生成训练对。考虑到在渲染特征时加载每个预训练的高斯非常耗时,我们将所有高斯预加载到 CPU 内存中。在训练循环的每一步中,我们从所有训练图像中随机抽取一个视图,然后检索其相关的特征高斯和场景特定的 CNN 解码器,最后将特征 F high 渲染为微调的基本事实特征。微调损失是 F high(调整大小后)和微调后的 2D 特征提取器的输出特征之间的 l1 损失。

上述设计使微调过程高效,并控制内存消耗。值得注意的是,我们只需要用少量的 epoch(例如,DINOv2 为1个epoch)和较小的学习率对 2D 特征提取器进行微调,而无需额外引入任何网络组件。微调过程快速且计算友好。微调时间的分析在第 4.6 节中。

3.3 下游任务的线性探测

在对 3D 感知特征进行微调后,我们会在一系列标准基准下游任务上评估新出现的特征。为此,我们在这些特征的基础上训练了一个线性头,以解决多个数据集上的语义分割和深度估计任务。

语义分割。 训练线性层来预测来自块标记的类别逻辑。线性层生成低分辨率逻辑图,然后将其上采样到全分辨率以获得分割图。

深度估计。 我们将 ViT 的 [CLS] 标记连接到每个补丁标记。我们将深度预测范围划分为 256 个均匀分布的区间,并使用线性归一化。然后使用分类损失训练一个简单的线性层。

特征组装。 我们将原始 2D 特征与微调后的特征连接起来。我们观察到,这是保留原始 2D 特征提取器的泛化能力,同时将 3D 感知融入微调后的特征中的关键。第 4.6 节评估了不同的特征组装策略。

unset unset 4 实验 unset unset

4.1 数据集

训练。 我们在 ScanNet++ 上训练特征高斯,这是一个包含亚毫米分辨率激光扫描、已配准的 DSLR 图像和 iPhone 的商品 RGB-D 流的大型 3D 室内场景数据集。我们在 230 个场景的官方训练分割上进行训练,这些场景包含 140451 个视图。

评估。 为了检验微调特征的有效性,我们对下游 2D 任务进行了大量实验,包括语义分割和深度估计。我们的研究中没有直接的竞争对手,而是专注于我们的 3D 感知微调是否能比标准 2D 特征提取器带来性能提升。我们使用 DINOv2 进行了大部分实验,同时在第 4.5 节中展示了我们的方法与其他视觉模型的通用性。我们首先在 ScanNet++ 验证集上进行评估,其中包含 50 个场景,共 30638 张图像。然后我们转到其他室内数据集 ScanNet 和 NYUd。它们具有与 ScanNet++ 相似的数据分布,但使用不同的传感器捕获。为了研究微调特征的泛化能力,我们还对一般分布的数据集执行域外评估,包括 ADE20k、Pascal VOC 和户外数据集 KITTI。

4.2 实现细节

特征高斯。 我们编写了自定义 CUDA 内核用于特征光栅化。每个高斯函数都使用维度为 64 的随机特征向量进行初始化。我们使用单个卷积层实现上投影 CNN,内核大小为 3×3。我们训练每个场景的特征高斯函数,用于新视图合成和特征渲染,共进行 30000 次迭代。

微调。 我们对 DINOv2 small 进行微调,特征维度为 384,批处理大小为 2,学习率为 1e-5,持续 1 个 epoch。我们使用水平翻转作为数据增强。我们使用 AdamW 优化器,权重衰减因子为 1e-4。在单个 Nvidia Tesla A100 上进行微调需要 8.5 小时。

线性探测。 我们使用 DINOv2 遵循线性探测协议,以确保公平比较。对于语义分割,我们使用 8 个 GPU 对线性层进行 40K 次迭代训练。对于深度估计,我们使用 8 个 GPU 对线性层进行 38400 次迭代训练。此外,我们使用与 DINOv2 相同的数据增强和学习率计划。

4.3 域内评估

定量比较。 我们展示了将我们的 3D 感知特征结合到室内场景的下游语义分割(见表 1)和深度估计任务(见表 2)中的有效性。对于语义分割任务,我们的 3D 感知特征持续改进了 DINOv2 特征,在 ScanNet++、NYUv2 和 ScanNet 数据集上分别实现了 2.6%、2.0% mIoU 和 1.2% 的显著性能提升。我们的 3D 感知 DINOv2 特征还提高了深度估计任务的性能。特别是,我们的增强特征持续降低了数据集之间的 RMSE,在 ScanNet++ 上实现了 0.34 vs. 0.37(DINOv2),在 NYUv2 上实现了 0.42 vs. 0.44(DINOv2),在 ScanNet 数据集上实现了 0.29 vs. 0.31(DINOv2)。







请到「今天看啥」查看全文