视觉位置识别与多模态导航规划

前言

        机器人感知决策是机器人移动的前提,机器人需要对周围环境实现理解,而周围环境通常由静态环境与动态环境构成。机器人在初始状态或者重启时需要确定当前所处的位置,然后根据用户的指令或意图,开展相应移动或抓取操作。通过视觉感知确定机器人所处位置,同时如何根据感知结果确定移动方向是重要的研究方向。视觉位置识别(VPR)主要是从标记的图像数据库中搜索最佳匹配,来粗略估计查询地点图像的位置,可以归结为数据库构建与查询的过程。主要的问题是环境中有部分是动态环境,因此很多算法均是在固定场景进行实验,缺乏泛化性,如何根据环境实现机器人导航也面临着挑战。

方法

视觉位置识别

1、AnyLoc: Towards Universal Visual Place Recognition

        AnyLoc旨在位置识别算法的通用性,包括任何地点(无缝地运行在任何环境中,包括空中、地下和水下),任何时间(对场景中的时间变化,如昼夜或季节变化,或对临时物体具有鲁棒性),以及跨任何视角(对视角变化具有鲁棒性,包括完全相反的视角。主要通过聚合从大规模预训练模型(基础模型)提取的每像素特征来实现这一目标,而无需进行任何训练或微调。

        主要采用自监督特征(如DINOv2)和无监督聚合方法(如VLAD和GeM),用来提取每个像素特征,相较于直接使用现成模型的每个图像特征,可以获得显著的性能提升。通过评估局部特征对应的鲁棒性来说明这种密集ViT特征在VPR中的适用性。选择数据库图像上的一个点,将其与查询图像中的所有(每个像素)特征进行匹配,并绘制热图来指示这些点对应的可能性。请注意,即使存在语义文本和尺度变化(第一行),感知混淆和视角变化(第二行),以及低照明和相反视角(第三行),这些对应关系仍然是鲁棒的。

        另外对聚合的局部特征进行语义属性的表征,揭示潜在空间中的不同领域,这可以进一步用于增强VLAD词汇构建,从而提升性能。从下图可以看出在室外数据中表现出较好的性能,代码已经开源,可以在HF中进行效果测试。

2、SelaVPR:Towards Seamless Adaptation of Pre-trained Models for Visual Place Recognition

        文章主要考虑预训练模型产生的图像表示易受动态对象影响,并且倾向于忽略一些静态的区分性背景(例如建筑物和植被),因此基础模型没办法直接用于VPR任务,完全微调的话又会产生灾难性遗忘问题。SelaVPR主要通过向冻结的预训练模型添加一些可调节的轻量级适配器,实现全局-局部混合适应,既可以获取用于检索候选地点的全局特征,又可以获取用于重新排序的局部特征。

        全局适应主要是通过在每个Transformer块的多头注意力层后添加适配器并与MLP层并行实现的。局部适应通过在整个Transformer主干后添加上卷积层来实现以对特征图进行上采样。此外,论文提出了最近邻局部特征损失,可以与常用的三元组损失结合使用来优化网络。SelaVPR消除了在重排中依赖耗时的空间验证,因此它仅耗费了RANSAC-based两阶段方法的3%检索时间  。      

视觉导航决策

Bridging Zero-shot Object Navigation and Foundation Models through Pixel-Guided Navigation Skill

        大多数方法采用基于建图的方法实现开放词域物品导航,但是由于现有的大模型并不能直接理解地图形式的输入,此类方法往往有选择性的将地图某些区域翻译成文字,进而发挥出大模型的常识理解与推理能力。在这一过程中,从原始 RGB 观测-建图-文字损失大量的细节信息,不利于大模型实现更精准的规划。为了克服这类方法的问题,本文跳出基于建图的框架,提出了一种通用的 RGB 导航技能 PixelNav,此技能以指定像素位置作为导航目标,建立端到端网络学习从当前位置到像素目标对应坐标的移动轨迹。PixelNav 可无缝衔接多模态大模型的能力,实现任意类别物体的导航过程。

总结

        对于视觉位置识别,个人认为全局+局部特征提取的方法会更好一些,经过检索定位可以借助多模态模型去做精排,主要是针对静态物体做细粒度筛选确定定位结果。定位的结果与用户指令相结合确定机器人移动导航的目标,进而为机器人移动规划提供有利的支持。整个的思路如下:

        以上是个人的一些想法,欢迎感兴趣的评论交流。

参考

1、https://arxiv.org/pdf/2308.00688.pdf

2、https://github.com/Lu-Feng/SelaVPR

3、https://sites.google.com/view/pixnav/

4、https://mp.weixin.qq.com/s/t_83s3YOr-ID6-TZvZynsw

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

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

相关文章

广告归因窗口期,解决多渠道买量抢激活难题

App想要持续拿量且提高用户转化量,就免不了在多个广告平台上投放广告。 这种买量行为带来一个常见问题:同一用户可能在不同平台上看到同一应用的广告,当这个用户成功转化时,应该将此转化归因于哪个渠道呢?又该如何评估…

C语言如何使⽤指针?

一、问题 指针变量在初始化以后就可以使⽤和参与操作了,那么就要⽤到对指针变量最常⽤的两个操作符——> * 和 & 。 二、解答 这⾥⼜要提到始终贯穿着指针的⼀个符号“ * ”,但是这⾥的“ * ”是作为指针运算符使⽤的,叫做取内…

一份超详细的鸿蒙开发面经分享!上百道鸿蒙经典面试题整理~

鸿蒙(HarmonyOS)作为华为公司自主研发的全场景分布式操作系统,受到了广泛关注。 在面试中,面试官往往会关注申请人的技术能力、项目经验以及解决问题的能力。 下面是一些关于鸿蒙开发具有3年工作经验的面试题及其相关问答&#…

安全开发实战(4)--whois与子域名爆破

目录 安全开发专栏 前言 whois查询 子域名 子域名爆破 1.4 whois查询 方式1: 方式2: 1.5 子域名查询 方式1:子域名爆破 1.5.1 One 1.5.2 Two 方式2:其他方式 总结 安全开发专栏 安全开发实战​​http://t.csdnimg.cn/25N7H 前言 whois查询 Whois 查询是一种用…

【深入解析spring cloud gateway】13 Reactive Feign的使用

问题引入 在gateway中如果使用feignClient的话,会报如下错误 java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3at reactor.core.publisher.BlockingSingleSubscriber.bloc…

git 删除本地分支 删除远程仓库中的分支

语法&#xff1a; 删除本地分支 git branch -D <分支名>删除远程分支 git push <remote名称> <分支名> --delete 示例&#xff1a; 删除本地分支 git branch -D feature/test_listview删除远程分支 git push origin feature/test_listview --delete 两个…

OpenHarmony南向开发案例:【智能照相机】

样例简介 本Demo是基于Hi3516开发板&#xff0c;使用OpenHarmony3.0-LTS开发的应用。通过获取摄像头数据&#xff0c;实现预览拍照以及路视频等功能。并且通过后台AI服务识别唤醒词来进行语音控制拍照及录制视频。 应用运行效果图&#xff1a; 此为相机的预览界面。 样例原理…

【MATLAB源码-第46期】基于matlab的OFDM系统多径数目对比,有无CP(循环前缀)对比,有无信道均衡对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM&#xff08;正交频分复用&#xff09;是一种频域上的多载波调制技术&#xff0c;经常用于高速数据通信中。以下是关于多径数目、有无CP&#xff08;循环前缀&#xff09;以及有无信道均衡在OFDM系统中对误码率的影响&am…

聊聊binlog是什么

1. 上一讲思考題解答:redo日志刷盘策略的选择建议 先给大家解释一下上一讲的思考題&#xff0c;我给大家的一个建议&#xff0c;其实对于redo日志的三种刷盘策略&#xff0c;我们通常建议是设置为1 也就是说&#xff0c;提交事务的时候&#xff0c;redo日志必须是刷入磁盘文件…

Golang入门基础

文章目录 Golang的背景知识Golang的发展历程Golang的特点Golang的应用领域 开发环境搭建下载并安装SDK包设置环境变量Go项目目录结构 注释变量标识符命名输入和输出运算符算术运算符关系运算符逻辑运算符赋值运算符位运算符其他运算符 Golang的背景知识 Golang的发展历程 Gola…

postgresql数据库pg_dirtyread插件闪回技术 —— 筑梦之路

闪回查询&#xff08;Flashback Query&#xff09;是一种在数据库中执行时间点查询的技术。它允许查询数据库中过去某个时间点的数据状态&#xff0c;并返回相应的查询结果。通常闪回查询分为表级以及行级的闪回查询。PostgreSQL数据库由于MVCC的机制&#xff0c;对于DML的操作…

[生活][杂项] 上班党的注意事项

前言 目前是上班已经接近两年了&#xff0c;目前的状态是&#xff0c;一个人租了一个单间在上班。对于这种情况有以下几点需要注意。 钥匙问题&#xff0c;一定不要陷入钥匙丢失的情况&#xff01;一定不要陷入钥匙丢失的情况&#xff01;一定不要陷入钥匙丢失的情况&#xff…