UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025

news2025/4/24 11:52:33

UniGoal的提出了一个通用的零样本目标导航框架,能够统一处理多种类型的导航任务

(如对象类别导航实例图像目标导航文本目标导航),而无需针对特定任务进行训练或微调。

它的特点是 图匹配多阶段探索策略!!!

论文地址:UniGoal: Towards Universal Zero-shot Goal-oriented Navigation

开源地址:https://github.com/bagh2178/UniGoal

1、模型框架

UniGoal的模型框架,如下图所示:

  1. 目标图构建:根据导航任务类型(对象类别、实例图像或文本描述),构建目标图。

  2. 场景图构建:代理接收RGB-D图像和姿态信息,实时构建和更新场景图。

  3. 图匹配:在场景图和目标图之间进行匹配,计算匹配分数 S,反映目标匹配程度。

  4. 黑名单更新:记录失败的匹配节点和边,避免重复探索。

  5. 多阶段探索策略

    • 阶段1(零匹配):匹配分数低,扩展探索区域,通过目标图分解和前沿选择确定探索方向。

    • 阶段2(部分匹配):匹配分数中等,利用已观察到的部分目标图推理剩余部分位置,通过坐标投影和锚点对齐生成探索目标。

    • 阶段3(完美匹配):匹配分数高且中心对象匹配,验证目标正确性,成功则任务完成,否则更新黑名单。

  6. 策略执行:全局策略生成长期探索目标,确定性局部策略将其转换为具体动作。

2、目标导向导航

目标导向导航任务是指:机器人需要在未知的环境中导航到一个指定的目标。

这个目标可以是:

  • 对象类别(Object-goal Navigation, ON):比如“找到一把椅子”。

  • 实例图像(Instance-image-goal Navigation, IIN):比如“找到与这张图片中相同的那把椅子”。

  • 文本描述(Text-goal Navigation, TN):比如“找到那个靠窗、旁边有桌子的椅子”。

对于IIN和TN任务,目标不仅包含一个中心对象 o,还包含与其他相关对象的关系描述。

而对于ON任务,目标直接就是对象类别o=g。

机器人在执行任务时会接收到带有姿态信息的RGB-D视频流(即包含颜色和深度信息的图像序列),并在每次接收到新的观测数据时执行一个动作 a,动作集合 A 包括向前移动、向左转、向右转和停止。

任务的成功完成条件是:机器人在少于 T 步内停在距离目标对象 o 少于 r 米的范围内。

2、通用零样本目标导向导航问题

在研究通用零样本目标导向导航问题,这需要满足以下两个条件:

  1. 通用性(Universal):设计的方法需要能够通用地处理上述三种导航子任务(ON、IIN、TN),在切换任务时不需要对方法本身进行任何修改。

  2. 零样本性(Zero-shot):目标可以通过自由形式的语言或图像来指定,且导航方法不需要针对特定任务进行任何训练或微调,从而具备强大的泛化能力。

为了满足上述要求,UniGoal提出了一个基于大型语言模型(LLM)的通用零样本导航框架。

  • 利用LLM进行零样本决策:由于任务需要极强的泛化能力,因此采用LLM来进行零样本决策。LLM具有丰富的知识和强大的推理能力,能够帮助代理在未知环境中进行导航决策。

  • 统一的图表示:为了使LLM能够感知视觉信息并统一表示不同类型的导航目标,文章提出将场景和目标都表示为图结构,即场景图(Scene Graph)目标图(Goal Graph)。这种图表示方式能够保留场景和目标的结构化信息,便于后续的推理和决策。

  • 基于图的场景理解和决策:在每一步导航过程中,通过将场景图和目标图作为提示提供给LLM,使LLM能够基于图结构进行场景理解、图匹配和决策制定,从而生成合理的探索动作。

通过这种设计,UniGoal框架能够在无需针对特定任务进行训练或微调的情况下,处理多种类型的导航任务,展现出强大的通用性和泛化能力。

3、图的定义与构建

  • 图的定义:图 G=(V,E) 由节点 V 和边 E 组成。节点表示对象,边表示对象间的关系。边仅存在于空间上或语义相关对象对之间。节点和边的内容以文本形式描述。

  • 场景图的构建:由于代理初始化于未知环境,并持续探索场景,因此场景图 Gt​ 随着时间逐步构建。每当代理接收到新的RGB-D观测数据时,场景图就会扩展。具体构建方法参考了SG-Nav的工作。

  • 目标图的构建:对于不同类型的目标 g(对象类别、实例图像和文本描述),采用不同的方法将其转换为目标图 Gg​。

例如,对于对象类别目标,目标图仅包含一个节点,无边。

对于实例图像目标,使用Grounded SAM识别图像中的所有对象,并使用VLM识别对象间的关系以构建边

对于文本描述目标,提示LLM识别文本中的对象和它们之间的关系以构建图。

4、图匹配方法

  • 匹配的目的:通过图匹配确定目标或其相关对象是否被观察到,从而为后续的场景探索策略提供依据。

  • 匹配的策略:提出了三种匹配指标,分别从节点拓扑结构三个方面,计算场景图Gt​ 和 目标图 Gg​之间的相似性分数。

    • 节点匹配和边匹配:分别提取节点和边的嵌入,计算它们之间的相似性矩阵,然后通过二分图匹配确定匹配的节点对和边对。相似性矩阵中小于阈值 τ 的值会被设置为-1,以禁止对应节点或边对的匹配。

    • 拓扑匹配:计算两个图之间的拓扑结构相似性。具体来说,先找到场景图中与目标图匹配的最小子图,然后计算该子图与目标图之间的归一化编辑距离,从而得到拓扑相似性分数。

    • 最终匹配分数:将节点、边和拓扑的相似性分数进行平均,得到最终的匹配分数 S。该分数反映了目标在场景中被观察到的程度。

通过构建场景图和目标图,并运用图匹配技术,机器人能够在未知环境中识别目标对象及其相关对象。

这种图表示方法不仅保留了丰富的结构化信息,还为后续的场景探索策略提供了决策依据。

5、多阶段场景探索策略

该策略基于图匹配的分数,机器人在不同阶段采取不同的行动来寻找目标。

整个探索过程分为三个阶段:零匹配阶段、部分匹配阶段和完美匹配阶段。

下面图片是展示UniGoal的决策过程。这里的“Switch”表示阶段转换的点。“S-Goal”表示每个阶段预测的长期目标。

阶段1:零匹配阶段

  • 情况描述:当匹配分数 S 小于阈值 σ1​ 时,认为目标图中的元素几乎没有被观察到。此时,代理需要扩展其探索区域,寻找目标图中的元素。

  • 挑战:目标可能是一个复杂的图,包含多个内部关联较弱的子图。例如,目标图可能包含“桌子、椅子、窗户、窗帘”等多个子图,每个子图内部关联性强,但子图之间关联性弱。

  • 解决方案

    • 目标图分解:通过大型语言模型(LLM)将复杂的目标图分解为多个内部关联的子图。例如,将目标图分解为“[桌子,椅子]”和“[窗户,窗帘]”两个子图。

    • 文本描述转换:为每个子图生成文本描述,例如将“[桌子,椅子]”子图转换为“桌子旁边有椅子”。

    • 前沿选择:调用前沿选择方法(如SG-Nav中的方法),根据子图的文本描述和场景图的语义关系,选择探索的前沿点。

    • 前沿评分:通过LLM预测每个前沿点与子图的最可能位置的距离,并根据距离和前沿点到代理的距离计算评分,选择评分最高的前沿点作为长期探索目标。

通俗来说,这一阶段就像是在一个完全陌生的房间里寻找一个复杂的家具组合。由于对房间一无所知,代理人需要先分解任务,逐步探索房间的不同区域。

阶段2:部分匹配阶段

  • 情况描述:随着代理的探索,目标图的部分元素逐渐被观察到,匹配分数 S 逐渐增加。当 S 超过 σ1​ 且至少存在一个锚点对(即场景图和目标图中的一对匹配节点或边)时,进入部分匹配阶段。

  • 挑战:需要利用已观察到的部分目标图和场景图的重叠部分,推理出剩余部分的目标位置。

  • 解决方案

    • 坐标投影:将目标图的中心对象节点投影到坐标原点(0, 0),并利用目标图中节点间的空间关系,通过深度优先搜索(DFS)和LLM推理,逐步推断出目标图中其他节点的坐标。

    • 锚点对对齐:将场景图和目标图的锚点对对齐,计算坐标转换矩阵 P,将目标图的其余节点投影到场景图的坐标系中。

    • 探索目标生成:为每个锚点对生成探索目标,即投影节点的最小外接圆的圆心,确保探索目标到最远节点的距离最小。

通俗来说,这一阶段就像是在房间里找到了部分家具组合(如桌子和椅子),并利用这些已知信息推断出其他家具(如窗户和窗帘)可能的位置。

下面是阶段3:部分匹配阶段(坐标投影和锚点对齐)细节信息:

  • 坐标投影:首先将目标图的中心对象节点投影到坐标原点(0, 0)。然后,利用目标图中节点间的关系,通过深度优先搜索(DFS)和大型语言模型(LLM)推理,逐步推断出目标图中其他节点的坐标。

  • 例如,若已知一个节点的坐标和其与另一个节点的空间关系(如“在...前面”或“在...右侧”),可通过LLM推断出另一个节点的坐标。

  • 锚点对齐:找到场景图和目标图中的锚点对(匹配的节点或边),将目标图的坐标系与场景图的坐标系对齐。通过计算坐标转换矩阵,将目标图的其余节点投影到场景图的坐标系中,从而确定探索目标的位置。

阶段3:完美匹配阶段

  • 情况描述:当匹配分数 S 超过 σ2​ 且目标图的中心对象 o 被匹配时,进入完美匹配阶段。

  • 挑战:需要确保匹配的中心对象正确,并避免感知错误。

  • 解决方案

    • 场景图校正:对场景图中距离中心对象 o 一定范围内的节点和边进行校正,通过信息传播和LLM聚合更新节点和边的描述。

    • 目标验证:通过多个置信度指标(如校正后的节点和边的比例、关键点匹配度、图匹配分数和路径长度)验证目标是否正确。如果置信度超过阈值,则确认目标;否则,排除当前匹配。

通俗来说,这一阶段就像是在房间里找到了目标家具组合,并验证其是否符合描述。

下面是阶段3:完美匹配(场景图校正)细节信息:

在接近目标时,对场景图中目标附近的节点和边进行修正。

通过多次信息传播和LLM推理,更新节点和边的描述,修正可能存在的感知错误。

例如,若新观测的图像显示椅子是棕色的,但场景图中描述为绿色,则修正场景图中的颜色描述。

6、黑名单机制

黑名单机制的定义和目的

  • 定义:黑名单机制是一种防止代理(如机器人)在导航过程中重复探索无效区域的策略。

  • 目的:避免在图匹配过程中反复尝试那些已经失败的节点和边,提高导航效率和鲁棒性。

黑名单机制的初始化和更新

  • 初始化:黑名单初始为空。

  • 更新规则:在两种情况下会将节点和边加入黑名单:

    • 当阶段2(部分匹配阶段)的所有锚点对都无法进入阶段3(完美匹配阶段)时,将这些锚点对涉及的节点和边加入黑名单。

    • 当阶段3的目标验证失败时,将所有匹配的节点和边加入黑名单。

节点和边的移除

  • 修正后的移除:如果在阶段3的场景图修正过程中,某些节点或边被修正,那么这些节点和边以及它们的连接节点和边将从黑名单中移除。

通俗易懂的类比

黑名单机制可以类比为我们在日常生活中避免走冤枉路的策略。

例如,当你在一个陌生的城市寻找某个地址时,如果你发现某条路走不通或者带你到了错误的地方,你就会记住这条路,下次不会再走。这个机制帮助代理避免在无效区域浪费时间,提高导航效率。

7、Prompts提示语设计

提示语(Prompts)在UniGoal方法中起着至关重要的作用。它们被设计为指导大型语言模型(LLM)执行特定任务的指令。

这些任务包括从图像或文本中构建目标图、分解复杂的目标图、选择探索的前沿点、校正场景图以及验证目标等。

以下是具体的提示语类型及其内容:

1. 实例图像目标(Instance-image-goal)的提示语

  • 任务:从图像中识别对象之间的空间关系。

  • 提示语格式

    你是一个能够推断物体之间空间关系的AI助手。你需要猜测在图像中{object1}和{object2}之间的空间关系。用一个单词或短语回答关系。
  • 参数替换

    • {object1}{object2}:图像中的两个对象。

    • {image}:目标图像。

  • 示例

    你是一个能够推断物体之间空间关系的AI助手。你需要猜测在图像中椅子和桌子之间的空间关系。用一个单词或短语回答关系。
  • 预期输出:一个单词或短语,描述两个对象之间的空间关系(如“在...前面”、“在...后面”等)。

2. 文本目标(Text-goal)的提示语

  • 任务:从文本描述中识别对象和它们之间的关系。

  • 提示语格式

    你是一个能够从描述中识别物体和关系的AI助手。你需要将以下文本中的物体和关系以指定格式列出:{’nodes’: [{’id’: ’book’}, {’id’: ’table’}], ’edges’: [{’source’: ’book’, ’target’: ’table’, ’type’: ’on’},]}
  • 参数替换

    • {text}:文本描述的目标。

  • 示例

    你是一个能够从描述中识别物体和关系的AI助手。你需要将以下文本中的物体和关系以指定格式列出:厕所是白色的,周围有白色的门,墙壁和地板上有米色的瓷砖。
  • 预期输出:一个包含节点(对象)和边(关系)的JSON格式字符串。

3. 目标图分解的提示语

  • 任务:将复杂的目标图分解为多个内部关联的子图。

  • 提示语格式

    你是一个具有常识的AI助手。你需要根据相关性将以下物体{}分成多个子集,每个子集内的物体高度相关,不同子集的物体系相关性较低。你的回答应为二维数组格式:[[object1, object2,...,objectn], [...],...,[...]]
  • 参数替换

    • {}:目标图中的对象列表。

  • 示例

    你是一个具有常识的AI助手。你需要根据相关性将以下物体[椅子, 沙发, 床, 植物]分成多个子集,每个子集内的物体高度相关,不同子集的物体系相关性较低。你的回答应为二维数组格式:[[object1, object2,...,objectn], [...],...,[...]]
  • 预期输出:一个二维数组,每个子数组包含一个子图中的对象。

4. 前沿评分的提示语

  • 任务:预测对象与子图之间的最可能距离。

  • 提示语格式

    你是一个具有常识的AI助手。你需要预测{object}和{subgraph}之间的最可能距离(以米为单位)。
  • 参数替换

    • {object}:场景图中的对象。

    • {subgraph}:目标图的子图描述。

  • 示例

    你是一个具有常识的AI助手。你需要预测椅子和[桌子, 椅子]子图之间的最可能距离(以米为单位)。
  • 预期输出:一个数字,表示对象与子图之间的最可能距离(以米为单位)。

5. 场景图校正的提示语

  • 任务:基于场景图和新观测的图像,修正节点或边的描述。

  • 提示语格式

    你是一个能够详细描述室内场景图节点或边的AI助手。现在,请根据场景图{graph}和新观测的图像{image},给出{}的更详细描述,以便识别场景图中的可能错误。
  • 参数替换

    • {}:需要修正的节点或边。

    • {graph}:局部场景图。

    • {image}:新观测的图像描述。

  • 示例

    你是一个能够详细描述室内场景图节点或边的AI助手。现在,请根据场景图{'nodes': [{'id': 'chair'}, {'id': 'table'}], 'edges': [{'source': 'chair', 'target': 'table', 'type': 'in front of'}]}和新观测的图像“一张带靠垫的木椅”,给出“椅子”的更详细描述,以便识别场景图中的可能错误。
  • 预期输出:一个更详细的节点或边的描述,可能包含修正后的属性或关系。

这些提示语设计用于充分利用LLM的知识和推理能力,完成从目标识别到场景理解和决策制定的各个环节。通过精心设计的提示语,UniGoal方法能够有效地指导LLM完成复杂的导航任务。

8、实验与验证

  • 数据集:在多个数据集上评估UniGoal方法,包括MatterPort3D(MP3D)、Habitat-Matterport 3D(HM3D)和RoboTHOR。这些数据集提供了丰富的3D室内环境,用于测试不同类型的导航任务。

  • 评估指标:使用成功 rate(SR)和成功 rate加权路径长度(SPL)作为评估指标。SR表示成功导航的剧集比例,SPL衡量路径与最优路径的接近程度。

  • 比较方法:与多种现有方法进行比较,包括监督方法(如SemEXP、ZSON、OVRL-v2)、零样本方法(如ESC、OpenFMNav、VLFM、SG-Nav)和通用方法(如PSL、GOAT)。

下面表格,是在MP3D、HM3D和RoboTHOR上,进行对象目标导航、实例图像目标导航和文本目标导航的结果。

看一下导航路径可视化,可视化了多个场景的 ON(绿色)、IIN(橙色)和 TN(蓝色)路径。


 

分享完成~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过Quartus II实现Nios II编程

目录 一、认识Nios II二、使用Quartus II 18.0Lite搭建Nios II硬件部分三、软件部分四、运行项目 一、认识Nios II Nios II软核处理器简介 Nios II是Altera公司推出的一款32位RISC嵌入式处理器,专门设计用于在FPGA上运行。作为软核处理器,Nios II可以通…

Linux/AndroidOS中进程间的通信线程间的同步 - IPC方式简介

前言 从来没有总结过Linux/Android系统中进程间的通信方式和线程间的同步方式,这个专栏就系统总结讨论一下。首先从标题可知,讨论问题的主体是进程和线程、通信和同步;在这里默认你理解进程和线程的区别。通信和同步有什么概念上的区别&…

Windows:注册表配置应用

0、简介 本篇博客记录一下,日常的系统注册表配置选项,以防再次遇到问题不知如何解决。 1、开机启动配置 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run :: 此位置存储了所有用户登录时需要启动的程序。 在该项下新建字符串值&#…

WebXR教学 05 项目3 太空飞船小游戏

准备工作 自动创建 package.json 文件 npm init -y 安装Three.js 3D 图形库,安装现代前端构建工具Vite(用于开发/打包) npm install three vite 启动 Vite 开发服务器(推荐)(正式项目开发) …

达梦统计信息收集情况检查

查询达梦某个对象上是否有统计信息 select id,T_TOTAL,N_SMAPLE,N_DISTINCT,N_NULL,BLEVEL,N_LEAF_PAGES,N_LEAF_USED_PAGES,LAST_GATHERED from sysstats where id IN (select id from sysobjects where upper(name)upper(&objname));可能有系统对象,可以增加…

【matlab】气泡图的应用

【matlab】气泡图的应用 .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; } clear load zb_equi.mat load …

飞帆控件:在编辑模式下额外加载的库

飞帆是一个自由的控件设计平台。在飞帆中,我们可以很方便地创建基于 Vue 2 组件的控件,并使用控件来搭建网页。 他山之石,可以攻玉。在创建控件中,使用 js 、css 依赖库能让我们的控件更强大。 有些时候,在编辑模式下…

Super-Vlan和MUX-Vlan的原理、配置、区别

Super-Vlan 原理 Super-Vlan也叫Aggregate-Vlan。 一般的三层交换机中,通常是采用一个VLAN对应一个vlanif接口的方式实现广播域之间的互通,这在某些情况下导致了IP地址的浪费。因为一个VLAN对应的子网中,子网号、子网定向广播地址、子网缺…

el-table怎么显示 特殊单元格的值

1. 在 el-table-column 上绑定了 formatter 方法 formatEntityName ,它会对每一行该列的数据( cellValue )进行处理。 2. 在 formatEntityName 方法中,尝试对传入的 cellValue 进行 JSON.parse 操作,并根…

2025-04-23 Python深度学习3——Tensor

文章目录 1 张量1.1 数学定义1.2 PyTorch中的张量 2 创建 Tensor2.1 直接创建**torch.tensor()****torch.from_numpy()** 2.2 依据数值创建**torch.zeros() / torch.zeros_like()****torch.ones() / torch.ones_like()****torch.full() / torch.full_like()****torch.arange() …

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理

在统信UOS/麒麟Kylin OS操作系统中配置APT和GIT代理 在内网环境中,直接访问外部资源可能会受到限制,这时候配置APT和GIT的代理就显得尤为重要。本文将详细介绍如何在统信UOS和麒麟Kylin OS操作系统中配置APT和GIT的代理。 为什么需要配置APT和GIT代理&…

第十七讲、Isaaclab中使用操作空间控制器

0 前言 官方教程:https://isaac-sim.github.io/IsaacLab/main/source/tutorials/05_controllers/run_osc.html IsaacsimIsaaclab安装:https://blog.csdn.net/m0_47719040/article/details/146389391?spm1001.2014.3001.5502 有时候,仅使用…

基于SpringBoot的校园二手商品在线交易系统+含项目运行说明文档

基于SpringBoot的校园二手商品在线交易系统含项目运行说明文档 专注校园二手交易平台是一个基于Java的在线市场,专为学生设计,便于买卖二手商品。平台提供全面的用户管理功能,包括学生、管理员和二手商品卖家账户管理。商品管理功能允许用户…

详解springcloud gateway工作原理、断言、filter、uri、id、全局跨域、globalfilter等以及关键源码实现

1.gateway概念 网关就是当前微服务项目的"统一入口"程序中的网关就是当前微服务项目对外界开放的统一入口所有外界的请求都需要先经过网关才能访问到我们的程序提供了统一入口之后,方便对所有请求进行统一的检查和管理 2. 网关的主要功能 将所有请求统一经过网关网…

C++面向对象特性之继承篇

C语音是面向过程的语言,而C在其之上多了面向对象的特性,面向对象三大特性:封装性、继承性、多态性。今天主包来讲讲自己学到的关于C继承特性的知识。 一、继承是什么 继承是提高代码复用的一种重要手段。正如C的模版、泛型编程等等都是为了实现代码复用…

【AI News | 20250423】每日AI进展

AI Repos 1、suna Suna是一款完全开源的AI助手,旨在通过自然对话帮助用户轻松完成现实世界的任务。它作为您的数字伙伴,提供研究、数据分析和日常问题解决等功能,并结合强大的能力与直观的界面,理解您的需求并交付成果。Suna的工…

【学习准备】算法和开发知识大纲

1 缘起 今年(2025年)的职业升级结果:不通过。没办法升职加薪了。 需要开始完善学习,以应对不同的发展趋势,为了督促自己学习,梳理出相关学习大纲。 分为算法和开发两部分。 算法,包括基础算法和…

第七篇:linux之基本权限、进程管理、系统服务

第七篇:linux之基本权限、进程管理、系统服务 文章目录 第七篇:linux之基本权限、进程管理、系统服务一、基本权限1、什么是权限?2、为什么要有权限?3、权限与用户之间的关系?4、权限对应的数字含义5、使用chmod设定权…

爬虫案例-爬取某企数据

文章目录 1、准备要爬取企业名称数据表2、爬取代码3、查看效果 1、准备要爬取企业名称数据表 企业名称绍兴市袍江王新国家庭农场绍兴市郑杜粮油专业合作社绍兴市越城区兴华家庭农场绍兴市越城区锐意家庭农场绍兴市越城区青甸畈家庭农场绍兴市袍江王新国家庭农场绍兴市袍江月明…

学习笔记—C++—string(一)

目录 string 为什么学习string的类 string类的常用接口 string类对象的常见构造 string类对象的访问及遍历操作 operator[] 迭代器 范围for auto 迭代器(二) string类对象的容量操作 size,length,max_size,capacity,clear基本用法 reserve 提…