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

news2025/1/16 16:15:20

前言

        机器人感知决策是机器人移动的前提,机器人需要对周围环境实现理解,而周围环境通常由静态环境与动态环境构成。机器人在初始状态或者重启时需要确定当前所处的位置,然后根据用户的指令或意图,开展相应移动或抓取操作。通过视觉感知确定机器人所处位置,同时如何根据感知结果确定移动方向是重要的研究方向。视觉位置识别(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.coloradmin.cn/o/1608584.html

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

相关文章

OpenHarmony开发——Makefile方式组织编译的库移植

以yxml库为例,其移植过程如下文所示。 源码获取 从仓库获取yxml源码,其目录结构如下表: 表1 源码目录结构 名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件,及测试脚本yxml/Makefile编译组织文件yxml/.gitat…

IOC

获取资源的传统方式: 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。…

【系统分析师】项目管理

文章目录 1、范围管理2、时间(进度)管理【重点】2.0 活动资源估算2.1 进度控制2.2 关键路径法2.2.1 单代号网络图2.2.2 双代号网络图2.2.3 自由时差2.2.4 甘特图 3、配置管理3.1 配置项/配置库3.2 变更控制3.3 版本管理 4、质量管理5、成本管理5.1 成本管理的概念5.2 挣值管理 …

算法部署 | 使用TensorRT在Jetson-Xavier-AGX上部署YOLOv4目标检测算法

项目应用场景 面向 NVIDIA Jetson Xavier AGX 平台部署 YOLOv4 目标检测算法场景,项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 Install pycuda (takes awhile) $ cd ${HOME}/catkin_ws/src/yolov4_tr…

记录汇川:五个ST案例

起保停: 简单数学教学: 数据查找: 按钮检测: 数据堆栈:

16.C++常用的算法_算数生成算法

文章目录 遍历算法1. accumulate()代码工程运行结果 2. fill()代码工程运行结果 遍历算法 1. accumulate() 代码工程 第三个参数为累加的起始值&#xff0c;如果没有特殊需求写0即可; 需要注意包含头文件#include<numeric>#define _CRT_SECURE_NO_WARNINGS #include&l…

中颖51芯片学习7. ADC模数转换

中颖51芯片学习7. ADC模数转换 一、ADC工作原理简介1. 概念2. ADC实现方式3. 基准电压 二、中颖芯片ADC功能介绍1. 中颖芯片ADC特性2. ADC触发源&#xff08;1&#xff09;**软件触发**&#xff08;2&#xff09;**TIMER4定时器触发**&#xff08;3&#xff09;**外部中断2触发…

性能优化工具

CPU 优化的各类工具 network netperf 服务端&#xff1a; $ netserver Starting netserver with host IN(6)ADDR_ANY port 12865 and family AF_UNSPEC$ cat netperf.sh #!/bin/bash count$1 for ((i1;i<count;i)) doecho "Instance:$i-------"# 下方命令可以…

Java项目引入log4j2

log4j2 单独使用 引入依赖 <dependencies><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.14.0</version></dependency><dependency><groupId>o…

逆滤波器的推导与实现

设滤波器为&#xff0c;逆滤波器为 根据滤波器和逆滤波器的定义 对上式做傅里叶变换 对上式做逆傅里叶变换可得&#xff0c; 好了&#xff0c;逆滤波器的公式推导完了&#xff0c;但是实际计算时大多数时候这样是算不出来的&#xff0c;除非像扫频或粉噪这样的全频带信号才行&…

交流电转直流电5V500mA恒压芯片WT5104

交流电转直流电5V500mA恒压芯片WT5104 WT5104恒压芯片&#xff0c;是一种将交流电转换为直流电的设备。它的工作原理是通过内部的电路设计&#xff0c;将输入的交流电进行整流、滤波后&#xff0c;输出稳定的直流电。这款芯片最大的特点就是能够提供恒定的电压和电流&#xff…

鸿蒙 UI预览报错

SyntaxError: Unexpected end of JSON input 删除entry下的.preview文件 重新刷新预览

Ubuntu上阅读Android源码工具

由于Android源码过于庞杂&#xff0c;里面有多种语言源文件&#xff0c;想只用一IDE统一索引是不现实的。我个人便使用AS阅读JAVA代码&#xff0c;VS看C/C代码&#xff0c;在Ubuntu上不能使用SI&#xff0c;所以直接放弃。在framework开发这个层面上来讲&#xff0c;因为大部分…

C++:Hash应用【位图与布隆过滤器】

什么是位图&#xff1f; 我们先来看一个问题&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在 这40亿个数中。【腾讯】 如果我们使用unordered_set容器来解决&#xff0c;40亿个数据&#xff0c;每个数据…

CorelDRAW2024平面设计软件主要功能讲解

CorelDRAW是加拿大Corel公司出品的平面设计软件&#xff0c;也是一款功能强大的矢量图形制作和排版软件&#xff0c;主要面向绘图设计师和印刷输出人员。该软件提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。 CorelDRAW软件的主要用途是创建和编辑矢量图…

【Linux学习笔记】安卓设置内核信息的打印级别

开发环境 开发板&#xff1a;正点原子RK3568开发板安卓版本&#xff1a;11 问题描述 在串口调试过程中经常打印出这样的一些信息 极影响调试&#xff0c;暂时又没什么用&#xff0c;有些时候还不能给它直接关了。尤其是这个信息 healthd: battery l50 v3 t2.6 h2 st3 fc10…

mysql 重复单号 统计

任务&#xff1a; 增加重复件统计分析&#xff1a; 统计展示选择时间范围内重复1次、重复2次、重复3次、重复4次、重复5次及以上的数据量 17、统计出现的重复次数 增加重复件统计分析&#xff1a; 统计展示选择时间范围内重复1次、重复2次、重复3次、重复4次、重复5次及以上的数…

关于图像YUV格式分类和排布方式的全学习

【学习笔记】关于图像YUV格式分类和排布方式的全学习_yuv图像-CSDN博客 下图是将多个yuv420p图像(A和B)&#xff0c;拼接成一个画面的思路 A大小:416*64 B大小:416*208 将A和B合并到一个416*416的尺寸上&#xff0c;代码如下 //整合char * ptd;ptd (char * ) malloc (416*41…

Codeforces Round 939 (Div. 2)(A,B,C,D,E1,E2)

题目链接 这场不太难&#xff0c;打起来跟 d i v 3 div\ 3 div 3 一样&#xff0c;会者不难。AB找规律&#xff0c;CD构造&#xff0c;E是暴力&#xff0c;带点数学推理。 A. Nene’s Game 题意&#xff1a; 尼尼发明了一种基于整数递增序列 a 1 , a 2 , … , a k a_1, a_…

电大搜题微信公众号:重庆开放大学学子的学习利器

在当今信息化时代&#xff0c;学习已经成为每个人不可或缺的一部分。然而&#xff0c;对于重庆开放大学的学子们来说&#xff0c;由于远程教育的特殊性&#xff0c;他们面临着更大的学习挑战。幸运的是&#xff0c;他们现在可以依靠一款强大的学习利器——电大搜题微信公众号&a…