专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

室内具身智能中的语义建图—全面综述和未来方向

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2025-01-21 00:10

正文

25年1月来自加拿大 SFU的论文“Semantic Mapping in Indoor Embodied AI – A Comprehensive Survey and Future Directions”。

智能具身智体(例如机器人)需要在陌生的环境中执行复杂的语义任务。在智体需要具备的众多技能中,构建和维护环境的语义地图对于长期任务至关重要。语义地图以结构化的方式捕获有关环境的信息,允许智体在整个任务过程中引用它进行高级推理。虽然现有的具身智能综述侧重于一般进展或导航和操作等特定任务,但本文全面回顾具身人工智能中的语义地图构建方法,特别是室内导航。根据这些方法的结构表征(空间网格、拓扑图、密集点云或混合地图)和它们编码的信息类型(隐式特征或显式环境数据)对这些方法进行分类。本文还探讨地图构建技术的优势和局限性,强调当前的挑战,并提出未来的研究方向。该领域正朝着开发开放词汇、可查询、与任务无关的地图表征方向发展,而高内存需求和计算效率低下仍然是未解决的挑战。


过去几年,计算机视觉、自然语言和机器人社区对具身智能的兴趣日益浓厚——研究具有具身的智能智体(例如机器人、自动驾驶汽车)如何通过与环境的交互来学习执行任务(Deitke,2022;Puig,2023;Batra,2020a)。这为创建服务机器人(Hawes,2017;Khandelwal,2017;Veloso,2015)铺平道路,这些机器人可以安全地部署在熟悉的环境中,与人类共存并自主执行各种任务。具身智能和机器人之间的关键区别在于,前者专注于通过与模拟物理世界交互来构建机器人智能,同时抽象出包括噪声传感器和执行器在内的大部分低级控制。这使得具身智能研究人员能够专注于复杂的语义挑战,例如基于自然语言指令在陌生环境中进行目标搜索、空间推理、多智体系统、交互式目标搜索等等。与机器人技术类似,这需要智体具备多种感觉运动技能、对环境的理解和决策能力,从而使它们能够导航、操纵目标并在世界中执行复杂的任务。想象一下,一个机器人的任务是在未见过的环境中寻找一个目标——“育儿室里一个红蓝条纹的斑马玩具”。这是一项复杂的任务,需要机器人具备多种技能——视觉感知以识别玩具(Matthias Minderer,2023)、自然语言理解以理解给定的语言指令(Anderson,2018b)、导航移动到托儿所(Yadav,2022)、如果见过它则维护语义图以记住斑马玩具的位置(Raychaudhuri,2023)、推理和规划采取行动以完成任务(Gordon,2018)等。

在这些技能中,当机器人处于不熟悉的环境中时,逐步构建和维护世界地图尤为重要,例如自动驾驶(Bao,2023)、搜索和救援行动(Gautham,2023)、自动真空清洁机器人(Singh,2023)等。准确的环境地图使智体能够做出明智的决策,处理意外情况并在没有人工监督的情况下自主执行复杂任务。地图绘制在机器人导航方法中的重要性源于认知科学的发现(Tolman,1948;Trullier & Meyer,2000),该发现表明人类和动物以“认知地图”或“心理地图”的形式创建周围环境的内部表征,以帮助空间认知和形成导航策略。此外,这种认知地图使他们能够记住和回忆目标的位置和环境中的地点。因此,大多数机器人导航模型都是基于地图的(Kostavelis & Gasteratos,2015;Filliat & Meyer,2003;Meyer & Filliat,2003;Song,2024),可以分为三个过程 - (a)绘制地图或记忆适当的环境表征,(b)定位或确定智体在地图上的当前位置,以及(c)路径规划或在给定地图和当前位置的情况下选择一组通往目标的操作。虽然路径规划依赖于前两个,但绘制地图和定位也相互依赖。换句话说,估计当前目标位置取决于地图,一旦智体知道它位于何处,就可以构建地图。这个问题传统上在机器人技术中称为 SLAM,即绘制未知环境地图并同时估计机器人在其中的姿势。机器人社区在 SLAM 方法方面取得巨大进步,这些方法不必依赖 GPS 等外部参考系统,而是使用机载传感器来绘制复杂环境。这在没有 GPS 的室内空间中特别有用。定位和路径规划超出本文的范围,相反本文专注于逐步构建地图,并在智体导航时记住未知环境的特征。

除了研究如何构建智体之外,机器人研究还必须考虑各种低层方面问题(低层的路径规划和控制、硬件传感器、机器人硬件等)。相比之下,具身智能研究可以通过抽象出低层细节,更多地关注高级任务规划。这促使具身智能研究人员探索地图构建技术作为高层任务规划的一部分,并解决诸如“地图是否必要”(Partsey,2022)、“地图的结构应该是什么”、“地图内存储什么类型的信息”和“哪种信息对哪些任务有用”等问题。最近,人们的注意也转移到利用基础模型构建通用人工智能解决方案(Radford,2021;Oquab,2023;OpenAI,2023),这使得社区能够探索构建独立于下游任务的通用、开放词汇语义地图。这些开放词汇图稍后可以使用自然语言 (Gu et al., 2023; Peng et al., 2023; Chen et al., 2023a) 或图像进行查询。

现有的具身智能综述通常侧重于一般任务的进步 (Pfeifer & Iida, 2004; Duan et al., 2022; Deitke et al., 2022) 或特定子领域,如视觉导航 (Zhu et al., 2021; Zhang et al., 2022; Wu et al., 2024; Lin et al., 2024) 或操纵 (Batra et al., 2020a; Zheng et al., 2024),本文首次全面回顾针对具身智能室内环境的语义地图构建技术,如图所示。沿着两个关键轴线组织现有的方法——地图的结构以及地图中存储的信息或编码类型。通过分析各种方法的优点和局限性,确定当前文献中的差距,并提出未来的研究方向来指导社区。这项综述旨在统一具身智能中语义建图的不同方法,阐明其在实现智能行为方面的基础作用。除了总结现有工作之外,还希望激发新的研究,推动具身智体中语义地图构建的界限。


具身智能任务

具身智能任务因智体与其环境的交互类型而异。广义上讲,可以将具身任务分为三类—— 探索任务 (Chaplot,2019)要求智体有效地探索其环境; 导航任务 (Wijmans,2019;Batra,2020b)要求智体采取行动以在环境中移动; 操纵任务 (Szot,2021;Weihs,2021)要求智体执行交互操作以更改环境中其他目标的状态。

任务的分类可以根据提供给智体的目标规范进一步细分,这会影响需要保留的信息。例如,对于导航,通常会研究以下内容。在点目标导航 PointNav 中 (Wijmans et al., 2019),智体会获得相对于其起始位置的目标坐标,而在图像目标导航 (ImageNav) 中,智体会获得一个目标图像 (Chaplot et al., 2020b)。在对象目标导航 (ObjectNav) 任务中,智体需要导航到任何目标类别的实例 (Yadav et al., 2022)。ObjectNav 任务的扩展是多目标导航 (MultiON) (Wani et al., 2020) 任务,其中智体需要按照特定顺序导航到多个目标。 视觉-语言导航 (VLN) (Anderson et al., 2018b) 要求智体按照自然语言指令找到目标。在视觉-听觉导航任务中,智体需要在室内环境中导航到发出特定声音的目标(Chen,2020a;Gan,2019)。根据任务类型,可能只需在地图中存储目标类别(例如 ObjectNav)就足够了,或者可能需要保留更细粒度的信息(例如 VLN)。本文主要关注最近关于导航房间尺度地图构建的研究,因为这些方法可以扩展到地图操作和探索。

端到端方法

具身智能社区在使用强化学习 (RL) 训练特定于任务的端到端模型方面取得很大进展,该模型直接从视觉观察中学习预测离散 (Wani,2020) 或连续动作 (Kalapos,2020)(如图所示)。这些方法可能由非结构化记忆组成,例如 LSTM (Dobrevski & Skočaj 2021)。然而,这种表示缺乏对 3D 空间和几何的推理,在长期路径规划中表现不佳。这导致构建中间地图表示方法的发展。这种地图可以使用可微分操作来实现,以促进端到端训练。Gupta (2017) 表明,以这种方式构建的自我中心地图对 PointNav 和 ObjectNav 任务都有好处,而 Henriques & Vedaldi (2018) 为定位任务学习全局地图。虽然这些方法是使用监督学习进行训练的,但 Wani (2020) 使用 RL 学习根据环境的中间全局地图预测动作,以解决复杂的 MultiON 任务。但是,无论地图表示或训练模式如何,每次任务定义发生变化时都需要重训练这些方法,甚至执行任务所需的基本技能也需要从头开始学习。

模块化方法

另一项工作探索如何将复杂的任务分解为智体需要掌握的一组基本技能。然后可以独立学习这些技能,以便可以在各种任务中利用它们,而无需从头开始重训练。这导致对模块化流水线的各种研究(Chaplot,2019;2020a;Gervet,2023;Raychaudhuri,2023),其中每个模块负责一项特定技能,模块相互交互以执行整个任务。在模块化方法中,通常有一个视觉编码器,在每个时间步骤中处理和编码视觉信息,一个建图器,将编码信息聚合到地图中,一个探索模块,确定需要探索环境的哪些部分,以及一个规划器,确定要采取的低级操作。上图显示端到端方法和模块方法之间的区别。

视觉编码器 。该模块对智体观察结果进行编码,以在每个时间步骤生成语义视觉特征和预测。先前的研究使用预训练主干网络(如 ResNet (He 2016)或 ViT(Dosovitskiy,2020))的视觉特征,并且经常利用目标检测器 MaskRCNN (He 2017)或 FasterRCNN (Ren 2015)。随大型预训练视觉语言模型和开放词汇检测器的发展,预训练模型(如 CLIP(Radford,2021)、LSeg(Li,2022)、DINO(Caron,2021;Oquab,2023)等)越来越受欢迎,成为构建大型开放词汇地图的基础。所使用的视觉编码器将确定特征中捕获的信息,以及是否有检测目标实例边框或分割以集成到建图模块中。

建图器 。建图器负责根据编码的图像特征和智体姿势构建环境的语义地图。为了随时间构建全局地图,建图器通常将当前地图与上一步的地图聚合在一起。下表总结通过各种方法存储在地图中的信息类型。这可以是占用信息、探索区域或检测目标的语义标签。

探索 。该模块使智体能够有效地探索其环境,以确保地图完整(通过最大化覆盖区域)或选择目标可能所在的未访问区域。通常,探索模块根据建图器构建的障碍物地图和当前智体姿势选择一个点或区域进行探索。智体可以使用简单的基于启发式方法,例如均匀采样一个点(Zhang,2021;Raychaudhuri,2023),系统地采样以智体为中心网格的四个角(Luo,2022)或从未探索的边界中选择一个点(Yamauchi,1997)。为了决定智体应该探索哪个边界点,采用各种策略,例如选择离智体最近的点(Gervet,2023)或基于语义推理选择最有希望的点。在基于语义推理的探索方法中,智体可以从预训练的大型视觉语言模型(例如 BLIP-2(Li,2023))中选择最高的文本-图像相关性得分(Gadre,2023;Yokoyama,2023),直接选择 VLM 的最高概率输出(Ren,2024),或利用 LLM 提取常识知识(Zhou,2023)。研究人员还使用学习策略(Chaplot,2019;2020a),其中智体通常使用奖励进行 RL 训练,例如覆盖(Chen,2019)或好奇心(Pathak,2017;Mazzaglia,2022)。尽管基于学习的方法中手工制定的规则较少,但它们需要数百万个训练步骤和精心的奖励工程。

规划器 。一旦构建了地图,就会使用低层路径规划模块来规划从智体当前位置到目标位置的路径。该路径由智体可以执行移动到目标的低层操作组成。虽然在大多数先前的工作中,这都是作为基于启发式的 Fast Marching 方法 (Sethian, 1996) 实现的,但最近由 (Raychaudhuri et al., 2023) 提出的方法 MOPA,使用 DD-PPO (Wijmans et al., 2019) 离线训练一个 PointNav 学习策略。

在上表中,比较常见的模块化方法,并研究它们如何为每个模块利用各种基于启发式或基于学习的方法。模块化流水线的优势包括它能够利用来自其他任务的预训练模型(Gervet,2023;Raychaudhuri,2023)以及能够更好地从模拟迁移到现实世界的机器人(Gervet,2023)。

主动 SLAM

主动 SLAM 背后的关键思想是,机器人不是被动地收集数据并用它来构建地图,而是决定下一步要移动到哪里,以减少地图及其估计位置的不确定性。这对于自主机器人在未知环境中有效执行复杂任务至关重要,涉及三个关键问题(Makarenko,2002;Fairfield,2009)——地图绘制、定位和规划(如图所示)。在传统机器人技术的背景下,首先定义这三个问题。地图绘制涉及收集传感器数据以创建环境模型,考虑传感器噪声和不确定性。在传统机器人技术中,这些方法解决这些不确定性,而具体化的 AI 模拟器通常假设传感器是理想的、无噪声的。定位是使用传感器数据确定机器人在地图中位置的过程,这些数据可能会很含噪声。规划是决定机器人的下一步行动,考虑地图、定位和行动结果中的安全性和不确定性等约束。注:路径规划是规划的子任务,重点是找到最安全、最有效的目标路线。

这些问题是相互关联的,导致诸如 SLAM 等任务,其中地图构建和定位相互依赖; 经典探索 ,其中机器人采取行动以最大化环境覆盖范围并构建完整地图; 主动定位 ,其中机器人通过采取行动主动规划和优化其位置。三者的交集是主动 SLAM,其中机器人通过探索、构建地图和在优化两者的同时进行自我定位来主动减少不确定性。这使机器人能够更有效地执行任务。

传统上,通过使用来自 LIDAR 或深度传感器的测量值来构建障碍物地图,在未见过的环境中移动时,地图捕获有关环境的纯几何信息。然而,这无法捕获执行复杂任务所需的环境关键语义线索。这导致语义 SLAM 方法的发展,该方法还可以检测和识别场景中的目标。语义 SLAM 中的经典方法依赖于特征提取(SIFT(Lowe,2004)、SURF(Bay,2008)、ORB(Rublee,2011)),然后将其与基于 Bag-of-Visual Words(Peng & Li,2016)的词典进行比较,以确定其最接近的相似性匹配。Chen(2022)和 Placed(2023)更详细地调查经典和语义 SLAM 方法的概况。然而,现代语义 SLAM 系统使用基于深度学习的方法从其环境中捕获语义信息。


传统上,为导航而构建的地图仅以基于空间网格的结构存储障碍物信息。虽然这些地图可以捕捉空间的几何形状,并可以帮助智体避开障碍物,但它们不足以满足更复杂的具身 AI 任务需求。增强型地图超越几何形状,可以捕捉环境中的含义和背景,与人类感知和导航周围环境的方式相一致。这些称为“语义地图”,它们提供对环境中的目标和位置更丰富、更细致入微的理解。这些地图对于执行复杂任务是必不可少的,例如导航到特定房间(厨房)(Narasimhan,2020)、重排列物体(Trabucco,2022)或对特定目标执行特定操作(坐在沙发上)(Peng,2023)。语义地图也可以以不同的方式构建,而不仅仅是网格。如图概述不同的地图结构和编码:

下表总结先前工作中使用的结构和编码:显式编码是预先选择的信息,例如占用率、探索面积、对象类别、访问时间等。隐式编码是学习的表征,例如视觉 (V) 或视觉-语言 (VL) 特征。使用 VL 特征(通常来自大型预训练模型)可以构建开放词汇地图。将隐式特征聚合到一个网格地图上但最终解码为显式编码的方法在此表中标记为“隐式-到-显式”。

什么是语义地图?

语义地图不仅捕获环境的物理空间,还捕获有关环境的语义信息,例如已识别目标和区域的名称、关键特征以及与之体如何导航或与环境交互相关的其他属性。它还可以存储目标和区域之间的空间和功能关系。为了使机器人或智体构建准确的语义地图,机器人通过传感器(摄像头、激光雷达等)感知环境,并使用认知对其感知的目标和区域进行分类(Ren,2015;He,2017;Liu,2023b;Kirillov,2023;Zhang,2023b)。当机器人采取行动并四处导航时,它需要将信息存储在结构化记忆(语义地图)中,以便在需要时检索。语义地图使机器人能够推理环境,以便它在导航、遵循指令和目标操作等下游任务中有效地与环境交互。假设一个智体的任务是找到一个苹果并将其放入冰箱。假设智体先看到冰箱,然后看到苹果。拿起苹果后,如果智体记住看到冰箱的位置,那么回溯它的脚步将是高效的。

地图的结构是什么?

语义地图可以构造为空间网格地图、拓扑地图、点云地图或混合地图(如上图所示)。 空间网格地图 是一种自上而下的网格,其中每个网格单元代表物理环境中的一个区域。因此,如果某个目标位于 3D 场景中的某个位置 (X、Y、Z),则语义地图将包含相应网格单元 (x、y) 处有关该目标的信息,其中 x 和 y 分别是行号和列号,因此存在从 (X、Y、Z) 到 (x、y)的直接映射。对于导航,大多数空间地图都是 2D 的,因此网格单元通过聚合向上轴上的语义信息,忽略 Z 轴(向上方向)。但是,它们也可以是 3D 的,其中 Z 轴被划分为离散的 bins。另一方面, 拓扑地图 是一种图结构,其中节点表示场景中的目标或重要地标,边缘表示它们之间的关系(距离、空间关系等)。点云地图上还可以存储语义信息, 点云地图 可以看作是密度不同的 3D 地图。在点云地图中,信息与物理空间中 3D 位置 (X、Y、Z) 对应的每个点(x、y、z) 相关联。与间距规则的体素网格不同,点可以以不同的密度进行采样。有些工作将上述两种或多种结构结合起来形成 混合地图 ,因为每种结构都有自己的优点和局限性。

此地图存储什么?

语义地图存储有关物理环境中特定 3D 位置 (X、Y、Z)的信息。此信息可以是显式的,也可以是隐式的。 显式编码 为每个值分配明确的特定含义。例如,每个单元格 (X、Y、Z)可以存储有关该位置是否有任何障碍物、智体是否已探索过该位置、该位置存在的目标类别等信息。另一方面, 隐式编码 是一种特征编码,它捕获智体在特定位置 (X、Y、Z)观察的感官输入(例如图像)信息。这些特征通常是从预训练的编码器中提取的。根据特征编码器是在一组有限类别的图像上进行预训练,还是在大型互联网规模的图像和语言数据集上进行预训练,隐式编码可以是封闭词汇表或开放词汇表。术语“封闭词汇”用于表示只能识别有限的一组目标类别,而在开放词汇设置中,特征提取器理论上可以识别“任何”目标。

地图是如何构建的?

创建准确而详细的语义地图,需要集成来自各种来源和传感器(如摄像头、激光雷达和深度传感器)的数据。更具体地说,地图构建包括让智体在空间中导航,并将时间步骤 t 的观测值 O/t 累积到适当的地图结构 m/t 中。要构建准确的地图,智体首先需要估计它的位置(定位)。接下来,它从观测 F(O/t) 中提取语义信息(特征提取),并将特征随时间组合成一个公共地图(累积)(参见下图)。在构建空间网格地图时,另一个步骤是将特征投影到地图上(投影)。通常将最后三个步骤分组到地图构建中,并在 SLAM 中与定位一起研究它。

定位 。由于传感器和执行器噪声较大,定位可能具有挑战性。为了简化问题,在具身智能社区中,通常要么假设在每个时间步骤中都给出完美的定位(Cartillier,2021),要么假设完美的驱动,将定位到其在 episode 的起始位置(Henriques & Vedaldi,2018)。后者更容易适应现实世界的环境,因为它不需要关于智体姿势的确切知识。相反,智体相对于其起始姿势的相对位移足以最终构建地图。

特征提取 。特征提取是构建语义地图的关键部分。理想情况下,这些特征应该代表地图中存在的目标。

投影 。构建空间网格地图的一个重要步骤,是进行 2D 观测并将其投影到 3D 中。通常,这依赖于深度信息和已知的相机参数,以便将 2D 像素坐标转换为 3D 世界坐标。要在相机框架中投影特定像素,首先从相机中心发出一条射线,穿过图像像素 (i,j)到达深度 d/i,j,以获得相机坐标系中的 3D 点。接下来,将相机坐标转换为世界坐标 (X, Y, Z)。对于 2D 空间地图,3D 坐标 (X, Y, Z)映射到空间地图中的网格单元索引 x 和 y。如果将多个点投影到空间地图中同一个网格单元,则使用聚合特征或预测的函数将它们累积到该单元中。

累积 。在地图更新期间,有很多方法可以将特征或预测聚合到地图中,包括 1) 使用最新观测值 (m/t = m/t-1) 覆盖地图,2) 执行数学运算,例如最大值 (m/t = max(m/t, m/t-1) 或平均值 (m/t = mean(m/t, m/t-1)),以及 3) 使用学习的神经网络。对于学习的聚合函数,通常使用一个递推网络 (LSTM,GRU) (mt = GRU (m/t, m/t-1))。

在构建地图的过程中,还有其他几个重要方面需要考虑。

自我为中心 VS 其他为中心 。在用于构建地图的参考系中也有选择,要么维护具有相对于智体的自我中心坐标系的地图(例如智体前面的 +y 坐标),要么维护其他为中心(例如世界)坐标系。

跟踪访问过的区域 。为了使地图完整,智体必须能够确定它是否已经访问过某个位置,以及是否有未探索的位置。对于特定的具身任务,如果任务可以完成,智体可能并不总是需要构建完整的地图。

视点选择 。在具身设置的情况下,智体在可以观察的可能视点方面也受到限制,并且必须按顺序将观察结果累积到地图中。这与非具身设置形成对比,在非具身设置中,可以更自由地选择视点,并且可以先收集观察结果,然后一起进行分析。

在线 VS 离线地图构建 。智体可以通过首先探索环境来构建地图。地图构建完成后,智体就可以开始执行特定任务。在这种情况下,智体分两个不同的阶段构建地图并执行任务,这个过程称为离线地图构建方法。虽然这种方法在实际任务期间节省计算时间,但智体需要额外的探索阶段来熟悉新环境。当预期智体会在同一环境中重复使用时,这种方法可能很合适。但是,由于地图是静态快照,如果在任务期间未更新,则环境的实际状态与预先计算的状态之间可能会不匹配。例如,智体可能会到达地图中未捕获的位置。这可能会导致任务失败。此外,在现实生活中的应用中,机器人需要在未见过的环境中执行任务,例如搜索和救援行动,因此花额外的时间先探索环境然后再执行任务并不理想。相反,更好的方法是在任务期间或在线构建或更新地图,以便始终保持更新。

现实世界中的地图构建 。在具身人工智能任务中模拟构建的地图通常很嘈杂,这是由于不切实际的假设限制它在现实世界中的使用。地图构建在社区中主要作为子模块进行研究,以结合解决更复杂的高级推理任务。因此,研究人员试图研究哪种类型的地图适用于哪些任务,而将噪声传感器问题与地图构建分离,使他们能够做到这一点。最突出的假设是无噪声传感器。例如,有时社区假设在导航过程中始终实现完美的定位(智体的当前位置和方向),这在真实世界中是不现实的。这主要是因为 GPS 和指南针传感器通常很嘈杂,只要一直可用。然而,在大多数室内空间,GPS 甚至可能不可用。在现实世界的机器人中,非常有效的 SLAM 方法在 GPS 不可用的假设下运行,并依靠机载传感器来估计其在地图上的位置。无噪声传感器假设的另一个例子是完美驱动,这意味着当智体启动向前移动 25 厘米的动作时,它将准确地到达当前位置前方 25 厘米的位置。但现实世界的执行器是有噪声的,并受到不同表面不同摩擦的影响,这会导致随着时间的推移出现显著的漂移。 SLAM 系统本质上能够通过在机器人姿态估计的不确定性下运行来解决此类问题。闭环检测是 SLAM 的一个子算法,它识别之前访问过的位置,然后使用它们来纠正姿态估计中的累积误差。一般来说,与具身智能中当前地图绘制技术相比,SLAM 系统在现实世界中构建的环境地图更加一致、准确。

地图构建中的注意事项

尽管具身人工智能社区在地图构建方面取得了巨大进步,但仍有许多具有挑战性的方面需要不断研究和改进。

实时处理 。在线构建地图时,智体需要不断处理传感数据并通过积累语义信息实时更新地图。这是一项计算密集型任务,因此需要高效的算法。此外,在自动驾驶等动态环境中,算法需要具有低延迟。

内存消耗和可扩展性 。创建和维护大规模语义地图需要足够的存储空间,并且可能难以扩展。这种大型地图可能是由于在大型环境中导航(例如户外城市景观)、或长时间导航复杂的室内空间、或在地图内存储密集的语义特征而产生的。有效更新这种大规模地图仍然是一个有待解决的挑战(Gu,2023)。

噪声和不确定性 。在现实世界的机器人中,来自传感器(摄像头、IMU 等)的数据可能会因反射表面、不均匀的梯度等而产生噪声。这种噪声数据会给机器人构建的地图带来不确定性。然而,在具身人工智能社区中,在模拟环境中假设无噪声传感器是一种常见的做法,从而产生无噪声的地图。当直接从模拟迁移到现实世界时,地图构建方法可能不会很好地发挥作用,除非采用特殊技术来处理噪声和不确定性(Chaplot,2020a;Georgakis,2022b)。

动态环境 。在许多应用中,例如自动驾驶或机器人手术,环境总是因为移动目标、变化的光照条件和不断发展的结构而变化。地图构建技术需要适应这些动态环境变化并构建准确一致的地图。

语义理解 。准确识别环境中的目标对于创建有用的语义地图至关重要。这依赖于先进的计算机视觉技术,这些技术已经取得巨大的进步,从识别一组固定的目标(He,2017;Ren,2015)到识别图像中的“任何”目标(Zhou,2022;Liu,2023b)。此外,目标之间的上下文理解和空间关系,对于复杂语义任务中的有效决策很有用(Antol,2015;Gordon,2018)。

可用性和可靠性 。为人类创建查询语义地图的交互式界面,是许多研究人员关注的新领域(Peng,2023;Yamazaki,2023)。这种可查询的地图,尚未在任何下游体现的 AI 任务中使用,但仍是一个有希望探索的方向。此外,确保构建的地图可靠且一致,可以提高对现实世界安全关键应用的信任。这需要通过严格的验证和测试来构建准确的环境地图。

标准化 。开发标准化的地图构建框架可能有助于跨不同系统和平台的协作和集成。尽管机器人社区在地图构建方面有标准化的实践(例如 SLAM),但具身人工智能社区依赖于不同的技术(Gupta,2017;Chaplot,2020a),并且可能受益于一个通用框架。


语义地图可以采用多种结构:空间网格地图、拓扑地图、点云地图或混合地图。 空间网格地图 是环境的度量地图,其尺寸与环境尺寸一致,可以构造为 2D 或 3D 网格。另一方面, 拓扑地图 通过一组以节点表示的地标和以边表示的相邻地标之间关系以一个图形式表示环境。 点云地图 是 3D 地图中最密集的形式,其所有三个维度都与 3D 空间对齐,因此场景中的每个 3D 点都被捕获在地图中。有时将两种或多种此类地图组合在一起以形成 混合地图

空间网格地图

空间网格图 m_t 是一个 (M x N x K) 矩阵,其中 M 和 N 是地图的空间维度,K 表示在该位置存储语义信息的通道数。它是一种网格状结构,每个单元都有宽度和高度,与物理环境中的某个区域相对应。

目前对室内具身人工智能的研究,利用来自数据集的环境,例如 Matterport3D (MP3D) (Chang,2017) 和 Habitat-Matterport3D (HM3D) (Ramakrishnan,2021),它们是现实世界空间的 3D 重建。与 MP3D 相比,HM3D 包含的场景数量大约多 10 倍,具有高视觉保真度和更少的重建伪影。这些环境通常适用于总面积小于 1000 平方米的房屋或办公空间。发现每个单元格代表 400 - 900 cm^2 面积的网格地图足以表示此类空间(Wani,2020;Raychaudhuri,2023)。在每个 episode 开始时,空间地图用大小为 (M x N x K) 的张量初始化,并随着智体在环境中移动而逐渐构建。这些通常是 2D 自上而下的地图(Gupta,2017;Henriques & Vedaldi,2018;Narasimhan,2020;Cartillier,2021),前两个维度对应于环境的空间维度。然而,有些人构建 3D 空间地图(Chaplot,2021)来捕捉垂直维度,在这种情况下,地图 m_t 是一个 4D 张量(M x N x P x K)。

空间地图可以通过多种方式构建,具体取决于是否将原始特征直接投影到地图上,或者是否使用语义分割(如图所示)。一种方法是学习图像特征的自我中心投影,如 CMP(Gupta,2017),从而形成自我中心地图。在 CMP 中,自我中心观察首先用学习的图像编码器网络(如 ResNet(He,2016))进行编码,然后网络学习预测图像特征的自我中心投影,而无需对地图进行明确监督。相反,制图器与规划器一起进行端到端训练以预测动作。然而,自我中心地图不仅无法捕捉环境的整体结构,而且会“忘记”大多数过去的观察结果。因此,在长期规划任务中,智体需要“记住”其过去的观察结果以提高效率,而自我中心的地图则不够好。

为了维护一个他人为中心的地图,需要在每个时间步骤中获取自我中心信息并将其聚合到全局地图中。实现此目的的一种方法,是首先获得图像特征的自我中心投影,然后通过称为配准的过程聚合到环境的全局他人为中心地图中。配准允许地图将新观测合并到特定的网格单元中。如果网格单元已被占用,则通过使用聚合函数将新观测与现有观测累积在一起。此聚合函数可以像取最新值或平均值一样简单,但也可以是一个学习网络。MapNet(Henriques & Vedaldi,2018)通过使用深度观测和已知的相机内参在 2D 自上而下的网格上投影自我中心图像特征来构建他人为中心地图。此地面投影会在相机周围的空间邻域上产生自我中心投影。接下来,它通过首先获取旋转 r 次的自我中心地图栈,然后与上一步的他人为中心地图进行密集匹配来执行配准,以获得智体在地图上的当前姿势。密集匹配可以通过卷积算子有效实现。然后,LSTM 将按当前姿势旋转的当前观测值与上一步的他人为中心地图进行聚合。虽然这项工作中使用 LSTM 进行聚合,但其他函数和神经架构也可用于聚合(有关不同工作中使用的聚合方法的摘要,如下表所示)。

构建他人为中心空间地图的另一种方法是,首先将图像像素转换为具有已知相机内参的相机空间中 3D 坐标。然后将相机坐标转换为具有已知相机姿势的世界坐标。最后,通过对高度维度求和,将 3D 世界坐标体素化并投影到具有已知投影矩阵的自上而下 2D 网格上。 Semantic MapNet(Cartillier,2021)和 MOPA(Raychaudhuri,2023)采用这种方法。以这种方式构建的空间地图可能会因传感器噪声而产生噪声,需要额外的去噪步骤。Semantic MapNet 使用学习的去噪网络,而 MOPA 采用启发式方法,通过选择一个噪声簇的质心来获得干净的地图。继上一项技术之后,Semantic MapNet(Cartillier,2021)表明,首先对图像进行编码,然后投影到地面上,最后在 2D 地图上进行分割,可以减少空间地图中的噪声,从而消除额外去噪步骤的需要。无论采用哪种方法,都可能发生将多个图像特征投影到同一个网格单元上的情况。在这种情况下,重要的是要有一个聚合特征的方案。一些常见的聚合方法是取最大值(Henriques & Vedaldi,2018;Wani,2020;Cartillier,2021)、平均值(Huang,2023a)或特征值的总和(Chaplot,2020a)。

摘要 。空间网格地图捕获有关环境的密集信息。这样的表示有助于智体更好地推理环境的空间结构。然而,空间地图需要以一定的宽度和高度进行初始化,因此如果环境大小发生变化,空间地图很难扩展。此外,它消耗大量内存,这可能会影响智体在任务中的表现。

拓扑图

与高精度网格地图相比,拓扑图是一种图结构,节点通过边相互连接。这本质上将大空间抽象为重要区域(节点),智体可以在这些区域做出决策,并在它们之间建立连接或路径(边)(Johnson,2018)。这使得能够将环境解析为局部和全局结构,以便智体可以在表示为节点的小空间中进行局部规划,同时通过图搜索沿着边在大空间中导航。这种规划和导航方式的灵感,来自于人类在未见过环境中导航的方式,即识别和记忆重要地标并找到到达这些地标的路径(Janzen & Van Turennout,2004;Foo,2005;Chan,2012;Epstein & Vass,2014)。因此,拓扑图一直是传统机器人研究(Thrun & Montemerlo,2006;Lorbach,2014;Rosinol,2020b;Campos,2021)和具身 AI 研究(Savinov,2018;Chen,2021;Chaplot,2020b;Kwon,2021;Gu,2023;Mehan,2024;Garg,2024;An,2024;Yang,2024)中的热门选择。

拓扑图构建过程中的一个关键设计决策,是应该将什么表示为节点,什么应该表示为边。一般来说,节点对环境中位置的语义信息进行编码,以便智体可以做出决策,而边则存储节点之间的关系或连接。对于室内导航,节点的地标通常是环境中的目标。它们也可以是开口或交叉点(Fredriksson,2023)、智体访问过的位置(Chaplot,2020b 年)和其他感兴趣的区域(Kim,2023;Shah,2023;Garg,2024)。对于导航,如果可以从一个节点导航到另一个节点,则两个节点通过边连接。一些方法还在边缘中存储节点之间的空间关系(Gu,2023),以便进行更好的推理。

构建拓扑图(如上图所示)的一种方法,是在实际任务之前的探索阶段,然后使用该图规划到与目标最相似的节点的路径,例如在半-参数拓扑记忆 (SPTM) 中(Savinov,2018)。在探索过程中,智体会遵循每个环境的多个随机轨迹,为每个访问的位置形成一个节点,并在当前节点和前一个节点之间添加一条边,以编码它们之间的连接性或可达性。常见的后处理步骤,包括修剪冗余节点和边以形成稀疏图(Chen,2021)。当从多个随机轨迹收集一个环境的图时,将这些图合并为一个也很常见。然而,在预探索阶段以这种方式生成的拓扑图仍然很稀疏,这意味着环境中的某些观察结果可能未被图捕获。这会影响智体在下游任务中的性能。此外,它们需要一个预探索阶段,这使得它们不适合未见过的环境。

为了缓解这个问题,一些工作在智体执行任务期间导航时在线构建拓扑图,就像神经拓扑 SLAM (NTS) 的情况一样 (Chaplot et al., 2020b)。NTS 由几个模块组成——“图更新”用于根据观察更新拓扑图,“全局策略”用于在地图上采样子目标,“局部策略”用于输出离散导航操作以达到子目标。“图更新”方法根据当前观察和智体姿势逐渐更新图中的节点和边。它首先尝试从上一个时间步将智体定位在图上。如果智体在现有节点中定位,它会在该节点和上一个时间步的节点之间添加一条边。它还存储两个节点之间的相对姿势,表示为 (r, θ),其中 r 是节点之间的相对距离,θ 是相对方向。如果智体无法定位,则会向图中添加一个新节点。

拓扑地图创建的另一个重要方面,是如何确定两个观察结果是否彼此相似,在这种情况下,将两者映射到同一个节点。如果它们不相似,则两个观察结果存在两个不同的节点。这需要地图构建方法来比较 RGB 图像。这里的目标是将两幅图像归类为相似,如果 (1) 它们完全相同或 (2) 两者之间的方向或距离略有变化。传统上,这是基于 SLAM 的系统中的数据关联问题,其中传入的观察结果可以与多个地标(节点)匹配,然后选择最佳匹配或创建新节点来标记新地标(Bowman,2017;Dellaert,2000)。拓扑图创建中的另一个重要方面是如何确定两个观测值是否彼此相似,在这种情况下,将两个观测值映射到同一个节点。如果它们不相似,则两个观测值存在两个不同的节点。这需要地图构建方法来比较 RGB 图像。这里的目标是将两个图像归类为相似,如果 (1) 它们完全相同或 (2) 两者之间的方向或距离略有变化。传统上,这是基于 SLAM 的系统中的数据关联问题,其中传入的观测值可以与多个地标 (节点) 匹配,然后选择最佳匹配或创建新节点以标记新地标 (Bowman 等人,2017;Dellaert 等人,2000)。在具身 AI 中,一些方法使用预训练的分类器网络来实现这一点。该网络经过训练可以对两幅图像是否来自同一区域进行分类。NTS 使用以监督方式训练交叉熵损失的 MLP 来预测是否相似。然而,这需要带注释的训练数据对。另一方面,跨模态 Transformer 规划器 (CMTP) (Chen,2021) 使用 Oracle“可达性估计器”首先根据 3D 网格的可遍历性获取两个底层位置之间的地理距离。如果距离低于阈值,它会将它们映射到同一个节点。视觉图记忆 (VGM) (Kwon,2021) 也使用预训练网络来确定两幅图像是否相似。但它们会学习观察结果的无监督表示,然后将其投影到嵌入空间上。其想法是将来自附近区域观察结果的嵌入聚集在一起,因为它们可能具有相似的外观。在这种情况下,训练数据由从训练环境中随机抽取的观察结果组成,从而无需手动注释。Kim (2023) 另一方面使用从预训练网络 (Li et al., 2021) 在两幅图像之间获得的语义相似度得分来确定它们是否是相同的节点。LM-Nav (Shah et al., 2023) 采用类似的方法,他们使用 CLIP 来计算图像特征之间的余弦相似度。下表比较构建拓扑图的不同方法。


摘要 。与空间地图相比,拓扑图由于其简洁和浓缩的表示而易于构建和维护。它们节省内存,并且可以通过简单地向图中添加更多节点来随环境大小增加而轻松扩展。然而,它们只捕捉环境中的某些地标,因此缺乏密集的全局信息。这可能会导致在杂乱的室内场景中忽略视觉提示,而这些提示可能有助于智体进行空间推理。

点云地图

还可以将语义信息直接积累到场景的 3D 几何上,无论是三角网格还是点云(它们越来越受欢迎,因为它们比三角网格更容易处理)。例如,给定一个点云,可以将语义信息与场景中的每个点相关联。虽然传统上不被认为是地图,但可以将这些表示视为一种语义地图,因为它们将语义与空间信息相关联。通常,神经网络用于获取与给定位置 (x, y, z) 作为输入的每个点相关特征。将坐标转换为实值向量的神经函数也称为 神经场 。这些神经场可以生成密集的 3D 语义地图,其中场景中的每个 3D 点都被捕获并表示在地图中。

虽然传统上这种表示主要是为 3D 场景理解任务而构建的,但人们对将它们用于具身 AI 的兴趣日益浓厚。在场景理解任务中,目标是对每个 3D 点执行各种语义推理(Peng,2023;Xu,2024)。换句话说,给定一个场景的点云,目标是执行语义分割、affordance 估计、房间类型分类、3D 目标搜索等。为此类任务学习的表示通常也对后续具身 AI 任务有用。

通常有两种策略来训练神经场:1)使用蒸馏(Peng,2023;Kerr,2023;Taioli,2023;Qin,2024;Guo,2024;Qiu,2024)来提供类似于预训练的 2D 主干特征,例如 CLIP(Radford,2021),2)使用可微分渲染器来匹配除颜色之外的渲染语义(Zhi,2021;Vora,2021)。

例如,OpenScene(Peng,2023)预测密集的 3D 特征,以便它们与 CLIP 嵌入空间中的相应文本和图像共同嵌入。这允许将场景中的每个 3D 点与语义信息关联起来,从而可以使用文本查询场景以推断物理属性、affordance等。CLIP2Scene (Chen et al., 2023c) 还使用 CLIP 对室外场景执行 3D 点云分割,以应用于自动驾驶。然而,由于在许多这些方法中优化都是针对每个场景进行的,因此它们通常很昂贵并且不适合在具身应用中实时使用。使用神经场图进行具身 AI 的代表性工作包括 CLIP-Fields (Shafiullah et al., 2023)。另一方面,Zhang et al. (2023a) 基于在线点云构建算法 (Zhang et al., 2020) 构建 3D 语义场景表示,该算法通过使用基于树的动态数据结构提高效率。此方法非常节省内存,并且在应用于 ObjectNav 任务时速度要快得多。同样,Lei et al. (2024) 表明,基于高斯分层的 3D 表示,能够在 ImageNav 任务中实现最先进的性能。

摘要 。在具身 AI 任务的背景下,这种密集地图的使用仍相对未被探索,并且可能是一个有希望的未来方向。然而,使用这种密集地图可能会导致查询期间内存消耗大和计算效率低下。此外,在典型的室内场景中,大多数 3D 空间都是空的,可能对推理环境没有用处。

混合地图

基于网格地图的度量信息与拓扑图的组合也称为拓扑图(Thrun,1998;Tomatis,2001;Blanco,2008;Konolige,2011;Ko,2013;An,2023)。Thrun(1998)提出一种单一统计建图算法,该算法首先构建一个粗略的拓扑图,然后使用它来构建一个细粒度的网格图。他们表明,拓扑地图通过纠正较大的里程计误差来解决全局对齐问题,而网格地图通过生成高分辨率地图来解决局部对齐问题。另一方面,Tomatis(2001)提出一种紧凑的环境模型,其中角落和走廊由拓扑地图表示,房间由网格地图表示,两者通过单一表示连接起来。当机器人在走廊中移动时,它会创建并更新全局拓扑地图,一旦进入房间,它就会创建一个新的局部度量地图。他们认为,机器人只需要在房间内精确(例如操纵目标等),这证明需要细粒度的精确度量地图,而拓扑地图仅用于在难以区分的空间(例如长走廊和重要地点之间的过渡)中保持全局一致性。 BEVBert (An et al., 2023) 是一种较新的方法,它离线构建混合地图,然后学习多模态地图表示,以便在语言引导导航的复杂任务中执行更好的空间推理。

还有结合网格、点云和拓扑地图的混合地图。StructNav (Chen et al., 2023b) 构建这样一种混合地图,其中空间网格存储占用信息,场景图存储地标及其连通性,3D 语义点云存储环境中的每个 3D 点都有一个与之关联的语义标签。因此,空间网格允许避障和低级路径规划,场景图允许对地标之间的关系进行高级推理,3D 点云允许更密集的语义和空间匹配。

还可以构建捕获场景在各个抽象级别的语义层次结构地图,从而允许进行各个级别的推理。Armeni et al. (2019) 以多层级结构(建筑物、房间和目标)表示静态场景,其中实体表示为层次图中的节点,并通过代表坐标系变换的边进行连接。Rosinol (2020a)(动态场景图)将其扩展到动态场景,在密集 3D 度量空间地图之外还具有分层场景图,并建模目标和智体之间的时空关系。Hughes (2024) 证明分层场景表示比大型环境中的平面表示具有更好的扩展性,随后引入一个名为 Hydra 的系统,该系统可以实时从传感器数据中逐步构建 3D 场景图。Fischer (2024) 从一组从移动车辆捕获的图像中引入大规模动态城市环境的多级场景图表示,并提出城市驾驶场景的新视图合成基准。

摘要 。不同类型的地图结构都有各自的优点和局限性。粗略拓扑图可用于表示环境中的重要地标,细粒度度量图可用于表示其精确的几何形状,点云图可用于表示场景中目标更密集的 3D 几何形状。因此,为了更好地表示环境,最好是在不同层次的语义抽象上,将两个或更多个结构结合起来至关重要。虽然混合地图已经在机器人技术中得到探索,但它们在具身 AI 中仍未得到充分探索。然而,在结合这些地图之前,需要仔细考虑它们的弱点。例如,拓扑和点云地图在更大的环境中比网格地图具有更好的扩展性,并且点云地图需要最多的内存,而拓扑地图需要最少的内存来存储。


无论地图的结构如何,地图编码(即存储在地图中的值)都可以是显式的或隐式的。显式地图编码是指存储的信息类型清晰可知的编码。另一方面,隐式编码使用可能无法直接解释的特征嵌入。如图总结探索这两种编码类型的各种工作。


显式编码

许多先前的工作将显式信息存储在地图中。先前的研究发现,几乎每个具身 AI 任务都受益于有关环境中存在的障碍物信息,因此维护具有此占用信息的空间地图有助于智体学习避开其路径上的障碍物。在这种情况下,空间地图存储二进制占用值 1 或 0,具体取决于物理环境中的相应位置是否被目标“占用”。

然而,在探索任务中,智体需要在保持效率的同时最大化环境中的探索区域,在这种情况下,某个位置是否已被探索的信息会鼓励智体更多地探索未探索的区域。主动神经 SLAM(Chaplot,2019)除了存储占用信息外,还存储已探索(二进制)信息。主动神经 SLAM 由多个模块组成,这些模块连接在一起执行探索任务以最大化探索区域。“神经 SLAM”模块将视觉观察和智体姿势作为输入,并通过学习使用二元交叉熵损失预测占用和探索信息来输出自上而下的自我中心空间地图。所有模块都使用不同的损失进行联合训练。

然而,在更复杂的任务中,例如 ObjectNav,它需要智体在其环境中导航到特定的语义类,仅存储占用和探索信息可能还不够。在这种情况下,智体识别目标的语义类非常重要。 Chaplot (2020a) 提出的面向目标语义探索 (SemExp) 还存储智体通过视觉观察识别目标的语义类标签。SemExp 在 RGB 观测上使用 MaskRCNN (He,2017) 来预测目标的语义类,然后使用深度观测将这些类别投影到地图上。它使用逐元最大池化聚合占用和探索信息,而语义类则被最新预测覆盖。然后使用去噪网络获取最终地图。这项工作表明,使用此语义地图预测长期目标有助于智体更有效地找到目标物体类别。建图模块使用具有交叉熵损失的监督学习在预测的语义图上进行训练。同样,语义类别图也有助于多目标导航(MultiON)的一个更复杂长期任务。 MOPA(Raychaudhuri,2023)表明,保持对智体在移动时观察目标的记忆对于有效执行此任务至关重要。但是,通过先分割图像然后投影来构建的地图可能会导致“标签飞溅(label spattering)”,即嘈杂的类别标签散布在空间地图的多个网格单元上。这主要是由于嘈杂的深度观察而引起的,可能会对智体在任务中的表现产生负面影响。语义 MapNet(Cartillier,2021)发现,将编码特征投影到地图上然后进行分割可以生成更无噪声的地图。他们表明,该地图可以有效地应用于两个不同的任务。但是,这种方法需要一个额外的探索阶段,其中智体首先有效地探索环境以构建地图,然后在下游任务中使用该地图。最近的一项研究 GOAT(Chang,2023;Khanna,2024)表明,拥有目标实例图有助于导航到由语言、图像或类别标签指定的目标。他们通过存储原始图像,然后使用 CLIP(Khandelwal,2022)进行图像到语言匹配,使用 SuperGlue(Sarlin,2020)进行图像到图像匹配来实现这一点。







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