当前位置: 首页 > article >正文

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

  • 作者:Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3,
    and Dinesh Manocha 1 , 2 ^{1,2} 1,2
  • 单位: 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系, 2 ^{2} 2美国马里兰大学帕克分校计算机科学系, 3 ^{3} 3马里兰大学帕克分校James Clark工程学院
  • 论文标题:Vi-LAD: Vision-Language Attention Distillation for Socially-Aware Robot Navigation in Dynamic Environments
  • 论文链接:https://arxiv.org/pdf/250-09820
  • 项目主页:https://gamma.umd.edu/researchdirections/crowdmultiagent/vilad/

主要贡献

  • 视觉-语言注意力蒸馏:通过从大型视觉-语言模型(VLM)中提取注意力信息,并将其蒸馏到一个轻量级模型中,以实现实时导航。

  • 社会引导的注意力微调:使用结构相似性指数(SSIM)损失来对齐注意力图,以提高模型对社会行为的理解和响应能力。

  • 模型预测控制集成:结合MPC进行局部运动规划,确保机器人在导航时遵循社会规范并保持平滑的运动轨迹。

  • 性能提升:在现实世界实验中,Vi-LAD在成功率上显著优于现有方法,显示出更高的成功率和更接近人类操作的轨迹。

研究背景

研究问题

  • 传统的导航方法主要关注碰撞避免和几何路径规划,往往将人类视为静态或移动障碍物,而不是具有社会期望的交互智能体。
  • 论文主要解决的问题是如何在动态环境中实现机器人导航,使其能够安全、高效且符合社会规范。

研究难点​

该问题的研究难点包括:

  • 动态环境的不确定性、
  • 人类行为的复杂性和多样性、
  • 以及大规模预训练模型的高计算需求和实时推理的延迟。

​相关工作​

动态场景中的机器人导航
  • 经典导航方法:这些方法依赖于优化驱动和基于规则的策略,如模型预测控制(MPC)和速度障碍(VO)方法。它们主要用于静态障碍物避障,但在处理复杂的人类行为时缺乏适应性。
  • 基于学习的导航方法:这些方法利用数据驱动的模型来提高适应性。模仿学习(IL)允许机器人模仿专家演示,而强化学习(RL)和逆向强化学习(IRL)则通过与环境互动来学习最优导航策略。然而,这些方法在现实应用中面临挑战,如数据质量和多样性限制、模拟到现实的迁移问题等。
大型模型在导航中的应用
  • 大型预训练模型(LPMs):包括大型语言模型(LLMs)和视觉-语言模型(VLMs),这些模型在机器人感知、规划和导航方面表现出色。VLMs在语义分割和物体识别中广泛应用,支持基于自然语言的导航任务。
  • VLMs的应用:VLMs在动态环境中的应用包括路径生成、场景理解和社会行为预测。尽管VLMs在理解社会规范和预测人类运动方面表现出色,但其计算需求高,限制了在资源受限机器人上的实时部署。
知识蒸馏
  • 知识蒸馏技术:通过将大型、计算密集型的教师模型的知识转移到小型、高效的模型中,以促进在资源受限系统中的实时推理。
  • 在机器人导航中的应用:知识蒸馏用于在机器人导航中传递高级推理能力,如语义场景理解和人类行为预测,而无需承担显著的计算成本。现有技术通常忽略了将社会推理整合到导航策略中。

背景

设置与约定

  • 机器人设置:假设机器人是一个地面机器人,配备了一个RGB摄像头和一个IMU(惯性测量单元)。摄像头的坐标系以机器人的质心为中心,X轴指向前进方向,Y轴指向左侧,Z轴指向上方。
  • 输入和输出:机器人接收来自RGB摄像头的图像和来自IMU的方向及运动反馈。机器人使用相同的控制器架构,接收线速度和角速度命令。

预训练模型

  • 视觉特征提取:预训练模型用于提取视觉特征,帮助机器人导航。传统的模型(如ImageNet训练的模型)主要关注物体检测,而不是导航所需的特定线索(如路径、障碍物和人类运动)。
  • 自监督学习:自监督学习(SSL)方法通过自我监督的方式学习特征,但许多方法需要大规模数据或缺乏泛化能力。
  • VANP模型:论文采用了一个名为VANP的自监督视觉-动作模型。该模型通过将视觉观察与动作轨迹对齐来提取导航相关的特征。具体来说,VANP处理一系列过去的图像,并生成一个注意力图,突出显示对导航至关重要的区域。这个过程可以表示为:
    A pretrained = F pretrained ( I RGB , t − n , … , I RGB , t ) \mathcal{A}_{\text{pretrained}} = \mathcal{F}_{\text{pretrained}}(I_{\text{RGB},t-n}, \ldots, I_{\text{RGB},t}) Apretrained=Fpretrained(IRGB,tn,,IRGB,t)
    其中, F pretrained \mathcal{F}_{\text{pretrained}} Fpretrained 表示预训练模型, I RGB , t − n , … , I RGB , t I_{\text{RGB}, t-n}, \ldots, I_{\text{RGB}, t} IRGB,tn,,IRGB,t 表示作为输入的一系列过去RGB图像。

Vi-LAD方法

数据生成

  • 数据集构建:通过利用视觉-语言模型(VLM)生成社会引导的注意力图来构建一个社会导向的导航数据集。这些注意力图突出了导航相关的区域。
  • 标注过程:选择了一个定制化的SCAND数据集子集,并使用VLM进行标注。对于每个样本,定义了三个导航前沿(左、中、右),并在RGB图像上叠加彩色矩形以突出这些区域。
  • VLM查询:使用链式思维(Chain-of-Thought, CoT)提示方法查询VLM,以估计每个前沿被人群占据的可能性。根据这些可能性,生成一个包含社会引导导航线索的注意力图。公式如下:
    P ( f ) = VLM ⁡ ( I RGB , T prompt ) P(f) = \operatorname{VLM}(I_{\text{RGB}}, \mathcal{T}_{\text{prompt}}) P(f)=VLM(IRGB,Tprompt)
    其中, f ∈ { left , center , right } f \in \{\text{left}, \text{center}, \text{right}\} f{left,center,right} 表示导航前沿, T prompt \mathcal{T}_{\text{prompt}} Tprompt 是一个设计用来引出社会背景推理的结构化查询。

蒸馏模型

  • 低秩适应(LoRA):使用低秩适应方法对预训练模型进行微调,而不是更新所有模型参数。这通过引入低秩可训练适配器来实现,同时保持原始模型权重的冻结。
  • 并行管道:在训练期间,模型由三个并行管道组成:
    • 预训练模型( F pretrained \mathcal{F}_{\text{pretrained}} Fpretrained):提取导航相关的注意力图。
    • 蒸馏模型( F Vi-LAD \mathcal{F}_{\text{Vi-LAD}} FVi-LAD):在ResNet50的最后一层提取更新的注意力图。
    • VLM监督:VLM处理RGB图像以生成社会引导的注意力图,提供微调的监督信号。

注意力引导的损失函数

  • 注意力一致性损失:为了整合来自VLM的社会推理,同时保持预训练模型的导航先验,引入了一个注意力一致性损失函数。
  • 损失函数公式:总损失函数结合了两个目标:
    L = ( 1 − λ VLM ) ⋅ L SSIM ( A Vi-LAD , A pretrained ) + λ VLM ⋅ L SSIM ( A Vi-LAD , A VLM ) \mathcal{L} = (1 - \lambda_{\text{VLM}}) \cdot \mathcal{L}_{\text{SSIM}}(\mathcal{A}_{\text{Vi-LAD}}, \mathcal{A}_{\text{pretrained}}) + \lambda_{\text{VLM}} \cdot \mathcal{L}_{\text{SSIM}}(\mathcal{A}_{\text{Vi-LAD}}, \mathcal{A}_{\text{VLM}}) L=(1λVLM)LSSIM(AVi-LAD,Apretrained)+λVLMLSSIM(AVi-LAD,AVLM)
    其中, L SSIM \mathcal{L}_{\text{SSIM}} LSSIM 是注意力图之间的余弦相似度,定义为:
    L SSIM ( A , B ) = 1 − ∑ ( A ⋅ B ) ∥ A ∥ ∥ B ∥ \mathcal{L}_{\text{SSIM}}(A, B) = 1 - \frac{\sum(A \cdot B)}{\|A\| \|B\|} LSSIM(A,B)=1A∥∥B(AB)

社会意识的运动规划器

  • 模型预测控制(MPC)框架:采用一个修改后的MPC框架来生成社会意识的导航轨迹。MPC优化线速度和角速度对,以引导机器人朝向目标,同时确保平滑且社会合规的运动。
  • 社会成本函数:引入一个社会成本函数,通过注意力图( A Vi-LAD \mathcal{A}_{\text{Vi-LAD}} AVi-LAD)对齐机器人的行为与人类导航规范。通过计算投影轨迹与蒸馏注意力图的对齐度来定义社会成本。公式如下:
    s o c ( v , ω ) = max ⁡ ( i , j ) ∈ traj C ( v , ω ) A Vi-LAD ( i , j ) soc(v, \omega) = \max_{(i, j) \in \text{traj}^C(v, \omega)} \mathcal{A}_{\text{Vi-LAD}}(i, j) soc(v,ω)=(i,j)trajC(v,ω)maxAVi-LAD(i,j)
    其中, traj C ( v , ω ) \text{traj}^C(v, \omega) trajC(v,ω) 是投影到代价图的轨迹, A Vi-LAD ( i , j ) \mathcal{A}_{\text{Vi-LAD}}(i, j) AVi-LAD(i,j) 表示在给定位置的分散注意力代价图。

结果与分析

实现与机器人设置

  • 实现:论文使用PyTorch实现了他们的方法,并在Nvidia A6000 GPU上进行模型训练。
  • 机器人设备:在现实世界的实验中,使用了Clearpath Husky机器人,配备了Velodyne VLP16激光雷达、Intel RealSense D435i相机和一台搭载Intel i9处理器和Nvidia RTX 2080 GPU的笔记本电脑。
  • 数据集标注:使用GPT-4o对数据集进行标注,以生成社会引导的注意力图。

比较方法

  • 动态窗口方法:一种基于MPC的方法,使用2D激光雷达扫描进行避障。
  • CoNVOI:一种基于VLM的上下文感知导航方法,使用VLM生成参考轨迹,并由经典规划器执行。
  • VANP:一个自监督预训练模型,用于生成注意力图,并与论文的规划器结合使用。

评估指标

  • 成功率:成功导航试验的比例,即机器人能够到达目标而不冻结或碰撞障碍物的比例。
  • 到达时间:成功试验中机器人到达目标的平均时间(秒)。
  • Fréchet距离:衡量人类遥控机器人轨迹与比较方法轨迹之间的相似性。

测试场景

  • 场景1:包含动态智能体和静态障碍物。
  • 场景2:包含动态智能体、围栏和低矮路缘。
  • 场景3:多个智能体(坐着和行走)、嵌套的围栏柱、椅子和桌子。
  • 场景4:在不同光照条件下有多人行走。

分析与讨论

  • 定量分析:结果显示,Vi-LAD在所有场景中均取得了最高的成功率,并且在所有场景中都表现出与人类遥控操作相似的行为,Fréchet距离较低。
  • 场景1:Vi-LAD比DWA更早开始移动,并且比CoNVOI更快地到达目标,显示出更低的Fréchet距离。
  • 场景2:Vi-LAD能够准确识别路缘并调整轨迹,避免了障碍物和人类的碰撞。
  • 场景3:Vi-LAD成功地绕过障碍物,并保持了对环境中人类存在的意识,显示出更社会合规的导航。
  • 场景4:Vi-LAD能够动态调整其轨迹以应对移动障碍物,确保了安全和高效的导航。

总结

  • 论文提出了Vi-LAD视觉语言注意力蒸馏方法,通过将大型VLM中的社会推理知识蒸馏到轻量级基于变换器的模型中,实现了社会合规且实时的机器人导航。
  • 实验结果表明,Vi-LAD在真实世界实验中显著优于现有的最先进方法,具有更高的成功率和更平滑的运动执行。
  • 未来的工作将探索多模态预训练模型、在线适应策略以及复杂环境中的长距离导航扩展。

相关文章:

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

作者:Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3, and Dinesh Manocha 1 , 2 ^{1,2} 1,2单位: 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系, 2…...

全局前置守卫与购物车页面鉴权

在很多应用里,并非所有页面都能随意访问。例如购物车页面,用户需先登录才能查看。这时可以利用全局前置守卫来实现这一鉴权功能。 全局前置守卫的书写位置在 router/index.js 文件中,在创建 router 对象之后,暴露 router 对象之前…...

vue3 ts 自定义指令 app.directive

在 Vue 3 中,app.directive 是一个全局 API,用于注册或获取全局自定义指令。以下是关于 app.directive 的详细说明和使用方法 app.directive 用于定义全局指令,这些指令可以用于直接操作 DOM 元素。自定义指令在 Vue 3 中非常强大&#xff0…...

layui 弹窗-调整窗口的缩放拖拽几次就看不到标题、被遮挡了怎么解决

拖拽几次,调整窗口的缩放,就出现了弹出的页面,右上角叉号调不出来了,窗口关不掉 废话不多说直入主题: 在使用layer.alert layer.confirm layer.msg 等等弹窗时,发现看不到弹窗,然后通过控制台检查代码发现…...

网络空间安全(57)K8s安全加固

一、升级K8s版本和组件 原因:K8s新版本通常会引入一系列安全功能,提供关键的安全补丁,能够补救已知的安全风险,减少攻击面。 操作:将K8s部署更新到最新稳定版本,并使用到达stable状态的API。 二、启用RBAC&…...

2025蓝桥杯C++A组省赛 题解

昨天打完蓝桥杯本来想写个 p y t h o n python python A A A 组的题解,结果被队友截胡了。今天上课把 C A CA CA 组的题看了,感觉挺简单的,所以来水一篇题解。 这场 B B B 是一个爆搜, C C C 利用取余的性质比较好写&#…...

论文学习:《通过基于元学习的图变换探索冷启动场景下的药物-靶标相互作用预测》

原文标题:Exploring drug-target interaction prediction on cold-start scenarios via meta-learning-based graph transformer 原文链接:https://www.sciencedirect.com/science/article/pii/S1046202324002470 药物-靶点相互作用(DTI&…...

【题解-洛谷】P1824 进击的奶牛

题目:P1824 进击的奶牛 题目描述 Farmer John 建造了一个有 N N N( 2 ≤ N ≤...

机械革命 无界15X 自带的 有线网卡 YT6801 debian12下 的驱动方法

这网卡是国货啊。。。 而且人家发了驱动程序 Motorcomm Microelectronics. YT6801 Gigabit Ethernet Controller [1f0a:6801] 网卡YT6801在Linux环境中的安装方法 下载网址 yt6801-linux-driver-1.0.29.zip 我不知道别的系统是否按照说明安装就行了 但是debian12不行&…...

十八、TCP多线程、多进程并发服务器

1、TCP多线程并发服务器 服务端&#xff1a; #include<stdio.h> #include <arpa/inet.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <pthread.h>…...

JAVA中正则表达式的入门与使用

JAVA中正则表达式的入门与使用 一&#xff0c;基础概念 正则表达式&#xff08;Regex&#xff09; 用于匹配字符串中的特定模式&#xff0c;Java 中通过 java.util.regex 包实现&#xff0c;核心类为&#xff1a; Pattern&#xff1a;编译后的正则表达式对象。 Matcher&#…...

AIGC-文生图与图生图

在之前的文章中&#xff0c;我们知道了如何通过Web UI和Confy UI两种SD工具来进行图片生成&#xff0c;今天进一步地讲解其中的参数用处及如何调节。 文生图 参数详解 所谓文生图&#xff0c;就是通过文字描述我们想要图片包含的内容。初学的话&#xff0c;还是以Web UI为例…...

量化交易 - 聚宽joinquant - 多因子入门研究 - 源码开源

先看一下我们的收益&#xff1a; JoinQuant直达这里看看 下面讲解原理和代码。 目录 一、是否为st 二、是否停牌 三、市值小、roe大 四、编写回测代码 今天来研究一下多因子回测模型&#xff0c;这里以‘市值’、‘roe’作为例子。 几个标准&#xff1a;沪深300里选股&am…...

本地缓存方案Guava Cache

Guava Cache 是 Google 的 Guava 库提供的一个高效内存缓存解决方案&#xff0c;适用于需要快速访问且不频繁变更的数据。 // 普通缓存 Cache<Key, Value> cache CacheBuilder.newBuilder().maximumSize(1000) // 最大条目数.expireAfterWrite(10, TimeUnit.MINUTES) /…...

虚拟列表react-virtualized使用(npm install react-virtualized)

1. 虚拟化列表 (List) // 1. 虚拟化列表 (List)import { List } from react-virtualized; import react-virtualized/styles.css; // 只导入一次样式// 示例数据 const list Array(1000).fill().map((_, index) > ({id: index,name: Item ${index},description: This is i…...

解释型语言和编译型语言的区别

Python 的执行过程通常涉及字节码&#xff0c;而不是直接将代码编译为机器码。以下是详细的解释&#xff1a; ### **Python 的执行过程** 1. **源代码到字节码**&#xff1a; - Python 源代码&#xff08;.py 文件&#xff09;首先被编译为字节码&#xff08;.pyc 文件&…...

猫咪如厕检测与分类识别系统系列【三】融合yolov11目标检测

✅ 前情提要 家里养了三只猫咪&#xff0c;其中一只布偶猫经常出入厕所。但因为平时忙于学业&#xff0c;没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关&#xff0c;频繁如厕可能是泌尿问题&#xff0c;停留过久也可能是便秘或不适。为了更科学地了解牠…...

sql server 字段逗号分割取后面的值

在 SQL Server 中&#xff0c;如果你有一个字段&#xff08;字段类型通常是字符串&#xff09;&#xff0c;其中包含用逗号分隔的值&#xff0c;并且你想提取这些值中逗号后面的特定部分&#xff0c;你可以使用多种方法来实现这一点。这里我将介绍几种常见的方法&#xff1a; …...

FPGA 37 ,FPGA千兆以太网设计实战:RGMII接口时序实现全解析( RGMII接口时序设计,RGMII~GMII,GMII~RGMII 接口转换 )

目录 前言 一、设计流程 1.1 需求理解 1.2 模块划分 1.3 测试验证 二、模块分工 2.1 RGMII→GMII&#xff08;接收方向&#xff0c;rgmii_rx 模块&#xff09; 2.2 GMII→RGMII&#xff08;发送方向&#xff0c;rgmii_tx 模块&#xff09; 三、代码实现 3.1 顶层模块 …...

上篇:《排序算法的奇妙世界:如何让数据井然有序?》

个人主页&#xff1a;strive-debug 排序算法精讲&#xff1a;从理论到实践 一、排序概念及应用 1.1 基本概念 **排序**&#xff1a;将一组记录按照特定关键字&#xff08;如数值大小&#xff09;进行递增或递减排列的操作。 1.2 常见排序算法分类 - **简单低效型**&#xff…...

红宝书第三十四讲:零基础学会单元测试框架:Jest、Mocha、QUnit

红宝书第三十四讲&#xff1a;零基础学会单元测试框架&#xff1a;Jest、Mocha、QUnit 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、单元测试是什么&#xff1f; 就像给代码做“体检”&#xff0c;帮你检查…...

【JDBC-54.1】MySQL JDBC连接字符串常用参数详解

在Java应用程序中连接MySQL数据库时&#xff0c;JDBC连接字符串是建立连接的关键。一个配置得当的连接字符串不仅能确保连接成功&#xff0c;还能优化性能、增强安全性并处理各种连接场景。本文将深入探讨MySQL JDBC连接字符串的常用参数及其最佳实践。 1. 基本连接字符串格式…...

swagger 注释说明

一、接口注释核心字段 在 Go 的路由处理函数&#xff08;Handler&#xff09;上方添加注释&#xff0c;支持以下常用注解&#xff1a; 注解名称用途说明示例格式Summary接口简要描述Summary 创建用户Description接口详细说明Description 通过用户名和邮箱创建新用户Tags接口分…...

CST1019.基于Spring Boot+Vue智能洗车管理系统

计算机/JAVA毕业设计 【CST1019.基于Spring BootVue智能洗车管理系统】 【项目介绍】 智能洗车管理系统&#xff0c;基于 Spring Boot Vue 实现&#xff0c;功能丰富、界面精美 【业务模块】 系统共有三类用户&#xff0c;分别是&#xff1a;管理员用户、普通用户、工人用户&…...

【前端网络请求】XHR封装,支持文件上传、进度监控、混合字段传输

网络请求介绍 XMLHttpRequest(XHR)是前端开发中用于发起网络请求的基础技术。虽然现代开发中常用fetch或axios,但掌握XHR的封装技巧仍能让你更灵活地应对复杂需求。本文将通过一个可复用、功能全面的XHR封装工具,教你实现以下功能: 📤 文件上传(单个/多个文件)📊 实…...

# Shell脚本参数设计规范(DeepSeek指导)

Shell脚本参数设计规范&#xff08;DeepSeek指导&#xff09; 文章目录 Shell脚本参数设计规范&#xff08;DeepSeek指导&#xff09;A 我问&#xff1a;Q DeepSeek回答&#xff1a;**命令行参数表示规范****标准化表示示例**情况1&#xff1a;必选选项参数值情况2&#xff1a;…...

学习SqlSugar的跨库查询基本用法

使用SqlSugar操作数据库通常都是单库操作&#xff0c;跨库查询的情况要么是单个系统数据不完整&#xff0c;需要其它系统的关联业务数据支撑&#xff0c;要么就是需要整合汇总多个系统的数据进行数据数据分析、处理、展示。遇到上述情况&#xff0c;可以要求另外的系统提供查询…...

HTTP:五.WEB服务器

web服务器 定义:实现提供资源或应答的提供者都可以谓之为服务器!web服务器工作内容 接受建立连接请求 接受请求 处理请求 访问报文中指定的资源 构建响应 发送响应 记录事务处理过程 Web应用开发用到的一般技术元素 静态元素:html, img,js,Css,SWF,MP4 动态元素:PHP,…...

5.3 GitHub订阅系统核心架构解密:高并发设计与SQLite优化实战

GitHub Sentinel 分析报告功能实现:订阅管理核心逻辑解析 关键词:GitHub API 订阅管理, SQLite 数据库设计, RESTful API 开发, 原子操作封装, 异常处理机制 1. 订阅管理功能架构设计 订阅管理模块采用分层架构设计,通过清晰的接口隔离实现高内聚低耦合: #mermaid-svg-bW…...

CSI-PVController-volumeWorker

volumeWorker() 与claim worker流程一样&#xff0c;从volumeQueue中取数据&#xff0c;也就是取出的都是PV&#xff0c;如果informer中有这个pv&#xff0c;就进入update流程。 定义workFunc&#xff1a;首先&#xff0c;定义了一个匿名函数workFunc&#xff0c;这个函数是实…...