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

探索多模态LLM作为驾驶的世界模型

24年5月MIT的论文“Probing Multimodal LLMs as World Models for Driving”。

主要对多模态大语言模型(MLLM)在自动驾驶领域的应用进行了审视,并挑战/验证了一些常见的假设,重点关注它们通过图像/帧序列推理和解释在闭环控制环境中动态驾驶场景的能力。 尽管 GPT-4V 等 MLLM 取得了显着进步,但它们在复杂、动态驾驶环境中的性能在很大程度上仍未经过测试,并且存在广泛的探索领域。 作者进行了一项全面的实验研究,从固定车载摄像头的角度评估各种 MLLM 作为世界驾驶模型的能力。 研究结果表明,虽然这些模型能够熟练地解释单个图像,但在为描述动态行为合成的连贯叙述或逻辑图像序列方面存在很大困难。 实验表明,预测 (i) 基本车辆动力学(前进/后退、加速/减速、右转或左转)、(ii) 与其他道路参与者的交互(例如,识别超速车或交通拥堵)、(iii) 轨迹规划,以及(iv)开放集动态场景推理,表明模型训练数据存在偏差。 为了进行这项实验研究,引入了一个模拟器,DRIVESIM,旨在生成不同的驾驶场景,为评估驾驶领域的 MLLM 提供一个平台。 此外,还有完整的开源代码和新数据集“EVAL-LLM-DRIVE”,用于评估驾驶中的 MLLM。 其结果凸显最先进的 MLLM 当前能力的关键差距,强调需要增强基础模型以提高其在现实世界动态环境中的适用性。

​如图所示:实验结果发现,MLLM 很难从动态场景中创建连贯的序列或叙述,因此无法推理汽车运动/动力学、超速汽车、交通等。 为此,用 DRIVESIM 模拟器生成驾驶数据集,并将其与数据一起开源以供未来探索。 研究结果强调 MLLM 当前能力的关键差距,表明需要改进模型以增强其现实世界的适用性。

请添加图片描述
为了满足实验设置的要求,需要受控环境和反事实测试(例如生成与原始数据集不同的反事实数据,而不是 MLLM 的反事实推理),作者在 nuScenes 数据集之上开发了一个数据驱动的模拟器 [45]。 这种方法有效地平衡了传感器合成真实性[46]、[47]、闭环仿真[48]、[44]和场景设置可控性[49]、[50],使其成为用例的理想匹配。

实验方法的基石涉及决策的闭环执行,探索 MLLM 的推理,特别是提出以下问题: “如果汽车采取的操作与数据集中的动作不同怎么办?”

解决这个问题需要实施传感器合成来适应假设的“假设”场景。 从自车的初始位置开始,采用车辆动力学进行闭环控制,将输入空间表征如下:(i)使用自行车模型的加速度和转向速度,(ii)通过自行车模型集成版的速度和转向角,以及(iii)相对于局部坐标系的直接姿态调整(用于无动力学运动规划)。

为了促进传感器数据合成,用实际传感器测量与重模拟技术[44]相结合,结合地图信息(对于后续部分中的目标/角色合成和行为建模也至关重要)。 在较高层面上,地图信息包括互连的车道段和描绘各种道路组成部分的其他几何元素,例如停车线和交通标志。 沿着每个车道段,都有样本点,每个样本点都与传感器测量结果相关联,例如相机图像。 该姿态源自车辆动力学,与地图上最近的样本点相匹配,与传感器的方向一起为渲染和行为建模提供局部坐标系。 对于渲染,最初通过应用于 RGB 图像和稀疏 LiDAR 点的深度补全技术 [51] 来获取深度信息。 随后,用针孔相机模型将 RGB 像素投影到 3D 空间中,创建可以从不同视点渲染的 3D 网格。 利用基于重模拟的相关 RGB 图像的本地坐标系计算的外部参数以及用户定义的相机内部参数,可以对最终图像执行渲染。

“假设”实验设置的另一个方面涉及解决诸如 “如果路边突然出现一只鹿怎么办?” 这就需要能够模拟场景中的合成目标或角色。 基于所描述的 3D 重建流程,将所需目标和角色的 3D 网格无缝集成到场景中。 通过利用LLM对其注释的文本理解能力,可以从 Objaverse 数据集 [52] 有效地获取这些网格。 例如,可以识别表明相应网格代表动物的注释。 利用地图的几何和语义信息,战略性地将网格放置在合理的位置和方向。 例如,在与自车相同的车道旁边、交通灯下方、停车线上方等。

在添加合成交通参与者的基础上,这些参与者的行为或运动对于 MLLM 的推理过程变得至关重要。 这就引入了探索诸如以下场景的必要性:“如果飞机从上空飞过或降落在路上怎么办?”或 “如果汽车因交通堵塞而减速怎么办?”

对于地面车辆的行为,用PID控制器[53]进行转向控制,跟踪从地图或运动规划导出的参考路径; 对于加速控制,用IDM[54],专注于自车前方最近的参与者,该参与者正在朝着可能导致与自车发生碰撞的方向移动。 对于运动规划,部署一个五次多项式轨迹生成功能的状态格规划器(lattice planner)[55],其中目标状态格被确定为在当前车道或相邻车道局部坐标系中本车前方的特定距离。 为了对其他角色行为进行建模,在预定义的开始和结束姿势之间执行样条插值来创建轨迹。 重点是模拟合成角色对自车、它们自己以及场景中其他预先存在的角色或目标的反应,而不是对那些已经存在的实体行为进行建模。

MLLM 作为世界模型在 DRIVESIM 提出的关键场景中的性能,主要是如图 所示的类别:(i) 自车动力学、(ii) 其他道路参与者、(iii) 轨迹规划,以及(iv)开放集动态场景推理。

请添加图片描述
具体来说,对于驾驶,测试MLLM作为世界模型确定自车运动的能力:汽车是向前还是向后行驶? 加速还是减速? 是左转还是右转? 一切都以明确的方式进行。 然后,评估街道上其他因素的推理能力,以确定是否检测到超速车(是否有超速车?)或交通拥堵(是否有交通拥堵?)。 此外,还基于开放集(甚至奇怪的)环境测试 MLLM 的决策,例如提供突然出现的动物或静态目标甚至飞机着陆的图像(自车能否继续移动) 同一条车道?。 最终可以测试 MLLM 的能力,选择绕过障碍物导航的最佳轨迹,同时尝试保持在车道上(哪条轨迹最好遵循?)。

下表 展示 Claude3、GPT-4V、LLaVA-1.6、InstructBLIP 和 MiniGPT4-v2 在这些情况下的表现。

请添加图片描述
如图是一些DRIVESIM提供的合成例子:

请添加图片描述

相关文章:

探索多模态LLM作为驾驶的世界模型

24年5月MIT的论文“Probing Multimodal LLMs as World Models for Driving”。 主要对多模态大语言模型(MLLM)在自动驾驶领域的应用进行了审视,并挑战/验证了一些常见的假设,重点关注它们通过图像/帧序列推理和解释在闭环控制环境…...

掌握Vim:Linux系统维护的瑞士军刀 - 常用命令深度解析

在Linux的世界里,Vim编辑器犹如一位沉默的剑客,它的命令就是那锋利的剑刃,能够在代码的海洋中劈波斩浪。对于每一位Linux系统用户来说,掌握Vim的常用命令,就如同获得了维护系统的瑞士军刀。今天,让我们一起…...

C++数组和指针应用实例 -- 实现计算器

C 的数组和C 语言一样&#xff0c;C完全兼容C语言的指针&#xff0c;但是会多出一个this指针 用C实现计算器 case1: 基本实现: #include <iostream>using namespace std;int add(int a,int b) {return ab; }int minu(int a,int b) {return a-b; }int mul(int a,int b) …...

【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(6.Formality)

使用Formality进行形式验证 Formality支持具有低功耗特性的功能等效性检查,如时钟门控、多阈值电压(multiple-Vt)、多电压供电、电源门控以及动态电压和频率缩放。Formality能够识别低功耗单元,例如隔离单元、电平转换器、始终开启单元、保持寄存器和电源门。 Formality支持…...

力扣 72. 编辑距离 python AC

动态规划 class Solution:def minDistance(self, word1, word2):size1 len(word1)size2 len(word2)dp [[0] * (size2 1) for _ in range(size1 1)]for i in range(1, size1 1):dp[i][0] dp[i - 1][0] 1for i in range(1, size2 1):dp[0][i] dp[0][i - 1] 1for i in…...

vue 发布项目

You are not allowed to force push code to a protected branch on this project. 分支做了保护&#xff0c;git中设置允许强制推送...

springBoot实现发送邮箱验证码 redis缓存源码

要在Spring Boot中实现发送邮箱验证码并使用Redis进行缓存&#xff0c;你需要遵循几个步骤。以下是一个简化的示例&#xff0c;展示了如何整合这些功能&#xff1a; 添加依赖 首先&#xff0c;确保你的pom.xml&#xff08;Maven&#xff09;或build.gradle&#xff08;Gradle…...

QT--4

QT 使用定时器完成闹钟 #include "widget.h" #include "ui_widget.h"void Widget::timestart() {timer.start(1000); }void Widget::timeend() {timer.stop(); }Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(t…...

感染了后缀为.360勒索病毒如何应对?数据能够恢复吗?

导言&#xff1a; 在数字化时代的浪潮中&#xff0c;网络安全问题如同暗流涌动&#xff0c;威胁着每一个互联网用户的安宁。而近年来&#xff0c;一种名为.360勒索病毒的新型网络威胁逐渐浮出水面&#xff0c;以其独特的加密方式和狡猾的传播策略&#xff0c;给全球网络安全带…...

JavaSE多态

多态&#xff1a;一个对象在不同条件下表示的不同形态就叫多态。在程序中&#xff0c;多态是父类引用指定子类对象就叫多态。 多态是面向对象程序设计中的第三个特征 // 多态 class Father {String name;public void desc() {System.out.println("----------");Sys…...

M 有效算法

M 有效算法 本题考验二分知识&#xff0c;思路是二分k的取值&#xff0c;就按第一组样例来说当我们k取值为1的时候我们遍历数组想让|8-x|<k1的话x的取值范围是7-9&#xff0c;想让|3-x|<k2的话x的取值范围是1-5&#xff0c;两者x的区间不重合&#xff0c;说明肯定没有x能…...

知识付费系统制作,托管机构如何提高体验课转化率?要注意什么?

现在托管机构非常流行&#xff0c;一所学校周边就会出现好几家托管机构&#xff0c;所以竞争非常激烈。很多托管机构为了扩大生源&#xff0c;会选择体验课来让学生体验&#xff0c;至于如何提高体验课转化率&#xff0c;就看机构的本事了。 1、市场调研&#xff1a;摸清当前我…...

【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密

1.下载 app 2.frida 调试 3.抓包查看接口 4.分析加密数据 5.易语言编写代码 1 .开始下载 下载好发现有越狱检测&#xff0c;检测点为&#xff1a; -[AppDelegate isJailBreak]; 于是编写插件xm代码 : %hook AppDelegate- (void)isJailBreak{NSLog("AppDelegate is…...

《CKA/CKAD应试指南/从docker到kubernetes 完全攻略》学习笔记 第14章 包管理helm v3

前言 考试大纲: 了解helm是如何工作的,从而实现快速部署应用 本章要点: 考点1:添加helm源 考点2:使用helm 部署应用 前面在使用wordpress + mysql 部署博客应用的时候,需要做许多工作,需要每个pod创建pv和pvc,然后分别创建每个应用pod及svc,整个过程非常麻烦. 如果搭建博客的…...

蓝桥杯备战.19有奖问答dfs

P9230 [蓝桥杯 2023 省 A] 填空问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; #define endl \n //#define int long long const int N 2e510; int a[N],w[N]; int ans 0; void dfs(int score,int cnt) {if(cnt>3…...

【JS红宝书学习笔记】第1、2章 初识JS

第1章 什么是JavaScript JavaScript 是一门用来与网页交互的脚本语言&#xff0c;包含以下三个组成部分。 ECMAScript&#xff1a;由 ECMA-262 定义并提供核心功能。文档对象模型&#xff08;DOM&#xff09;&#xff1a;提供与网页内容交互的方法和接口。浏览器对象模型&…...

学习java

在实验室看见这本书&#xff0c;无聊看了下&#xff0c;写出了第一个java代码 成功下载了eclipse并且汉化。 写了自己的第一个java程序&#xff1a; package ttttt;public class ttttt {public static void main(String[] args) {System.out.println("hello world")…...

Redis日常维护流程及技巧:确保稳定性与性能

目录 一、监控和报警设置 1.实时监控&#xff1a;洞察Redis的脉搏 &#xff08;1&#xff09;. 资源使用监控 &#xff08;2&#xff09;. 数据访问模式监控 &#xff08;3&#xff09;. 持久化监控 &#xff08;4&#xff09;. 客户端连接 2.报警机制&#xff1a;快速响…...

牛客华为机试题——难度:入门(python实现)

HJ7 取近似值 HJ9 提取不重复的整数 HJ46 截取字符串 HJ58 输入n个整数&#xff0c;输出其中最小的k个 HJ101 输入整型数组和排序标识&#xff0c;对其元素按照升序或降序进行排序 HJ7 取近似值 描述&#xff1a;写出一个程序&#xff0c;接受一个正浮点数值&#xff0c;输…...

数据结构与算法学习笔记之线性表五---循环链表的表示和实现(C++)

目录 前言 1.双向链表的定义 2.双向链表的表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.表长 6.获取数据元素 7.前驱节点 8.后继节点 9.插入 10.删除 11.遍历 12.完整代码 前言 记录下双向链表的表示和实现。 1.循环链表的定义 循环链表(circular linked list)…...

微信小程序生命周期揭秘:从启动到消亡的全过程剖析【附代码】

微信小程序生命周期揭秘&#xff1a;从启动到消亡的全过程剖析 一、小程序生命周期概览核心生命周期函数 二、深入理解生命周期回调2.1 onLoad: 首次亮相的准备2.2 onShow: 重登舞台的瞬间2.3 onReady: 舞台就绪&#xff0c;静待表演2.4 onHide & onUnload: 谨慎离场&#…...

Linux 下载 miniconda

https://repo.anaconda.com/miniconda/ 下载对应版本&#xff1a; wget -c https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh给下载的文件添加可执行权限 chmod x Miniconda3-py310_24.3.0-0-Linux-x86_64.sh安装 ./Miniconda3-py310_24.3.…...

第十五篇:全面防护:构建不容侵犯的数据库安全策略与实战指南

全面防护&#xff1a;构建不容侵犯的数据库安全策略与实战指南 1. 引言&#xff1a;数据库安全的现代战略 1.1 简介&#xff1a;数据库安全在当今的数字化时代中的重要性 在数字化的浪潮中&#xff0c;数据已成为企业乃至国家的核心资产&#xff0c;其价值不亚于实体世界的黄…...

电脑快速搜索文件及文件夹软件——Everything

一、前言 Everything是一款由voidtools开发的文件搜索工具&#xff0c;主要运行于Windows操作系统上。它的主要功能是快速、高效地搜索电脑上的文件和文件夹名称。Everything通过利用NTFS文件系统的MFT&#xff08;主文件表&#xff09;来索引文件&#xff0c;从而实现几乎实时…...

02-登录页面、动态路由、权限等模块开发

权限模块开发流程 前端login页面开发后端SpringSecurity配置后端login接口开发前端页面框架搭建前端路由守卫&#xff0c;状态管理开发前后端完成认证流程 开发Login页面 创建Login页面创建router&#xff0c;可以跳转到Login页面 Login页面 使用element-plus开发 认证功…...

万物生长大会 | 创邻科技再登杭州准独角兽榜单

近日&#xff0c;由民建中央、中国科协指导&#xff0c;民建浙江省委会、中国投资发展促进会联合办的第八届万物生长大会在杭州举办。 在这场创新创业领域一年一度的盛会上&#xff0c;杭州市创业投资协会联合微链共同发布《2024杭州独角兽&准独角兽企业榜单》。榜单显示&…...

(六)Linux的Shell编程(上)

一.Shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows …...

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言&#xff0c;CANopen 实现了以上各层&#xff0c;包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…...

Rust 语言不支持 goto 语句

一、Rust 不提供 goto 语句 Rust 语言并没有提供 goto 语句。goto 语句在很多现代编程语言中已经不再被推荐使用&#xff0c;因为它可能导致代码的流程变得难以跟踪和理解&#xff0c;特别是在复杂的程序中。Rust 语言设计者选择了更加结构化和可预测的控制流语句&#xff0c;…...

uniapp日期区间选择器

uniapp日期区间选择器 在 uniapp 中创建一个简单的自定义日期范围的日期区间选择器&#xff1a; - 限制有效日期范围开始日期为 2024-01-01&#xff0c;结束日期为当日&#xff1b; - 默认日期区间为当日向前计算的7日区间&#xff1b; - 选择开始时间后&#xff0c;判断不可大…...