ICCV 23丨3D-VisTA:用于 3D 视觉和文本对齐的预训练Transformer

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

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

开源代码:http://3d-vista.github.io

摘要:

3D视觉语言标定(3D-VL)是一个新兴领域,旨在将3D物理世界与自然语言连接起来,这对于实现具身智能至关重要。当前的 3D-VL 模型严重依赖复杂的模块、辅助损失和优化技巧,这需要简单且统一的模型。在本文中,我们提出了 3D-VisTA,这是一种用于 3D 视觉和文本对齐的预训练 Transformer,可以轻松适应各种下游任务。 3D-VisTA 仅利用自注意力层进行单模态建模和多模态融合,无需任何复杂的特定于任务的设计。为了进一步增强其在 3D-VL 任务上的性能,我们构建了 ScanScribe,这是第一个用于 3D-VL 预训练的大规模 3D 场景文本对数据集。 ScanScribe 包含源自 ScanNet 和 3R-Scan 数据集的 1,185 个独特室内场景的 2,995 个 RGBD 扫描,以及从现有 3D-VL 任务、模板和 GPT-3 生成的配对 278K 场景描述。 3D-VisTA 通过屏蔽语言/对象建模和场景文本匹配在 ScanScribe 上进行预训练。它在各种 3D-VL 任务上取得了最先进的结果,从视觉标定和密集字幕到问题回答和情境推理。此外,3D-VisTA 展示了卓越的数据效率,即使在下游任务微调期间注释有限,也能获得强大的性能。

1.引言

图 1:我们的 3D-VisTA 管道的总体框架。我们收集各种提示、场景图、3D 扫描和对象来构建 ScanScribe 数据集。通过自监督预训练,3D-VisTA 支持各种下游任务,包括 3D 视觉标定、密集字幕、问题回答和情境推理。

将 3D 物理世界与自然语言结合起来是实现具体人工智能的关键一步,其中智能代理可以理解并进一步执行现实世界中的人类指令。最近,3D 视觉语言 (3D-VL) 任务引起了越来越多的兴趣,包括 3D 视觉标定 、密集描述、语法学习、问题回答、和情境推理。

然而,大多数为 3D-VL 开发的模型仅关注其中一两个 3D-VL 任务,并采用特定于任务的设计。例如,3D-SPS和BUTD-DETR通过关注VL特征并检测每一层中的对象来逐步发现目标对象。 3DVG、MVT和 ViL3DRel通过将空间关系信息显式地注入模型设计中来改进 3D 视觉标定。 3DJCG通过具有两个独立的特定任务头的共享 3D 对象备选模块联合学习 3D 密集字幕和视觉标定。此外,训练这些模型通常需要手动指定的辅助损失(例如,3D 对象检测/分类和文本分类)或优化技巧(例如,知识蒸馏)。由于缺乏简单且统一的方法,在开发通用 3D-VL 模型方面存在巨大差距。

为了填补这一空白,我们引入了 3D-VisTA,这是一种基于 Transformer 的 3D 视觉和文本对齐模型,可以轻松适应各种下游任务。与之前设计复杂的特定任务模块的模型不同,我们只是利用普通的自注意力Transformer进行 3D-VisTA 中的单模态建模和多模态融合。作为进一步增强 3D 空间理解的通用方法,我们将对象之间的成对空间关系显式编码为 3D 对象建模的自注意力权重。

受到 NLP、CV和 2D-VL大规模预训练成功的启发,我们建议在 3D 场景文本数据上预训练 3D-VisTA,旨在在 3D-VL 任务上获得更好的性能。为此,我们构建了 ScanScribe,这是第一个用于 3D-VL 预训练的大规模 3D 场景文本对数据集。我们首先从 ScanNet和 3R-Scan数据集中收集室内场景的 RGB-D 扫描。我们还根据类别随机将场景中的一些对象替换为 Objaverse 3D 对象数据库中的对象,以增加对象多样性。为了获取文本,我们将基于 ScanNet 的现有数据集的文本转换为场景描述,包括来自 ScanQA的问答对以及来自 ScanRefer和 ReferIt3D的引用表达式。我们进一步利用 3R-Scan 扫描的场景图注释 ,并采用模板和 GPT-3从场景图生成场景描述。 ScanScribe 总共包含 278K 3D 场景文本对,用于 1,185 个室内场景的 2,995 次 RGB-D 扫描,以及 56.1K 个唯一对象实例。

我们在提出的 ScanScribe 数据集上预训练 3D-VisTA。我们的预训练任务包括屏蔽语言建模、屏蔽对象建模和场景文本匹配。值得注意的是,类似的目标在 2D-VL 领域被广泛采用,但在 3D-VL 领域却很少被探索。所提出的预训练过程有效地学习了 3D 点云和文本之间的对齐,从而消除了下游任务微调中辅助损失和优化技巧的需要。在六个具有挑战性的 3D-VL 任务上,从视觉标定(即 ScanRefer、Nr3D/Sr3D )和密集字幕(即 Scan2Cap)到问题回答(即 ScanQA)和情境推理(即 SQA3D),微调的 3D-VisTA 将 ScanRefer 上的 SOTA 结果提高了 8.1% (acc@0.5),在 Sr3D 上提高了 3.6%,在 Scan2Cap 上提高了 10.1%(C@0.25),在ScanQA 提高了 3.5%/2.1% (EM@1),SQA3D 提高了 1.9%。此外,3D-VisTA 展示了卓越的数据效率,只需对这些下游任务进行 30% 的注释即可获得出色的结果。

我们的主要贡献可以概括如下:

  • 我们提出了3D-VisTA,一个简单且统一的Transformer,用于对齐3D 视觉和文本。所提出的 Transformer 简单地利用了自注意力机制,没有任何复杂的特定于任务的设计。

  • 我们构建了ScanScribe,这是一个大规模3D-VL 预训练数据集,其中包含278K 3D 场景文本对,用于对1,185 个独特室内场景进行2,995 次RGB-D 扫描。

  • 我们引入了一种用于 3D VL 的自监督预训练方案,具有掩码语言/对象建模和场景文本匹配。它有效地学习3D点云和文本对齐,并进一步简化和改进下游任务微调。

  • 我们对 3D-VisTA 进行微调,并在各种 3D-VL 任务上实现最先进的性能,从视觉标定和密集字幕到问题回答和情境推理。 3D-VisTA 还展示了卓越的数据效率,即使注释有限也能获得出色的结果

2.相关工作

「3D 视觉语言学习。」 最近,人们对 3D 视觉语言 (3D-VL) 学习的兴趣日益浓厚。与传统的场景理解不同,3D-VL 任务将物理世界与自然语言连接起来,这对于实现体现智能至关重要。在这个新兴领域,Chen 等人和 Achlioptas 等人同时引入了 ScanRefer 和 ReferIt3D 数据集,用于对 3D 对象属性和关系的自然语言标定进行基准测试。除了 3D 视觉标定之外,Azuma 等人还开发了一个名为 ScanQA 的 3D 问答数据集,该数据集需要一个模型来回答有关给定 3D 场景的对象及其关系的问题。最近,Ma 等人提出了一种名为 SQA3D 的情境推理任务,用于 3D 场景中的具体场景理解。

已经针对这些基准提出了几种模型。值得注意的是,3D-SPS和BUTD-DETR通过利用交叉注意机制和语言指导逐步发现目标对象。 3DVG、MVT和 ViL3DRel通过将空间关系信息明确地注入到其模型中来解决 3D 视觉标定问题。尽管这些工作在桥接 3D 视觉和语言方面取得了令人印象深刻的成果,但它们仍然严重依赖模型设计中特定于任务的知识和复杂的优化技术。相比之下,所提出的 3D-VisTA 通过一个简单的基于 Transformer 的架构统一了视觉标定、问答和情境推理。训练 3D-VisTA 也很简单,不需要任何辅助损失或复杂的优化技术。请参阅表 1,了解 3DVisTA 与其他 3D-VL 模型之间的详细比较。任务、辅助损失和架构。

表 1:3D-VisTA 与其他模型之间的比较任务、辅助损失和特定于任务的架构。“VG”代表视觉标定,“QA”代表问题回答,“SR”代表情境推理,“DC”代表密集字幕。 “DET”代表对象检测损失,“KD”代表知识蒸馏损失,“O-CLS”代表对象分类损失,“T-CLS”代表文本分类损失。 “CA”代表交叉注意力,“2D”代表2D特征,“MV”代表多视图特征,“LC”代表语言条件模块。

「大规模预训练。」 近年来,大规模预训练已成为自然语言处理(NLP)、计算机视觉(CV)和2D视觉与语言(2D-VL)领域的基石。基于 Transformer 的架构,特别是 BERT和 GPT的引入,导致了各种 NLP 任务的显着改进。这些模型的成功促进了更先进的预训练技术的发展,例如 XLNet和 RoBERTa。这些模型在各种 NLP 任务上都取得了最先进的性能,包括文本分类、问答和语言生成。 CV 中最成功的预训练方法是 ImageNet预训练,它已被用作各种下游任务(例如对象检测和图像分割)的起点。最近,基于 Transformer 的模型(例如 ViT和 Swin Transformer)的引入导致了各种 CV 任务的显着改进。由于预训练技术,2D-VL 领域也取得了重大进展。特别是,ViLBERT和 LXMERT模型的引入在视觉问答和图像字幕等任务上取得了最先进的性能。最近,CLIP、ALIGN Flamingo的发展表明,对图像文本对进行大规模预训练可以带来更好的跨模态理解和上下文学习的出现以零样本或少样本的方式。

尽管大规模预训练已成为 NLP、CV 和 2D-VL 中的关键技术,但在 3D-VL 中却很少被探索。 探索视觉标定和密集字幕的多任务学习,然后进一步微调每个任务的模型。缺乏大规模预训练数据集可能会阻碍 3D-VL 预训练的探索。因此,我们构建了 ScanScribe,这是第一个用于 3D-VL 预训练的大规模 3D 场景文本对数据集。如表 2 所示,ScanScribe 比现有的 3D-VL 数据集大得多,并且文本也更加多样化。在 ScanScribe 上预训练 3D-VisTA 使 3D-VL 任务有了显着改进,因此我们相信 ScanScribe 可以推动未来 3D-VL 预训练的探索。

表 2:ScanScribe 与其他 3D-VL 数据集之间的比较。 “VG”代表视觉标定,“QA”代表问答,“SR”代表情境推理,“PT”代表预训练。 “词汇。”表示文本词汇量。

3.3D-VisTA

在本节中,我们介绍 3D-VisTA,一个简单且统一的 Transformer,用于对齐 3D 场景和文本。如图2所示,3D-VisTA以一对场景点云和句子作为输入。它首先通过文本编码模块对句子进行编码,并通过场景编码模块处理点云。然后,通过多模态融合模块将文本和 3D 对象标记融合,以捕获 3D 对象和文本之间的对应关系。 3D-VisTA 使用自我监督学习进行预训练,可以轻松针对各种下游任务进行微调。接下来,我们详细描述每个模块。

3.1 文本编码

我们采用四层 Transformer 将句子 S 编码为文本标记序列 {wcls, w1, w2, ···, wM},其中 wcls 是特殊分类标记([CLS]),M 是句子长度。该文本编码模块由预训练的 BERT的前四层初始化。

3.2场景编码

给定 3D 场景的点云,我们首先使用分割掩模将场景分解为一袋对象。分割掩模可以从地面实况或实例分割模型获得。对于每个对象,我们采样 1024 个点并将它们的坐标标准化为单位球。然后将对象点云输入PointNet++以获得其点特征和语义类。我们将点特征 fi 、语义类嵌入 ci 和位置 li (即 3D 位置、长度、宽度、高度)组合为对象标记 i 的表示:

其中 Wc 和 Wl 是附加投影矩阵,用于将 ci 和 li 映射到与 fi 相同的维度。

为了进一步提供对象的上下文表示,我们通过将对象标记注入四层 Transformer 来捕获对象到对象的交互。受之前工作的启发,我们将对象的成对空间关系显式编码到 Transformer 中(图 2 中的空间transformer)。更具体地说,我们定义对象对 i, j 的成对空间特征:

其中 dij 是欧几里德距离,θh、θv 是连接对象 i、j 中心的线的水平角和垂直角。成对的空间特征 S = [sij ] ∈ R N×N×5 用于调节 Transformer 中自注意力层的注意力权重:

其中 w ∈ R 5 用于将空间特征映射到注意力分数,σ 是 sigmoid 函数。

图 2:我们的 3D-VisTA 的模型架构,包括文本编码、场景编码和多模态融合模块。 3D-VisTA 通过自监督学习目标进行预训练,其中包括屏蔽语言建模、屏蔽对象建模和场景文本匹配。通过添加轻量级任务头,预训练的 3D-VisTA 可以轻松适应各种下游任务,而无需辅助损失和优化技巧等特定于任务的设计。

3.3 多模态融合

我们简单地将文本和 3D 对象标记连接起来,并将它们发送到 L 层 Transformer(图 2 中的统一transformer)以进行多模态融合。可学习的类型嵌入被添加到标记中以区分文本和 3D 对象。我们将多模态融合模块的输出分别表示为 [CLS]、文本标记和 3D 对象标记的 {wcls, w1:M, o1:N }。

3.4 自监督预训练

为了以自我监督的方式学习 3D 场景和文本对齐,我们通过以下代理任务在 3D 场景-文本对上预训练 3D-VisTA:

「掩码语言建模MLM。」 我们按照BERT预训练[15]进行MLM:(1)随机选择15%的文本标记; (2) 80%的时间:将这些标记替换为[MASK]; (2) 10%的时间:用一些随机文本标记替换这些标记; (3) 10%的时间:这些代币保持不变。该模型经过训练,可以在给定剩余文本和 3D 对象标记的情况下预测屏蔽文本标记:

「蒙版对象建模MOM。」 与 MLM 类似,我们屏蔽了 10% 的 3D 对象标记。然而,我们通过仅用可学习的掩码嵌入替换其点特征和语义嵌入(即等式(1)中的“fi + Wcci”)来掩蔽 3D 对象标记,但保留其位置信息(即等式(1)中的“Wl li”)等式(1))不变。该模型经过训练,利用被遮蔽对象的位置线索在给定剩余 3D 对象和文本的情况下预测其语义类别 c:

「场景文本匹配STM。」 虽然屏蔽语言和对象建模能够以细粒度实现本地文本-对象对齐,但我们还执行场景-文本匹配以增强场景和文本的全局融合,我们发现这对于下游问答任务非常有益。更具体地说,我们提取对应于 [CLS] 的输出作为输入场景-文本对的全局表示,并将其输入到两层 MLP 中以预测场景和文本是否匹配:

实际上,训练批次中 30% 的样本是负对,通过用随机选择的样本替换场景点云或文本来创建。

「最终的损失。」 我们的最终预训练目标是通过简单地添加上面代理任务的损失来获得的:

值得注意的是,所提出的预训练方案是自监督且与任务无关的,这与之前的工作[7]中使用的需要任务监督的监督多任务学习不同。

3.5 下游任务微调

通过添加轻量级任务头,预训练的 3D-VisTA 可以轻松适应各种 3D-VL 任务。更具体地说,我们在以下任务上微调 3D-VisTA:

「3D 视觉标定。」 任务模型根据引用表达式在 3D 场景中定位目标对象。为了找到被引用的对象,我们对每个对象标记 oi 应用两层 MLP,并获得该对象被引用的概率。该模型使用交叉熵损失进行微调。

「3D 密集字幕。」 引入用于测试模型检测和描述 3D 场景中的对象的能力。我们采用 w1:M 并自回归预测文本标记来生成句子。该模型使用交叉熵损失进行微调。

「3D问答。」 需要一个模型来回答给定 3D 场景的与对象相关的问题。我们将文本标记 w1:M 和对象标记 o1:N 馈送到模块化共同注意网络(MCAN)中以产生答案。该模型使用 QA 损失和对象定位损失进行微调。

「3D 情境推理。」 用于对具体代理的 3D 场景理解进行基准测试。为了使 3D-VisTA 适应此任务,我们将情况描述和问题连接成一个输入句子。答案分类类似于3D问答任务。该模型使用答案损失进行微调。

一般来说,我们发现使 3D-VisTA 适应这些下游任务比以前的方法简单得多,因为 3D-VisTA 仅使用任务损失进行微调,而不需要任何辅助损失(例如,句子/对象分类损失)或优化技巧(例如,多视图聚合和知识蒸馏)。这使得 3D-VisTA 成为更加统一和通用的 3D-VL 模型。

4.SceneScribe

近年来,大规模预训练被广泛用于提高 CV、NLP和 2D-VL中下游任务的性能。然而,大规模预训练在 3D-VL 领域几乎没有涉及,可能是由于缺乏 3D-VL 预训练数据集。为了促进 3D-VL 预训练的探索,我们构建了一个大规模 3D 场景文本对数据集,名为 ScanScribe。如表 3 所示,ScanScribe 中 3D 场景文本对的构建包括两部分:

3D 场景。我们从 ScanNet和 3R-Scan收集室内场景的 RGB-D 扫描。为了增加这些场景中 3D 对象的多样性,每个场景中 10% 的对象实例根据类别随机替换为 Objaverse 3D 对象数据库中的对象。

对于每个 ScanNet 和 3R-Scan 对象类别,我们从 Objaverse 下载大约 40 个对象实例作为候选对象替换。结果,我们收集了 1,185 个室内场景的 2,995 个 RGB-D 扫描,其中包含 56.1K 个独特的对象实例。

文本。对于来自 ScanNet 的扫描,我们将基于 ScanNet 的现有数据集的文本转换为场景描述,包括来自 ScanQA的问答对以及来自 ScanRefer和 ReferIt3D的引用表达式。对于 3RScan 的扫描,我们采用模板和 GPT-3根据场景图注释生成场景描述。具体来说,对于每个对象,我们首先从场景图中提取所有 〈object、relation、neighbor〉 三元组。然后,我们使用模板“这是一个对象,邻居与对象有关系”来生成描述。请注意,我们仅在基于模板的生成中选择少于 7 个邻居的对象。我们进一步探索使用 GPT-3 来生成描述,并提示“对象与邻居有关系......(重复直到所有邻居都被使用)。对象在哪里?或者概括一下场景。”最终,为收集的 3D 场景生成 278K 场景描述。

表 3:ScanScribe 的组成。 * 我们仅使用Objaverse为其他两个数据集中的3D场景提供候选对象替换;因此不会生成场景文本对。

5.实验

5.1 实验设置

实施细节。预训练运行 30 个 epoch,批量大小为 128。我们使用 AdamW优化器,β1 = 0.9,β2 = 0.98。学习率设置为 1e -4 ,预热步骤为 3,000 步,并进行余弦衰减。在预训练期间,我们使用ground-truth分割掩模来生成对象级点云。在微调期间,我们使用ground-truth掩模或Mask3d,这取决于任务设置。在 ScanRefer 数据集上,我们还合并了 PointGroup,以便与以前的方法进行比较。在消融研究中,为了简单起见,我们在所有任务中都使用真实掩模。预训练和微调均在单个 NVIDIA A100 80GB GPU 上进行。

3D 视觉标定。我们针对此任务在三个数据集上评估我们的模型:ScanRefer、Nr3D 和 Sr3D。对于 Nr3D/Sr3D,我们按照 ReferIt3D使用地面实况对象掩模并将结果报告为地面精度,即模型是否在地面实况对象建议中正确选择了引用的对象。对于 ScanRefer,我们使用检测器生成的目标备选并将结果报告为 Acc@k(k ∈ {0.25, 0.5}),即预测框与真实情况重叠且 IoU > 的引用查询的比例k.

3D 密集字幕 我们在 Scan2cap 数据集上评估我们的模型,并报告不同框重叠率下的文本相似度度量。

3D问答。我们在 ScanQA 数据集上评估我们的模型,并使用精确匹配(EM@1 和 EM@10)作为评估指标。我们还报告了几个句子评估指标,包括 BLEU-4、ROUGE、METEOR 和 CIDEr。我们的评估中使用了 ScanQA 的两个测试集(带或不带对象)。

3D 情景推理 我们在 SQA3D 数据集上评估我们的模型,并报告不同类型问题下的答案准确性作为评估指标。

表 4:Nr3D 和 Sr3D 与地面实况对象建议的接地精度 (%)。 Δ 表示 3D-VisTA 和 3D-VisTA(从头训练)之间的性能差异。 3D-VisTA 在 Nr3D 上取得了与 SOTA 竞争的结果,并在 Sr3D 上优于 SOTA。

表 5:ScanRefer 上检测到的目标建议的接地准确度 (%)。 “Det”表示模型中使用的 3D 对象检测模块。 “VN”代表 VoteNet,“PG”代表 PointGroup,M3D 代表 Mask3D,而“Opt.”则代表 VoteNet。表示联合优化 ScanRefer 上的对象检测器。 Mask3D 通过提供更准确的对象备选显着提高了标定精度。

表 6:Scan2Cap 数据集上的字幕结果。 “C”代表“CIDEr”,“B-4”代表“BLEU-4”,“M”代表“METEOR”,“R”代表“ROUGE”。 “@0.25”和“@0.5”表示预测框和真实框之间的重叠率。

5.2 下游任务结果

在本节中,我们讨论下游任务的实验结果,并将所提出的 3D-VisTA 模型与最先进的 (SOTA) 方法进行比较。结果如表 4 至表 8 和图 3 所示,这些结果的主要观察结果如下:

  1. 「即使从头开始训练,3D-VisTA 也能通过 SOTA 方法实现具有竞争力的性能。」 具体来说,3D-VisTA(scratch)在 Nr3D 和 Sr3D 上获得了 57.5% 和 69.6% 的总体准确率,优于大多数之前的模型;它在 ScanQA 上的 EM@1 准确率为 25.2%,比 SOTA 高 1.7%。值得注意的是,3DVisTA 仅使用任务损失在这些数据集上进行训练,没有任何辅助损失或优化技巧,这表明 3D-VisTA 是用于 3D-VL 任务的非常简单但有效的架构。

  2. 「ScanScribe 上的预训练显着提高了 3D-VisTA 的性能。」 总体而言,预训练将 Nr3D/Sr3D 上的准确率提高了 6.7%/6.8%,ScanRefer 上的 acc@0.25/0.5 提高了 4.7%/4.3%,ScanQA 上的 EM@1 提高了 1.8%/2.6%,C @0.25 在 Scan2Cap 上提高了 4.2%,在 SQA3D 上的平均准确度提高了 1.8%。这些重大改进巩固了 ScanScribe 在 3D-VL 预训练方面的功效。

  3. 「预训练的 3D-VisTA 的性能大幅优于 SOTA。」 3D-VisTA 在 Sr3D 上比 ViL3DRel 好 3.6%,在 ScanRefer 上比 ViL3DRel好 2.7%/8.1% (acc@0.25/0.5),比 ScanQA好 3.5%/2.1 (EM@1),比 Scan2Cap SOTA10.1 %/19.2% (C@0.25/0.5),SQA3D 1.9%(平均)。 3D-VisTA 为这些 3D-VL 任务创造了新记录,并可能激发未来 3D-VL 预训练的研究。

  4. 「对带有有限注释的下游任务进行 3D-VisTA 的微调取得了很好的结果。」 如图 3 所示,使用 ScanRefer 和 ScanQA 上 30% 和 40% 的注释进行微调,预训练的 3D-VisTA 可以比使用完整数据从头开始训练的 3D-VisTA 获得更好的性能。我们假设 3D-VisTA 通过预训练成功捕获了 3D 对象和文本之间的对齐,因此能够轻松适应各种格式的下游任务。它还揭示了 3D-VisTA 以零样本或少样本方式学习看不见的任务的潜力,这种潜力已经通过大规模预训练出现在 NLP和 2D-VL中。

表 7:使用 Mask3D 的对象备选对 ScanQA 进行回答的准确性。每个条目表示“带对象的测试”/“不带对象的测试”。

表 8:使用 Mask3D 的对象备选在 SQA3D 上回答准确性。预训练可以改善大多数问题类型的结果。

图 3:使用不同数量的训练数据微调 3D-VisTA 的性能。

5.3 消融实验

在本节中,我们进行消融研究来分析几个重要超参数的影响,包括 Transformer 深度、预训练目标和数据量。

「Transformer深度。」 由于模型大小是 NLP 和 2D-VL 预训练的关键因素,因此我们通过改变多模态融合模块中的层数来研究Transformer 深度的影响。如表 9a 所示,使用 4 层可实现最佳性能,简单地添加更多层并无帮助。这一观察结果与 NLP 和 2D-VL 的观察结果有些矛盾。它指出,尽管 ScanScribe 比现有的 3D-VL 数据集大得多,但仍远远不足以释放 3D-VL 领域预训练的全部潜力。

「预训练目标。」 表 9b 介绍了预训练目标的消融研究。传销目标本身对问答(QA)略有好处,但对视觉标定(VG)带来负面影响。添加 MOM 和 STM 可以提高 QA 和 VG 的性能,这凸显了 MOM 和 STM 对于对齐 3D 视觉和文本的重要性。总体而言,同时使用所有三个目标可以使这两项任务获得最佳性能,其中 STM 和 MOM 可以最大程度地提高准确性。

「预训练数据。」 表 9c 展示了使用各种预训练数据配置的结果。我们可以看到,简单地使用与下游任务来自同一领域的 ScanNet 数据进行预训练,可以在 VG 和 QA 方面带来显着的改进。这验证了预训练的有效性,即使在下游任务没有额外 3D 数据的情况下也是如此。添加 3R-Scan 和 Objaverse 增加了 3D 数据的数量和多样性,从而进一步提高了 VG 和 QA 的准确性。总体而言,当使用所有三个数据源时,这两项任务都可以获得最佳性能。这为改进 3D-VL 任务指明了一条有希望的途径——收集更多数据进行预训练。

表 9:3D-VisTA w.r.t. 的消融研究Transformer 深度、预训练目标和预训练数据。我们报告了 ScanRefer 上视觉标定 (VG) 的精度和 ScanQA 上问答 (QA) 的 EM@1 精度。

5.4 定性研究和其他结果

在本节中,我们进行了额外的研究,以更好地了解预训练的帮助。如图4所示,预训练提高了3D-VisTA对视觉标定的空间理解,因此它可以更好地与人类先前的观点和空间关系推理保持一致。当模型需要将目标对象与同一类的多个实例区分开来时,这非常有帮助。预训练还有助于更好地理解颜色和形状等视觉概念,以及回答问题和情境推理的情况。此外,预训练增强了长文本与 3D 场景对齐的能力,如图 5 中较长查询的较大改进所证明的那样。

图 4:各种任务的定性结果。斜体文本代表输入,蓝色框或文本代表从头开始训练的 3D-VisTA 的预测,红色代表预先训练的 3D-VisTA 的预测,绿色代表基本事实。结果表明,预训练提高了对空间关系、视觉概念和情境的理解。

图 5:ScanRefer 中不同句子长度(≤ 15、≤ 30、> 30)的从头训练和预训练之间的性能差距。

6.结论

本文提出了 3D-VisTA,这是一种用于 3D-VL 任务的简单而有效的架构。该模型仅使用自注意力层,可以轻松适应各种下游任务,而不需要任何辅助损失或优化技巧。我们还介绍了 ScanScribe,这是第一个用于 3D-VL 预训练的大规模 3D 场景文本对数据集。预训练的 3D-VisTA 在各种 3D-VL 任务上取得了最先进的结果,具有卓越的数据效率,为未来 3D-VL 任务的标定模型铺平了道路。

未来的作品。目前,3D-VisTA使用离线3D物体检测模块,这可能是进一步改进的瓶颈。在预训练阶段联合优化目标检测模块是未来一个有趣的方向。此外,ScanScribe中的数据量仍然不足以进行大规模3D-VL预训练,因此扩大预训练数据集以及模型大小是进一步改进3D-VL学习的一个有希望的方向。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“ViT200”获取全部论文+代码合集

码字不易,欢迎大家点赞评论收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/200226.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python查找算法_顺序查找

顺序查找(Sequential Search)是一种简单直观的搜索算法,用于在无序数组中查找特定元素。它的基本思想是逐个遍历数组中的元素,直到找到目标元素或遍历完整个数组。本文将介绍顺序查找的基本原理,并通过Python代码进行详…

HarmonyOS脚手架:快捷实现ArkTs中json转对象

前言 在上篇《HarmonyOS开发:UI开展前的阶段总结》中提到了未来的规划,既能让大家学会鸿蒙开发,也能让大家在以后的开发中如虎添翼,最终决定,便以脚手架为产出物,结合实际的业务需求,进行相关技…

el-tree结合el-switch实现状态切换

<template><div><el-col :span"24"><el-card class"tree-card"><div class"sketch_content selectFile"><span class"span_title">组织列表 </span><div style"display: flex; jus…

【ARM Trace32(劳特巴赫) 使用介绍 2.3 -- TRACE32 进阶命令之 参数传递介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 参数传递命令 ENTRY 参数传递命令 ENTRY ENTRY <parlist>The ENTRY command can be used to Pass parameters to a PRACTICE script or to a subroutineTo return a value from a subroutine 使用示例&am…

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工大猩猩部队优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&a…

前端入门(二)Vue2到Vue3

文章目录 Vue简介Vue的特点Hello, Vue Vue基本语法模板语法数据绑定&#xff08;v-bind、v-model&#xff09;el与data的两种写法 数据代理实现原理Object.defineProperty()数据代理 事件处理&#xff08;v-on:click / click&#xff09;事件修饰符键盘事件&#xff08;略&…

多项式求和

题目描述 给定程序中 fun 函数的功能是&#xff1a;求出以下分数序列的前 n 项之和&#xff0c;并通过函数值返回 main 函数。 输入格式 输入参数。 输出格式 计算公式返回的结果。 输入输出样例 输入1 5 输出1 8.391667 python解&#xff1a; def fun(n):a1b2s0for…

Jmeter监听器

Jmeter监听器 一、监听器介绍二、监听器的类型三、监听器详解3.1 察看结果树3.2 Summary Report3.3 聚合报告3.4 后端监听器3.5 Aggregate Graph3.6 Comparison Assertion Visualizer&#xff08;比较断言可视化器&#xff09;3.7 JSR223 Listener3.8 Response Time Graph3.9 S…

关于Unity Time.deltaTime的理解和使用

Unity中的Time.deltaTime是一个表示上一帧到当前帧所用时间的浮点数。 它可以让Unity应用程序能够以平滑的方式在不同的帧率下运行。 要深刻理解Time.deltaTime&#xff0c;首先得了解Unity引擎得工作原理。 Unity引擎以每秒帧数&#xff08;FPS&#xff09;的形式运行。 比…

Spring Boot单元测试

目录 1.概述 2.基本使用 3.优势 4.常用属性 1.概述 所谓单元测试就是对功能最小粒度的测试&#xff0c;落实到JAVA中就是对单个方法的测试。对单个方法的测试用junit即可&#xff0c;关于junit作者另一位篇文章中有详细介绍&#xff0c;感兴趣的小伙伴可以去看看&#xff…

跳台阶游戏(Python排列组合函数itertools.combinations的应用)

给定台阶总数和两种单次可跳级数&#xff0c;编写自定义函数&#xff0c;计算所有的游戏组合方案数量。 (笔记模板由python脚本于2023年11月19日 19:18:48创建&#xff0c;本篇笔记适合熟悉python自定义函数编写&#xff0c;了解排列组合知识的coder翻阅) 【学习的细节是欢悦的…

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…

Linux难学?大神告诉你,Linux到底该怎么自学!

文章目录 Part.1Part.2Part.3写作末尾 知乎上有一条热门问答&#xff0c;问题是“Linux为什么那么难&#xff1f;” 从问题来看&#xff0c;提问者还处在初学阶段。但他显然受困于 Linux 环境基本操作的问题&#xff0c;对操作系统本身的原理还不熟悉&#xff0c;并且对命令行工…

计算机毕业设计选题推荐-个人博客微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

计算机毕业设计 基于SpringBoot的社区物资交易互助平台/系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Linux 时区设置

对于服务器来说&#xff0c;linux的时区影响着运行之上的数据库和后端程序的时区 应该和数据库和后端及其他程序的时区保持一致 其他相关时区的设置 pgsql时区设置&#xff1a; php时区设置&#xff1a; 1.显示当前的时间和时区 date结果类似下面&#xff0c;图中显示的是ut…

Mybatis Plus分页实现逻辑整理(结合芋道整合进行解析)

Mybatis Plus分页实现逻辑整理&#xff08;结合芋道整合进行解析&#xff09; 我希望如春天般的你&#xff0c;身着白色的婚纱&#xff0c;向我奔赴而来&#xff0c;我愿意用全世界最温情的目光&#xff0c;朝着你的方向望去——姗姗来迟。 1.背景介绍 https://baomidou.com/p…

【监控系统】日志可视化监控体系ELK搭建

1.ELK架构是什么 ELK是ElasticsearchLogstashKibana的简称。 Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;可以用于全文检索、结构化检索和分析&#xff0c;它构建在Lucene搜索引擎库之上&#xff0c;是当前使用较为广泛的开源搜索引擎之一。 Logstash是一个…

风电场数字孪生-升压站BIM三维模型-obj格式

简介&#xff1a; 风电场中的升压站三维模型&#xff0c;obj格式&#xff0c;采用BIM技术建模&#xff0c;可应用于风电场三维数字孪生领域&#xff0c;用于对升压站进行漫游浏览&#xff1b;三维可视化场景应用&#xff1b;风电场三维设计模型。 下载地址 风电场数字孪生-升…

【hive-解决】HiveAccessControlException Permission denied: CREATEFUNCTION

文章目录 一.任务描述二. 解决 一.任务描述 Error while compiling statement: FAILED: HiveAccessControlException Permission denied: Principal [nameroot, typeUSER] does not have following privileges for operation CREATEFUNCTION [ADMIN PRIVILEGE on INPUT, ADMIN…