【机器人】DualMap 具身导航 | 动态场景 开放词汇语义建图 导航系统

DualMap 是一个在线的开放词汇语义映射系统,使得机器人能够通过自然语言查询动态变化的环境中理解和导航

双地图导航,结合全局抽象地图进行高层次候选选择,以及局部具体地图进行精确目标定位,有效管理和更新环境中的动态变化。

论文地址:DualMap: Online Open-Vocabulary Semantic Mapping for Natural Language Navigation in Dynamic Changing Scenes

代码地址:https://github.com/Eku127/DualMap


 

一、框架思路流程

 DualMap的框架思路流程,如下图所示:

通过“具体地图”和“抽象地图”的双地图,进行目标导航:

  1. 输入需要查询物体的描述,例如“去找红色水杯”
  2. 在抽象地图中,对每个锚的语义列表中进行查询匹配,选出最可能包含目标的位置
  3. 导航到可能位置后,在局部的具体地图中进一步搜索目标
  4. 若找到,即完成导航
  5. 若未找到,则触发抽象地图更新,
  6. 将局部具体地图中新的观测进行更新
  7. 多次尝试,用新地图重新做候选检索,进入第 2 步,直到找到目标或超过最大尝试次数

 

1.1 Concrete Map (具体地图) 构建流程

  1. 输入RGB-D数据、机器人的Pose信息
  2. 使用YOLO + FastSAM,进行物体对象检测
  3. 生成一组带有类别标签 、语义特征 和点云的观测物体对象
  4. 将新观测的物体与地图中已有的对象集进行匹配对比(特征相似度+点云重叠匹配);如果匹配成功更新该对象的点云与 CLIP 特征,如果匹配失败则插入为新对象
  5. 生成当前最新的细粒度 3D语义地图,也就是具体地图;包含场景中所有静态/动态物体的点云与语义信息

1.2 Abstract Map (抽象地图)构建流程:

  1. 在具体地图的基础上,来生成抽象地图
  2. 检测出静态物体,用 CLIP将各对象特征与“静态家具”模板匹配,高于阈值的标为“锚”(桌子、柜子、沙发等)
  3. 关联易动物体,将体积小、可移动物体的特征与附近锚的平面位置做几何/高度判断,挂到相应静态锚的语义列表上
  4. 将全局场景点云 投影到鸟瞰网格,生成二值 Occupancy Map(墙、柱等固定障碍)
  5. 生成抽象地图,仅保留静态锚的位置+语义+其上易动物体特征,以及全局占据格

二、DualMap的创新点

2.1 双图结构:精细感知 × 高效导航

Concrete Map 具体地图(三维)

  • 在线增量构建,记录“长得什么样、在哪儿、语义是谁”的全套信息:每个物体的 3D点云、类别标签、以及 CLIP文本+图像混合特征(0.7 图像 + 0.3 文本加权)。

  • 通过“匹配–累积–检查”循环,既能吸纳新出现的物体,也能剔除偶发误检物体。

Abstract Map 抽象地图(二维)

  • 只挑“不会轻易挪动”的家具当锚(Anchor),丢掉其余几何细节,仅保留它们的位置和语义;

  • 将小物件的语义特征“挂到”相应家具下(比如杯子→桌子),但不存它们的点云;

  • 把全局场景点云在鸟瞰平面做网格分桶,生成离散的占据格(occupancy grid),支持快速全局路径规划。

2.2 混合开集分割模型:兼顾速度与覆盖

  • 闭集检测(YOLOv8):快速定位预定义类别的物体边框;

  • 开放集分割(FastSAM/MobileSAM):补充 YOLO 看不到的“新类别”或未包含在训练集里的物体;

  • 融合策略:保留所有 YOLO 框里的分割结果,同时加入 FastSAM 在 “框外” 发现的物体,用色彩直方图判断哪块先贴,避免重复或遗漏。

作用:既能保证速度(YOLO 30 FPS),也能“开箱即用”地识别千奇百怪的新物体。

2.3 动态抽象图更新:闭环导航

  • 初次导航:在 Abstract Map 上,根据用户语言(“找红色水杯”)在每个锚的语义列表里打分,选出最可能放杯子的家具(比如餐桌)。

  • 局部搜索:机器人边走边用 Concrete Map 精细感知,到了目标家具附近再仔细找;

  • 若没找到,就把局部新观测到的物体(例如之前遗漏的一堆杯子)抽象到 Abstract Map,对哪个家具下挂了哪些物件进行补充,然后再选下一个最优家具做第二次尝试。

2.4 轻量级的对象状态检查

传统开放词汇建图系统(如 HOV-SG)依赖 3D 物体合并操作处理分割碎片,需消耗大量计算资源(Replica 场景中每帧处理耗时 42 秒) 

优化维度传统方法(HOV-SG)DualMap 状态检查
空间操作3D 点云体素级合并(耗时 42 秒 / 帧)2D 类别分布统计(0.16 秒 / 帧)
数据依赖全局地图几何信息局部对象观测列表
并行性串行 3D 处理可并行对象级检查

DualMap 提出的轻量级对象状态检查通过两大创新突破效率瓶颈:

  • 计算范式转变:将全局 3D 几何操作(如体素级合并)转化为局部语义分析(如类别分布统计)
  • 错误修正前置:在观测阶段实时过滤噪声,避免错误累积导致的地图退化
  • 动态适应性:针对动态环境中物体状态变化(如部分遮挡、位置移动)设计增量更新机制

通过两种主要机制实现:稳定性和分裂检测

稳定性检查 目的是过滤掉那些观察不足或可能由噪声引起的对象,从而提高地图的可靠性。

  • 示例:会议室场景中,误检为 "椅子" 的阴影区域若在 15 帧内未被重新观测,且 "椅子" 类别占比仅 30%,则被删除

  • 触发条件:当对象超过T帧(默认 15 帧)未更新时,启动稳定性评估

  • 检查标准:对象需要满足两个条件才能通过稳定性检查:

    1. 累积的观测数量超过一个设定的阈值。

    2. 在对象的观测列表中,最频繁出现的类别ID至少占总观测数的三分之二。

  • 结果处理如果对象未通过稳定性检查,它将被视为不稳定对象并从地图中移除

分裂检测 解决欠分割问题,即多个相邻对象被错误地合并为一个对象的情况。

  • 欠分割典型案例:茶几上的遥控器与杂志被错误合并为单一对象
  • 触发条件:当在连续帧的相同时间戳上出现具有不同类别ID的观测时,系统会触发分裂检测。
  • 检测过程:系统会分析对象观测列表中的类别ID分布。如果发现不同类别ID的观测在多个帧中持续共存,就会认为发生了欠分割。
  • 分裂操作:将对象的观测列表按类别ID进行分割,并为每个类别创建新的对象。这有助于保留小对象并提高场景的保真度。

三、实验验证与效果

实验在一台配备NVIDIA RTX 4090 GPU和Intel i7-12700KF CPU的机器上进行。

检测器的选择

  • 闭环检测采用YOLOv8l world模型 ,能够快速准确地检测预定义类别的对象。

  • 为了支持开放词汇分割,使用了FastSAM 模型。

  • FastSAM能够检测YOLO模型未涵盖的对象类别,从而实现全面的对象检测。

特征嵌入模型

  • 论文中使用MobileCLIP-S2 进行特征嵌入。

  • MobileCLIP是一个轻量级的图像-文本嵌入模型,适用于移动设备和机器人应用。选择该模型可以确保在嵌入特征时保持较高的计算效率。

在HM3D数据集中,目标导航的成功率对比:

  • 在HM3D数据集的静态场景中,DualMap的导航成功率最高,平均成功率达到70.5%。

  • 在动态场景中,DualMap在锚点内重定位和跨锚点重定位的成功率分别为64.8%和60.3%。

在真实世界中DualMap目标导航的成功率

在ScanNet scene001100上,语义分割结果的定性比较:

红色箭头突出显示语义上不准确的预测,而蓝色箭头表示无意义的分割,表明预测存在噪声。

目标导航示例效果:

 导航示例,如下图所示: 

分享完成~

  相关文章推荐:

UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025-CSDN博客

【机器人】具身导航 VLN 最新论文汇总 | Vision-and-Language Navigation-CSDN博客

【机器人】复现 UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025-CSDN博客

【机器人】复现 WMNav 具身导航 | 将VLM集成到世界模型中-CSDN博客

【机器人】复现 ECoT 具身思维链推理-CSDN博客

【机器人】复现 SG-Nav 具身导航 | 零样本对象导航的 在线3D场景图提示-CSDN博客

 【机器人】复现 3D-Mem 具身探索和推理 | 3D场景记忆 CVPR 2025 -CSDN博客

【机器人】复现 Embodied-Reasoner 具身推理 | 具身任务 深度推理模型 多模态场景 长远决策 多轮互动_embodied reasoner-CSDN博客

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

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

相关文章

【Fifty Project - D37】

fifty project算是失败了一半了 成功的那一半在于一定程度上拯救了我的作息和健康,两个月前入职体检的肝有点不健康,昨天复查发现全都回到了健康范围!尿酸也在正常范围!就是体重还是没减下来hhh 失败的一半在于自己很差劲的规划能…

解码危险品物流背后的“隐形防线”

当急救药品跨越千里送达医院,当新能源电池准时抵达生产线,当化工原料安全运往工厂……这些与日常生活息息相关的场景背后,有一群人始终在和时间赛跑,与风险博弈。他们不是超级英雄,而是危险品物流从业者——一个鲜少被…

Flutter Melos在外包团队协作中的弊端与应对策略

引言 在大型Flutter项目开发中,Melos作为一款优秀的Monorepo管理工具,能够有效协调多包项目的开发流程。然而,当项目涉及外包团队协作时,Melos的使用会面临一系列独特的挑战。本文将深入分析Flutter Melos在外包团队协作环境中的…

<selectKey> 中的order 属性

在 MyBatis 中&#xff0c;<selectKey> 标签的 order 属性用于指定生成主键值的 SQL 语句执行时机。 除了 AFTER&#xff0c;MyBatis 还支持另一种模式&#xff1a;BEFORE&#xff0c; 它们有明确的使用场景和区别&#xff1a; order"AFTER" 适用数据库&#x…

BitsAndBytes(简称 BnB)是一个用于“压缩”大语言模型的工具包

BitsAndBytes&#xff08;简称 BnB&#xff09;是一个用于“压缩”大语言模型的工具包&#xff0c;能把模型从原来的16位或32位&#xff0c;压成4位或8位&#xff0c;减少显存占用&#xff0c;同时保持尽量高的精度。 &#x1f9e9; 为什么叫 Bits and Bytes&#xff1f; 它的…

【前端】 Vue 3 中二次封装组件

在 Vue 3 中二次封装组件是提高代码复用性和维护性的重要手段。以下是详细的封装方法和最佳实践&#xff1a; 一、封装原则 功能扩展&#xff1a;在原有组件基础上添加新功能定制样式&#xff1a;统一项目的 UI 设计规范简化接口&#xff1a;隐藏复杂逻辑&#xff0c;提供简洁…

分布式词表示(Distributed Word Representation):自然语言处理的核心基石

分布式词表示&#xff08;Distributed Word Representation&#xff09;&#xff1a;自然语言处理的核心基石 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;如何将离散的词汇转化为计算机可理解的数值形式&#xff0c;一直是技术突破的关键。传统的独热编码&…

Windows Playwright NotImplementedError问题深究

原文链接&#xff1a;Windows Playwright NotImplementedError问题深究 < Ping通途说 0. 引言 今天来看一下这个困扰我很久的问题。是关于在FastAPI / NiceGUI 等基于Uvicorn环境下使用Async Playwright 提示NotImplementedError的问题。 本解决方案仅适用基于Uvicorn的异步…

QCustomPlot 数据可视化方式详解

QCustomPlot 数据可视化方式详解 QCustomPlot 提供了多种灵活的数据显示方式,可以满足从简单静态图表到复杂实时数据可视化的各种需求。以下是 QCustomPlot 显示数据的核心方式和策略: 基本数据显示方式 1.1 完整数据设置 (setData)// 一次性设置完整数据集 QVector<doub…

家用旧电脑搭建小型服务器操作步骤教程:一步一步本地部署到公网访问

你家是不是也有一台吃灰的旧电脑&#xff1f;别急着扔&#xff0c;它其实还能发挥大作用&#xff01;小编最近就把家里一台十年前的老台式机&#xff0c;改造成了一个小型服务器&#xff0c;主要用来文件备份、当网站测试环境&#xff0c;还是比较有用的。今天就来手把手教你&a…

Python银行账户系统全解析

完整代码如下&#xff1a; class BankAccount:def __init__(self, account_holder, initial_balance0):"""初始化银行账户:param account_holder: 账户持有人姓名:param initial_balance: 初始余额&#xff0c;默认为0"""self.account_holder …

博世X阿里云:智能座舱接入通义大模型!

近日,全球领先的汽车技术与服务商博世与阿里云宣布在大模型领域达成合作,通义大模型助力博世加速AI技术应用于智能座舱,首次实现座舱环境主动感知和3D数字人交互。 博世AI智能座舱技术原型由博世智能驾控事业部以通义千问和通义万相为基础,结合阿里云百炼大模型服务平台和磐曦数…

高性能计算服务器的主要作用都有哪些?

高性能计算服务器是一种专门为了处理大规模科学计算和数据分析任务所设计的服务器&#xff0c;高性能计算服务器拥有着强大的计算能力和高速的数据传输能力&#xff0c;有着高度的可靠性和可扩展性&#xff0c;下面小编就来介绍一下高性能计算服务器的主要作用吧&#xff01; 高…

C++ 进阶:深入理解虚函数、继承与多态

前言 在 C 的面向对象编程中&#xff0c;继承和多态是两个核心概念。今天我们将深入探讨 C 中与多态密切相关的几个重要特性&#xff1a;虚函数、virtual 关键字、override 关键字、多重继承以及虚继承。这些内容是理解 C 多态机制和复杂类层次结构的关键。 虚函数与 virtual…

为AR眼镜等多种智能可穿戴设备添加穿戴状态检测功能

作者&#xff1a;Azoteq中国 随着AR/VR眼镜、头戴式耳机和入耳式耳塞、智能手表和健身手环等可穿戴电子产品受到越来越多消费者的欢迎&#xff0c;如何设计外形更加时尚迷人、功能更加先进宜人的穿戴产品成为了创新和创意的焦点。作为全球领先的多传感器解决方案提供商&#xf…

腾讯云国际站缩容:策略、考量与实践

腾讯云国际站作为连接全球业务的重要云计算枢纽&#xff0c;其资源的灵活调配至关重要。而腾讯云国际站缩容&#xff0c;便是企业在特定发展阶段或业务场景下需要深入探究的关键议题。 一、腾讯云国际站缩容的背景与动因 随着企业业务的动态发展&#xff0c;市场需求并非一成…

英语写作核心词汇

以下是一些非常常见和实用的单词和短语分类整理&#xff1a;​ 1. 核心高频动词 (用于表达观点、影响、变化等) ​Affect (v.): 影响​Cause (v.): 引起&#xff0c;导致​Influence (v./n.): 影响​Benefit (v./n.): 有益于&#xff1b;好处​Harm (v./n.): 损害&#xff1b…

Python函数参数传递机制全解析

Python常见问题解答 1. 函数参数传递是值传递还是引用传递&#xff1f; Python中的参数传递是"对象引用传递"&#xff08;或称为"共享对象传递"&#xff09;。具体来说&#xff1a; 对于不可变对象&#xff08;如数字、字符串、元组&#xff09;&#x…

MATLAB提供的预训练神经网络

CNN 预训练的神经网络 Deep Learning Toolbox™ provides various pretrained networks that have different sizes, speeds, and accuracies.

【PDF】Qt生成PDF文件,占用存储小

在 Qt 项目中&#xff0c;如果你希望使用第三方开源库来生成心电图的 PDF 报告&#xff0c;并且要求占用磁盘空间最小&#xff0c;以下是一些推荐的选择&#xff1a; 推荐的开源库 PoDoFo 简介&#xff1a;PoDoFo 是一个用于创建和操作 PDF 文件的 C 开源库。它非常轻量级&…