• 作者:Gobinda Chandra Sarker1^{1}1, AKM Azad2^{2}2, Sejuti Rahman1^{1}1, Md Mehedi Hasan1^{1}1
  • 单位:1^{1}1达卡大学,2^{2}2伊玛目穆罕默德·伊本·沙特伊斯兰大学
  • 论文标题:VLM-Nav: Mapless UAV-Navigation Using Monocular Vision Driven by Vision-Language Model
  • 论文链接:https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5231854
  • 项目主页:https://gcsarker.github.io/vlmnav/
  • 代码链接:https://github.com/gcsarker/vlm_nav

主要贡献

  • 提出了无人机自主导航系统 VLM-Nav ,该系统仅依赖单目视觉输入,通过深度估计和视觉语言模型(VLM)实现高效避障和路径规划。
  • 该系统无需预训练地图或外部人类指令,具有更好的泛化能力,能够在未见过的环境中自主导航。
  • 与传统的基于强化学习(RL)或深度学习(DL)的无人机导航方法相比,VLM-Nav在未见环境中表现出更好的泛化能力,且对训练数据的需求更少。
  • 通过在 AirSim 模拟器中进行的实验验证了系统的有效性,VLM-Nav 在复杂环境中实现了接近完美的任务完成率。

研究背景

  • 无人机(UAV)在包裹递送、农业、监视和搜索救援等领域具有巨大的应用潜力,因此对安全、成本效益高且智能的导航系统的需求日益增长。
  • 传统的无人机导航方法主要依赖于激光雷达(LiDAR)等昂贵传感器,且需要大量的训练数据和复杂的路径规划算法。这些方法在动态或未知环境中表现不佳,且成本较高。
  • 近年来,视觉语言模型(VLM)和大型语言模型(LLM)在图像识别、目标检测和语义分割等任务中取得了显著进展,为无人机导航提供了新的思路。

导航任务

  • 目标:VLM-Nav 系统的目标是引导多旋翼无人机(UAV)从初始位置 (xstart,ystart)(x_{\text{start}}, y_{\text{start}})(xstart,ystart) 自主飞行到目标位置 (xgoal,ygoal)(x_{\text{goal}}, y_{\text{goal}})(xgoal,ygoal)
  • 飞行条件:无人机以恒定速度 vvv 飞行,并保持初始高度 hhh,仅在需要避障时调整高度。

观测空间

  • 观测空间定义:无人机需要从环境中获取状态信息以安全导航,即确定每个时间步应采取的动作。观测空间 OOO 可以通过以下公式表示:
    O={Irgb,Ddepth,dleft,dright,ϕ} O = \{I_{\text{rgb}}, D_{\text{depth}}, d_{\text{left}}, d_{\text{right}}, \phi\} O={Irgb,Ddepth,dleft,dright,ϕ}
    其中:
    • IrgbI_{\text{rgb}}Irgb:通过单目相机捕获的 RGB 图像。
    • DdepthD_{\text{depth}}Ddepth:通过深度估计模型从 RGB 图像生成的深度图。
    • dleftd_{\text{left}}dleftdrightd_{\text{right}}dright:分别表示左侧和右侧距离传感器测量的距离。
    • ϕ\phiϕ:无人机前进方向与目标位置之间的夹角。

动作空间

  • 动作定义:无人机在每个时间步观察周围环境后生成低级控制命令。动作空间包含以下五个离散动作:
    • Forward:向前飞行 1 秒。
    • Yaw Left:逆时针旋转 25°。
    • Yaw Right:顺时针旋转 25°。
    • Up:向上飞行 1 秒。
    • Down:向下飞行 1 秒。

模拟环境

  • 环境选择:为了测试和优化导航算法,研究者使用了 AirSim 模拟器,它提供了逼真的 3D 环境,允许在安全、可控的条件下进行实验。

  • 具体环境
    • 环境 A:简单的单障碍环境,尺寸为 30 m × 30 m,障碍物的宽度和高度在每次导航轨迹中随机缩放 0.5 到 5 倍。
    • 环境 B:由 AirSim 提供的 Blocks 环境,包含多个不同形状的障碍物,尺寸约为 220 m × 100 m。
    • 环境 C:使用 Unreal Engine 市场中的 Downtown West 包创建的自定义环境,包含城市环境中的各种物体,如建筑、食品车、长椅、岩石、海报等。

研究方法

深度估计

  • 背景:由于单目相机无法直接感知深度信息,因此需要使用深度估计模型将RGB图像转换为深度图。

  • 方法:研究中使用了 DepthAnything V2 模型,这是一个预训练的零样本深度估计模型,能够处理各种场景并生成高质量的深度图。
    • 模型架构:DepthAnything V2 采用编码器-解码器结构,编码器使用 Vision Transformer(ViT-L),解码器使用 DPT。
    • 训练方法:该模型使用了6200万张自动标注的无标签图像进行训练,并通过伪标签技术提升模型的泛化能力。
    • 输出处理:模型输出的深度图被缩放到 (0-255) 范围内,并转换为单通道图像。为了适应VLM的输入需求,深度图被反转,使得较近的物体具有较大的像素值。
  • 性能优势:DepthAnything V2 在深度估计的准确性和泛化能力上优于其他模型,如 MiDaS,且计算效率更高。

视觉语言模型

  • 背景:VLM在图像识别、目标检测和语义分割等任务中表现出色,研究中利用VLM的视觉问答(VQA)能力来指导无人机避障。

  • 模型选择:研究中使用了两种VLM模型:Gemini-1.5-flashGPT-4o
    • Gemini-1.5-flash:由Google DeepMind开发,基于Transformer Decoder架构,能够处理多模态数据(如图像、文本和视频),具备强大的推理和规划能力。
    • GPT-4o:由OpenAI开发,是GPT架构的一个变体,具有更大的上下文窗口和更快的处理速度,适用于图像、文本和视频任务。
  • 工作流程
    • 将深度图和预设的提示(prompt)发送给VLM模型。
    • 提示内容是询问VLM无人机应采取的方向以避开障碍物。
    • VLM模型返回建议的方向,并附带详细的解释。
    • 通过关键词搜索从VLM的输出文本中提取方向(如左、右或任意方向)。

近物检测

  • 背景:为了评估前方是否存在障碍物,需要对深度图进行分析。

  • 方法
    • 裁剪深度图:将深度图裁剪为 i×ji \times ji×j 的形状,以排除地面并专注于前方障碍物。
    • 二值化处理:使用阈值 σd\sigma_dσd 对深度图进行二值化处理,忽略超出一定距离的障碍物。
    • 连通组件分析:使用“spaghetti”算法进行连通组件分析,识别深度图中的障碍物。
    • 区域划分:将深度图划分为三个区域(P1、P2、P3),用于判断障碍物的位置和方向。
  • 作用
    • P1和P3区域帮助无人机判断是否安全转弯。
    • P2区域用于检测前方是否有障碍物,如果检测到障碍物,则向VLM请求反馈。

导航模块

  • 背景:导航模块是一个全连接网络(FCN),用于综合VLM的反馈、距离传感器读数、航向角等信息,生成最终的导航动作。
  • 输入参数
    • POD模块的输出(三个区域的障碍物检测结果)。
    • 左侧和右侧距离传感器的读数。
    • 航向角 ϕ\phiϕ
    • VLM模块的反馈(建议的动作方向)。
  • 训练方法
    • 在简单的环境A中,由人类操作员手动飞行无人机,记录飞行轨迹。
    • 收集10,000步的飞行数据,包括输入参数和人类操作员的动作。
    • 使用这些数据训练导航模块,使其能够模仿人类的飞行决策。

结果与讨论

实验设置

  • 模拟环境:所有实验均在 AirSim 模拟器中进行,该模拟器与 Unreal Engine 4.27 集成,提供了逼真的 3D 环境。
  • 硬件配置:实验使用了配备 Nvidia GeForce MX550 GPU 和 16 GB 内存的硬件平台,确保了 3D 环境的流畅渲染和实时数据处理。
  • 环境配置
    • 环境 A:简单的单障碍环境,尺寸为 30 m × 30 m,障碍物的宽度和高度在每次导航轨迹中随机缩放 0.5 到 5 倍。
    • 环境 B:由 AirSim 提供的 Blocks 环境,包含多个不同形状的障碍物,尺寸约为 220 m × 100 m。
    • 环境 C:使用 Unreal Engine 市场中的 Downtown West 包创建的自定义环境,包含城市环境中的各种物体,如建筑、食品车、长椅、岩石、海报等。

定量分析

深度估计算法比较
  • 方法:研究中比较了四种深度估计方法:MiDaS (DPT)、MiDaS (Swin V2)、DepthAnything V1 和 DepthAnything V2。
  • 评估指标
    • Delta (𝛿):计算深度预测值在一定阈值内的比例,通常使用多个阈值(如 𝛿1 < 1.25, 𝛿2 < 1.25², 𝛿3 < 1.25³)。
    • 绝对相对误差:计算预测深度值与真实深度值之间的绝对误差,归一化到真实深度值。
    • 结构相似性指数:衡量预测深度图与真实深度图在结构、亮度和对比度上的相似性。
    • 推理时间:计算从单张场景图像生成深度图所需的时间。
    • 参数数量:模型训练权重的数量,单位为百万。
  • 结果
    • DepthAnything V2 在所有指标上均优于其他方法,具有更高的 Delta 值、更低的 AbsRel 值和更高的 SSIM 值,同时计算效率更高。
    • DepthAnything V1DepthAnything V2 的性能接近,但 V2 在环境 B 和 C 中表现略好。

导航模块性能
  • 评估指标
    • 精确率:正确预测的动作数量与总预测数量的比值。
    • 召回率:正确预测的动作数量与应预测为正确的总动作数量的比值。
    • F1分数:精确率和召回率的调和平均值。
  • 结果
    • GeminiGPT-4o 模型在未见环境(环境 B 和 C)中均表现出高精度和高召回率,F1 分数接近 90%。
    • Gemini 模型在导航新环境时表现略优于 GPT-4o

整体导航性能
  • 评估指标
    • 任务完成率:无人机成功到达目标位置(距离目标小于 3 米)的轨迹百分比。
    • 碰撞率:无人机与障碍物碰撞的次数占飞行总距离的百分比。
    • 轨迹长度比:无人机飞行路径长度与人类操作路径长度的比值。
  • 结果
    • VLM-Nav 在所有测试环境中均实现了接近完美的任务完成率(0.98),碰撞率极低,轨迹长度比接近 1。
    • DepthAnything V2 的碰撞率低于 DepthAnything V1,表明其深度估计更准确。

定性分析

  • 飞行路径可视化
    • 环境 A、B 和 C:展示了在三个不同环境中生成的飞行路径,无人机成功避开了所有障碍物并到达目标位置。
    • 路径比较:将 VLM-Nav 生成的飞行路径与人类操作的飞行路径进行比较,结果表明 VLM-Nav 生成的路径与人类操作路径非常接近。

  • VLM 输出的一致性
    • 复杂指令问题:当给 VLM 提供复杂指令时,其输出可能不一致。研究中通过使用更简单的提示来减少这种不一致性,确保更可靠的输出。

消融研究

  • 深度估计的重要性:深度估计模块帮助 VLM 更好地理解场景中的障碍物距离,从而选择最优动作。
  • 近物检测模块的局限性:仅依赖 POD 模块进行导航在某些情况下是不够的,VLM 的全局分析能力在复杂场景中至关重要。
  • VLM 输出的一致性问题:复杂的指令可能导致 VLM 输出不一致,简单的提示和导航模块的结合可以提高系统的可靠性和一致性。

结论与未来工作

  • 结论
    • VLM-Nav 通过结合深度估计和视觉语言模型,实现了在复杂未知环境中的高效自主导航。
    • 该方法具有成本低、泛化能力强、对训练数据需求少等优点。
  • 未来工作
    • 探索开发专门针对无人机导航的 VLM,使其能够直接处理 RGB 图像而无需深度估计。
    • 研究动态障碍物的避障能力,例如通过时空图神经网络等方法预测障碍物的运动模式。
    • 在实际场景中进行测试,验证系统的鲁棒性和实时性。

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

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

相关文章

Docker Desktop 安装到D盘(包括wsl)

默认WSL虚拟机位置&#xff1a; C:\Users\<用户名>\AppData\Local\Docker\wsl重装DockerDesktop下载安装包Docker Desktop Installer.exe在D盘创建文件夹D:\Program Files\DockerDesktopD:\Program Files\DockerDesktop\data 在cmd运行 start /w "" "Dock…

网络协议(三)网络层 IPv4、CIDR(使用子网掩码进行网络划分)、NAT在私网划分中的应用

利用子网掩码进行子网划分 这是一个模拟搭建的私网&#xff0c;有俩台主机ab。现在主机a要给云端服务器发送一条消息&#xff0c;这条消息怎么才能到达云端服务器呢&#xff1f;确定这条数据中的源端为本地ip的9000端口&#xff0c;目的端为24.24.24.8888端口&#xff0c;首先&…

8.4 Java 原生 TCP Socket 实现 HTTP 请求解析和请求分发

使用 Java 原生 TCP Socket 实现 HTTP 请求解析和请求分发&#xff0c;是一个理解 HTTP 协议底层原理的好方法。虽然 Java 提供了 HttpServer 类来简化 HTTP 服务器开发&#xff0c;但如果你想从 TCP 层 开始构建一个简单的 HTTP 服务器&#xff0c;可以使用 ServerSocket 和 S…

自研能管项目开发界面

自研能管软件实现一个界面开发 目的&#xff1a; ​ 通过接口方式实现展示哪些数据例如&#xff1a; ​ 已知制丝车间下的计量电表&#xff0c;在可视化界面通过点击制丝车间的方式&#xff0c;自动在MySQL存储制丝车间的电表数据(假设是每分钟存储一次)&#xff0c;前端即可以…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 基于wordcloud库实现词云图

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解基于wordcloud库实现词云图 视频在线地址&…

Vue3 面试题及详细答案120道(31-45 )

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Proxmox VE 8.3/8.4开启Intel 核显的vGPU,搭建vGPU云桌面系统

1. Intel Graphics SR-IOV 介绍Intel Graphics SR-IOV 是 Intel 最新的图形虚拟化技术。单根 I/O 虚拟化 &#xff08;SR-IOV&#xff09; 通过将设备划分为多个虚拟功能来定义共享物理设备功能的标准方法。每个虚拟函数都直接分配给一个虚拟机&#xff0c;从而为虚拟机实现接近…

LeetCode 热题100

文章目录哈希两数之和字母异位词分组最长连续序列双指针移动零盛最多水的容器滑动窗口子串多刷题 LeetCode 热题100 哈希 两数之和 思路分析&#xff1a; 暴力做法&#xff1a;每一个数字都与剩余的数字作比较&#xff0c;时间复杂度是O(n2)O(n^2)O(n2)哈希做法&#xff1a;我…

Idea或Pycharm上.idea的忽略提交的问题总结

文章目录问题描述如果是首次提交或者之后的提交代码时把.idea及其文件提交到远端仓库中&#xff0c;此时再创建.gitignore会不生效。问题描述 由于在代码托管平台上创建的项目&#xff0c;没有关联创建.gitignore文件。导致git 克隆到本地电脑上时&#xff0c;项目的根目录下也…

【锁】MySQL中有哪几种锁?

&#x1f4da; 欢迎来到我的Java八股文专栏&#xff01; &#x1f389; 各位程序员小伙伴们好呀~ &#x1f44b; 我是雪碧聊技术&#xff0c;很高兴能在CSDN与大家相遇&#xff01;✨ &#x1f680; 专栏介绍 这个专栏将专注于分享Java面试中的经典"八股文"知识点 &a…

旷视科技视觉算法面试30问全景精解

旷视科技视觉算法面试30问全景精解 ——AI赋能 智能安防 视觉创新&#xff1a;旷视科技视觉算法面试核心考点全览 前言 旷视科技&#xff08;Megvii&#xff09;作为全球领先的人工智能公司&#xff0c;专注于计算机视觉、深度学习和智能安防等领域&#xff0c;推动人脸识别、…

docker nginx 部署前端踩坑记录

文章目录坑点1&#xff1a;localhost 与127.0.0.1坑点1&#xff1a;localhost 与127.0.0.1 server {listen 80 default_server;client_max_body_size 20M;# 记录访问日志和错误日志access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.l…

JAVA_TEN-面向对象高级一

一.Static一 定义&#xff1a;叫静态&#xff0c;可以修饰成员变量、成员方法成员变量按有无static修饰&#xff0c;分为两种&#xff1a;类变量&#xff1a;有static 修饰&#xff0c;属于类&#xff0c;在计算机里只有一份&#xff0c;会被类的全部对象共享。实例变量&#x…

幻兽帕鲁开服教程

以下均为个人推荐&#xff0c;不喜勿喷&#xff0c;望审核大大明辨开服条件一台带公网的vps服务器&#xff08;需开放udp&#xff09;&#xff0c;配置至少为4c16g&#xff0c;推荐8c32g开服需要准备的工具&#xff1a;steamcmd&#xff1a;https://steamcdn-a.akamaihd.net/cl…

lesson21:Python面向对象编程

目录 引言 一、了解面向对象编程&#xff08;OOP&#xff09;&#xff1a;编程范式的革命 1.1 什么是面向对象编程&#xff1f; 1.2 OOP vs 面向过程&#xff1a;思维方式的差异 1.3 OOP的三大核心特性 二、类与对象&#xff1a;OOP的基石 2.1 类&#xff08;Class&#…

基于卷积神经网络与小波变换的医学图像超分辨率算法复现

基于卷积神经网络与小波变换的医学图像超分辨率算法复现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 医学图像超分辨率技术在临床诊断和治疗规划…

HCIP第一二章笔记整理

第一章&#xff1a;复习HCIA第一阶段应用层&#xff1a;自然语言转换为编码表示层&#xff1a;编码转换为二进制介质访问控制层&#xff1a;二进制转化为信号物理层&#xff1a;传输电信号第二阶段&#xff1a;OSI参考模型应用层&#xff1a;提供网络服务表示层&#xff1a;对数…

《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——2. C++基础:构建程序的坚实骨架

目录一、概述1.1 背景介绍&#xff1a;从UI到逻辑1.2 学习模式&#xff1a;Qt控制台应用二、C语法快速入门2.1 变量、数据类型与注释2.2 函数与代码封装2.3 循环与容器&#xff1a;批量处理三、面向对象编程&#xff1a;封装数据与行为四、Qt的核心扩展&#xff1a;信号与槽通信…

Navicat 远程连接SQLlite数据库

1、SQLlite数据库是一个本地.db文件&#xff0c;默认不支持远程连接&#xff1b; 2、Navicat 可以通过ntunnel_sqlite.php文件连接远程SQLlite库&#xff1b; 3、安装Navicat&#xff0c;安装完成&#xff0c;在安装目录下找到ntunnel_sqlite.php文件&#xff1b; 4、上传当前文…

OpenCV用于计算光流的一个类cv::optflow::DualTVL1OpticalFlow

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::optflow::DualTVL1OpticalFlow 是 OpenCV 中用于计算光流的一个类&#xff0c;特别地&#xff0c;它实现了基于双帧 TV-L1&#xff08;Total V…