首个多视角自动驾驶场景视频生成世界模型 | DrivingDiffusion: BEV数据和仿真新思路
笔者的一些个人思考
在自动驾驶领域,随着BEV-based子任务/端到端方案的发展,高质量的多视图训练数据和相应的仿真场景构建愈发重要。针对当下任务的痛点,“高质量”可以解耦成三个方面:
- 不同维度上的长尾场景:如障碍物数据中近距离的车辆以及切车过程中精准的朝向角,以及车道线数据中不同曲率的弯道或较难采集的匝道/汇入/合流等场景。这些往往靠大量的数据采集和复杂的数据挖掘策略,成本高昂。
- 3D真值-图像的高度一致:当下的BEV数据获取往往受到传感器安装/标定,高精地图以及重建算法本身的误差影响。这导致了我们很难保证数据中的每一组【3D真值-图像-传感器参数】 的精确一致。
- 满足上述条件基础上的时序数据:连续帧的多视角图像和相应真值,这对于当前的感知/预测/决策/端到端等任务都是必不可少的。
而对仿真来说,可以直接通过布局进行满足上述条件的视频生成,无疑是最直接的multi-agent传感器输入的构造方式。而DrivingDiffusion则从一个新的角度解决了上述问题。
什么是DrivingDiffusion?
- DrivingDiffusion是一个用于自动驾驶场景生成的扩散模型框架,实现了布局控制的多视角图像/视频生成并分别实现了SOTA。
- DrivingDiffusion-Future作为自动驾驶世界模型有根据单帧图像预测未来场景视频并根据语言提示影响主车/他车运动规划的能力。
DrivingDiffusion生成效果是怎么样的?
有需要的同学可以先看看项目主页:https://drivingdiffusion.github.io
(1)DrivingDiffusion
布局控制的多视角图像生成
图中展示了以布局投影作为输入的multi-view图像生成效果。
调整布局:精确控制生成结果
图中上半部分展示了生成结果的多样性以及下文中模块设计的重要性。下半部分展示了对正后方的车辆进行扰动的结果,包含移动,转向,碰撞甚至悬浮在空中的场景的生成效果。
布局控制的多视角视频生成
上:DrivingDiffusion在nuScenes数据上训练后的视频生成结果。下:DrivingDiffusion在大量私有真实数据上训练后的视频生成结果。
(2)DrivingDiffusion-Future
根据输入帧+文本描述生成后续帧
使用单帧图像作为输入,根据对主车/他车的文本描述构建后续帧驾驶场景。图中前三行和第四行分别展示了对主车和他车行为进行文本描述控制后的生成效果。(绿框为输入,蓝框为输出)
根据输入帧直接生成后续帧
无需其他控制,仅使用单帧图像作为输入,预测后续帧驾驶场景。(绿框为输入,蓝框为输出)
DrivingDiffusion是如何解决上述问题的?
DrivingDiffusion首先人为地构造场景中的所有3D真值(障碍物/道路结构),在将真值投影为Layout图像后,以此为模型输入得到多相机视角下的真实图像/视频。之所以没有直接使用3D真值(BEV视图或按照编码后的实例)作为模型输入,而是使用参数进行投影后输入,是为了消除系统性的3D-2D一致性误差。(在这样的一组数据中,3D真值和车辆参数都是人为地按照实际需求构造的,前者带来了随意构造罕见场景数据能力,后者消除了传统数据生产中几何一致性的误差。)
此时还剩下一个问题:生成的图像/视频质量能否满足使用需求?
提到构造场景,大家往往会想到使用仿真引擎,然而其生成的数据和真实数据存在着较大的domain gap。GAN-based 方法的生成结果往往和实际真实数据的分布存在一定bias。而Diffusion Models基于马尔可夫链通过学习噪声来生成数据的特性,其生成结果的保真度较高,更适合替代真实数据使用。
DrivingDiffusion依照人为构造的场景和车辆参数,直接生成时序multi-view视图,不仅可以作为下游自动驾驶任务的训练数据,还可以构建用于反馈自动驾驶算法的仿真系统。
这里的“人为构造的场景”仅包含障碍物和道路结构信息,但DrivingDiffusion的框架可以轻松引入标志牌,红绿灯,施工区域等layout信息甚至low-level的occupancy grid/depth map等控制模式。
DrivingDiffusion方法概述
生成多视角视频时,有几个难点:
- 相较常见的图像生成,多视角视频生成新增了视角和时序两个维度,如何设计一个可以进行长视频生成的框架?如何保持跨视角一致性和跨帧一致性?
- 从自动驾驶任务的角度,场景中的实例至关重要,如何保证生成实例的质量?
DrivingDiffusion主要设计了一个通用的训练框架,将stable-diffusion-v1-4模型作为图像的预训练模型,并使用3D伪卷积将原有图像输入膨胀,用于处理视角/时序新增的维度后输入3D-Unet,在得到了处理新增维度的扩散模型后,进行了交替迭代式的视频扩展,通过关键帧控制和微调的操作保障了短时序和长时序的整体一致性。此外,DrivingDiffusion提出了Consistency Module和Local Prompt,分别解决了跨视角/跨帧一致性和实例质量的问题。
DrivingDiffusion生成长视频流程
- 单帧多视角模型:生成multi-view关键帧,
- 以关键帧作为额外控制,多视角共享的单视角时序模型:并行对各个view进行时序扩展,
- 以生成结果为额外控制的单帧多视角模型:时序并行地微调后续帧,
- 确定新关键帧并通过滑动窗口延长视频。
跨视角模型和时序模型的训练框架
- 对于multi-view模型和时序模型来说,3D-Unet的扩展维度分别为视角和时间。二者都有相同的布局控制器。作者认为后续帧可以从multi-view关键帧获取场景中的信息,并隐式地学习不同目标的关联信息。二者分别使用了不同的一致性注意力模块和相同的Local Prompt模块。
- 布局编码:障碍物类别/实例信息和道路结构分割布局,分别以不同的固定编码值编码为RGB图像,经过encode后输出布局token。
- 关键帧控制:所有的时序扩展过程,都采用了某一关键帧的multi-view图像,这是基于在短时序内的后续帧可以从关键帧获取信息的假设。所有的微调过程都以关键帧和其生成的后续某帧的multi-view图像作为额外控制,输出优化该帧跨视角一致性后multi-view图像。
- 基于特定视角的光流先验:对于时序模型,训练时只进行某个视角下数据的采样。额外使用提前统计的该视角图像下每个像素位置的光流先验值,编码后作为相机ID token,进行类似扩散过程中的time embedding对hidden层的交互控制。
Consistency Module & Local Prompt
Consistency Module分为两部分:一致性注意力机制和一致性关联损失。
一致性注意力机制关注了相邻视角和时序相关帧的交互,具体来说对于跨帧一致性仅仅关注存在overlap的左右相邻视角的信息交互,对于时序模型,每一帧只关注关键帧以及前一帧。这避免了全局交互带来的巨大计算量。
一致性关联损失通过像素级关联并回归位姿来添加几何约束,其梯度由一个预先训练的位姿回归器提供。该回归器基于LoFTR添加位姿回归head,并在相应数据集的真实数据上使用位姿真值进行训练。对于多视角模型和时序模型该模块分别监督相机相对位姿和主车运动位姿。
Local Prompt和Global Prompt配合,复用了CLIP和stable-diffusion-v1-4的参数语义,对特定类别实例区域进行局部增强。如图所示,在图像token和全局的文字描述提示的交叉注意力机制基础上,作者对某类别进行local prompt设计并使用该类别mask区域的图像token对local prompt进行查询。该过程最大程度地利用了原模型参数中在open domain的文本引导图像生成的概念。
DrivingDiffusion-Future方法概述
对于未来场景构建任务来说,DrivingDiffusion-Future使用了两种方式:一种是直接通过第一帧图像预测后续帧图像(视觉分支),并使用帧间光流作为辅助损失。这种方式较简单,但根据文本描述对后续生成帧进行生成的效果一般。另一种方式是在前者基础上新增了概念分支,该分支通过第一帧BEV视图预测后续帧BEV视图,这是因为对BEV视图的预测有助于模型捕捉驾驶场景的核心信息和建立概念。此时文本描述同时作用于两个分支,并通过BEV2PV的视角转换模块将概念分支的特征作用于视觉分支,其中视角转换模块的部分参数是通过使用真值图像替代噪声输入预先训练的(并在后续训练中冻结)。值得注意的是,主车控制文本描述控制器和他车控制/环境文本描述控制器是解耦的。
实验分析
为了评估模型的性能,DrivingDiffusion采用帧级Fréchet Inception Distance (FID)来评估生成图像的质量,相应地使用FVD来评估生成视频质量。所有指标都是在nuScenes验证集上计算的。如表1所示,和自动驾驶场景中的图像生成任务BEVGen 和视频生成任务DriveDreamer相比,DrivingDiffusion在不同设定下的性能指标都有较大优势。
尽管FID等方法通常用于衡量图像合成的质量,但它们并没有完全反馈任务的设计目标,也没有反映不同语义类别的合成质量。由于任务致力于生成与3D布局一致的多视图图像,DrivingDiffuison提出使用BEV感知模型指标来衡量一致性方面的性能:利用CVT和BEVFusion的官方模型作为评测器,采用与nuScenes验证集相同的以真实3D布局为条件的生成图像,对每组生成的图像进行CVT和BevFusion推理,然后将预测的结果与真实结果进行比较,对其中可驾驶区域的平均交叉路口(mIoU)分数和所有对象类的NDS进行了统计,如表2所示。实验结果表明,对合成数据评测集的感知指标和真实评测集的指标十分接近,这体现了生成结果和3D真值的高度一致性和图像质量的高保真度。
除了上述实验外,DrivingDiffusion针对其主要解决的问题——提升自动驾驶下游任务表现,进行了加入合成数据训练的实验。表3展示了合成数据增强在BEV感知任务中实现的性能改进。在原始训练数据中,存在长尾分布的问题,特别是小目标、近距车辆和车辆定向角度。DrivingDiffusion专注于为这些样本有限的类别生成额外的数据来解决这个问题。在增加了专注于改善障碍物朝向角度的分布的2000帧数据后,NDS略有改善,而mAOE从0.5613显著下降到0.5295。在使用6000帧更全面,更专注于罕见场景的合成数据来辅助训练后,可以观察到nuScenes验证集有显著的增强:NDS由0.412上升至0.434, mAOE由0.5613下降至0.5130。这证明了合成数据的数据增强给感知任务带来的显著的提升。使用者可以根据实际需求,对数据中各个维度的分布进行统计,再针对性地使用合成数据进行补充。
DrivingDiffusion的意义和未来工作
DrivingDiffuison同时实现了多视角的自动驾驶场景视频生成和未来预测的能力,对自动驾驶任务有着重大意义。其中布局和参数全部人为构造且3D-2D之间的转换通过投影而非依赖可学习的模型参数,这消除了在以往获取数据过程中的几何误差,有较强的实用价值。同时DrivingDiffuison的可扩展性极强,支持新增场景内容layout以及额外的controller,同时也可以通过超分辨率和视频插帧技术无损地提升生成质量。
在自动驾驶仿真中,关于Nerf的尝试越来越多。然而在街景生成这一任务上,对动静态内容的分离,大范围街区重建,解耦天气等维度的表观控制等等,带来了巨大工程量,此外Nerf往往需要再特定范围场景内进行训练后才可支持后续的仿真中的新视角合成任务。而DrivingDiffusion天然包含了一定的通识先验,包括视觉-文字的联系,对视觉内容的概念理解等,可以仅通过构造布局快速地根据需求建立一段场景。但正如上文所述,整个流程较为复杂,且对于长视频的生成需要后处理的模型微调和扩展。DrivingDiffusion将继续探索视角维度和时间维度的压缩,以及结合Nerf进行新视角生成和转换,持续提升生成质量以及可扩展性。
以上是首个多视角自动驾驶场景视频生成世界模型 | DrivingDiffusion: BEV数据和仿真新思路的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

写在前面&笔者的个人理解三维Gaussiansplatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新方法的特点是使用了数百万个3D高斯,这与神经辐射场(NeRF)方法有很大的不同,后者主要使用隐式的基于坐标的模型将空间坐标映射到像素值。3DGS凭借其明确的场景表示和可微分的渲染算法,不仅保证了实时渲染能力,而且引入了前所未有的控制和场景编辑水平。这将3DGS定位为下一代3D重建和表示的潜在游戏规则改变者。为此我们首次系统地概述了3DGS领域的最新发展和关

昨天面试被问到了是否做过长尾相关的问题,所以就想着简单总结一下。自动驾驶长尾问题是指自动驾驶汽车中的边缘情况,即发生概率较低的可能场景。感知的长尾问题是当前限制单车智能自动驾驶车辆运行设计域的主要原因之一。自动驾驶的底层架构和大部分技术问题已经被解决,剩下的5%的长尾问题,逐渐成了制约自动驾驶发展的关键。这些问题包括各种零碎的场景、极端的情况和无法预测的人类行为。自动驾驶中的边缘场景"长尾"是指自动驾驶汽车(AV)中的边缘情况,边缘情况是发生概率较低的可能场景。这些罕见的事件

0.写在前面&&个人理解自动驾驶系统依赖于先进的感知、决策和控制技术,通过使用各种传感器(如相机、激光雷达、雷达等)来感知周围环境,并利用算法和模型进行实时分析和决策。这使得车辆能够识别道路标志、检测和跟踪其他车辆、预测行人行为等,从而安全地操作和适应复杂的交通环境.这项技术目前引起了广泛的关注,并认为是未来交通领域的重要发展领域之一。但是,让自动驾驶变得困难的是弄清楚如何让汽车了解周围发生的事情。这需要自动驾驶系统中的三维物体检测算法可以准确地感知和描述周围环境中的物体,包括它们的位置、

StableDiffusion3的论文终于来了!这个模型于两周前发布,采用了与Sora相同的DiT(DiffusionTransformer)架构,一经发布就引起了不小的轰动。与之前版本相比,StableDiffusion3生成的图质量有了显着提升,现在支持多主题提示,并且文字书写效果也得到了改善,不再出现乱码情况。 StabilityAI指出,StableDiffusion3是一个系列模型,其参数量从800M到8B不等。这一参数范围意味着该模型可以在许多便携设备上直接运行,从而显着降低了使用AI

轨迹预测在自动驾驶中承担着重要的角色,自动驾驶轨迹预测是指通过分析车辆行驶过程中的各种数据,预测车辆未来的行驶轨迹。作为自动驾驶的核心模块,轨迹预测的质量对于下游的规划控制至关重要。轨迹预测任务技术栈丰富,需要熟悉自动驾驶动/静态感知、高精地图、车道线、神经网络架构(CNN&GNN&Transformer)技能等,入门难度很大!很多粉丝期望能够尽快上手轨迹预测,少踩坑,今天就为大家盘点下轨迹预测常见的一些问题和入门学习方法!入门相关知识1.预习的论文有没有切入顺序?A:先看survey,p

原标题:SIMPL:ASimpleandEfficientMulti-agentMotionPredictionBaselineforAutonomousDriving论文链接:https://arxiv.org/pdf/2402.02519.pdf代码链接:https://github.com/HKUST-Aerial-Robotics/SIMPL作者单位:香港科技大学大疆论文思路:本文提出了一种用于自动驾驶车辆的简单高效的运动预测基线(SIMPL)。与传统的以代理为中心(agent-cent

写在前面&出发点端到端的范式使用统一的框架在自动驾驶系统中实现多任务。尽管这种范式具有简单性和清晰性,但端到端的自动驾驶方法在子任务上的性能仍然远远落后于单任务方法。同时,先前端到端方法中广泛使用的密集鸟瞰图(BEV)特征使得扩展到更多模态或任务变得困难。这里提出了一种稀疏查找为中心的端到端自动驾驶范式(SparseAD),其中稀疏查找完全代表整个驾驶场景,包括空间、时间和任务,无需任何密集的BEV表示。具体来说,设计了一个统一的稀疏架构,用于包括检测、跟踪和在线地图绘制在内的任务感知。此外,重

最近一个月由于众所周知的一些原因,非常密集地和行业内的各种老师同学进行了交流。交流中必不可免的一个话题自然是端到端与火爆的特斯拉FSDV12。想借此机会,整理一下在当下这个时刻的一些想法和观点,供大家参考和讨论。如何定义端到端的自动驾驶系统,应该期望端到端解决什么问题?按照最传统的定义,端到端的系统指的是一套系统,输入传感器的原始信息,直接输出任务关心的变量。例如,在图像识别中,CNN相对于传统的特征提取器+分类器的方法就可以称之为端到端。在自动驾驶任务中,输入各种传感器的数据(相机/LiDAR
