谈谈端到端Diffusion扩散模型:从原理到车辆轨迹规划

作者 | 咖啡鱼 来源 |  焉知汽车

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心『扩散模型』技术交流群

本文只做学术分享,如有侵权,联系删文

最近车企的语言包里面出现了越来越多人工智能术语。再加上窗明几净的卡座,闪烁着程序代码的带鱼曲面屏,和手捧咖啡讨论算法的员工,以及时不时蹦出的VLA,LLM,VLM,模型,算法这些词汇,从外观和氛围上几乎无法区分新势力车企和高科技IT公司。

经常出现的一个词是Diffusion扩散模型,在多家前沿车企的术语集中频繁出现,比如理想汽车。

图理想汽车MindVLA大模型架构图,右上角的multi-agent trajectories依靠扩散模型生成,图片来自理想汽车

理想汽车使用Diffusion Planner与RLHF(人类反馈强化学习)联合训练,扩散模型(Diffusion Model)通过利用离线数据捕捉轨迹分布规律,能够生成复杂的优化轨迹。不同于传统的自回归方法,基于扩散的规划器通过一系列去噪步骤可以整体生成完整的优化轨迹,无需依赖前向动力学模型(主要是牛顿力学),有效解决了前向模型的局限性。前向模型的局限性主要是过分理想化,现实世界中存在大量的不确定性因素,如环境的随机干扰、传感器测量误差以及系统本身的参数变化等。前向模型通常难以准确地考虑这些不确定性,从而导致预测结果与实际情况不符。

图扩散模型示意图,来自论文《Diffusion Models for Reinforcement Learning: A Survey》

除了理想,还有毫末和华为也应用扩散模型。只不过华为是用扩散模型生成测试场景,不是生成车辆轨迹。

2025年1月28日,毫末智行联合清华大学AIR智能产业研究院等机构在ICLR 2025 上发布了Diffusion Planner。该算法基于Diffusion Transformer设计了自动驾驶规划模型架构,能高效处理复杂场景输入,联合建模周车运动预测与自车规划中的多模态驾驶行为。它利用扩散模型强大的数据分布拟合能力,精准捕捉复杂场景中周车与自车的多模态驾驶行为,解决了现有基于学习的规划方法对后处理的严重依赖问题。毫末团队已将该算法进入实车测试阶段,率先实现端到端方案在末端物流自动配送场景的应用落地。

2025年4月22日,华为在上海举办的智能技术大会上发布了乾崑智驾 ADS 4。其采用世界引擎 + 世界行为模型架构(WEWA 架构),通过云端的 AI 生成难例扩散模型,据报道模拟出了场景密度是真实世界1000倍的极端路况,包括暴雨中的鬼探头、施工路段突然变道等,一定程度上解决了行业在难例数据上的瓶颈问题,让自动驾驶系统在训练中遇到的极端情况远超现实,提升了算法的可靠性。

一、直观解析扩散模型原理


扩散模型(Diffusion Model)是一种基于概率模型的生成式模型,其灵感来源于物理中的扩散现象。正向扩散是对任何类型的数据(图像,声纹,轨迹等等)从清晰到模糊的过程,反向扩散是从模糊恢复清晰的过程。

在物理扩散现象中,比如将一滴墨水滴入水中,墨水分子会从浓度高的区域(墨水滴所在位置)向浓度低的区域(周围的清水)扩散,随着时间推移,墨水在水中逐渐均匀分布,最终整杯水颜色变得均匀,这个过程是不可逆的,系统的熵不断增加,趋向于混乱度更高的状态。

扩散模型的正向过程与之类似,从初始的真实数据样本(如一张清晰图像)开始,逐步向其添加噪声。就像墨水滴在水中扩散一样,噪声从低强度逐渐增加到高强度,数据样本也从具有明确结构和特征的状态逐渐变为更接近随机噪声的状态,这个过程也是一个熵增的过程,数据的有序性逐渐降低,最终变成类似于服从标准正态分布的噪声数据。

但是物理世界不存在反向扩散过程,在现实的物理世界中,扩散后的墨水很难自动再聚集回原来的一滴墨水状态,因为这违反了热力学第二定律。但在扩散模型的反向过程中,可以类比为一种“逆扩散” 或 “去扩散” 的纯粹想象过程。

1、扩散模型的运行过程

  • 正向扩散过程(Forward Diffusion Process):

1、初始状态:假设有一个真实的数据样本,比如一张清晰的图像(在图像生成领域),我们将其记为x0 ,它服从真实数据分布 p(x0 )。

2、添加噪声步骤:从 x0  开始,逐步向其添加噪声。这个过程可以看作是一个马尔可夫链,在每一个时间步 t(t=1,2,⋯,T),根据以下公式向当前数据 xt−1添加噪声:

在第t步,向xt−1 添加方差为βt 的高斯噪声,得到xt ,其中ϵt 是服从标准正态分布N(0,I)的随机噪声。随着t的增加,xt 逐渐变得更像纯噪声,最终xT 服从标准正态分布N(0,I)。

  • 反向扩散过程(Reverse Diffusion Process):

目标是从纯噪声xT 开始,逐步恢复到原始数据x0 。这是一个去噪的过程,通过学习一个条件概率分布pθ (xt−1 ∣xt )来实现,其中θ是模型需要学习的参数。θ这个参数,就是用神经网络表达的扩散模型的参数集合。

在反向过程的每一步t,根据当前的噪声xt 和模型参数θ,预测出前一步的干净数据xt−1 的分布。具体来说,通过神经网络(通常是 U-Net 等结构)来学习这个映射关系,网络的输入是xt 和时间步t的编码,输出是xt−1 的均值和方差(在一些简单的实现中,方差可以是固定的),即:

随着反向迭代的过程,均值应该趋于稳定不变,方差趋于0,表示最终输出从混沌趋于清晰。

  • 学习过程(Learning Process):

扩散模型的学习过程就是要调整参数θ,使得反向扩散过程能够尽可能准确地从噪声中恢复出原始数据。这通常通过最大化对数似然函数logpθ (x0 )来实现,但直接优化这个目标比较困难。

一种常用的方法是通过变分下界(Variational Lower Bound,VLB)来近似优化。具体来说,引入一个变分分布q(x1:T ∣x0 )来近似真实的后验分布p(x1:T ∣x0 ),然后通过优化变分下界VLB =Eq(x1:T ∣x0 ) [logpθ (x0 )−logq(x1:T ∣x0 )]来间接优化对数似然函数。在实际计算中,VLB 可以分解为多个项,通过对这些项的计算和优化来调整模型参数θ。

在训练完成后,扩散模型就可以根据学习到的反向扩散过程,从随机噪声中生成新的数据样本,这些样本具有与训练数据相似的分布和特征。

2、学习过程中所谓变分下界和变分分布,直观解释如下:

变分下界

想象有一个很难直接计算的东西,比如一个很复杂的数学问题,就像要算出一个超级复杂的图形的面积,但是又没有直接的办法去算。这时候,可以想办法找一个能算的、并且肯定比这个复杂图形面积小的另一个图形的面积来近似它。这个能算的、面积较小的图形的面积就是变分下界。这也是阿基米德计算圆面积的思路。在概率模型里,就是你想知道某个数据出现的概率(像一个很难算的“面积”),但是直接算不出来,就通过一些数学方法找到一个肯定小于这个概率的数值,这个数值就是变分下界。

它可以帮助你了解你所研究的概率模型的一些性质,虽然它不是真实的概率值,但可以通过不断优化它,让它尽可能地接近真实概率,这样就能对原来很难处理的概率模型有更好的理解和把握。

变分分布

假设要研究一群人的身高分布,但是直接去了解每个人的身高很困难。于是就先假设一个比较简单的分布,比如正态分布,来近似这群人的身高分布。这个假设的简单分布就是变分分布。在概率模型中,当你遇到一个很难直接处理的真实概率分布时,你就找一个形式比较简单、容易处理的分布来近似它,这个简单的分布就是变分分布。

作用:通过调整变分分布的参数,让它尽可能地接近真实分布,这样就可以用这个简单的变分分布来代替复杂的真实分布进行各种计算和分析,从而简化问题的处理过程。

而变分两个字体现在哪里?变分是泛函的一个概念,表示在优化过程中,原函数的参数发生变化(比如多项式函数每一项前面的系数),要寻找一族函数的最优参数。

一般的、非变分的优化,原函数始终不变,只是在原函数上寻找某些最优点,比如极小点或者极大点。

在神经网络的学习过程中,其参数θ始终是在调整的,每一组不同的θ就造成一个不同的函数,所以神经网络的训练过程天然地是变分的。

3、U-Net用于扩散模型

提到的U-Net是一种用于图像分割的深度学习神经网络架构,其名称来源于其独特的 U 型结构。

图U-Net网络结构图,图片来自网络

网络结构三部分组成:


编码器(收缩路径):由多个卷积层和池化层组成,类似于传统的卷积神经网络。其作用是对输入图像进行特征提取,通过不断地卷积和池化操作,逐渐降低图像的空间分辨率,同时增加特征通道数,从而捕捉图像中的高级语义信息。例如,在医学图像分割中,编码器可以提取出图像中的器官轮廓、组织特征等信息。

解码器(扩张路径):与编码器相对称,由多个反卷积层(或上采样层)和卷积层组成。它的主要作用是将编码器提取的特征图进行上采样,恢复图像的空间分辨率,同时将不同层次的特征进行融合,以获得更精确的分割结果。例如,在经过解码器的一系列操作后,能够将低分辨率的特征图逐步恢复为与输入图像大小相同的分割结果,其中每个像素都被分类为属于不同的目标类别。

跳跃连接:这是 U - Net 结构的一个重要特点。它将编码器中不同层次的特征图与解码器中对应的上采样特征图进行连接,即将低层次的细节信息与高层次的语义信息相结合。通过跳跃连接,解码器可以利用编码器中丰富的特征信息,更好地恢复图像的细节,提高分割的准确性。

通用结构的U-Net 的输入通常是原始图像,输出是与输入图像具有相同空间尺寸的分割掩码,具体如下:

输入图像数据:一般是具有一定分辨率的二维或三维图像。对于二维图像,常见的是 RGB 彩色图像,具有三个通道分别表示红、绿、蓝颜色信息;也可以是灰度图像,只有一个通道表示像素的灰度值。三维图像则通常用于处理体积数据,比如激光点云,在这种情况下,除了二维图像的宽和高维度外,还增加了深度维度来表示不同层面的图像信息。这些图像数据会被归一化到一定的数值范围,通常是[0,1]或[−1,1],以便于神经网络进行处理。

可能的辅助信息:除了图像本身,有时输入还可能包括一些额外的辅助信息,例如图像的位置信息、尺度信息等,这些信息可以帮助网络更好地理解图像内容,提高分割的准确性。但并非所有 U - Net 应用都需要这些辅助信息,这取决于具体的任务和数据特点。

输出分割掩码:是一个与输入图像空间尺寸相同的图像,其中每个像素的值表示该像素所属的类别。如果是二分类问题,例如分割前景和背景,那么输出图像中的每个像素可能取值为 0(表示背景)或 1(表示前景);对于多分类问题,比如将图像中的不同器官或物体进行分割,每个像素会被分配一个对应类别的标签值,这个值可以是整数,代表不同的类别,也可以是一个概率分布向量,表示该像素属于各个类别的概率。通过对输出的分割掩码进行可视化,可以直观地看到图像中不同物体或区域被分割的结果。

具体到扩散模型中,U-Net的输入和输出与扩散模型的去噪过程紧密相关,具体如下:

输入噪声图像:在扩散模型的训练阶段,输入的是正向扩散过程中生成的噪声图像。这些图像是通过在原始真实图像上逐步添加高斯噪声得到的,不同的训练样本对应不同程度的噪声。在推理阶段,如果是图生图任务,输入的则是用户提供的带有噪声的图像;如果是生成全新图像,输入的是从高斯分布中采样的随机噪声图像。

时间步信息:U-Net 可能会接收一个表示当前处于整个去噪过程哪个阶段的时间步信息作为额外输入。这个信息通常是一个向量,它帮助 U - Net 了解应该去除多少噪声,因为不同的时间步对应着不同的噪声水平和去噪难度。

输出预测噪声图:U - Net 的输出是一个与输入图像同样大小的噪声图。在这个噪声图中,每个像素位置上的值代表了对该位置应该添加或减去的噪声强度,通常是某个范围内的连续数值。这个输出指示了如何调整输入的带噪图像,使其更接近目标的清晰图像。通过将输入的噪声图像减去预测的噪声图,就可以得到去噪后的图像,然后将去噪后的图像作为下一个时间步的输入,继续进行去噪,直到达到预设的结束条件,生成最终的清晰图像。

二、 从原理出发解释扩散模型优化轨迹生成


扩散模型(Diffusion Models)轨迹生成的轨迹数据形式通常由具体任务和应用场景决定,可以是一系列航点,也可能是其他形式,以下是一些常见的情况:

l一系列航点:在许多轨迹生成任务中,比如自动驾驶、机器人路径规划等,扩散模型生成的轨迹数据常以一系列航点的形式呈现。这些航点代表了运动物体在不同时刻应到达的位置,通过连接这些航点可以得到一条完整的轨迹。例如,在自动驾驶场景中,轨迹可能由一系列车辆在不同时间点的地理位置坐标(经纬度、海拔等)组成,或者是在局部坐标系下的 x、y、z 坐标表示的位置点1。

连续的状态序列:除了离散的航点,轨迹数据也可能是连续的状态序列。例如,对于一个机器人的运动轨迹,不仅包括位置信息,还可能包含机器人在每个时刻的姿态(如角度、方向等)、速度、加速度等状态信息。这样的轨迹数据能够更全面地描述机器人的运动状态变化,对于精确控制和运动规划非常重要。

特征向量序列:在一些情况下,扩散模型生成的轨迹数据可能不是直接的物理位置或状态信息,而是特征向量序列。这些特征向量可以是对轨迹的某种抽象表示,例如包含了轨迹的时空特征、语义特征等。通过对这些特征向量的解码或进一步处理,可以得到实际的轨迹信息。例如,在生成人类活动轨迹的任务中,特征向量可能包含了关于活动类型、地点类别、时间特征等信息,通过特定的映射关系可以将其转换为具体的空间位置轨迹。

图像或视频中的轨迹表示:在涉及图像或视频的轨迹生成任务中,如多目标跟踪数据生成,轨迹数据可能以图像中的目标位置序列或视频帧中的物体运动轨迹的形式存在。例如,在生成视频中车辆行驶轨迹的任务中,轨迹数据可以是每一帧图像中车辆的位置坐标或者车辆的边界框信息等,通过这些信息可以在视频中描绘出车辆的运动轨迹。

图扩散模型逆向扩散用于轨迹优化,图片来自CSDN

图中显见,随着逆向扩散(也就是生成)迭代次数增加,预测的路径逐渐减少并贴近ground truth轨迹(原始训练数据给出的最优轨迹)。

扩散模型在轨迹生成任务中的优化原理,主要涵盖前向扩散、反向去噪和轨迹约束对齐这三个关键核心环节。

本文依据数学原理并结合最新研究成果,对其进行的系统性描述:

1、前向扩散过程:轨迹的噪声破坏

假定存在初始轨迹x0 ,前向扩散过程借助马尔可夫链,以逐步添加高斯噪声的方式进行演变。

随着扩散步骤的不断推进,当达到最终状态时,xT 近似于纯噪声。

轨迹破坏在自动驾驶场景下,扩散步数T 可以用来表征轨迹的鲁棒性测试强度。步数越多,意味着施加的噪声干扰越强,对轨迹鲁棒性的考验也就越严格。

2、反向去噪过程:轨迹的生成优化

去噪网络训练

通过构建神经网络ϵ(θ)来实现对噪声的预测。其优化目标设定为:

从数学原理角度来看,这一优化目标等同于最小化对数似然的变分下界。

轨迹生成的优化特性

渐进式优化:在反向去噪的每一个步骤中,对轨迹进行的去噪操作,本质上相当于对轨迹实施局部性的调整。这种逐步优化的方式,相较于传统的优化方法,能够有效避免陷入局部最优解的困境。

多模态捕获:扩散模型具备强大的能力,能够生成多样化的、切实可行的轨迹。例如,在处理避障路径规划问题时,能够产生多种不同的路径变体,充分展现了其在应对复杂场景时的灵活性和适应性。

3、轨迹约束对齐

主要是物理约束注入,简单说就是增加实时避障矫正。因为各种实时障碍物很难在训练时完全覆盖,需要实时避障,保证在可行的前提下寻找最优轨迹。

通过以下策略对齐优化路径与物理约束:在采样过程中引入拉格朗日乘子(一种在数学模型中引入避障约束的优化方法),强制满足动力学方程或障碍物约束。或者使用投影法将中间轨迹 xt 映射到可行域,保证不会撞上东西。

三、扩散模型在辅助驾驶领域还有哪些应用


除了轨迹生成,扩散模型在辅助驾驶中还有如下应用:

交通场景感知与理解环境感知融合:能将来自摄像头、激光雷达、毫米波雷达等多种传感器的数据进行融合处理。例如,将摄像头图像数据与激光雷达的点云数据通过扩散模型进行特征提取和融合,更准确地感知道路、车辆、行人等目标的位置、姿态和运动状态,提高环境感知的精度和可靠性。

场景语义解析:可以理解复杂的交通场景语义,如识别“潮汐车道”“施工绕行” 等特殊交通标志和路况信息,帮助车辆做出符合规则的驾驶决策,提升车辆对复杂交通环境的理解能力。

驾驶行为预测与决策周车行为预测:通过对周围车辆历史轨迹和当前状态数据的学习,扩散模型可以预测周边车辆未来的运动轨迹和行为意图,例如预测前车是否会变道、后车是否会超车等,为自车的决策提供参考,提高驾驶的安全性和舒适性。

异常情况检测与应对故障检测:对车辆传感器、控制系统等关键部件的运行数据进行监测和分析,利用扩散模型检测数据中的异常模式,及时发现潜在的故障隐患,提前进行预警和维护,确保车辆的可靠性和安全性。

难例场景生成:在模型训练过程中,扩散模型可以生成各种罕见但具有挑战性的交通场景,如极端天气下的路况、复杂的交叉路口通行情况等,丰富训练数据的多样性,提高辅助驾驶模型在复杂场景下的泛化能力和鲁棒性。前面提到的华为就是在这么做。

仿真环境优化:用于优化车辆驾驶仿真环境,使其能够更真实地模拟各种交通场景和驾驶行为。通过生成逼真的虚拟场景和轨迹数据,为辅助驾驶算法的测试和验证提供更全面、准确的环境,加速算法的研发和优化过程。

图一个典型的扩散模型用于感知清晰化的过程,图片来自网络

除了以上大场景,本文还想给出一个比较小众但同样重要的场景,摄像头拍摄的图像去雨雾,这个场景真实出现在国内某数一数二汽车集团的算法竞赛上:

图 图像去雨雾前后对比,雨雾也可以视为图像噪音,图片来自网络

雨雾对摄像头的目标识别影响很大,而雨雾又可以视为一种图像噪音。所以去雨雾正好落入扩散模型的处理范围内。

比如2023年在期刊IEEE Transactions on Pattern Analysis and Machine Intelligence上,Ozan Özdenizci、Robert Legenstein撰写的《Restoring Vision in Adverse Weather Conditions with Patch - Based Denoising Diffusion Models》一文提出了一种新的基于补丁的图像恢复算法,该算法基于去噪扩散概率模型,能在恶劣天气条件下恢复图像的清晰度。

作者提出了基于补丁的去噪扩散模型方法,在推理过程中通过对重叠补丁进行平滑噪声估计的引导去噪过程,实现与图像大小无关的图像恢复。

在图像去雪、去雨和去雾以及雨滴去除的基准数据集上进行了实证评估。结果表明,该方法在特定天气和多天气图像恢复方面效果不错,并对真实世界的测试图像具有很强的泛化能力。

四、总结


近些年,随着软件定义汽车和人工智能(大数据)对汽车行业的渗透,可以说术语、概念、数学、代码等等智力负担翻了几倍都不止。

为了应对这种智力负担,笔者认为有如下应对:

第一个是需要较好的诠释者,简单直白地解释说透最近的概念和技术,并且可以把数学部分以直观方式表达出来,节约读者时间。

第二,更重要的,是研发人员按照自己的岗位角色,分层次了解自己所需的信息。比如架构设计,主要了解算法模型的输入输出和用途;软件开发,主要了解环境配置、算法库调用以及代码开发的clean code要求;研究人员则需要深入数学原理和核心代码实现,能改写核心代码和做试验。等等不一而足。

简而言之,就是用集体智慧和团队合作来应对海量的、超过单人容量的技术海啸。

自动驾驶之心

论文辅导来啦

知识星球交流社区

近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。

独家专业课程

端到端自动驾驶大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频

学习官网:www.zdjszx.com

内容概要:本文档《gee scripts.txt》记录了利用Google Earth Engine(GEE)进行遥感影像处理与分类的脚本流程。首先,对指定区域内的Landsat 5卫星图像进行了数据筛选,排除云量超过7%的影像,并应用缩放因子调整光学波段和热波段的数值。接着,基于样本数据集训练随机森林分类器,用于区分植被、水体、建筑、土壤、拜耳作物、岩石和草地等地物类型。最后,将训练好的模型应用于处理后的Landsat 5影像,生成分类结果图层,并计算混淆矩阵以评估模型准确性,同时将分类结果导出至Google Drive。 适合人群:从事地理信息系统(GIS)、遥感科学或环境监测领域的研究人员和技术人员,特别是那些希望深入了解GEE平台及其在地物分类中的应用的人士。 使用场景及目标:①从Landsat卫星获取特定时间段内的高质量影像数据;②通过预处理步骤提高影像质量,确保后续分析的有效性;③构建并训练机器学习模型以实现地物自动分类;④评估分类模型性能,保证结果可靠性;⑤将最终成果高效存储于云端平台以便进一步研究或共享。 阅读建议:由于涉及较多专业术语和技术细节,在阅读时建议先熟悉GEE平台的基本操作以及相关遥感知识,重点关注数据处理流程和分类算法的选择依据。此外,对于代码部分,可以尝试在自己的GEE环境中运行,以便更好地理解每个步骤的具体作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值