MagicDriveDiT:具有自适应控制的自动驾驶高分辨率长视频生成

24年11月来自香港中文大学、香港科技大学和华为公司的论文“MagicDriveDiT: High-Resolution Long Video Generation for Autonomous Driving with Adaptive Control”。

扩散模型的快速进步极大地改善视频合成,特别是可控视频生成,这对于自动驾驶等应用至关重要。然而,现有的方法受到可扩展性和控制条件集成方式的限制,无法满足自动驾驶应用对高分辨率和长视频的需求。本文介绍一种基于 DiT 架构的方法 MagicDriveDiT,并解决这些挑战。该方法通过流匹配增强可扩展性,并采用渐进式训练策略来管理复杂的场景。通过结合时空条件编码,MagicDriveDiT 实现对时空潜变量的精确控制。综合实验表明,其在生成更高分辨率、更多帧的逼真街景视频方面性能卓越。 Magic-DriveDiT 显著提高视频生成质量和时空控制,扩展其在自动驾驶各种任务中的可能应用。

如图所示 MagicDriveDiT 生成具有多视图和控制支持的高分辨率长视频,大大超出以前研究的限制 [11, 12, 15, 35]。

请添加图片描述

随着扩散模型的快速发展,视频合成[1–3, 14]取得重大进步。可控视频合成[16,20]极大地促进合成数据在众多下游应用中的使用[37]。特别是在自动驾驶领域,MagicDrive[11]、DriveDreamer[35]等技术展示可控的多视角视频合成如何生成高质量的街景视频,有效地辅助下游任务,提升自主系统的性能和可靠性。

高分辨率长视频合成,是内容生成领域的研究重点[5,27],也是自动驾驶技术的高度需求。具体来说,自动驾驶感知模型需要更高分辨率的输入来辨别数据中的细节和远处的目标[22]。视频合成在三维重建中的应用也需要高分辨率来捕捉复杂的细节[10,45]。另一方面,长视频为更全面地评估自动驾驶算法提供更多内容[42]。从技术角度来看,高分辨率是提升生成质量的直接方法 [5],而长视频包含更多动态内容 [40],有助于模型有效地学习世界规律 [3]。

然而,合成高分辨率长视频面临两大挑战。首先,数据量的增加需要生成模型具有较高的可扩展性,才能有效支持高质量的合成。其次,视频生成中的几何控制带来重大挑战。先前的可控技术主要用于图像生成[11、18、27、35、38、39],重点关注空间潜空间。实现高分辨率长视频合成,需要集成空间和时间信息的 3D 压缩 VAE [3, 19, 43, 47]。如图所示,利用时空潜因素会使以前的控制方法显得不足。这需要新的方法来有效地管理合成视频中的元素,确保在给定条件下的空间和时间一致性。

请添加图片描述

自动驾驶中的视频生成。视频生成对于自动驾驶至关重要,可用于训练感知模型[11]、测试[42]和场景重建[10,45]。它要求广泛的视野和动态物体运动处理,需要生成模型的可控性[11]和具有更多帧[10]和多摄像机视角[45]的高分辨率视频制作[22]。扩散模型已经改进可控的多视角视频生成,但现有模型 [18、27、38、39、46] 缺乏足够的分辨率和帧数来用于数据引擎应用 [10、11、45] 和策略测试 [17]。

扩散模型和 DiT 架构。扩散模型[13, 32, 48]通过学习从高斯噪声到样本的去噪步骤来生成数据,广泛应用于图像[8, 31, 37]和视频生成[14]。从建模的角度来看,流匹配[9, 23]简化扩散模型的建模,提高了训练和推理的效率。从实现的角度来看,扩散模型的架构从 UNet [13] 转变为 DiT,因为它具有更好的可扩展性 [6, 30],尤其是对于高分辨率任务 [5]。

条件生成。条件生成对于利用生成模型的各种应用至关重要。 LDM [31] 中的交叉注意层和 ControlNet [44] 对网格状控制信号的加性编码,是可控扩散生成的主要方法。在街景生成中,MagicDrive[11]和MagicDrive3D[10]集成了3D边框、BEV地图、自车轨迹和相机姿势,实现多视角街景合成。然而,这些方法仅限于空间编码,不能直接适用于时空 VAE 潜函数 [43],如上图所示。

Magic DriveDiT 是一种基于 DiT 架构的新方法,旨在解决上述高分辨率、长街景视频合成和精确控制的挑战。

给定一个框架描述序列 {S_t}, t ∈ {0, . . . , T },目标是从潜变量 z ∼ N (0, I) 生成相应的街景视频,即 {I_c, t} = G({S_t}, z),其中 c ∈ {0,. …,C} 表示 C 个相机视图。这里,高分辨率说明 I 的分辨率高,长视频说明 T 很大。

问题描述。为了描述街景视频,采用[10,11]中概述的条件。具体来说,帧描述 S_t ={C, M_t, B_t, L, Tr_t0} 包括相机姿态 {C_c} = [R_c, t_c]、道路地图 M_t ∈ {0, 1}w×h×c 表示 BEV 中一个 w × h 大小的道路区域,具有 c 个语义类别,3D 边框 B_t = {(c_i, b_i)},其中每个目标由一个边框 b_i = {(x_j, y_j, z_j)} 和类 c_i、文本 L 描述添加整个视频的信息(例如天气和时间)以及自车辆轨迹 Tr_t0,该轨迹描述从每帧的 LiDAR 坐标到第一帧的转换,即 Tr_t0 =[R_t0, t_t0]。除 Tr_t^0 之外的所有几何信息,都是根据本车的本地 LiDAR 坐标参数化的。

LDM 和流匹配。对于高分辨率图像生成,Rombach [31] 提出潜扩散模型 (LDM),使用预训练的 VAE 进行图像下采样,并使用扩散模型进行潜生成。这种方式在图像生成[6, 9]和视频生成[1, 3, 47]中被广泛采用。本文MagicDriveDiT 也是基于 VAE+扩散 公式。随着扩散模型的最新进展,Esser [9] 提出通过无模拟的校正流 [24, 25] 和 v-预测损失 [9] 来训练大规模扩散模型。

对于模型架构,如图所示,Magic-DriveDiT 引入一种基于 DiT 的新扩散模型,用于可控街景生成,利用 Zheng[47]的 STDiT-3 块。这些块具有单独的空间和时间模块,以增强信息处理。

请添加图片描述

架构设计上包含两项重大修改。首先,为了方便多视图生成,多视图 DiT (MVDiT) 块集成一个跨视图注意层 [11],如图左侧所示。其次,考虑到处理多个控制元素的需要,MagicDriveDiT它使用交叉注意[31]来处理文本、框、相机视图和轨迹,同时使用附加分支[44]来为地图注入控制信号。

然而,控制信号的空间编码[11, 27, 38, 39, 46]与时空潜变量不相容。因此,每个控制信号的编码器都被重新制定,例如上图右侧的时空边框编码器。

此外,MagicDriveDiT 采用渐进式引导训练策略,从图像过渡到低分辨率和短视频,最终过渡到高分辨率和长视频,以增强扩散模型的收敛。最后的训练阶段结合可变长度和分辨率的视频,允许模型生成不同分辨率的图像和视频,并推断出超出训练设置的更长帧数。
DiT 和 3D VAE。训练用于高分辨率和长视频生成的扩散模型需要大量计算,并且需要大量的 GPU 内存。 DiT 和 3D VAE 在扩展这些方面的扩散模型方面发挥着关键作用。

正如 Peebles &Xie [30] 所指出的,模型 Gflops 和 FID 之间存在很强的负相关性,这使得 DiT 在计算效率方面比 UNet [11] 等架构更可取。对于 GPU 内存,3D VAE 提供时间下采样。典型的 2D VAE [31] 将图像的高度和宽度都压缩 8 倍,实现 64 倍的压缩比。相比之下,3D VAE [43] 将时间信息压缩 4 倍,得到 256 倍的压缩率,显著减少 pach 化潜变量的序列长度和内存消耗,这对 Transformer [7] 尤其有益。此外,架构统一的趋势 [34] 使得 DiT 能够利用先进的并行化方法(例如序列并行 [47])来克服单个 GPU 内存限制,从而实现更高的分辨率和更长的视频生成。

采用 3D VAE 的一个主要挑战是几何控制。几何控制在空间上管理每帧内容。使用 2D VAE,T 帧被编码为 T 潜变量。使用 T 几何描述子 {S_t},t ∈ {1,…,T},视频几何控制退化为图像上的空间控制 [28],因为控制信号和潜变量信号在时间上是对齐的。然而,3D VAE 产生 T /f 个潜变量(其中 f 是时间压缩比),使控制信号与潜变量不一致,并导致以前的控制技术 [11, 27, 39] 无效。

时空调节技术。对于 MagicDriveDiT 中的几何控制,引入时空编码来将控制信号与时空潜变量对齐。这涉及重新调整场景描述子(S_t)内的地图(M_t)、边框(B_t)和轨迹(Tr_t^0)。地图以网格数据的形式呈现,易于管理。通过扩展 ControlNet 的 [44] 设计,利用 3D VAE 中具有新可训练参数的时间下采样模块,来对齐控制块和基础块之间的特征,如图 (a) 所示。

请添加图片描述

对于 3D 框,对不可见框应用填充,以在视图和帧之间保持一致的框序列长度。采用带有时间Transformer和 RoPE [33] 的下采样模块来捕获时间相关性,创建与视频潜向量对齐的时空嵌入,如上图 (b) 所示。通过将用于边框的 MLP 替换为用于相机姿势的 MLP,边框的时空编码器也可以适应自车轨迹 (Tr_t^0)。[11]所有的下采样率都与所采用的 3D VAE [43] 一致,即分别以 8n 或 8n + 1 作为输入,以 2n 或 2n + 1 作为输出。

为了加快训练期间的模型收敛,根据单次训练迭代的持续时间来安排训练数据。具体来说,采用三阶段训练方法:最初使用低分辨率图像进行引导训练,过渡到低分辨率短视频,最终采用高分辨率长视频训练。

这一训练策略基于两点观察。首先,在可控生成中,模型在学习可控性之前最初会优化更高的内容质量,Gao [12] 也观察到这种模式 。从头开始训练模型需要经过多次迭代才能收敛。渐进式过渡方法使模型能够更快地获得可控性。其次,在阶段转换过程中,与长视频可控性相比,模型能够更快地适应高分辨率[5]。因此,从第一阶段开始训练可控性,并专注于使用(短)视频而不是图像来优化更多迭代。

在训练流程的最后两个阶段,结合不同分辨率和长度的视频进行训练。具体来说,在第二阶段,使用长度最多为 65 帧、最大分辨率为 424×800 的视频进行训练。在第三阶段,将最多 241 帧(数据集的最大帧数)和最多 848×1600(数据集的最大分辨率)分辨率的视频混合在一起。

与使用单一分辨率和长度的训练相比,这种混合方法允许模型快速理解分辨率和帧数维度上的信息。因此,最终模型支持生成各种分辨率(224×400、424×800、848×1600)和帧数(1-241 帧)。它还支持在两个维度上进行外推,允许超出训练配置进行采样,例如 129 帧的 848×1600 或 241 帧的 424×800。

在应用中,通过可变长度和分辨率训练,Magic-DriveDiT 可以有效地生成超出训练设置长度的视频。尽管对最大 129×424×800 和 241×224×400 的视频进行训练,MagicDriveDiT 成功生成 241×424×800 的视频(nuScenes 的全长),这是训练样本长度的两倍,如图所示。为了进一步验证此功能,比较短视频(17 帧)的前 16 帧 FVD 和长视频(65 帧及以上)的每 16 帧 FVD。16 帧 FVD 在可见和推断的配置中保持一致,延伸到 129×848×1600×6 代(这不是上限)。这证实该模型强大的泛化能力。

在这里插入图片描述

受到Zheng [47]的启发,采用序列并行来训练具有较大序列长度的 DiT 模型。如图所示,将空间维度上的每个输入划分到不同的 GPU 上。大多数操作可以在单个 GPU 内执行;然而,注意障碍需要沟通。在图的右侧,演示了通信过程,其中收集完整序列,但注意头分布在不同的 GPU 上。这种方法允许 GPU 之间进行 P2P 通信,同时保持大致相等的负载。

请添加图片描述

MagicDriveDiT 通过渐进式引导方法进行训练,具有可变长度和分辨率数据配置。因此,数据混合方法对应三个训练阶段。

受[47]的启发,为了最大限度地利用GPU资源,采用类似桶(bucket)的方法来调整数据组成。具体来说,每个GPU进程(或序列并行通信组)只加载一种类型的数据,以保证批次维度的对齐。以批次大小 = 1 时迭代时间最长的视频格式训练时间为基准,调整其他数据格式的批次大小,使得每种类型的运行速度大致相同。值得注意的是,在第三阶段训练期间,由于完整视频片段的数量有限,在一个 epoch 内重复此类数据。这确保不同类型的数据在一个epoch内具有相似大小的批次数。

nuScenes 数据集包括 12Hz 未注释数据和 2Hz 注释数据。根据实验,高帧率视频更有利于生成模型学习。因此,遵循[11],使用ASAP[36]将 2Hz 注释插值到 12Hz 注释。虽然插值结果并不完全准确,但并不影响视频生成的训练。

用于生成的语义类别。遵循[11]进行数据设置。具体来说,对于目标,十个类别包括汽车、公共汽车、卡车、拖车、摩托车、自行车、工程车辆、行人、障碍物和交通锥。对于道路地图,八个类别包括可行驶区域、人行横道、人行道、停车线、停车区、道路分隔线、车道分隔线和路障。

优化训练。使用 Adam 优化器和 8e−5 的恒定学习率训练扩散模型,并在最后两个阶段进行 3000 步线性预热。主要使用 32 个 NVIDIA A800 GPU(80G)进行训练。模型也可以用Ascend 910B(64G)进行训练。每个阶段的批次大小根据迭代速度进行设置,遵循[47]的 bucket 策略。例如,在第二阶段中,将 33×424×800 的批次大小设置为 1,这大约需要 30 秒/次。然后将批次大小设置为其他视频类型,以实现大约 30s/次。该策略可以保证不同GPU进程之间的负载均衡。

推理过程。默认情况下,使用 30 步的 Rectified Flow [9] 和 2.0 的无分类器指导 (CFG) 尺度对图像/视频进行采样。为了支持 CFG,以 15% 的速度随机删除不同的条件,包括文本、相机、自我轨迹和边框的嵌入。遵循 Gao [11] 的研究使用 {0} 作为 CFG 推理中映射的空条件。在推断高分辨率长视频时,还使用序列并行来适应单个 GPU 的有限内存。

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

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

相关文章

大模型架构记录1

整体的学习架构 一 模型构建和应用 1 训练数据 (重点) 2 模型设计 (transformer) 3 模型训练 (fine-tuning 微调) (产品经理后面可能能做) 4 benchmark (评测) 5 memory (内存)(知识图谱,向量数据库) 6 搜索技…

【Liunx专栏_3】Liunx进程概念知识点

文章目录 前言1、冯诺依曼体系结构2、操作系统2.1、系统调用 3、进程3.1、进程概念3.2、进程描述—PCB3.3、查看进程信息3.4、通过系统调用获取进程标识符3.5、通过系统调用创建子进程—fork() 4、进程状态5、僵尸进程6、孤儿进程7、进程优先级7.1、PRI和NI是什么?7…

Nacos简介、安装与使用(保姆级教程!!!)

目录 一、Nacos 简介 1. 什么是 Nacos 2. Nacos 的核心功能 3. Nacos 的优势 二、Nacos 安装 1. 环境准备 2. 下载 Nacos 3. 解压安装包 4. 启动 Nacos 三、Nacos 使用 1. 服务注册与发现 (1)引入依赖 (2)配置 Nacos…

多线程JUC(二)

目录 一、等待唤醒机制1.生产者消费者2.阻塞队列3.线程的状态 二、线程池1.理解与使用2.自定义线程池 三、线程池额外知识 一、等待唤醒机制 1.生产者消费者 等待唤醒机制可以简单的理解为下图。厨师相当于生产者,吃货相当于消费者。当桌子(缓冲区&…

【仿muduo库one thread one loop式并发服务器实现】

文章目录 一、项目介绍1-1、项目总体简介1-2、项目开发环境1-3、项目核心技术1-4、项目开发流程1-5、项目如何使用 二、框架设计2-1、功能模块划分2-1-1、SERVER模块2-1-2、协议模块 2-2、项目蓝图2-2-1、整体图2-2-2、模块关系图2-2-2-1、Connection 模块关系图2-2-2-2、Accep…

关于tresos Studio(EB)的MCAL配置之GPT

概念 GPT,全称General Purpose Timer,就是个通用定时器,取的名字奇怪了点。定时器是一定要的,要么提供给BSW去使用,要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…

STM32Cubemx配置E22-xxxT22D lora模块实现定点传输

文章目录 一、STM32Cubemx配置二、定点传输**什么是定点传输?****定点传输的特点****定点传输的工作方式****E22 模块定点传输配置****如何启用定点传输?****示例** **应用场景****总结** **配置 1:C0 00 07 00 02 04 62 00 17 40****解析** …

多线程-线程本地变量ThreadLocal

简介 ThreadLocal是线程本地变量,用于存储独属于线程的变量,这些变量可以在同一个线程内跨方法、跨类传递。每一个ThreadLocal对象,只能为当前线程关联一个数据,如果要为当前线程关联多个数据,就需要使用多个ThreadLo…

Python练习(握手问题,进制转换,日期问题,位运算,求和)

一. 握手问题 代码实现 ans0for i in range(1,51):for j in range(i1,51):if i<7 and j<7:continueelse:ans 1print(ans) 这道题可以看成是50个人都握了手减去7个人没握手的次数 答案&#xff1a;1204 二.将十进制整数拆解 2.1门牌制作 代码实现 ans0for i in ra…

DeepSeek 角色设定与风格控制

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

网络原理--HTTP协议

http中文名为超文本传输协议&#xff0c;所谓“超文本”就是指传输范围超出了能在UTF8等码表上找到的字符的范围&#xff0c;包含一些图片&#xff0c;特殊格式之类的。 HTTP的发展简介 从图中可以看出到现在已经发展出了HTTP3&#xff0c;但是市面上的主流还是以HTTP1.0为主。…

学习工具的一天之(burp)

第一呢一定是先下载 【Java环境】&#xff1a;Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…

Java后端高频面经——Mysql

3. Mysql(21) 第三范式的作用与原理&#xff1f;&#xff08;B站&#xff09; 数据库范式有 3 种&#xff1a; 1NF(第一范式)&#xff1a;属性不可再分。 1NF 是所有关系型数据库的最基本要求 &#xff0c;也就是说关系型数据库中创建的表一定满足第一范式。 2NF(第二范式)&am…

React:Router路由

ReactRouter引入 在index.js里编辑&#xff0c;创建路由&#xff0c;绑定路由 import React from react; import ReactDOM from react-dom/client; import ./index.css; import reportWebVitals from ./reportWebVitals; import { createBrowserRouter, RouterProvider } from…

什么是XSS

文章目录 前言1. 前端知识2. 什么是XSS3. 漏洞挖掘4. 参考 前言 之前对XSS的理解就是停留在弹窗&#xff0c;认为XSS这种漏洞真的是漏洞吗&#xff1f;安全学习了蛮久了&#xff0c;也应该对XSS有更进一步的认识了。 1. 前端知识 现代浏览器是一个高度复杂的软件系统&#xf…

字节跳动发布 Trae AI IDE!支持 DeepSeek R1 V3,AI 编程新时代来了!

3 月 3 日&#xff0c;字节跳动重磅发布国内首款 AI 原生集成开发环境&#xff08;AI IDE&#xff09;——Trae 国内版&#xff01; Trae 不只是一个传统的 IDE&#xff0c;它深度融合 AI&#xff0c;搭载 doubao-1.5-pro 大模型&#xff0c;同时支持DeepSeek R1 & V3&…

QT 作业 day4

作业 代码 Widget.h class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:// 槽函数void on_listWidget_itemDoubleClicked(QListWidgetItem *item);private:Ui::Widget *ui; }; #endif Widget.cpp Widget::Widget(QW…

新版 FMEA 七步法 - PFMEA 第2步“结构分析”的关键要点 | FMEA软件

基于AIAG & VDA FMEA七步法&#xff0c;在 PFMEA 第二步“结构分析”中&#xff0c;FMEA软件 CoreFMEA 总结了关键要点如下&#xff1a; 1. 明确分析目的与范围 界定边界&#xff1a;清晰确定要分析的制造系统边界&#xff0c;明确哪些过程、设备、人员等包含在分析范围内…

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…

Python-04BeautifulSoup网络爬虫

2025-03-04-BeautifulSoup网络爬虫 记录BeautifulSoup网络爬虫的核心知识点 文章目录 2025-03-04-BeautifulSoup网络爬虫 [toc]1-参考网址2-学习要点3-核心知识点1. 安装2. 导入必要的库3. 发送 HTTP 请求4. 创建 BeautifulSoup 对象5. 解析 HTML 内容5.1 查找标签5.2 根据属性…