当前位置: 首页 > 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)…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...