自动驾驶:基于Occupancy Flow Fields的运动预测
论文Occupancy Flow Fields for Motion Forecasting in Autonomous Driving
附赠自动驾驶最全的学习资料和量产经验:链接
简介
论文中提出了基于Occupancy Flow Fields 的多agents 运动预测;其表达式时空栅格,每个栅格包含了此栅格被占据的概率和2维的flow 向量(表示agent运动的方向和速度)
OFF解决了目前常用的其他运动预测算法(轨迹集和占据场)的缺点;其中占据场 无法捕获agent 运动,无法区分agent
论文中提出了算法实现的网络框架和flow trace loss(实现占用率和流量预测一致性); 其算法还可以预测突然在未来出现的新agent,以前的算法无法解决这些新出现的agent预测
左下图中圆圈标注的智能体可能运动的方向为:保持在环形交叉路口 和 退出
下面的两图中通过颜色区分不同的agent, 灰色框为其起始位置,带颜色的为其1.5s的位置,表示出了未来占据的位置和其移动的方向速度等
流向场可用于在任何时间点 扭曲/变形占据场,流公式捕获了每个代理的多个行进方向,因此变形操作可使的代理从开始的已知位置不断地扩展占据场
算法关键信息
1、输入
BEV 二维矩阵
agent历史信息:agent 位置,朝向,长宽, 速度向量,加速度向量
道路结构:道路上均匀采样点(p,u), 表示位置(x,y)及对应的类型crosswalk, speed bump等
红绿灯状态:每条道路上的红绿灯状态(p,s) 对应的位置(x, y) 灯状态:红\绿\黄\不确定
2、输出
Flow Formulation:
论文使用了backward flow, 基于时间t的某一agent的**(x, y)**位置指向此agent在时间t-1的原始位置
后向流表明每个栅格具体来自前一帧的哪个位置,可以使用每个时间步的单个流场为单个agent获取多个未来
每个后向流向量不同位置可能预测来自同一位置,而不同位置不会出现多个来源; 前者表明转为前向流时,时间t-1的某一位置,可以转移到时间t的多个不同位置; 而不同位置不会出现多个来源即时间t-1的不同位置不会转移到时间t的同一位置,说明运动预测时不会发生碰撞
如果使用前向流捕获多个未来需要预测每个单元格的多个流向量及其相关概率;增加时延,内存消耗等
反向流场的关键在于它可以从当前位置推断出可能的历史路径或前置位置。但其并不是在同一时间点对多个物体进行预测,而是为每个物体在不同时间点或不同情况下预测可能的历史路径。
风险性占据流预测
使用替代标签训练相同的模型,这些标签反映了未来已知存在的代理的占用和流向,但在过去时间步中缺失;这样训练出的模型具备了风险性占据预测能力,能提升风险感知能力
3、Model
模型使用了encoder+decoder结构
Encoder 使用了PointPillars-inspired encoder 输出per-pillar embeddings
Decoder基于EfficientDet和BiFPN network 输出|K|*Tpred*3 K对应不同类型的agent
predict occupancy 维度为|K|*Tpred*1
predict flow 维度为|K|*Tpred*2
4、loss
a、occupancy loss
基于binary logistic cross-entropy,建模为2分类问题
b、flow loss
基于L1-norm regression loss 使用真实的Flow 作为label , 使用真实占据场作为权重
c、Flow Trace Loss
基于warping process 操作,迭代得到每个时间的flow-warped occupancy
其中 �0 为 �0 通过真实输入得到:
通过后向流操作可以有多个到达点,通过连续的warp process不断增加可达范围,即flow-warped occupancy的范围不断变大,并且不会移出到栅格外, 图中第一行箭头标注的地方可以看到agent 可直行也可掉头
flow warping process 没有使用 occupancy预测结果,但 �� Wt需要乘上对应的occupancy预测结果 ��
最终训练loss为
Agent ID 恢复实现
基于Flow Trace, 从标注ID的初始 �0 开始warping process ,那agent ID 会同样跟着扩展, 这样可以很容易得恢复出agent ID
实验
Flow Metrics:EPE
描述flow 预测的准确性,EPE(mean End-Point Error L2 distance)
从结果来看不使用trace loss 时,EPE性能要好一些
使用chain of flow predictions提升了模型性能,AUC,IoU 指标更好一些