构建能够理解和推理3D场景的模型很难,原因在于缺乏3D监督训练的数据来源和大规模训练策略。 在这项工作中,作者问到:在没有3D预训练的情况下,预训练语言模型中的知识如何被利用来理解和推理3D场景? 本工作的目标是确定预训练语言模型是否拥有在3D空间中进行推理所需的前置知识/信息,以及如何促使它们成为用于一般目的空间推理和3D目标理解的工具。为此,作者提出了一种基于语言模型的场景理解系统SceneGPT,它可以执行无需训练或显式3D监督的3D空间推理。作者框架的关键组成部分包括: 1)一个3D场景图,作为场景表示,编码场景中的物体及其空间关系; 2)一个可以与上下文学习相结合进行适应性训练的预训练语言模型,用于3D空间推理。 作者对作者的框架在包括物体语义、物理属性和效用(物体级)以及空间理解(场景级)等任务上的质量进行评估。
开发能够理解3D世界的系统是计算机视觉领域的一个重要目标。这类系统需要一个语义丰富的3D表示,将目标嵌入空间结构中。此外,场景理解系统需要能够理解和推理特定场景下的自然语言 Query 。传统的场景理解方法依赖专门的模块进行目标/空间理解,需要针对一组已标记的目标进行3D监督训练。这导致了由于缺乏3D数据来源和可行的大规模训练方案而产生的瓶颈。此外,这些模型在特定专业任务(例如3D分割、定位)的训练数据集上具有有限的类别集,并且不能泛化到新 Query 、任务和目标,从而限制了其用于实际应用的能力。
随着大型语言模型(LLMs)的近期进展,在视觉理解和通用推理方面的能力得到了证实。它们具有关于目标语义的知识,可以理解自由形式的文本指令,并很好地泛化到新场景。然而,目前还不清楚LLMs是否具备用于3D空间推理的先验知识或知识。
为此,作者提出的问题是:“如何利用预先训练的大型语言模型(LLMs)的知识进行3D场景理解而无需任何3D预训练?” 具体而言,作者开发了SceneGPT框架,它利用LLMs的知识进行3D场景理解任务。
作者的关键贡献如下 :
在任何场景理解系统中,关键的组成部分是一个能嵌入物体语义知识的开放词汇表示,该表示被封装在3D空间结构中。最近,多模态基础模型的进步驱使出现使用CLIP等基础模型先验的知识来构建3D场景表示的方法。一些显著的努力包括OpenScene [14],它使用2D开放词汇分割器计算每个像素的特征,并通过使用CLIP特征进行训练,通过CLIP特征提取到3D数据网络。另一方面,ConceptFusion [6]采取这个方法,构建一个完全无训练的开放集多模态3D映射,具有CLIP的局部和全局目标嵌入。这个3D映射可以通过像素对齐的CLIP特征从多个模态(如图像、文本、音频和点击)的概念进行 Query 。最近,ConceptGraphs [4]改进了这些方法,构建一个稀疏开放词汇映射,编码物体语义(通过包括多模态语言模型如LLAVA [10]的先验)和场景图结构。这种方法比密集特征方法更轻量、可扩展和高效,并泛化到新颖的物体和场景。
对于作者正在进行的工作,作者使用ConceptGraphs [4]作为开放词汇场景表示,并通过与LLM进行接口,使用LLM开发作者的3D理解框架。
LLMs和提示技术:LLMs是参数化模型,它们在包含自由形式从互联网的大量文本的语料库上进行训练,使用语言建模目标,如预测下一个单词(或 Token )[19, 20, 12]。最近,像GPT-3.5/4 [12](封闭源)和LLama-2 (开源) [20],在常识、逻辑理解和视觉推理任务上表现出杰出的能力。
鉴于LLMs的规模和参数,许多最近的关注点集中在开发不需要更新权重或进行微调的为特定任务适应LLM的技术,这包括上下文提示(或少样本提示) [21, 22]。此外,提示工程和思维链提示可以帮助LLM更好地推理复杂任务,提高其输出质量和性能。
在本文中,作者使用GPT-4 LLM和上下文提示来开发作者的3D场景理解框架。
与LLMs的时空理解:最近,使用LLMs中的知识在视频中的时空推理引起了兴趣[9]和3D推理任务[5]。LLM grounded视频扩散[9]使用较少提示来预测视频连续2D帧中物体的位置和布局(即边界框)。另一方面,3D-LLM [5]利用3D监督联合训练语言模型用于场景理解。然而,与作者的方法不同,它需要3D数据集进行监督,并要求大规模的联合训练方式。
作者的目标是利用预训练LLM的先验知识构建一个3D场景理解系统。图1显示了作者的整体流程概述。它主要由两部分组成:
在更高层次上,作者的模型作为输入接收一个场景的RGBD帧,并生成一个语义丰富的3D图,其中包含目标表示和图结构。这个场景表示随后转换为LLM可读的格式,通过系统提示与预训练的大型语言模型进行交互。LLM可以从输入场景中的少量上下文示例和回答用户 Query 中学习,并以输入场景的图作为输入。让作者进一步详细讨论作者的流程中的各个部分。
有效的场景3D表示应具有语义丰富性,编码实体之间的空间关系,并在零样本方式下泛化到新物体,而无需训练。在本工作中,作者使用概念图(ConceptGraphs)[4],这是一种由2D基础模型提供的先验信息构建的开放的词汇图结构表示。这使得作者可以构建3D地图而无需任何3D数据监督或大规模的训练模式。
图结构:作者用开放的词汇3D场景图(3DSG)表示场景,即。图中的每个节点(或顶点)对应于感兴趣的物体,而边表示物体对之间的空间关系。
图中的每个节点还编码关于相应物体的语义、几何和空间定位信息。具体而言,在本工作中,作者编码目标标签和目标描述,它们分别命名和描述感兴趣的目标。目标的几何尺寸(bbox范围)和3D位置(bbox中心)。最后,颜色和材质属性。
LLM可读表示:为了将场景表示作为上下文传递给LLM,作者首先将其转换为LLM可读/兼容的格式( see 示例1 )。受以前的工作[9,4]启发,作者使用JSON数据结构,因为它能够以键值对字典格式编码各种数据。此外,各种LLM(如作者在这项工作中使用的GPT4)专门针对以JSON格式理解和推理数据进行了训练,用于代码生成和函数调用任务。
场景图生成:作者遵循概念图(ConceptGraphs)的框架,做出一些修改,并在实现细节部分(第3节)讨论场景图生成。
列表1:作者以LM可读JSON格式显示的3D场景图的示例。目标用节点表示,具有语义、几何和物理属性。
既然作者已经有了针对3D场景的LLM兼容图表示,作者需要构建一个界面,使作者的LLM能够与场景进行通信,并根据给定的场景结构和物体对其响应。
为了在场景和LLM之间构建一个交流界面,作者设计了一个系统提示(参考[9, 4]),向LLM告知场景表示,并指导它接受用户 Query 并以所需格式作出响应。
列表2显示了作者用于将场景图与LLM进行界面化的系统提示。提示输入场景图json表示、用户 Query 以及在上下文中的示例(第23-27行)。
首先,作者描述了作者的场景图的主要字段,以便LLM了解如何解释针对场景理解问题的场景。然后,作者让LLM知道它需要执行的任务,并指定它应遵循的明确输出结构。
输出结构:列表2,第14-20行,作者使用一种链式思维提示帮助LLM逐步关于复杂的 Query 进行推理。这种技术帮助LLM将复杂的任务分解成一系列连续执行的简单子任务,从而达到最终目标[21]。在作者场景理解问题的上下文中,作者首先要求LLM输出对用户 Query 及任务的解释,并输出其对相关物体的理解[Line 16]。然后,它获取与给定 Query 相关的物体,并输出它们的相关性解释[ Lines 。作者发现强制LLM解释相关性有助于其更好地检索相关物体。最后,作者要求它输出 Query 的最终答案,并解释[Line 19-20]。这种逐步过程使LLM将复杂任务分解成子步骤,并更好地理解用户 Query 需求,将其输出与用户意图[9, 4, 21]相匹配。
列表2:用于创建与场景之间的LLM界面的系统提示。该提示输入场景图json;userquery和in-context例子。它为LLM提供了一个逐步推理结构。
列表3和4分别展示了作者用于空间和几何方面的上下文示例。在这些示例中,作者帮助LLM解码局部定位信息(例如eBox中心,盒宽)和目标尺寸(例如eBox宽度)在3D坐标系(例如ex,y和z坐标轴)中的局部信息,并为其提供适当的原因。这引导LLM在其推理过程中将这些示例中学到的知识应用于新的 Query 和场景以进行场景理解。
实现细节作者简要描述了在场景图生成上作者遵循的实现,使用现成的模型 RAM[24],GroundingDINO[11]和SAM[7]对物体进行标记,为标记生成边界框,并使用SAM提示边界框来获得物体分割。作者使用LLaVA-13B [10]作为作者用于从 crops 中获取物体标签和字幕的多模态语言模型。作者更进一步,并要求LLaVA预测物体的颜色和材质,以便获得更丰富的场景表示。最后,作者使用gpt4-16k模型作为作者的大型语言模型。
在本节中,作者讨论了作者基于LLM的3D场景理解框架的定性结果。为了验证作者框架的有效性,作者在各种 Query 上展示了结果,这些 Query 可以大致分为三组:①目标理解 ②几何 Query ③空间 Query 。
目标理解:在这个组中,作者测试模型的目标理解能力,基于可用性(affordance)和否定(negation) Query 进行, Query 灵感来自[4]。图2(上排)显示了这些 Query 的定性结果。
首先,作者对基于可用性的 Query 进行测试,即系统要找出可以用于指定任务的物体(例如“可以用来插花的物体”)。作者的框架逐步分析用户的 Query ,利用关于物体可用性的先验知识对场景进行推理,正确地检索到“花瓶”及其精确位置。然后,作者对否定 Query 进行测试,即要求系统找出不满足特定物理特性的物体(例如“不是不透明的物体”)。作者的模型理解物体属性和否定 Query ,最终检索到一个通常透明的窗户。这些结果与之前一些工作的观察一致:[6, 4] 也表明LLM具有目标理解能力。
几何理解:在这个 Query 池中,作者测试模型的物体几何和尺寸理解能力。作者要求它比较场景中物体的尺寸,并要求它判断给定的物体是否能容纳另一个物体。
得益于作者的上下文示例,帮助LLM理解了箱体尺寸和物体尺寸之间的关系,作者注意到,框架可以准确地根据箱体尺寸比较 Query 目标(例如“书”和“烛台”)的基本尺寸。它还成功地推理出“白沙发”可以包含“白枕头”,因为它的尺寸较大,可以容纳场景中的“白枕头”。
空间理解:作者测试SceneGPT模型在3D空间中理解物体方向和物体相对位置的能力。首先,作者测试模型的空间推理能力,询问它是否“书位于烛台之上”**(图2(e))。请注意,LLM分别从x,y和z维度单独看待这个问题,并通过比较z坐标得出结论,书没有放在烛台上。值得关注的是,LLM通过从上下文示例中学到的3D坐标系中的空间推理,顺利地将它应用到一个新的物体集和不同的问题设置和 Query 中。此外,作者进一步要求LLM解释不同物体之间的相对位置,即“地毯和椅子之间的相对位置”,图2(f)**。作者的SceneGPT框架考虑了物体在三维中的位置,并输出了 Query 物体的正确空间关系。
SceneGPT框架由场景图表示(在本研究中,即为概念图,下同)和大型语言模型(如作者案例中的GPT-4)组成,并继承了它们的一些基本限制,作者在本节中讨论。
请注意,由于原始英文文本中并未包含具体数字(如120和30),为确保翻译的准确性,这些数字可能需根据上下文进行调整。
在本文中,作者开发了一个基于LLM的3D场景理解系统,其无需3D监督数据和大规模的训练体系。作者证明了像语境提示这样的简单技术可以帮助适配LLM并挖掘其中的空间推理能力。
在未来,作者将尝试将此框架扩展到更复杂的任务,如导航、轨迹预测和任务规划,并验证像语境学习这样的简单技术是否足以应对这些复杂任务。
[1].SceneGPT: A Language Model for 3D Scene Understanding.