4.1 边缘预测, 条件预测和联合预测
category
type
status
slug
date
summary
tags
password
icon
之前我们介绍的预测方法, 大体都是统计学意义上的预测, 也就是所谓的边缘预测(marginal prediction). 但是交互显然是预测甚至ML Planner的重要环节, 因此近些年出现了一些着重考虑交互的预测网络.
如上图, 大部分传统预测模型并不关注交互关系, 得到的预测结果更多的是统计学意义上的边缘预测.
左图表达了传统预测模型的结果即使加入了碰撞loss, 但是并没有真正意义上考虑交互. 每辆车的预测结果都是基于历史信息, 而不考虑他车预测结果是否对自车有影响. 边缘预测结果容易相互矛盾, 没有自洽性.
右图, 联合预测考虑了车辆之间的交互关系. 即使是多模态输出, 每一组模态轨迹也是自洽的, 这也使得多模态输出结果更为真实.
4.1.1 预测问题定义
我们将地图信息和agent历史信息定义为, 是模型输出的预测结果. 那么使用条件概率可以将预测过程定义为: 基于输入信息的条件下, 输出预测结果
以M2I为例, 它主要关注成对的一组交互车辆, 将其中的主导车辆定义为(上图中的蓝车), 被动车辆定义为(上图中的红车).
- marginal prediction 边缘预测
当两车不存在交互关系时, 等同于传统预测网络所做的边缘预测:
- conditional prediction 条件预测
如果它们像上图一样, 是存在明显的主从交互关系的, 可以用条件预测表达:
公式里表面了, 主导车辆的结果只依赖于输入信息, 但是被动车辆车辆则依赖于X和主道车辆的预测结果.
- joint prediction 联合预测
有些交互场景并不存在明显的主从关系, 双方更多的是对等的博弈, 这时认为用联合预测表达:
4.1.2 Scene Transformer
Scene Transformer提出了一些提升联合预测网络的方式.
4.1.2.1 不同预测方法的掩码遮蔽方式
在同一个场景中, 可能会出现多种不同的预测方式. 比如自车一般需要和交互障碍物进行联合预测或者是条件预测. 存在交互关系的agent也是一样. 不存在交互关系得到agent, 或者是不重要的agent进行边缘预测即可.
为了能够方便的对不同预测方式进行训练, Scene Transformer提出了一种特殊的掩码遮蔽方式. 如上图, 它分情况对不同的预测方式进行遮蔽:
- 边缘预测: 遮蔽所有未来位置真值信息
- 条件预测: 如果自车为主导者, 则将自车的蔚来位置真值信息暴露给网络. 后续的模型更多的是用模型的预测轨迹当做条件, 来预测被动车辆的轨迹.
- 目标条件预测: 只把时刻后的位置真值暴露给网络, 而遮蔽到达位置的过程信息. 这种方法适合于自车, 因为自车有导航信息, 即明确的目的.
4.1.2.2 联合预测下的WTA策略
3.4节我们介绍了边缘预测的Winner Takes All(WTA)赢家通吃策略, 每个agent都是一个单独的个体, 只需要考虑自车的预测轨迹是否与真值接近即可. 这样会造成预测结果的不自洽.
比如一共有个模态, 基于确定第个的最佳模态索引. 也就是每个agent的最佳模态都是不一样的.
Scene Transformer在做联合预测时, 对WTA稍做了修改: 它不再去追求个体的WTA, 而是模态整体的WTA.
它计算了当前预测结果每个模态的, 所有agent的整体ADE. 寻找整体最接近真值的模态, 作为最佳模态
这样的好处是, 在真实场景中agent的真值数据一定是自洽的. 那么寻找整体最贴近真值的模态预测结果, 再去计算相关loss, 能让模型的联合预测效果更加真实.
4.1.3 QCNeXt:多目标联合预测网络
我们在2.1和3.1中, 分别介绍了QCNet的encoder和decoder方式, 作者在QCNet基础上提出了考虑联合预测的新网络:QCNeXt.
4.1.3.1 Multi-Agent DETR Decoder
QCNet的做法也很像,用了DETR的做法,先粗proposal预测作为anchor,再精细调整得到预测轨迹。但是QCNet的做法只是对于不同agent的历史信息进行了交互学习,而没有对未来的多mode轨迹进行交互学习。QCNet的DETR是对地图元素和agent的历史特征进行特征融合, 但本文是对于预测的多mode间进行DETR。
- Anchor-Free Trajectory Proposal
随机生成矩阵, 分别代表.
第一步Mode2Time, 将维度作为query, agent feature的时间维度作为key&value, 提取agent历史信息.
第二步Mode2Map, 将维度作为query, 地图信息作为key&value, 提取地图相关信息.
第三步Row-Wise与QCNet不一样, 在维度做self-attention来获得交互信息用作联合预测.
以上操作执行 遍, 最后来一次col维度的self attention使得K个场景之间进行交互(用于避免场景mode塌缩)。
然后用MLP,来解码后两秒的轨迹,这个结果再次作为输入进入Mode2Time的attention。就这样走一步看一步直到得到完整path。
输出结果是个场景,每个场景个agent,T个轨迹点的粗proposal . 4代表的是4个参数: x,y的mean和var。
- Anchor-Based Trajectory Proposal
前面输出的粗粒度信息, 就已经包含了联合预测的结果了. 在它的基础上, 再进行之前类似的attention提取信息. 最终refine出合适的轨迹.
4.1.3.2 Scene Scoring Module
QCNet是对每个agent的不同模态轨迹输出概率, 所有模态轨迹概率之和为1.
QCNeXt则是每个模态(论文中指场景, 但是可以理解为模态)里包含了所有agent的唯一轨迹, 不同agent轨迹是联合预测的结果, 也就是考虑了agent之间相互影响的.
个模态结果, 所以QCNeXt对个模态打上模态对应概率.
4.1.3.3 Training Objectives
QCNet的混合概率分布:
指的是第个agent第个模态轨迹的概率
QCNeXt的混合概率分布:
指的是第个模态的概率, 正如上文说的:这里每个模态包含了所有agent的唯一轨迹
这样设计损失函数之后, QCNeXt的优化目标也就变成了追求模态整体最佳(联合预测), 而QCNet的优化目标是追求单个agent的模态轨迹最佳(边缘预测).
4.1.4 限制联合预测目标的数量
我们可以看到, 联合预测的复杂度高于边缘预测, 显然会增加模型的负担. 但是实际上, 可能场景里大部分的agent, 我们并不是很关心他们的预测结果.
因此我们可以事先只标记出部分关键agent, 来进行联合预测. 其他不重要的agent, 做边缘预测即可.
或者是正在loss中, 将关键和不关键的agent loss计算做区分; 或者是对其遮蔽等等其他方法.
至于寻找关键agent的方法, 可以写一些规则来筛选, 也可以要求planning提供.
参考链接
- M2I: From Factored Marginal Trajectory Prediction to Interactive Prediction
- Scene Transformer: A unified multi-task model for behavior prediction and planning
- Query-Centric Trajectory Prediction
- QCNeXt: A Next-Generation Framework For Joint Multi-Agent Trajectory Prediction
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...