自动驾驶轨迹预测综述
背景介绍
轨迹预测在自动驾驶中起到了承上启下的作用,它不仅是环境感知的延伸和决策规划的依据,还是风险评估的基础和人机交互的桥梁。通过准确的轨迹预测,自动驾驶系统可以更好地适应复杂多变的交通环境,提高行驶的安全性和效率。
附赠自动驾驶最全的学习资料和量产经验:链接
方法概述
轨迹预测面临的挑战
-
被遮挡情况下的agent轨迹预测:目标没有被检测出,突然出现时轨迹预测往往不够精准
-
未知意图,很难确认他车是否在十字路口直行或左转,真实轨迹存在多种可能
-
不同agent之间的交互:车辆间博弈交互,往往会影响各自的行驶轨迹
以上三种情况增加了车辆轨迹预测的难度。
图源waabi公开资料
传统方法
-
Kinematic model,运动学模型(位置速度加速度)
-
Constant velocity model(CV)
-
Constant Turn Rate and Acceleration (CTRA)它描述的是一个物体在做匀速转弯和匀加速运动
-
该类方法的优点是十分快速,先验比较强;缺点是没法捕获现实世界的多样性,实际危险场景中此类模型往往处理不好,需要更多tricks代表论文:What the Constant Velocity Model Can Teach Us About Pedestrian Motion Prediction :https://ieeexplore.ieee.org/document/8972605
-
-
在传统pipeline中的learning base预测
-
给定历史轨迹(从track中获取)和HD map。基于这些轨迹和地图,进行未来预测;相比传统方法,主要是用数据来替代先验知识。
-
局限性:
-
检测和跟踪的噪声,需要对噪声进行建模
-
信息损失,如捕获不到转向灯信息等,这些细节信息没有用到
-
存在冗余的计算。通常是一个检测器,一个跟踪器,一个预测模型三者级联运行,系统比较复杂
-
-
代表论文:Drowned out by the noise: Evidence for Tracking-free Motion Prediction,SpAGNN: Spatially-Aware Graph Neural Networks for Relational Behavior Forecasting from Sensor Data
Learning based方法:联合感知&预测
-
直接基于lidar和hdmap输入通过模型输出motion forecasting
-
优势是特征直接传递,中途不会损失信息
代表论文:_Fast and Furious: Real Time End-to-End 3D Detection, Tracking and MotionForecasting with a Single Convolutional Net,该论文是最早提出合并感知和预测的想法且是纯cnn方案,transformer方案的如ViP3D: End-to-end Visual Trajectory Prediction via 3D Agent Queries,_DeTra: A Unified Model for Object Detection andTrajectory Forecasting 还有一些端到端方法这里不赘述。
特征编码方式介绍(Encoder)
历史上下文的编码方式
- 栅格化场景,每一帧都要栅格化;比较耗内存,每帧都要保存,同时存在noise;代表论文为:MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction
- 将tracks编码成轨迹或向量:
-
序列轨迹点+rnn or 1d cnn
-
序列向量+gnn/transformers
-
依然存在轨迹或跟踪的噪声;且历史轨迹存在有限的表达
-
代表论文:Learning Lane Graph Representations for Motion Forecasting,VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation
地图的编码方式
- HDmap as raster,使用不同颜色或mask表示不同的语义信息,优势是实现起来比较简单,也很适合dense的预测(分割or Occ),缺点由于内存有限分辨率不能搞太大,通常代表论文如 MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction,Uncertainty-aware Short-term Motion Predictionof Traffic Actors for Autonomous Driving
- HDmap as lane graph,例如vectornet
-
优势:高效且能较早融合轨迹和地图信息,如_LaneRCNN: Distributed Representations for Graph-Centric Motion Forecasting_
-
较轻的前处理,不用栅格
-
缺点:难以与传感器观测结果融合,有些场景比较难建立起地图元素间的关联
不同agent交互的编码方式
- 使用GNN编码agent之间的交互,进行交互推理(interaction reasoning),代表论文如_SPAGNN: Spatially-Aware Graph Neural Networksfor Relational Behavior Forecasting from Sensor Data_
- trasformer attention 建模agent间交互,代表论文如_Wayformer: Motion Forecasting via Simple &Efficient Attention Networks_
场景编码是以agent为中心还是以场景为中心?
agent为中心:以agent为第一视角viewpoint-invariant(视点不变);可学习样本多,训练相对容易。缺点是infer速度慢,agent更新地图和其他agent都需要进行转换计算。
场景为中心:一般选取ego为中心,viewpoint-dependent(视点相关)视点不同预测就不同,高效但场景相对单一。可学习样本少训练相对较难。
使用相对几何编码解决以上问题:代表论文_Query-Centric Trajectory Prediction_
近两年来常用的场景encode方式是factorized attention(以agent为中心,在时间和空间维度分别做attention)具体分三步来做(A表示agent个数、T表示帧数、M表示地图元素数量)
-
时间维度attention,时间复杂度O(AT^2),每个agent在自己的时间维度做矩阵乘法
-
agent和map的cross attention,时间复杂度O(ATM),在每个时刻,agent和地图元素做矩阵乘法
-
agent和agent间的attention,时间复杂度O(A^2T), 在每个时刻,agent和agent做矩阵乘法
该类方法依然是以agent为中心,且更新当前agnet时需要重新计算其余agent和地图元素。最近的QCnet提出使用Local Spacetime Coordinate System来解决agent为中心的计算复杂度较高的问题,对agent_i 在t时刻的feature,选这个时刻的位置和朝向作为局部参考系。对于地图元素,选择这个元素的起始点作为参考系(对于车道和人行横道,选择中心线入口点的位置和方向作为参考)。这样的参考系选择方法可以在ego移动后保证提取的feature不变。
综合考虑
将检测和预测作为轨迹的修正,也是近期比较火的方向,代表论文有:DeTra: A Unified Model for Object Detection andTrajectory Forecasting
轨迹预测的建模方式(Decoder)
通常轨迹预测的建模方式分为以下三种,(1)建模成边缘分布白话就是预测每个目标车辆的轨迹。(2)建模成联合分布,考虑目标车辆间的相互影响 (3)建模成条件概率分布,考虑自车轨迹
多模态不确定性建模
多模态不确定性指的是在预测过程中存在的多种可能性和变动因素。这样的预测模型不仅可以给出单一的预测结果,而是能够提供一系列可能的轨迹,帮助自动驾驶系统在各种复杂和多变的环境中做出更安全和准确的决策。以下是多模态不确定性建模的几种常用形式:
- 自回归方式:预测下一时刻轨迹分布(单峰分布),基于下一时刻分布预测下下时刻分布,以此类推,自回归方式输出轨迹;缺点是,速度较慢且会出现复合误差,分布偏移;代表论文:The Trajectron: Probabilistic Multi-Agent Trajectory Modeling With Dynamic Spatiotemporal Graphs;Trajeglish: Traffic Modeling as Next-Token Prediction(ICLR2024)
- 使用混合高斯轨迹建模:轨迹多模态的最简单表示,K 模式概率,K 轨迹回归,每个轨迹有 T 个航点;模型训练时,只有最接近的mode会受到监督(赢家通吃),缺点是,概率训练导致模态崩溃(坍塌)和不稳定,代表论文_MultiPath: Multiple Probabilistic Anchor TrajectoryHypotheses for Behavior Prediction_
- 轨迹集建模方式:轨迹的非参数化表示,固定的模态数量,只需做模态分类即可。缺点是模态的覆盖范围有限。代表论文 CoverNet: Multimodal Behavior Prediction using Trajectory Sets; DSDNet: Deep Structured self-Driving Network
- goal-anchor-based方式:通过设置目标anchor,为每个agnet预测如6秒后的位置(endpoint),然后再生成轨迹。优点是可以根据地图信息撒anchor,比较灵活。缺点:可能无法捕获不合规行为。代表论文:TNT: Target-driveN Trajectory Prediction,HOME: Heatmap Output for future Motion Estimation,GoRela: Go Relative for Viewpoint-Invariant Motion Forecasting,GANet: Goal Area Network for Motion Forecasting
- 使用轨迹query refine方式:该类方法基本都使用Transformer的编码器-解码器架构,使用attention方式进行场景交互;初始query多条轨迹,结合过去上下文中的场景来得到初始轨迹集,该初始轨迹集作为refine模块的输入,refine模块会进一步结合场景信息,输出最终轨迹。代表论文 : Query-Centric Trajectory Prediction(CVPR2023),Motion Transformer with Global Intention Localization andd Local Movement Refinement(NeurIPS 2022)
条件预测
以上我们只讨论了目标车辆的轨迹预测,实际上,自车作为交通场景的一部分,自车的运动也会影响目标车辆的运动,这就会导致目标车辆轨迹被自车影响。因此可以将规划的自车轨迹融合到目标车辆的轨迹预测中,这样传统的轨迹预测可以认为是边际预测,而结合ego轨迹的预测为条件预测。代表论文:PiP: Planning-informed Trajectory Predictionfor Autonomous Driving,Identifying Driver Interactions via Conditional Behavior Prediction
但以上方法存在因果混淆问题,目标车轨迹受到自车规划轨迹影响,而理论上自车规划轨迹是从目标车预测轨迹算出来的。所以可能得结合业务场景,特殊场景特殊处理。
场景预测(联合预测)
实际上我们对每个actor建模不确定性是无法让我们从场景层面理解未来(预测)的。每位参与者的赢家通吃 (WTA)是边际预测的默认设置,我们可以将WTA应用到场景级别,从而实现联合预测(在同一未来时刻,不同agent的预测轨迹不会冲突)。 代表论文:Implicit Latent Variable Model forScene-Consistent Motion Forecasting,Scene Transformer: A unified architecture for predicting future trajectories of multiple agents,THOMAS: TRAJECTORY HEATMAP OUTPUT WITHLEARNED MULTI-AGENT SAMPLING
e.g.Scene Transformer 论文中首先构建场景级交互推理(隐式先验),然后采样构造确定性解码器,作为Conditional VAE进行训练。
时序语义分割预测/Occupancy Flow
与传统轨迹预测不同,这类方法预测随时间推移的BEV上的语义分割,如预测车辆行人等在未来5秒内的bev占用概率。bev占用概率的表达形式非常适合作为规划器cost function的输入。代表论文 Perceive, Predict, and Plan: Safe Motion Planning Through Interpretable Semantic Representations
但上面这种基于语义分割预测的方式缺少了运动信息,规划不仅关心碰撞,还需要与前面的车量保持安全的车距,也就是说需要输出每个占用格子的速度。此外,如果只输出占用预测,决策算法不能正确地推理交互,因为对于一个给定的未来占用,它的起源不能被追溯。所以后续的工作如_MP3: A Unified Model to Map, Perceive, Predict and Plan_ 提出了占用流(Occ Flow)。用动态物体当前状态下的占用和未来的时刻的运动场,来描述物体如何移动(以及它们未来的占据)。
补充:最近也有一些无监督方式进行occ预测的文章,如_UnO: Unsupervised Occupancy Fields for Perception and Forecasting(CVPR2024)_
总结提炼
学习丰++富的场景表示++是预测的基础:
-
学习历史上下文和地图的紧凑而有效的表示
-
学习推理交互,这是有益的
-
联合感知和预测优于传统pipeline
捕捉++不确定性和多模态++是自驾安全的关键:
-
允许规划器来衡量候选轨迹的风险
-
条件预测捕捉 SDV 行为的影响
-
场景一致性预测支持非保守规划
++Occupancy++是轨迹预测的一种很好的替代表示
-
可以捕捉任何形状和不确定性
-
可以以无监督的方式进行有效的预训练
讨论
-
轨迹预测模块还有必要独立存在吗?过去轨迹预测作为一个感知和规划中间的一个环节,在自动驾驶公司是有专门一个团队负责的;这样的好处是预测部分出现问题有团队能负责去解。但随着端到端的火热,我们重新思考就会发现,轨迹预测这部分没必要独立出来。他也可以放到感知模块去做,感知做完检测和地图拓扑后直接输出轨迹。也可以放到planner去做,因为自车轨迹同样会影响到他车的未来轨迹,驾驶本来就是一个博弈问题,放在planner做可自闭环。
-
目前我们的思路还是轨迹预测或者占用预测,我们能否直接预测未来场景(video or Pointcloud)?这就是world model要做的事情了,进行传感器数据预测。world model代表性论文有_GAIA-1: A Generative World Model for Autonomous Driving,DriveGAN: Towards a Controllable High-Quality Neural Simulation,Vista: A Generalizable Driving World Model with High Fidelity and Versatile Controllability(CVPR2024)_,GenAD: Generative End-to-End Autonomous Driving (CVPR2024)