DiffusionDriveV2核心代码解析
自动驾驶之心·2025-12-28 17:23

DiffusionDriveV2模型整体架构 - 模型是一个用于端到端自动驾驶的强化学习约束截断扩散模型,整体架构包括环境编码、轨迹规划、模式选择等模块 [3] - 环境编码部分融合了来自摄像头和激光雷达的BEV特征以及自车状态信息,其中BEV特征经过上采样和下采样处理,自车状态通过编码器处理,两者拼接后作为后续处理的键值对 [5][6] - 解码部分参考了目标检测中的DETR思想,使用查询机制,输出被分割为轨迹查询和智能体查询,用于后续的轨迹规划和交互 [7] 轨迹规划模块核心技术 - 轨迹规划模块利用多尺度BEV特征,通过上采样和特征拼接,增强空间信息的利用 [8] - 采用基于锚点的扩散模型进行轨迹生成,首先通过K-Means聚类从真实轨迹数据中生成一系列轨迹锚点,然后在锚点上加入经过设计的高斯噪声以启动扩散过程 [9][10][11] - 将带噪声的轨迹锚点通过位置编码转换为查询向量,并与时间编码、BEV特征、智能体查询特征以及自车查询特征进行多轮交叉注意力计算,以融合多源信息 [12][13][14][15][16][17] - 融合后的轨迹特征通过一个前馈网络,并利用时间特征进行尺度和偏移调制,最终预测出分类分数和去噪后的轨迹偏移量,该偏移量与原始噪声轨迹相加得到最终预测轨迹 [18][19][20][21][22] 模式选择与轨迹评估机制 - 模型包含一个模式选择器,用于从多个生成的轨迹模态中做出最终决策 [23] - 在轨迹生成(反向去噪)过程中,记录网络所有中间去噪结果以及最终输出 [25] - 使用一个综合评分器对生成的所有模态轨迹进行评估,评分维度包括安全性、舒适性、规则遵守、进度和物理可行性,并通过加权平均计算综合分数 [27] - 安全性检查包括碰撞检测和驶出道路判断,舒适性评估加速度和曲率连续性,规则遵守评估交通灯和车道保持,进度评估是否到达目标,物理可行性检查动力学约束 [27] 强化学习训练与优化策略 - 提出锚点内GRPO强化学习优化方法,在每个轨迹锚点对应的组内进行策略优化,以保持多模态能力同时提升轨迹质量,其损失函数涉及对去噪过程概率的对数求和与优势函数的加权 [28] - 优势函数通过计算组内奖励的相对均值和标准差进行估计,无需额外价值模型,并且通过只保留优于真实轨迹的样本进行对比学习来定义“好”的轨迹 [28][29] - 对优势函数进行截断处理,将所有负优势设为0,并对发生碰撞的轨迹施加-1的强惩罚,以提供清晰一致的学习信号 [30] - 在训练损失中结合了强化学习损失和模仿学习损失,以防止过拟合并保证通用驾驶能力 [39] 噪声设计与损失函数 - 针对轨迹近端与远端尺度不一致的问题,创新性地提出使用乘性高斯噪声替代传统的加性噪声,通过一个纵向和一个横向的乘法噪声因子来调整轨迹点,从而保持探索轨迹的平滑性和结构完整性 [33] - 在训练阶段引入探索噪声,在验证阶段使用确定性推理,并详细计算了每一步噪声对应的对数概率 [37][38] - 总体训练损失由轨迹恢复损失和分类置信度损失两部分组成,通过权重系数进行平衡 [42] - 轨迹恢复损失采用L1损失函数,分类损失使用带权重的焦点损失函数 [41][43]