【论文解读】Object Goal Navigation usingGoal-Oriented Semantic Exploration

news2025/1/16 15:56:50

论文:https://devendrachaplot.github.io/papers/semantic-exploration.pdf

代码:https://github.com/devendrachaplot/Object-Goal-Navigation

项目: Object Goal Navigation using Goal-Oriented Semantic Exploration

 example:

1 摘要:

        这项研究探讨了目标导航问题,涉及在未知环境中导航到给定对象类别的实例。端到端的基于学习的导航方法在这项任务中面临困难,因为它们在探索和长期规划方面效果不佳。

        我们提出了一种模块化系统,名为“目标导向语义探索”,它构建一个情景语义地图并利用它根据目标对象类别高效地探索环境。

        视觉上逼真的仿真环境中的实证结果显示,所提出的模型在多个基准测试中表现优异,包括端到端学习方法以及基于模块地图的方法,并且在CVPR-2020 Habitat ObjectNav挑战赛的获胜。        

        消融分析表明,所提出的模型学习了场景中对象的相对排列的语义先验,并利用这些先验进行高效探索。领域无关的模块设计使我们能够将模型转移到移动机器人平台,并在现实世界中实现类似的目标导航性能。 

2 引言:

图1:目标导航所需的语义技能。高效的目标导航不仅需要被动技能,如对象检测,还需要主动技能,比如构建一个情景记忆并有效地利用它来学习关于场景中对象相对排列的语义先验。 

        所提出的方法,被称为“目标导向语义探索”(SemExp),在Active Neural SLAM的基础上进行了两方面的改进,以解决语义导航任务。

        首先,它构建类似于Active Neural SLAM的自顶向下度量地图,但添加额外的通道来明确编码语义类别。与在Active Neural SLAM中直接从第一人称图像预测自顶向下地图不同,我们使用第一人称预测,然后进行可微分几何投影。这使我们能够利用现有的预训练对象检测和语义分割模型来构建语义地图,而不是从头开始学习。

        其次,我们不再使用仅基于障碍地图的最大化覆盖不可知目标的探索策略,而是训练了一个目标导向的语义探索策略,该策略学习了用于高效导航的语义先验。

        这些改进使我们能够处理具有挑战性的目标导航任务。我们在视觉上逼真的仿真环境中的实验表明,SemExp在很大程度上优于先前的方法。所提出的模型还赢得了CVPR 2020 Habitat ObjectNav挑战[3]。我们还展示了SemExp在转移到移动机器人平台时实现了类似的实际性能。

        所提出的模型包括两个模块,语义映射(Semantic Mapping)目标导向语义策略(Goal-Oriented Semantic Policy)。语义映射模块随时间构建语义地图,而目标导向语义策略根据语义地图选择一个长期目标,以有效地实现给定的对象目标。基于分析规划器的确定性本地策略用于采取低层次的导航动作,以达到长期目标。 

3 方法:

3.1 目标导航任务定义:

        在目标导航任务中,目标是导航到给定对象类别的一个实例,如“椅子”或“床”。代理在环境中的一个随机位置初始化,并接收目标对象类别(G)作为输入。在每个时间步t,代理接收视觉观察(st)和传感器姿势读数xt,并采取导航动作at。视觉观察包括第一人称的RGB和深度图像。动作空间A包括四个动作:move_forward(前进)、turn_left(左转)、turn_right(右转)、stop(停止)。当代理认为已接近目标对象时,需要执行‘stop’动作。如果到目标对象的距离小于某个阈值ds(= 1m),当代理执行停止动作时,该回合被视为成功。回合在达到固定的最大时间步数(= 500)后终止。

3.2 概述:

        我们提出了一个名为“目标导向语义探索”(SemExp)的模块化模型,用于解决目标导航任务(请参见图2概述)。它由两个可学习的模块组成,即“语义映射”和“目标导向语义策略”。语义映射模块随时间构建语义地图,而目标导向语义策略根据语义地图选择一个长期目标,以高效地实现给定的目标对象。基于分析规划器的确定性本地策略用于采取低层次的导航动作,以达到长期目标。我们首先描述我们的模型使用的语义地图表示,然后描述这两个模块。

 3.3 语义地图表示:

        SemExp模型内部维护着语义度量地图 mt 和代理的姿势 xt。空间地图 mt 是一个 K × M × M 的矩阵,其中 M × M 表示地图的大小,该空间地图中的每个元素对应于物理世界中的一个大小为25cm²(5cm × 5cm)的单元格。K = C + 2 是语义地图中的通道数,其中 C 是语义类别的总数。前两个通道表示障碍和已探索区域,其余的通道分别表示一个对象类别。每个通道中的每个元素表示相应位置是否是障碍物,已探索,或者包含相应类别的对象。在每一轮开始时,地图被初始化为全零,m0 = [0]^(K×M×M)。姿势 xt ∈ R^3 表示代理的x和y坐标以及在时间t的代理方向。代理始终从每一轮的开始时以东向朝向地图的中心,x0 = (M/2, M/2, 0.0)。

3.4 语义映射。

        为了构建语义地图,我们需要预测视觉观察中看到的对象的语义类别和分割。最好使用现有的对象检测和语义分割模型,而不是从头开始学习。主动神经SLAM模型直接从RGB观察中预测自顶向下地图,因此没有任何机制来整合预训练的对象检测或语义分割系统。相反,我们在第一人称视图中预测语义分割,并使用可微分投影将第一人称预测转换为自顶向下地图。这使我们能够使用现有的预训练模型进行第一人称语义分割。然而,第一人称语义分割中的小错误可能导致在投影后地图中的大错误。为了克服这个限制,我们在地图空间中引入了一个损失,除了在第一人称空间中。

        图3显示了语义映射模块的概述。深度观测用于计算点云。点云中的每个点都与预测的语义类别相关联。使用在RGB观察中预训练的Mask RCNN [18]来预测语义类别。然后,点云中的每个点通过可微分的几何计算在3D空间中投影,得到体素表示。然后将体素表示转换为语义地图。对于所有障碍、所有单元格和每个类别,通过对体素表示的高度维度求和,可以得到投影语义地图的不同通道。然后,将投影的语义地图通过去噪神经网络,得到最终的语义地图预测。

       地图在时间上通过空间变换和通道池化进行聚合,详细描述可参考Active Neural SLAM。语义映射模块使用交叉熵损失进行监督学习,同时考虑语义分割和语义地图预测。几何投影采用可微操作实现,以便如果需要,损失可以通过整个模块进行反向传播。

3.5 目标导向语义策略

        目标导向语义策略根据当前的语义地图决定一个长期目标,以达到给定的目标对象(G)。如果与类别G对应的通道具有非零元素,表示观察到目标对象,它会简单地将所有非零元素选择为长期目标。如果没有观察到目标对象,则目标导向语义策略需要选择一个最有可能发现目标类别对象的长期目标。这需要学习对象和区域相对排列的语义先验。我们使用一个神经网络来学习这些语义先验。它以语义地图、代理的当前和过去位置以及目标对象为输入,并在自顶向下地图空间中预测一个长期目标。目标导向语义策略使用强化学习进行训练,以目标对象的最近距离减小为奖励。我们在一个粗略的时间尺度上对长期目标进行采样,每u = 25步一次,类似于[10]中的目标不可知的全局策略。这将强化学习中的探索时间视角指数级减小,从而减少样本复杂性。

3.6 确定性本地策略

        本地策略使用快速行进方法[41]基于语义地图的障碍通道来规划从当前位置到长期目标的路径。它简单地沿着路径采取确定性动作以达到长期目标。与Active Neural SLAM中的训练本地策略相比,我们使用确定性本地策略,因为在我们的实验中它们表现相似。请注意,尽管上述语义策略在粗略的时间尺度上操作,但本地策略在细粒度的时间尺度上操作。在每个时间步中,我们更新地图并重新规划到长期目标的路径。

4 实验

图4:示例轨迹。图中显示了SemExp模型在Gibson测试集的场景中的示例轨迹。在顶部显示了代理所看到的示例图像,下方显示了预测的语义地图。目标对象是'bed'。由目标导向语义策略选择的长期目标显示为蓝色。右侧显示了带有代理轨迹的地面真实地图(对代理不可见)供参考。 

结果:

        我们对所有基线和提出的模型进行了1000万帧的训练,并分别在Gibson和MP3D测试集中进行评估。我们对每个场景运行了200个评估回合,Gibson总共有1000个回合(5个场景),MP3D总共有2000个回合(10个场景,其中1个场景不包含6个可能类别的任何对象)。

        图4使用提出的SemExp显示了一个示例轨迹,展示了代理的观察和预测的语义地图。定量结果显示在表1中。SemExp在两个数据集上一致优于所有基线(在Gibson/MP3D上实现了54.4%/36.0%的成功率,而Active Neural SLAM基线为44.6%/32.1%)。绝对数字在Gibson数据集上较高,因为场景相对较小。表1中Random的成功阈值表示数据集的难度。有趣的是,将传统的探索与预训练的对象检测器相结合的基线优于端到端的强化学习基线。我们观察到基于强化学习的基线的训练性能要高得多,表明它们在训练场景中记忆了对象的位置和外观,并且泛化能力差。SemExp相对于Active Neural SLAM基线的性能提升显示了在探索中整合语义和目标对象的重要性。

5 结论

         在本文中,我们提出了一个在大型真实环境中解决目标导航任务的语义感知探索模型。所提出的模型相对于先前的方法有两个主要改进,即在显式的记忆中整合语义和学习目标导向的语义探索策略。我们的方法在目标导航任务上实现了最先进的性能,并赢得了CVPR2020 Habitat ObjectNav挑战赛。消融研究表明所提出的模型学习了导致更高效目标驱动导航的语义先验。领域无关的模块设计使我们的模型成功地转移到了真实世界。我们还分析了模型的错误模式,并在未来的工作中定量衡量了两个重要维度(语义映射和目标导向探索)的改进空间。所提出的模型还可以通过利用情节地图来更有效地导航后续目标,从而扩展到解决一系列目标导航任务。

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

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

相关文章

找不同-《企业应用架构模式》2024典藏版

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 以下是2004年《企业应用架构模式》中译本和2024年《企业应用架构模式》典藏版译本的页面。 您能从中找出至少10处不同吗? 如何选择UMLChina服务 UMLChina公众号精选&…

Python代码耗时统计

time模块 在代码执行前后各记录一个时间点,两个时间戳相减即程序运行耗时。这种方式虽然简单,但使用起来比较麻烦。 time.time() 函数返回的时间是相对于1970年1月1日的秒数 import timestart time.time() time.sleep(1) end time.time() print(f&…

任正非最新讲话:没有退路就是胜利之路!

内容来源:本文来自心声社区 组织管理 9月4日,华为心声社区发布了华为创始人任正非在华为高端技术人才使用工作组对标会上的讲话。 任正非表示,先有专才,才有全才,要实现跨界交流、融合创新,让领袖自然成长…

实验3:数据显示输出

1、实验目的: 掌握将内存单元存储的数据显示输出到显示器的方法。 2、实验内容: 将内存单元存储的字节数据(例如 56H)的16进制数的低位输出到显示器并显示。 3、实验要求: (1)运行程序后&a…

mac安装mysql的8.0设置面板启动不了

1、前言 记得之前安装mysql5.7的时候,是可以直接从设置里面的mysql面板启动的,但是到了mysql8.0之后就启动不了了,这个问题不知道是版本问题还是我换了m系列芯片的mysql导致的,之前很多次都启动不了,这次搞了下&#x…

计算机提示缺失dll文件怎么办?那种dll解决方法更值得推荐

当在运行游戏,软件程序的过程中遇到“找不到dll”的情况时,这实际上意味着系统或应用程序无法定位并加载必要的动态链接库文件(DLL),从而无法顺利完成预期的功能调用和执行流程。这种问题的发生可能会引发一系列严重后…

使用自有数据集微调ChatGLM2-6B

1 ChatGLM2-6B介绍 ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练,它具备多领域知识、代码能力、常识推理及运用能力;支持与用户通过自然语言对话进行交互,处理多种自然语言任…

MySQL中使用percona-xtrabackup工具 三种备份及恢复 (超详细教程)

CSDN 成就一亿技术人! 今天讲讲再MySQL中使用percona-xtrabackup这个开源工具来实现在线备份。 CSDN 成就一亿技术人! 目录 介绍percona-xtrabackup 安装Percona 完整备份 备份流程 恢复流程 1.模拟文件损坏 2.滚回日志 3.恢复数据目录 4.授权…

《动手学深度学习(PyTorch版)》笔记4.6

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过。…

北京摇号政策梳理汇总

文章目录 政策梳理 家庭申请资格 家庭积分规则 参考资料 目前&#xff0c;北京车牌摇号实施的政策&#xff0c;主要是2021年1月1日的《<北京市小客车数量调控暂行规定>实施细则》。本文梳理了与博主本人直接相关的一些内容&#xff0c;可能对大部分网友也有帮助。 政…

vue中的computed

目录 一&#xff1a;介绍 二&#xff1a;例子演示 一&#xff1a;介绍 在 Vue.js 中&#xff0c;computed 属性是一种特殊类型的属性&#xff0c;它允许你声明依赖于其他数据属性的值。computed 属性的值是通过一个函数计算得出的&#xff0c;这个函数可以在其依赖的数据发生…

Java 数据结构篇-深入了解排序算法(动态图 + 实现七种基本排序算法)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 实现冒泡排序 2.0 实现选择排序 2.1 选择排序的改良升级 3.0 实现堆排序 4.0 实现插入排序 5.0 实现希尔排序 6.0 实现归并排序 6.1 递归实现归并排序 6.2 使用…

【misc | CTF】攻防世界 2017_Dating_in_Singapore

天命&#xff1a;这次终于碰到了算是真正的misc题目了 下载附件&#xff0c;打开是PDF&#xff0c;我一开始以为是flag隐写在PDF里面了 虽然也不奇怪&#xff0c;应该是可以的&#xff0c;毕竟PDF有xss漏洞也是可以的 言归正传&#xff0c;打开PDF 看着新加坡的日历&#xff…

汽车网络安全管理体系框架与评价-汽车网络安全管理体系框架

R155《网络安全与网络安全管理系统》法规中明确指出 &#xff0c; 汽车制造商应完成 “汽车网络安全管理体系认证” &#xff08;简称&#xff1a; CSMS认证&#xff09;以及 “车辆型式审批&#xff02; 且CSMS认证&#xff0c;是车辆型式审批的前提条件。 虽然我国相关政策尚…

走方格(动态规划)

解题思路&#xff1a; 找边界&#xff0c;即行为1&#xff0c;列为1。 拆分问题&#xff0c;拆分成一次走一步&#xff0c;只能向右或者向下走。 解题代码&#xff1a; public static void main(String[] args) {int [][]arrnew int[31][31];Scanner scnew Scanner(Sys…

贪吃蛇/链表实现(C/C++)

本篇使用C语言实现贪吃蛇小游戏&#xff0c;我们将其分为了三个大部分&#xff0c;第一个部分游戏开始GameStart&#xff0c;游戏运行GameRun&#xff0c;以及游戏结束GameRun。对于整体游戏主要思想是基于链表实现&#xff0c;但若仅仅只有C语言的知识还不够&#xff0c;我们还…

java基础:面向对象——类与对象初体验

本文需要援引一下我以前的博客做引言。 Python语言&#xff1a;面向对象——类与对象初体验 当使用Java进行面向对象编程的入门学习时&#xff0c;可以创建一个猫类来实践。 案例代码如下 package object; //使用class关键字创建一个猫类 class Car{ // 初始化类中的成员变量…

【工具推荐】磁盘分析工具 | SpaceSniffer 高效分析

文章目录 1 下载2 分析 最近发现一款很好用的工具——SpaceSniffer&#xff08;磁盘空间分析工具&#xff09; 硬盘用久了&#xff0c;里头的文件总是杂乱不堪&#xff0c;十分影响效率和心情&#xff1b; 我们往往会忘记哪些内容占用的空间比较多~所以我们如果可以高效分析哪…

YOLOv8-Seg改进:AIFI 助力YOLO ,提升尺度内和尺度间特征交互能力 | 来自于RT-DETR

🚀🚀🚀本文改进:RT-DETR的AIFI (尺度内特征交互)助力YOLO ,提升尺度内和尺度间特征交互能力 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升…

《AI 大模型全栈工程师》学习笔记1 - 大模型应用的技术架构

目录 1 前言 1.1 课程链接 1.2 名词解释&前置知识 2 大模型应用的技术架构 2.1 Prompt-Response架构 2.2 Agent Function Calling 架构 2.3 RAG&#xff08;Retrieval-Augmented Generation&#xff09;架构 2.4 Fine-tuning架构 1 前言 本文为知乎知学堂课程《A…