当前位置: 首页 > 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;是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案…...

一文搞懂 Spring Cloud:从入门到实战的微服务全景指南(建议收藏)蜗

一、中间件是啥&#xff1f;咱用“餐厅”打个比方 想象一下&#xff0c;你的FastAPI应用是个高级餐厅。 ?? 顾客&#xff08;客户端请求&#xff09;来到门口。- 迎宾&#xff08;CORS中间件&#xff09;&#xff1a;先看你是不是从允许的街区&#xff08;域名&#xff09;来…...

实测Z-Image-Turbo_UI界面:生成效果展示与使用技巧分享

实测Z-Image-Turbo_UI界面&#xff1a;生成效果展示与使用技巧分享 1. 快速上手&#xff1a;UI界面初体验 Z-Image-Turbo_UI界面提供了一种极其简单的图像生成方式&#xff0c;无需复杂配置即可快速体验AI绘画的魅力。启动服务后&#xff0c;只需在浏览器中输入http://localh…...

RAGAS 了解吗?它的评估指标有哪些?评估流程是怎样的?评估数据如何获取和构造?

1. 题目分析做过 RAG 项目的人大概都有过这种体验&#xff1a;系统搭完了&#xff0c;效果怎么样&#xff1f;说好也行&#xff0c;说不好也行&#xff0c;全凭主观感觉。你觉得检索结果挺相关的&#xff0c;老板觉得回答不够精准&#xff1b;你觉得答案已经很准了&#xff0c;…...

Graphormer在嵌入式边缘计算设备的轻量化部署研究

Graphormer在嵌入式边缘计算设备的轻量化部署研究 1. 边缘计算中的图神经网络应用场景 在医疗诊断、材料研发和药物发现等领域&#xff0c;分子特性分析是一个关键环节。传统方法依赖实验室测试和计算模拟&#xff0c;不仅成本高昂&#xff0c;而且耗时漫长。Graphormer这类图…...

[PL2303老芯片兼容性困境]:驱动适配方案实现设备激活(适用于工业控制与嵌入式开发场景)

[PL2303老芯片兼容性困境]&#xff1a;驱动适配方案实现设备激活&#xff08;适用于工业控制与嵌入式开发场景&#xff09; 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 …...

Swoole + Redis Cluster 实时推送系统(千万级QPS压测实录+全链路监控配置清单)

第一章&#xff1a;Swoole Redis Cluster 实时推送系统概览现代高并发实时推送场景&#xff08;如聊天消息、行情更新、协同编辑&#xff09;对系统吞吐量、低延迟与水平扩展能力提出严苛要求。本系统以 Swoole 作为高性能异步协程服务器核心&#xff0c;结合 Redis Cluster 提…...

MuseTalk技术解析与实践指南:实时高质量AI唇同步视频实现方案

MuseTalk技术解析与实践指南&#xff1a;实时高质量AI唇同步视频实现方案 【免费下载链接】MuseTalk MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting 项目地址: https://gitcode.com/gh_mirrors/mu/MuseTalk MuseTalk作为腾讯音乐娱…...

VUE.JS实践--事件对象和计算属性

一、什么是事件对象1.2 演示事件对象&#xff0c;在控制台输出 单击事件 的两种方法。<template><!-- 两个作用函数完全一样&#xff1a;接收事件对象 → 打印到控制台 --><!-- 按钮1&#xff1a;点击触发 greet 方法 --><button click"greet"…...

SecGPT-14B入门必看:安全研究员如何定制system prompt提升漏洞分析深度

SecGPT-14B入门必看&#xff1a;安全研究员如何定制system prompt提升漏洞分析深度 作为一名在安全领域摸爬滚打多年的老兵&#xff0c;我深知漏洞分析工作的痛点&#xff1a;面对海量的日志、复杂的攻击链和模糊的威胁情报&#xff0c;如何快速、准确地定位问题核心&#xff…...

终极Min浏览器标签页预览指南:提升多任务处理效率的10个实用技巧

终极Min浏览器标签页预览指南&#xff1a;提升多任务处理效率的10个实用技巧 【免费下载链接】min A fast, minimal browser that protects your privacy 项目地址: https://gitcode.com/gh_mirrors/mi/min Min浏览器作为一款轻量级隐私保护浏览器&#xff0c;不仅以其简…...