UAD详解
1. 算法动机及开创性思路
- 现存问题:Unity AD和VAD等方法需要大量人工标注和计算资源(Unity AD需48 GPU/天,VAD需28 GPU/天),导致数据扩展成本高昂。
- 核心观点:感知模块的标注量和设计复杂度并非提升规划性能的关键,扩大数据量才是核心。
- 创新策略:
- 无监督代理任务:将需要感知标签的监督学习改为无监督方式,消除标注成本
- 自监督方向感知:通过方向感知策略进一步提升规划性能
- 性能优势:推理速度达7.2 FPS(Unity AD仅2.1 FPS,VAD为5.3 FPS),训练仅需21.3 GPU/天
2. 主体结构
- 流程区分:
- 黑色箭头:推理阶段专用模块
- 橙色箭头:训练阶段特有模块
- 输入输出:环视图像→预测轨迹
1)角度感知代理任务
-
检测器
- 检测方法:采用GroundingDINO(开放集检测器)
- 开放集特性:可检测训练集未见的类别(如训练集只有猫狗,测试时能检测鸭子)
- 类别限定:仅检测vehicle/pedestrian/barrier三类
- 输出形式:2D检测框(非3D)
- 检测方法:采用GroundingDINO(开放集检测器)
-
采样及bev特征图划分
- BEV转换:
- 近大远小效应导致扇形区域(近处物体投影范围小,远处范围大)
- 通过均匀角度划分将不规则mask转为规则区域
- BEV转换:
-
采样策略:
- 在BEV特征图随机采样点
- 采样点在2D框范围内置True,否则置False
- 区域内有任一True点则整个区域标记为存在物体
-
Dreaming decoder
- 工作原理:
-
初始化k个角度query(与BEV特征区域对应)
-
通过GRU实现自回归更新:
-
交叉注意力生成下一时刻特征:
-
- 工作原理:
-
监督方式:
- 计算相邻时刻query分布的KL散度
- 时刻为先验分布(基于当前特征)
- 时刻为后验分布(含未来信息)
2)方向感知规划模块
- 三大组件:
- 规划头:与Unity AD相同的模仿学习轨迹预测
- 方向增强:对BEV特征旋转90°/180°/270°
- 方向一致性:
- 预测轨迹需与旋转后的GT轨迹匹配
- 反向旋转后的预测轨迹需与原预测一致
- 驾驶行为分类:
- 按主车方向划分直行/左转/右转
- 通过三分类任务增强方向感知
3. 损失函数
- 复合损失:
- Lspat:扇形区域物体存在性的二分类交叉熵
- Ldrm:Dreaming decoder的KL散度损失
- Liml:模仿学习的轨迹预测损失
- Ldir:驾驶行为(直行/左转/右转)分类损失
- Lcos:旋转增强后的一致性损失
4. 性能对比
1)开环指标对比
- 评估指标:新增了与地图边界碰撞率指标,用于检测模型是否通过违规驾驶(如压线)来避免碰撞
- UAD优势:
- 在L2误差(1s/2s/3s)和碰撞率指标上全面领先
- 轻量化版本达到18.9FPS,比VAD-Tiny快3FPS
- 采用不同平均计算方式时仍保持最优性能
- 方法对比:
- NMP/SA-NMP仅使用检测和运动预测(L2误差2.31/2.05)
- ST-P3使用检测和地图(L2误差3.28)
- VAD系列增加运动预测(Base版L2误差1.22)
- UAD无需3D标注(L2误差0.90)
2)闭环仿真指标对比
- 评估指标:
- 路线完成率(Route Completion)
- 驾驶分数(Driving Score)
- 性能表现:
- CILRS:完成率13.4%,得分3.68
- LBC:完成率55.01%,得分7.05
- Transfuser:完成率78.41%,得分31.15
- VAD-Base:完成率87.26%,得分30.31
- UAD:完成率92.72%,得分71.63(最优)
3)Dreaming decoder消融实验
- 关键设计:
- BEV特征与query的循环更新机制
- 无监督代理任务(障碍物存在感知)
- 实验发现:
- 不加代理任务时L2误差达1.82,碰撞率1.00%
- 加入后L2降至0.90,碰撞率0.19%
- 循环更新使3s预测误差从2.74m降至1.50m
4)方向感知规划消融实验
- 组件对比:
- 仅用路径损失(Cpath):L2误差3.18
- 增加方向损失(Cdir):误差降至1.00
- 加入模仿损失(Cimi):误差反弹至1.20
- 最优配置:
- 完整模型L2误差0.90,碰撞率0.19%
- 方向一致性使左右转场景提升显著
5)角度设计消融实验
- 扇形区域划分:
- 未划分时L2误差1.37,碰撞率1.37%
- 角度量化后误差降至0.90,碰撞率0.19%
- 效果验证:
- 证明角度敏感的特征表示对运动预测至关重要
- 与方向增强形成互补优化
6)3D检测头消融实验
- 实验设置:
- 对比有无3D检测头的性能差异
- 关键发现:
- 添加检测头导致L2误差从0.90增至0.93
- 碰撞率从0.19%上升至0.25%
- 验证了无需显式3D检测也能实现良好性能
7)不同驾驶场景下的性能
- 场景划分:
- 直行(5309样本)
- 左转(301样本)
- 右转(409样本)
- 结果分析:
- 基线方法(UniAD):直行L2误差0.98,左转1.48
- UAD*(无方向增强):直行0.89,左转1.55
- 完整UAD:直行0.84,左转1.39(右转场景碰撞率下降50%)
8)nuScenes可视化
- 可视化要素:
- 绿色:GT 3D框
- 红色:GroundingDINO检测结果
- BEV扇形区域物体掩码
- 轨迹对比:
- UAD(红)最接近GT轨迹(绿)
- UniAD(紫)会碰撞道路边界
- 验证了角度量化表征的有效性
9)Carla仿真可视化
- 典型场景:
- ST-P3(黄)轨迹停在人行道
- Transfuser(蓝)会碰撞行人
- UAD动态调整:行人通过后才继续行驶
- 方法优势:
- 避免使用人工标注的3D检测标签
- 通过方向增强提升复杂场景表现
- 计算效率优化(Base版7.2FPS)