传统的感知和预测模块是分开的,两者通过bbox和轨迹等特征进行联系。这会让预测模块只能接收上游有限的信息,而且感知误差也会传播影响到预测模块的结果。这个工作直接接收原始视频输入,预测agent的轨迹。ViP3D使用稀疏的agent query去检测、追踪和预测轨迹,使得整个过程都是完全可导的。Agent query里编码了先前有用的信息,而不是历史特征图和轨迹。
输入是多视角图像,通过检测和跟踪模块,得到跟踪agent query集合,这包含许多视觉信息,包括agent的运动特性和视觉特征,然后预测模块接收这个跟踪query和地图信息一起作为输入,输出agent的未来轨迹。初始的3D agent query更新和丢弃,在一个query存储库里完成。
模型介绍:这里提取图像用的是ResNet50和FPN,不是ViT系列。然后用相机内参和外参矩阵把3D查询参考点映射到图像的2D坐标上,然后将上面得到的向量作为Q,图像特征L,经过W映射,得到三个QKV矩阵,然后计算跨注意力,最后经过一个带层归一化的两层感知机FFN,更新agent query。
作者设计了两个query来更新和移除agent,一个是匹配query,一个是空query。如果出现一个未匹配query,说明是新出现的agent,如果一个agent消失了,就分配一个未匹配且空的标签,留待后用。对于匹配query,那就说明还在视野里,正在处理。针对二分匹配,使用了一个query解码器输出每个query的中心坐标,损失函数有类别损失和坐标回归损失,即bbox的L1损失。
Query存储库是一个单进单出的队列,大小为S,仅在每个query和它的历史状态之间进行注意力计算,没有多agent交互,每个query对应一个agent。以往的轨迹预测模型分为三部分,agent编码器,地图编码器和轨迹解码器,这里需要一个map编码器,地图编码器采用的是VectorNet,很经典的方法。然后把这些地图特征M,和agent进行跨注意力交互。
模型的loss是联合训练的,包括前面的分类和坐标回归loss。提出了一个新指标,EPA,端到端预测精度。数据集是nuscenes。
这里提到一个trick,就是把agent的最后一个位置作为原始值和方向作为y轴,可以使预测模型集中于未来模态预测,而不是坐标变换。
【论文阅读】ViP3D: End-to-end Visual Trajectory Prediction via 3D Agent Queries
最新推荐文章于 2024-08-21 22:49:00 发布