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

自动驾驶之DriveMM: All-in-One Large Multimodal Model for Autonomous Driving

1. 写在前面

工作之后,主要从事于偏工程比较多的内容, 很少有机会读论文了,但2025年,由于之前有些算法的背景, 后面可能会接触一些多模态大模型相关的工作,所以又调头有点往算法的方向偏移, 而算法呢,很重要的一点就是阅读论文。2025年,再拾起论文这块的工作。

今天分享的一篇论文,是24年12月中山大学深圳分校和美团的论文,算是自动驾驶界比较新的文章,叫DriveMM,介绍了一个通用的大型多模态模型, 该模型可以接收单张图片、多张图片、单个视频、多个视频以及lidar等多种格式的输入, 处理AD中的各种驾驶场景和任务(感知,预测,规控等), 还是非常powerful的。我们还是先把论文的每个模块介绍一遍,最后再教大家部署下这个模型, 本地跑下推理, 工作中读论文很重要的一个点是要考虑如何落地,所以读完论文掌握思路之后,我们还要看看代码落地。

  • 论文地址:https://arxiv.org/pdf/2412.07689
  • GitHub代码: https://github.com/zhijian11/DriveMM

在这里插入图片描述

Ok, let’s go!

大纲如下:

  • 1. 写在前面
  • 2. Abstract
  • 3. Introduction
  • 4. Releated Work
    • 4.1 Vison-Language Driving Datasets
    • 4.2 LMMs for Autonomous Driving
  • 5. Methodology
    • 5.1 Model Architecture
    • 5.2 Data
    • 5.3 Training
  • 6. Experiment
  • 7. Apply

2. Abstract

多模态模型(LMM)结合大语言模型(LMM), 在自动驾驶(Autonomous Driving, AD)领域展现出色的理解和解释能力。 但是当前数据驱动的AD方法往往集中在单个数据集和特定任务上, 忽视整体和泛化能力。为了弥补这些差距, 本文提出了提出了一体化LMM,DriveMM, 一个通用的大型多模态模型,该模型接收多样化的数据输入,例如图像和多视角视频,旨在有效处理AD中的各种驾驶场景和任务,比如感知、预测和规划等。

本文主要是3个卖点:
在这里插入图片描述

  1. 提出了一个新颖的通用多模态大模型, 该模型同时具备整体和泛化能力,可以处理多种AD任务,且对于zero-shot的数据集也非常ok
  2. 提出了一个在多模态数据上预训练+ 自动驾驶数据上微调DriveMM的范式(这个很重要)
  3. 介绍了非常全面的评估体系评测自动驾驶的LMMs, 主要包括6个公开数据集,4中输入类型,13中有挑战的任务等。

最后经过各个实验, 证明了自己模型在多个任务上实现了SOTA, 在zero-shot的任务上也达到了最强。

3. Introduction

引言里面首先指出了随着自动驾驶的发展, 最近几年也涌现除了非常多的AD数据集和多模态大模型(Large Multimodal Model, LMM), 旨在理解复杂的自动驾驶的场景任务。 这些LMM先经过预训练过程, 使其理解AD的基本视觉和语言信息,然后再用特定任务的数据进行微调,适应于不同的任务。 但之前的的这些模型和数据都是针对于特定的场景和任务这可能会丢失一些全局和泛化的能力

作者这里列了个图:
在这里插入图片描述
左边是6个AD数据集, 类型有的是单图片,多图片(包括视角),单视频,多视频(包括视角), 不同数据集适用于不同的场景任务,比如感知的场景理解,区域理解,Key理解,道路理解,风险探测, 预测里面的状态预测,Motion预测,规化里面的行为检测,驾驶推理,Motion预测等,这都是自动驾驶领域的经典任务。

有了上面的问题, 作者这里的动机就是 大一统, 搞一个通用的大模型,可以接收多种type的输入, 解决上面的所有任务, 这些数据一块训练, 能够有更强大的通用能力和更好的泛化能力。

在这里插入图片描述
这里的通用能力指的是复杂和多样的任务场景, 而泛化表现是指zero-shot的数据。

首先,是重构了LMM能接收多视角的视觉信号,这个是通过提供了一个带有视角信息和传感器类型的Instruction实现的, 这样能允许模型识别障碍物之间的空间关系,分析动态驾驶环境里面的全部上下文。 在训练阶段的时候, 提出了一个新的范式(4阶段), 完成了DriveMM的预训练和微调。主要包括3个阶段的预训练和最后一个阶段的微调,最后得到了一个很强大的模型。

训练这部分是本篇paper的关键, 后面的内容里面详细介绍吧。

4. Releated Work

相关工作这块,作者主要是介绍了一些数据集和现用的一些AD领域的多模态大模型,这对于像我这样的小白了解背景知识还是很重要的, 也简单整理下。

4.1 Vison-Language Driving Datasets

这里主要是介绍一些训练LMM用到的AD场景数据集, 这个其实就是上面图里面的那些数据集。

  • DRAMA, CODA-LM, DriveVLM, single-view data, 聚焦于风险object和corner cases learning
  • NuScenes-QA, multi-view data, 主要是3D obj的关系
  • MAPLM, multi-view data主要分析和识别道路条件等

在这篇paper里面,作者做的一个事情就是:

在这里插入图片描述
增强和标准化了自动驾驶数据集,这个思路也非常牛,后面会看下。

4.2 LMMs for Autonomous Driving

这块主要介绍LLMs在AD领域的一个应用。

早期, 有工作尝试用GPT3.5或者4 作为驾驶planners。后来DriveGpt4和RDA-Driver引进了端到端的LMMs产生控制信号和轨迹。 上面的工作主要是通过语言来处理驾驶行为。 LMDrive和DriveMLM是用了一个decoder直接从embedding预测控制信号。

为了提高感知和推理能力, 下面的几个方法是通过改进了模型的架构。 Reason2Drive 提出了一个先验的tokenizer来提出local image feature, BEV-InMLLM是把BEV的特征集成到了LMM里面。 OmniDrive用了一个Q-Former3D集成2D预训练的知识和3D的空间理解。 ELM组合了一个time-aware token模块来提高查询关于时序特征的准确率。

上面的这些方法可以大概了解, 算作背景知识的学习了。 这些方法还是受限于特定的场景和任务。

5. Methodology

终于到了paper的重点环节了, 这里面作者介绍DriveMM的相关方法。
在这里插入图片描述
这里先用数学语言简洁的表达了下模型, 接收的输入是 X v X_v Xv, 这个表示的多种多样的数据(各种格式的数据,图片,多视角图片,视频,多视角视频 或 lidar点云), X t X_t Xt是有来自于感知,预测,规划的一个提问。 F F F就是DriveMM,输出 Y t Y_t Yt就是模型针对提问作出的回答。

过整合多种数据和任务,DriveMM 能在一个场景广泛的VL数据上训练, 不同数据和任务之间能互补。

5.1 Model Architecture

目标是设计一个高效的模型架构, 同步处理S.I, M.I, S.V, M.V, 遵循LLaVA(Large Language and Vision Assistant)的主流LMM的设计。一个vision encoder, 一个projector 和一个LLM。

在这里插入图片描述
这里先宏观上解释下上面的图, 模型的输入格式是: < i m g s , q , a > <imgs, q, a> <imgs,q,a>, 也就是一张或者多张图片(可以是多视角), 再给定一个Q, 模型输出一个A, 当然这个Q和A要根据不同的任务去设计。感知任务, 预测任务和规划任务想要模型学习的东西不一样,自然就需要不同的Q和A。可以看看上图里面不同任务Q和A的内容。

那有了img, q之后呢, 就可以给到模型, 处理过程大概是这样子(上面图有点稍微简洁):

在这里插入图片描述
宏观上用这个图应该比较清洗了,下面介绍下每一部分。

  1. Vision Encoder: 本文用的是SigLip, 类似于clip的模型,目的是把一个输入为 n ∗ f ∗ c ∗ h ∗ w n*f*c*h*w nfc

相关文章:

自动驾驶之DriveMM: All-in-One Large Multimodal Model for Autonomous Driving

1. 写在前面 工作之后,主要从事于偏工程比较多的内容, 很少有机会读论文了,但2025年,由于之前有些算法的背景, 后面可能会接触一些多模态大模型相关的工作,所以又调头有点往算法的方向偏移, 而算法呢,很重要的一点就是阅读论文。2025年,再拾起论文这块的工作。 今天…...

Spring Boot 配置(官网文档解读)

目录 摘要 Spring Boot 配置加载顺序 配置文件加载顺序 Spring Boot 配置加载方式 Value Value 注解简单示例 ConfigurationProperties 启动 ConfigurationProperties ConfigurationProperties 验证 ConfigurationProperties 与 Value 对比 Autowired Autowired 自…...

SparkSQL数据源与数据存储

文章目录 1. 大数据分析流程2. Spark SQL数据源2.1 SparkSQL常见数据源2.2 SparkSQL支持的文本格式2.3 加载外部数据源步骤 3. 本地文件系统加载数据3.1 本地文件系统加载JSON格式数据3.1.1 概述3.1.2 案例演示 3.2 本地文件系统加载CSV格式数据3.2.1 概述3.2.2 案例演示 3.3 本…...

【BQ3568HM开发板】开箱测试

引言 很荣幸入选了“电子发烧友”的贝启科技BQ3568HM开源鸿蒙开发板评测活动&#xff0c;上周在出差&#xff0c;今天才有机会开箱一下开发板&#xff0c;简单测试一下。 开机测试 插上电源开机后&#xff0c;系统显示的是润和的DAYU的logo&#xff0c;看来厂商提供的软件包…...

3D 模型格式转换之 STP 转 STL 深度解析

在 3D 模型的多元世界中&#xff0c;格式如同语言&#xff0c;不同格式适用于不同场景。STP 和 STL 是两种常见格式&#xff0c;本文将深入剖析 STP 转 STL 的相关内容。 一、STP 与 STL 格式基础 &#xff08;一&#xff09;STP 格式剖析 STP&#xff0c;即标准交换格式&am…...

MySQL数据库的数据文件保存在哪?MySQL数据存在哪里

在安装好MySQL数据库使用一段时间后&#xff0c;会产生许多的数据库和数据。那这些数据库的数据文件存放在本地文件夹的什么位置呢 一、默认位置 一般来说MySQL数据库的数据文件都是存放在data文件夹之中&#xff0c;但是根据使用的存储引擎不同&#xff0c;产生的一些文件也…...

低代码系统-UI设计器核心介绍

为什么会有UI设计器 最开始的UI设计器其实是为了满足企业门户的需求而产生的&#xff0c;后面因为表单设计器的功能有限&#xff0c;所以干脆就用了一套设计器。 UI设计器从功能使用上来说&#xff0c;跟表单设计器没有多大区别&#xff0c;只是多了组件和加强了事件和组件的能…...

ubuntu20.04有亮度调节条但是调节时亮度不变

尝试了修改grub文件&#xff0c;没有作用&#xff0c;下载了brightness-controllor&#xff0c;问题解决了。 sudo add-apt-repository ppa:apandada1/brightness-controller sudo apt update sudo apt install brightness-controller 之后在应用软件中找到brightness-contro…...

USART_串口通讯轮询案例(HAL库实现)

引言 前面讲述的串口通讯案例是使用寄存器方式实现的&#xff0c;有利于深入理解串口通讯底层原理&#xff0c;但其开发效率较低&#xff1b;对此&#xff0c;我们这里再讲基于HAL库实现的串口通讯轮询案例&#xff0c;实现高效开发。当然&#xff0c;本次案例需求仍然和前面寄…...

【前端】CSS学习笔记(2)

目录 CSS3新特性圆角阴影动画keyframes 创建动画animation 执行动画timing-function 时间函数direction 播放方向过渡动画&#xff08;transition&#xff09; 媒体查询设置meta标签媒体查询语法 雪碧图字体图标 CSS3新特性 圆角 使用CSS3border-radius属性&#xff0c;你可以…...

【esp32小程序】小程序篇02——连接git

一、创建仓库 进入gitee官网&#xff0c;登录&#xff08;如果没有gitee账号的就自行注册一下&#xff09;。 点击号-->新建仓库 填写好必填信息&#xff0c;然后点击“创建” 二、微信开发者工具配置 在微信开发者工具打开我们的项目。按下面的步骤依次点击 三、验证 点…...

echarts柱状图象形图,支持横向滑动

展示效果 代码 let xData [2020,2021,2022,2023, 2024, 2025, 2026]; let yData [267,2667,2467,2667, 3234, 4436,666]; option {grid: {left: 5%,right: 5%,top: 15%,bottom: 5%,containLabel: true},// 滚动条dataZoom: [{show: true,type: inside,zoomLock: true,throt…...

YOLO系列代码

Test-Time Augmentation TTA (Test Time Augmentation)是指在test过程中进行数据增强。其思想非常简单,就是在评测阶段,给每个输入进行多种数据增广变换,将一个输入变成多个输入,然后再merge起来一起输出,形成一种ensemble的效果,可以用来提点。参考:​​​​​​​​​…...

HTML根元素<html>的语言属性lang:<html lang=“en“>

诸神缄默不语-个人CSDN博文目录 在编写HTML页面时&#xff0c;通常会看到<html lang"en">这行代码&#xff0c;特别是在网页的开头部分&#xff0c;就在<!DOCTYPE html>后面。许多开发者可能对这个属性的含义不太了解&#xff0c;它到底有什么作用&…...

opencv在图片上添加中文汉字(c++以及python)

opencv在图片上添加中文汉字&#xff08;c以及python&#xff09;_c opencv绘制中文 知乎-CSDN博客 环境&#xff1a; ubuntu18.04 desktopopencv 3.4.15 opencv是不支持中文的。 这里C代码是采用替换原图的像素点来实现的&#xff0c;实现之前我们先了解一下汉字点阵字库。…...

Perplexity AI 周六向 TikTok 母公司字节跳动递交了一项提案

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Java连接TDengine和MySQL双数据源

git文件地址&#xff1a;项目首页 - SpringBoot连接TDengine和MySQL双数据源:SpringBoot连接TDengine和MySQL双数据源 - GitCode 1、yml配置 spring:datasource:druid:mysql:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/testusername: roo…...

Web3 游戏周报(1.13 - 1.19)

回顾上周的区块链游戏概况&#xff0c;查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【1.13–1.19】Web3 游戏行业动态 索尼区块解决方案实验室 (Sony BSL) 宣布其以太坊 L2 区块链 Soneium 主网上线。Hyve Labs 融资 275 万美元&#xff0c;推动 Web3 游戏基础设…...

[深度学习]机器学习和深度学习

机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是&#xff0c;让计算…...

区块链技术

区块链是一个信息技术领域的术语&#xff0c;它代表了去中心化、安全性高、透明度强的分布式账本技术。以下是对区块链的详细介绍&#xff1a; 一、定义与基本原理 区块链&#xff08;Blockchain&#xff09;是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

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

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

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...