来源:投稿 作者:橡皮
编辑:学姐
论文链接:https://arxiv.org/abs/2306.02329
摘要:
训练模型将常识性语言知识和视觉概念从 2D 图像应用到 3D 场景理解是研究人员最近才开始探索的一个有前景的方向。然而,2D 提炼知识是否可以为下游 3D 视觉语言任务(例如 3D 问答)提供有用的表示仍然尚未得到充分研究。在本文中,我们提出了一种新颖的 3D 预训练视觉语言方法,即 Multi-CLIP,该方法使模型能够学习基于语言的且可转移的 3D 场景点云表示。我们通过对比目标最大化编码的 3D 场景特征与 CLIP 空间中相应的 2D 多视图图像和文本嵌入之间的一致性,从而利用 CLIP 模型的表征能力。为了验证我们的方法,我们考虑了 3D 视觉问答 (3D-VQA) 和 3D 情境问答 (3D-SQA) 具有挑战性的下游任务。为此,我们开发了新颖的基于多模态变压器的架构,并演示了我们的预训练方法如何提高其性能。定量和定性实验结果表明,Multi-CLIP 在 3D-VQA 和 3D-SQA 下游任务中的性能优于最先进的工作,并产生结构良好的 3D 场景特征空间。
1.引言
人类本质上具有文本和视觉结构的耦合表征来塑造他们对世界的感知。近年来,视觉和语言研究在开发有效绘制视觉和文本模式之间对应关系的模型方面取得了显着进展。
第一个视觉和语言任务是视觉问答(VQA),它需要高级常识推理以及增强的文本和视觉理解,其中模型根据图像中的视觉内容预测答案。这项任务的主要方法利用精心设计的预训练策略和基于多模式变压器的架构,这些架构学习可概括的上下文文本和视觉嵌入。然而,这些方法仅限于 2D 视觉信息,这种限制影响了它们在许多 3D 世界应用中的可用性,例如机器人和 AR/VR。
在这个方向上,最近的工作旨在将 VQA 扩展到 3D 领域。最近发布的两个基准测试,即 ScanQA和 SQA3D,分别介绍了 3D 视觉问答(3D-VQA)和 3D 情境问答(3D-SQA)的任务。在 3D-VQA 设置中,模型从丰富的 RGB-D 室内扫描接收 3D 场景的视觉信息,并且必须回答有关场景内容的给定问题并定位所涉及的对象。在 3D-SQA 设置中,提供了额外的文本输入来描述场景中代理的情况(即位置和方向)。任务是首先了解智能体的情况,然后回答有关周围环境的问题。然而,将 2D VQA 方法扩展到 3D 领域并非易事,因为 3D 模型面临着理解复杂几何结构和对象之间空间关系的挑战。
图 1:我们的预训练方法鼓励通过对比损失将 3D 场景表示与 CLIP 空间中的相应文本和多视图图像嵌入对齐。
为了赋予模型 3D 语义理解和推理能力,出现了一条新的研究方向。最近的工作利用基础模型的 2D 知识,例如 CLIP [9],并在 3D 对象识别和 3D 语义分割任务上实现了最先进的零样本性能。 3D 表示学习的其他工作通过利用预训练策略来解决这些任务。采用对比像素到点方法将2D视觉信息传输到3D模型,探索了一种无监督预训练方案来对齐3D点云和体素表示。然而,据我们所知,尚未提出用于视觉语言任务(例如 3D 问答)的借口方法来指导模型将场景级 3D 视觉输入与语言线索和 2D 信息相关联。
在这项工作中,我们提出了 Multi-CLIP,这是一种简单而有效的 3D 视觉语言 (V-L) 预训练方法,可帮助模型学习可转移且具有语义意义的场景表示。我们证明,注入来自大规模预训练 2D 视觉和语言模型的知识可以增强模型基于 3D 场景的感知,并提高下游 3D 视觉语言任务的性能。为此,我们开发了一个基于 Transformer 的 3D 场景编码器模块,它通过对场景对象特征之间的空间关系进行建模来捕获整体 3D 场景表示。我们提出的预训练目标是通过训练场景编码器将 3D 扫描的外观和几何特征投影到具有所需属性的可解释嵌入空间来促进 3D 点云理解。这可以通过将 3D 场景感知嵌入与 CLIP生成的相应文本和多视图图像表示对齐来实现。
为了验证我们方法的有效性,我们考虑了 3D-VQA 和 3D-SQA 具有挑战性的下游任务。为此,我们将预训练的 3D 场景编码器的权重转移到一种新颖的 3D 视觉语言架构中,该架构融合了多模态表示并以监督方式微调模型。我们的微调模型在 3D-VQA 和 3D-SQA 任务以及参考对象定位的辅助任务上实现了最先进的结果。我们还提供了预训练后所学习的 3D 场景特征的可视化,证明我们的模型学习语义结构的潜在空间中的映射,其中具有相似属性的场景聚集在一起。
2.相关工作
3D问答。启动语言驱动的 3D 场景理解研究的任务是 3D 语言基础,其中模型必须在文本描述的指导下定位场景中的对象。基于这些进展,提出了一项新任务,即 3D 视觉问答,它测试模型的空间关系理解和常识推理能力。在此问题中,模型通常以 3D 场景扫描的形式接收 3D 视觉信息,并负责回答有关场景的问题。在这个方向上已经提出了一些基准,如基于 ScanNet场景引入了一个新的 3D-VQA 数据集,即 ScanQA,并开发了一种联合建模 3D 对象和问题特征的架构来预测正确答案。最近,Ma 等人提出了 SQA3D,一个用于具体场景理解和问题回答的数据集。在此设置中,代理必须按照文本提示的描述定位其在 3D 场景中的位置,并回答有关其环境的问题。在这项工作中,我们开发了新颖的架构来处理 3D-VQA 和 3D-SQA 的任务,并表明我们的预训练方法在 ScanQA 和 SQA3D 基准上取得了最先进的结果。
2D 和 3D 视觉语言预训练。在 2D 领域,V-L 预训练已经得到了彻底的研究。用于语言和图像理解任务的方法在很大程度上受益于大规模 V-L 数据集的广泛预训练,从而能够提取有意义的图像文本表示。两个典型的例子是 VL-BERT和 UNITER。这些架构的核心是多模态转换器编码器,它利用丰富的预训练策略进行全局图像文本对齐和细粒度单词区域映射。
在 3D 领域,当前最先进的预训练方法侧重于学习增强的 3D 点云语义属性,这些属性可以成功部署在下游任务中,例如 3D 对象分类和场景分割。最初的工作重点是学习可转移和增强不变的点云表示。在 DepthContrast中,作者通过实例辨别目标提出了点云和体素架构的联合预训练框架。最近的工作通过利用大规模 2D 模型,采用跨模式预训练方法。在其他工作中,作者使用像素到点对比损失将像素级和点级特征映射到相同的潜在空间。类似地,在 CrossPoint中,作者通过自监督对比学习强制执行对象特征的 3D-2D 对应性和仿射点云变换的不变性。然而,这些方法研究的是 2D 图像背景下的预训练,或者专注于单个对象而缺乏场景背景。据我们所知,基于语言的 3D 场景推理和问答任务的预训练方法尚未被探索,这些方法利用文本、2D 和 3D 视觉模式之间的协同作用,通过这项工作,我们的目标是激发人们对这个方向的兴趣。
3.提出的方法
我们提出了一种代理方法(图 1),通过对比学习损失将 3D 场景表示与 CLIP 空间中相应的文本和多视图图像嵌入对齐。为了证明其有效性,我们 (a) 以此目标预训练 3D 场景编码器(第 3.1 节),以及 (b) 将学习到的表示转移到新颖的 3D V-L 模型,并针对 3D-VQA 的下游任务对其进行微调(第 3.2 节)和 3D-SQA(第 3.3 节)。由于两个下游任务的问题设置不同,我们稍微修改了 3D V-L 模型的架构,以独立地训练每个任务。
3.1 预训练框架概述
3D 场景编码器。我们将场景建模为由 N 个点组成的 RGB 颜色点云,p ∈ R N×6 ,由 3D 场景编码器处理以生成场景对象的整体表示。场景编码器 fθ 包含一个带有预先训练的 PointNet++主干的 VoteNet,它输出一组 M 点簇,Cv ∈ RM×128,表示具有丰富点特征的 3D 对象备选。 VoteNet 模型后面是一个transformer编码器层,它利用自注意力通过建模对象的空间关系来细化对象表示。我们将场景编码器 fθ 获得的最终场景表示表示为 C ∈ RM×128 。
3D 场景编码器预训练。 3D-VQA 和 3D-SQA 的检查任务需要常识推理以及对场景中文本和 3D 对象区域之间的潜在关系的深入理解。因此,我们预训练方法的目标是通过将对 CLIP 的丰富 2D 视觉和语言理解转移到 3D 模型来鼓励判别性特征学习。为了实现这一目标,我们的目标是最大限度地提高 3D 场景编码器 fθ 生成的场景级特征与相应的 CLIP 文本和多视图图像表示之间的一致性。为了学习场景的增强 2D 表示,我们通过沿 z 轴等角度旋转从五个不同的视图渲染它。这些视图由 CLIP 图像编码器处理,我们通过对它们进行平均来融合多视图特征,以获得视图鲁棒的场景表示 Zimage。我们通过 CLIP 的文本编码器将场景的文本描述嵌入到相同的特征空间中,接收文本表示 Ztext。
图 2:针对 3D-VQA(左)和 3D-SQA(右)两个下游任务提出的模型架构。
为了生成 3D 场景全局表示 Zscene,我们遵循[27]的做法,并将可学习的分类标记附加到 VoteNet 提取的对象特征的输入序列中。 Transformer 编码器输出处的该 token 的状态(即全局特征)通过线性投影头投影到 R d 中的 CLIP 特征空间。我们的目标是对齐文本、图像和点云模式。为了实现这一目标,我们通过修改 InfoNCE 损失,利用 3D-2D 和 3D 文本噪声对比估计 (NCE) 损失进行对比学习。我们提出的损失鼓励模型使 3D 场景特征接近其相应的 2D 图像和文本特征,同时将它们与其他不同的 2D 图像和文本嵌入分开。正式地,
其中 (Zi,scene, Zi,text) 和 (Zi,scene, Zi,image) 分别是批次中每个样本 i 的正文本场景和图像场景对,B 是批次大小,τ 是温度系数。
形式上,预训练的最终损失定义为
其中我们设置 α, β = 0.5。
3.2 3D-VQA 模型架构
我们的下游 3D-VQA 任务架构(图 2)由三个模块组成:预训练的 3D 场景编码器 fθ(处理 3D 场景点特征)、CLIP 文本编码器(生成问题词嵌入)和 3D 视觉语言转换器融合视觉和问题表征。该模型的任务是找到问题的正确答案并定位问题所引用的目标对象。
为了处理这个问题,我们使用 CLIP 的文本编码器来获得 512 维的单词级嵌入 Q ∈ R Nq×512,其中 Nq 是问题中的单词数量。由场景编码器 fθ 提取的单词和 3D 场景特征使用两个独立的线性层转换为相同的隐藏维度 h。然后,它们通过两层转换器编码器连接和融合,该编码器利用自注意力来建模模内和模间关系。更新的场景对象特征 C' ∈ RM×h 被转发到线性层,该线性层通过确定 M 个对象框中的每一个与问题相关的可能性来执行目标对象定位。在 CLIP 之后,我们将问题的更新的 EOT 嵌入(序列中的最后一个标记)视为池问题特征 Q′ ∈ R h 并将其用作两个线性分类器的输入。第一个通过将 Q′ 投影到 Na 候选答案的向量 a ∈ R Na 中来预测正确答案。第二个预测 18 个 ScanNet类中的哪些对象与问题相关。
损失函数。我们将最终损失建模为四项的线性组合。我们利用[13]中定义的参考对象定位损失 Lloc 和 VoteNet [25] 的对象检测损失 Ldet。为了进一步监督训练,我们包括一个对象分类损失 Lobj ,它被建模为多类交叉熵损失和一个答案分类损失 Lans ,它是一个二元交叉熵(BCE)损失函数,因为可能有多个候选人回答。因此,总损失定义为Lvqa = Ldet + Lobj + Lans + Lloc。
3.3 3D-SQA 模型架构
在 3D-SQA 中,模型会获得一个额外的输入句子,用于描述场景中代理的情况并回答相关问题。因此,我们修改了架构(图 2),将这种情况纳入我们的管道中。我们利用 CLIP 的文本编码器获得 512 维的词级情境嵌入 S ∈ R Ns×512,其中 Ns 是情境描述中的词数。
情境词嵌入 S 用作转换器解码器的输入(充当查询标记),3D 场景特征 C 用于生成键和值。我们利用交叉注意模块来捕获它们之间的关系,并根据情况生成以对象为中心的特征标记。这些被转发到第二个转换器解码器,在那里它们处理问题 Q 的语言标记以产生最终表示。最后,我们利用两个 MLP,一个用于预测问题的答案 a ∈ R Na,另一个用于预测场景中智能体的位置 l = (s pos, srot)。
损失函数。我们采用与上一节中描述的类似的损失公式。为了使其适应 3D-SQA 任务,我们用两个辅助 MSE 损失 Lpos 和 Lrot 代替对象定位和分类损失,这两个损失鼓励模型准确预测所描述输入中代理的位置 s pos 和方向 s rot分别情况。方向表示为四元数 (x, y, z, w),位置表示为 3D 坐标 (x, y, z)。因此,总损失定义为 Lsqa = Ldet + Lans + Lpos + Lrot。
4.实验
在本节中,我们通过将预训练 3D 网络的学习表示转移到两个下游 3D 视觉语言任务来验证我们的方法。评估任务是 (a) ScanQA 数据集上的 3D 视觉问答和参考对象定位的辅助任务,以及 (2) SQA3D 数据集上的 3D 情境问答。
4.1 实验设置
数据集。 ScanQA数据集包含 ScanNet数据集的 800 个室内 3D 场景的 41,363 个不同的问答对和 3D 对象定位注释。 ScanQA 还包括两个带对象注释和不带对象注释的测试集。 SQA3D数据集基于 650 个 ScanNet 场景提供了大约 6,800 种独特的情况,并附有针对这些情况的 20,400 个描述和 33,400 个不同的推理问题。 ScanNet 是内部空间 3D 网格重建的大规模带注释数据集。在预训练阶段,我们使用 ScanRefer 数据集获取文本描述,该数据集提供了 800 个 ScanNet 场景的 51,583 条描述。我们还使用 ScanNet 点云数据通过 Open3D 软件渲染多个视图的 RGB 图像。
实施细节。我们使用 Adam优化器,使用 16 的批量大小、1e-4 的学习率和 1e5 的权重衰减,对 3D 场景编码器进行 15K 次迭代的预训练。我们使用场景编码器的预训练权重,并在 ScanQA 上微调 3D-VQA 网络 40 个时期,初始学习率为 5e-4,我们在第 15 个时期将其降低了 0.2 倍。同样,我们使用相同的初始学习率对 SQA3D 上的 3DSQA 网络进行 50 个 epoch 的微调。为了减轻过度拟合,我们使用 [−5°, 5°] 范围内的随机角度围绕所有三个轴进行旋转,并在所有方向上随机平移 0.5 m 范围内的点云。我们还使用了随机长方体增强,它从输入点云中提取随机长方体。
4.2 结果
3D 视觉问答。为了衡量我们的模型在 3D-VQA 上的下游性能,我们报告了 EM@1 指标,它是预测答案与任何真实答案完全匹配的预测百分比。我们引入了句子评估指标BLEU、ROUGE-L、METEOR和CIDEr。这些指标对于评估稳健的答案匹配非常重要,因为某些问题有多种可能的答案表达。为了评估所引用的对象定位精度,我们报告了 Acc@0.25 和 Acc@0.5 指标,它们是与地面事实的 IoU 分别高于阈值 0.25 和 0.5 的边界框预测的百分比。作为基线,我们使用当前最先进的 ScanQA以及 ScanRefer+MCAN方法,其中预训练的 ScanRefer模型识别引用的对象并应用 MCAN 模型到它周围的图像。我们还比较了从头开始训练的模型的性能。结果如表1和表2所示。通过我们的预训练方法,我们报告问题回答指标显着增加,Acc@0.25 和 Acc@0.5 指标分别提高了 3.03% 和 2.83%。这验证了我们的预训练策略在问答和引用对象定位方面的有效性。我们还观察到我们的方法比 ScanQA 基线取得了显着的改进。
表 2:ScanQA 有效数据集上参考对象定位结果的比较。
3D 情境问答。我们在 SQA3D 测试集上进一步评估我们的方法。我们采用EM@1作为我们的评估指标。我们在表 3 中报告了我们的结果,其中我们使用当前最先进的方法作为基线。在对 SQA3D 训练分割进行预训练和微调后,我们报告与从头开始训练相比,答案准确性有了明显的性能提升。
表 3:SQA3D 测试数据集上的 3D 情境问答结果比较。
4.3 可视化
在图 4 中,我们提供了预训练 3D 场景编码器学习特征的 T-SNE可视化,无需对下游任务进行微调。我们观察到具有语义相似属性(即相同场景类型)的场景在嵌入空间中形成簇。这凸显了该模型在使用丰富的 2D 视觉和语言信息进行预训练时获得的高级语义理解能力。此外,我们观察到,与使用常用的余弦相似性损失来对齐 3D-2D 和 3D 文本特征相比,我们提出的对比预训练目标会在特征空间中产生更具辨别力的表示,如稍后在 4.4 节中讨论的。
图 4:ScanNet 中场景级特征的 T-SNE 可视化。在预训练期间学习的 3D 场景编码器权重会产生结构化的特征表示空间。
4.4 消融实验
为了证明我们的预训练流程设计选择的合理性,我们在 SQA3D 上进行了消融研究(表 4)。
多个视图有帮助吗?许多工作已经证实,学习对视图变化具有鲁棒性的多模态表示有利于 3D 对象和场景的理解。因此,我们假设将 3D 场景点云渲染到多个 2D 平面并聚合多视图信息将在所检查的下游任务中带来性能提升。我们将使用 5 个视图进行预训练的结果与仅使用自上而下的场景视图进行训练的结果进行比较。可以看出,添加更多视图会提高准确性。这证实了我们的直觉,即多视图表示可以促进 3D 场景和语言查询之间的对应学习。
对比损失是一个好的选择吗?我们通过用余弦相似距离损失代替对比目标,通过实验研究对比学习是否是我们的预训练策略的最佳选择。我们可以从表 4 中的实验结果和图 4 中的特征空间可视化中推断出,对比学习可以提高下游性能,并鼓励模型捕获更有效地区分相似和不相似数据点的表示。
所有损失项都很重要吗?我们在对比损失公式中探索了每个项的额外好处。结果表明,删除 Ltext 或 Limage 都会降低准确性。这验证了我们的假设,即将 3D 点云与其语言描述和 2D 多视图图像连接起来可以促进空间关系理解和推理。
表 4:SQA3D 测试集的消融研究。
5.结论
在本文中,我们提出了 Multi-CLIP,这是一种新颖的 V-L 预训练策略,可帮助模型学习语义上有意义且基于语言的 3D 场景特征,这些特征可以转移到 3D 场景推理和问答下游任务。这是通过对比目标将 3D 提取的特征与相应的字幕对齐并在 CLIP 嵌入空间中渲染的 2D 多视图图像来实现的。我们在 3D-VQA 和 3D-SQA 下游任务上的定量和定性结果表明了我们的方法在学习丰富的 3D 场景表示方面的有效性,并在具有挑战性的 ScanQA 和 SQA3D 基准上展示了最先进的性能。
关注下方《学姐带你玩AI》🚀🚀🚀
回复“VQA”获取视觉问答顶会论文合集
码字不易,欢迎大家点赞评论收藏