当前位置: 首页 > news >正文

地平线DiffusionDrive v1和v2的细节对比解读

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

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

作者 | 三两声@知乎

编辑 | 自动驾驶之心

原文链接:https://zhuanlan.zhihu.com/p/2023721669739430016

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

>>自动驾驶前沿信息获取自动驾驶之心知识星球

本文结合DiffusionDrive和DiffusionDriveV2的开源代码进行对比解读,希望能进一步加深理解。在阅读本文时,如果对两篇论文的整体框架还不清楚,欢迎大家参考:扩散模型在自动驾驶中的应用——DiffusionDrive, DiffusionDriveV2——扩散模型加强化学习. 为了简洁起见,下文使用DD表示DiffusionDrive,使用DD2表示DiffusionDriveV2。

策略梯度与DiffusionDrive的采样

策略梯度的形式表示为:

在DD和DD2中每一步的去噪都被看做策略。DD和DD2中模型是直接来预测,在DD中推理时采用的DDIM的采样方式是确定性采样。在DD2中,每次训练时,都同时进行多步采样。

在DD2中,训练时采用的多步采样和DD中DDIM的确定性采样不同,在进行DDIM的确定性采样之后,作者进行了人为加噪。DDPM和DDIM的采样的统一公式为:

预测的指向的方向随机噪声

其中:

:扩散过程中的累乘系数(即)。

:模型预测的噪声。

:控制采样随机性的超参数。

需要注意的是DD和DD2中是直接预测,因此上对公式1进行变形得到:

预测的指向的方向随机噪声

其中:

在DDPM的采样中=1。在DDIM的采样中=0,完全去掉了随机项。

在DD2中RL训练是,采样的是DDPM的采样方式,不过最后的随机噪声就像文中提到的,采取的是横纵乘以随机系数的方式来进行加噪。

确定性采样的部分得到,那加噪后的轨迹表示为:,整理之后得到:,因此上:

假设采样得到, 进一步可以得到:

开源出来的代码,使用的乘法的方式加噪,但是开源出来的代码推导是错的,式5才是正确的计算方式。

Reward的计算与GRPO的优势函数

如论文中提到的,reward的采用最终的轨迹进行计算。整个计算过程采用的半闭环的方式。将自车的轨迹转换到全局坐标系,然后使用LQR控制器进行轨迹的追踪,得到闭环的轨迹。使用闭环轨迹计算轨迹的reward。其中环境信息是开环的,是提前缓存好的。

代码中采用并行计算的方式,一次性将一个batch的轨迹计算其score。在代码中一共计算了6种类型的score,分别为:NO_COLLISION, DRIVABLE_AREA, PROGRESS, TTC, COMFORTABLE, DRIVING_DIRECTION.

整个reward的计算流程为:

  1. 将训练的轨迹进行插值

  2. 插值后的轨迹进行坐标转换,转换到世界坐标系

  3. 使用LQR进行轨迹的闭环追踪,得到闭环轨迹

  4. 使用闭环轨迹和缓存下来的环境信息,计算得到每条轨迹的score

为了清晰起见,我会详细说明reward的计算逻辑.下图为5条去噪轨迹和原始的GT轨迹。

图1 5条去噪轨迹和原始GT轨迹

根据自车状态,将所有的轨迹转到全局坐标系,并且进行插值,0.1S进行插值。

图2 全局坐标转换和和插值后的轨迹

为了进行对比,将插值后的轨迹重新转到自车坐标系

图3 插值后重新转为自车坐标系

使用LQR进行闭环轨迹的追踪,闭环的轨迹如下图所示

图4 插值后重新转为自车坐标系

挑选其中一条预测轨迹和闭环追踪轨迹进行对比

图5 预测轨迹和LQR追踪轨迹

最后根据闭环轨迹和环境信息计算score,最后将score综合起来作为整条轨迹的score.

作者引入了GRPO算法,避免引入critic网络带来的开销,GRPO算法的Loss表示为:

但是在作者开源出来的代码中,并没有使用,有些奇怪。

结语

这是一篇瑕不掩瑜的文章,结合开源代码能否加深理解。为DIffusion和RL结合提供了很好的的思路,很有启发性。

自动驾驶之心

求点赞

求分享

求喜欢

http://www.cnnetsun.cn/news/1943622.html

相关文章:

  • 7-Zip完整指南:如何用这款免费开源压缩工具提升工作效率 [特殊字符]
  • 暗黑破坏神2存档编辑器:现代化Web界面下的角色数据管理方案
  • 口袋里的AI超算?手把手教你用Project DIGITS本地部署和微调Llama Nemotron模型
  • 5分钟快速上手:用JavaScript自动化生成专业PPT的终极指南
  • 国家中小学智慧教育平台电子课本解析工具:一键下载PDF教材的终极解决方案
  • Redis Cluster 故障恢复与节点迁移
  • 用NetLogo模拟疫情传播:从零搭建小世界与无标度网络SEIR模型(附完整源码)
  • 微信小程序web-view集成H5视频录制:从需求到填坑的完整实践
  • Ubuntu-Rockchip实战:Rockchip RK35XX设备无线驱动深度集成与最佳实践
  • MySQL 中 VARCHAR、TEXT 与 JSON 类型:区别、场景与选型指南
  • FineBI vs Tableau功能对比:可视化能力与易用性全面评测
  • 【2026奇点大会AI语音克隆终极指南】:3大伦理红线、5类商用陷阱与7步合规部署清单
  • AI编程助手真的靠谱吗?2024开发者效率提升的3个真相与1个致命误区
  • 终极免费方案:用Windhawk简单打造你的专属Windows系统
  • TVA在精密制造领域的应用案例(1)
  • 如何快速搭建智能语音交互系统:ESP-SR完整入门指南
  • 糖水界的‘灯塔’正在造就下一个万店基因:揭秘糖水第一品牌悸动仙草糖水背后的财富密码
  • STM32G0低功耗实战:用STOP模式+外部中断唤醒,让你的电池多撑一倍时间
  • ANSYS FLUENT二维流动传热仿真全流程解析:从网格导入到结果评估
  • MATLAB机器人工具箱实战:从URDF解析到完整机器人模型构建
  • 分布式事务最佳实践:基于kafka实现的最终一致性方案
  • 用STC8G1K08A做个简易电压表:ADC读取数值转换与串口波形显示教程
  • CSS如何实现元素的透明背景色_使用rgba颜色值替代十六进制
  • 别再纠结FDL和EEL了!一张图看懂瑞萨RL78 Flash库怎么选(附寿命对比)
  • 2026届学术党必备的五大降重复率助手实际效果
  • WebRTC文件传输终极指南:浏览器直连技术的完整解析
  • 如何轻松获取无水印抖音视频:douyin-downloader 新手入门指南
  • STM32F103C8T6最小系统板驱动HC-SR04超声波模块,从接线到串口打印距离的保姆级教程
  • 如何快速构建现代化WPF界面:Fluent.Ribbon专业级Office风格组件完全指南
  • 告别Myo Connect依赖:直连蓝牙协议,用Python2.7/3.x实现双Myo臂环的底层数据抓取