Abstract: This blog post offers an overview of the 2023 paper “UniAD: Planning-oriented Autonomous Driving” by Yihan Hu, etc, proposing a unified end-to-end framework that coordinates perception, prediction, and planning tasks around the ultimate goal of safe ego-vehicle planning. It details the query-based design connecting modules in BEV space: TrackFormer for joint detection and tracking, MapFormer for online mapping, MotionFormer for multi-agent multimodal trajectory prediction with agent-map and goal interactions, OccFormer for instance-aware occupancy forecasting, and a simple attention-based planner leveraging ego queries and occupancy for collision avoidance. Implementation uses two-stage training with shared matching, and experiments on nuScenes validate the planning-oriented philosophy through strong joint and modular results across all tasks.
最近读了2023年的CVPR论文《UniAD: Planning-oriented Autonomous Driving》,作者是上海AI实验室的Yihan Hu等。这篇论文不是简单堆叠任务,而是从规划这个终极目标倒推,设计了一个端到端的统一框架UniAD,整合感知、预测和规划的全栈模块。思路很务实:传统方法模块独立容易误差累积,多任务学习又协调差,UniAD则用Transformer查询接口串联一切,互相补益,最终服务规划。论文基于多相机图像输入,纯视觉,实用性强。
背景和动机:为什么需要规划导向的统一框架?
背景:自动驾驶系统通常是模块化的:感知(检测、跟踪、地图),预测(运动、占用),规划。工业方案往往每个模块独立模型(图1a),方便分工,但信息丢失、误差累积严重。多任务学习(MTL)共享骨干加头(图1b),省资源,但任务目标不一致,协调难。端到端方法(图1c)尝试直连感知预测到规划,但早期要么直接优规划(c1,忽略中间),要么只部分模块(c2,碎片化)。
作者的洞察:理想框架应“规划导向”(planning-oriented),所有前置任务优先服务规划(c3)。为什么?规划是自驾车的“终极目标”——安全高效路径。感知预测不是孤立,而是为规划提供互补抽象:感知给当前状态,预测给未来动态。UniAD就是这样:用统一查询接口沟通任务,从全局视角建模代理交互,避免累积误差,提升智能。
核心原理:查询接口 + 任务优先级
UniAD的原理是“规划为中心”,任务按序优先:感知(跟踪+地图)给基础抽象,预测(运动+占用)加动态,规划用之决策。关键是Transformer解码器结构,所有模块用查询(queries)接口连接。
- 查询设计:查询是高抽象向量,跨模块传信息。如跟踪模块输出代理查询($Q_A$),传给运动模块建交互。查询像“桥梁”,让上游知识下游用,避免信息丢失。
- 任务优先:感知优先代理(动态)和地图(静态),预测优先多代理联合运动和场景占用,规划用ego查询避碰撞。端到端优化,梯度回传协调。
- BEV统一:所有在鸟瞰图(BEV)空间操作,统一坐标,便于交互。
原理上,UniAD不像MTL并行头,而是序列级联,互补:跟踪稳代理ID,地图给道路约束,运动预测交互,占用避占区。
模型结构:全栈Transformer解码器
UniAD结构是CNN骨干 + BEV编码器 + 序列Transformer模块(图2)。输入多视图图像,输出规划轨迹。骨干用V2-99(类似ResNet),FPN颈融合多尺度。视图变换用BEVFormer的时空Transformer生成BEV特征B。然后是核心模块,每个是N层Transformer解码器(N=6),用查询交互。
细说每个模块:
- TrackFormer(跟踪模块):联合检测和多目标跟踪(MOT),无后处理。查询分两类:检测查询(新生代理)和跟踪查询(历史代理)。初始化检测查询捕新生,跟踪查询自注意力聚合时序。都attend BEV特征B,输出$Q_A$(代理抽象,包括ego查询)。细节:N层,每层MHSA + MHCA,监督每层。避免NMS,用查询继承ID,稳时序。为什么关键?稳代理ID,供下游预测用,避免碎片。
- MapFormer(地图模块):在线地图建模,四类元素(车道、分割线、可驶区、行人道)。基于Panoptic SegFormer,用地图查询稀疏表示道路。查询attend B,输出$Q_M$(地图抽象)。细节:东西类(things:车道等)用实例查询,可驶区(stuff)用语义查询。N层,逐层监督。为什么重要?提供静态约束,如车道限运动预测,提升安全。
- MotionFormer(运动预测模块):场景中心多代理多模态轨迹预测。用$Q_A$和$Q_M$输入,预测所有代理未来T=12步轨迹(top-K模态)。细节:N层,每层三交互:代理-代理(MHSA/MHCA)、代理-地图(同)、代理-目标点(变形注意力,精炼端点)。运动查询Q=上下文+位置(场景锚、代理锚、当前位、预测端点)。非线性优化(训练时)平滑轨迹,遵运动学(抖动、曲率等)。ego查询显式建模,自驾车交互。为什么牛?联合预测交互,考虑地图,准+物理合理。
- OccFormer(占用预测模块):场景占用网格预测,带代理ID。To=4步(比运动短,省算)。细节:To块,每块时间MLP融合代理特征$G_t$(从MotionFormer max-pool $Q_X$ + 跟踪$Q_A$ + 位嵌入)。场景特征$F_0$从B下采样,块内自注意力 + 跨注意力($F_{ds}$ attend $G_t$,掩码限占区)。残差连接,上采样解码$F_{dec}^t$。实例占用$O_A^t = U_t * F_{dec}^t$($U_t$从掩码特征MLP)。为什么独特?代理-场景融合,无后聚类,直出实例占用,帮规划避撞。
- Planner(规划模块):用MotionFormer ego查询 + 命令嵌入(左转、直行、右转)attend B,解码未来轨迹ˆτ。推理时牛顿优化避占区(从OccFormer二值O)。细节:多射击生成候选,成本$f= L2(ˆτ)$ + 碰撞(高斯核,λ调)。无HD地图/路由,靠命令导。为什么简单有效?用上游抽象,直接优安全。
整体:查询串联($Q_A$到Motion/Occ,ego Q到Planner),端到端。BEV统一空间,时序靠BEVFormer。
实现细节:两阶段训练 + 损失设计
实现基于PyTorch,nuScenes数据集(1000场景,多相机)。输入:6视图图像,历史3帧。
- 训练:两阶段稳。阶段1:预训感知(跟踪+地图),6 epoch,载BEVFormer权重(骨干、FPN、BEV编码器、检测解码)。冻骨干省存,损失$L1 = L_{track} + L_{map}$。阶段2:全任务20 epoch,载阶段1,损失$L2 = L_{track} + L_{map} + L_{motion} + L_{occ} + L_{plan}$。AdamW,batch 1/A100,CBGS采样。
- 损失:匹配共享(二分匹配,继承跟踪)。跟踪:焦点 + L1框 + GIoU。地图:Dice + CE语义,焦点 + L1点东西。运动:负对数似然模态 + L1轨迹。占用:CE + Lovasz-Softmax。规划:L1 + 方向L1 + 模仿(平滑L1)。权重调,如$λ_{motion}=2$。
- 超参:查询数300(代理+地图),BEV 200x100 (0.5m分辨),T=12s (0.5Hz),To=4。非线性优:抖动、曲率等5项。
- 推理:单前向,规划优<1ms。变体:UniAD-S (R50),-B (R101),-L (V2-99)。
实验部分:全面超SOTA + 消融分析
第4节实验在nuScenes val/test。UniAD-L test NDS 71.4%、mAP 47.5%、规划L2 0.73m、碰撞0.31%(超BEVerse +8.5 NDS)。val上,联合Ablation:加模块逐提,感知帮预测(-9.7% minADE),预测帮规划(-0.51碰撞)。模块结果:跟踪AMOTA 35.9%(+6.5超MUTR3D),地图IoU-lane 31.3%,运动minADE 0.71m(-38.3%超PnPNet),占用VPQ-near 54.7%,规划L2 1.03m(-51.2%超ST-P3)。
消融:MotionFormer组件各贡(锚+交互-15.8% minADE)。Occ交互+2.4 IoU-far。规划优-0.41碰撞。可视(图3):复杂场景准规划。失败:长尾如大卡车(Sup)。
实验证:规划导向协调好,端到端强。
小结和感想
UniAD框架是查询级联的全栈Transformer,思想规划导向,互补抽象。结构优雅,实现稳,实验牛。比碎片方法智能,启发大模型自驾。缺点?计算大(1.5k GFLOPs),但潜力无限。


