摘要
现有的方法忽略了问题的对称性,并且计算成本昂贵
我们的方法通过将问题分解为局部上下文提取和全局交互建模
我们提出了平移不变的场景表示和旋转不变的空间学习模块
1.Introduction
痛点:常见的矢量化方法通常对参考系的平移和旋转不具有鲁棒性,为了解决这个问题,现有的研究将场景进行归一化,使其以目标代理为中心,并与目标代理的航向对齐,但随之而来的是计算成本的提高
解决方案:
在第一阶段,我们的框架避免了昂贵的全对全交互建模,并且只在局部提取上下文特征。
在第二阶段,为了补偿受限的局部接受域并捕获场景中的远程依赖,我们通过赋予Transformer编码器局部参考帧之间的几何关系,在以代理为中心的局部区域之间执行全局消息传递。
2.Related Work
略
3.Approach
3.1.Overall Framework
首先将交通场景矢量化,之后分层的聚合场景中的时空信息
在第一阶段,我们为每个代理编码旋转不变的局部上下文特征。自我运动、相邻智能体运动和局部地图结构的聚合可以提供与建模智能体相关的丰富信息。
在第二阶段,全局交互模块聚合不同代理的本地上下文,并更新每个代理的表示,以捕获远程依赖关系和场景级动态。
最后同时对交通场景中所有智能体进行多模态轨迹预测。
3.2.Scene Representation
不像vectorNet那样涉及到点和绝对位置进行相比实现矢量化,而是使用相对位置,即将智能体的相邻帧的位置相减得到轨迹矢量(对于车道段也是同样的操作),使场景完全变成一个向量集。
但是这样不可避免的损失了agent之间以及agent和lane之间的相对位置关系,为此也引入了agent-agent和agent-lane的相对位置向量,这样就可以在没有任何信息损失的情况下完成交通场景的向量化。
3.3Hierarchical Vector Transformer
由于直接用Transformer应用于整个交通场景的时间复杂度太高,我们将场景划分为N个局部区域,N为场景中智能体的数量
每个局部区域以场景中的一个agent为中心。在每个局部区域内是中心agent的轨迹段和局部环境,其中环境信息包括相邻agent的轨迹段和围绕中心agent的局部车道段
对于每个局部区域,我们通过顺序建模每个时间步agent-agent交互,每个代理的时间依赖关系以及当前时间步agent-lane交互,将本地信息聚合到单个特征向量中。
通过空间维度和时间维度的分解,将计算复杂度从O((NT + L) 2)降低到O(NT2 + TN2 + NL),并通过限制局部区域的半径(k < N和l< L)进一步降低到O(NT2 + TNk + Nl)。
由于局部编码器的信息量会受到局部区域范围的限制。为了避免牺牲预测性能,我们进一步采用全局交互模块来补偿受限的局部接受域和捕获场景级动态。
3.3.1Local Encoder
此部分包含三个部分:A-A Interaction ,Temporal Dependency,Agent-Lane Interaction
A-A Interaction:
采用了旋转不变来处理中心agent和附近agent的交互。使用agent的最接近当前帧的位移作为朝向来旋转local region里所有的物体。旋转后的矢量和别的一些语义feature一起进入MLP获得这个agent在历史每一时刻的feature。(作为Cross attention的query)
对于周围agent和当前agent的交互,相比中心agent需要叠加上周围agent和当前agent的相对位置,这样做是为了嵌入agent之间的相对位置关系(作为key和value)
之后就可以通过mlp编码得到q,k,v
先计算周围哪个agent/lane对当前agent的影响最大,即alpha越大,然后与value相乘得到环境特征m
之后应用了一个门控函数将agent自己的信息和环境特征m融合起来过一个sigmod,作为最终结果中agent本身所占的比重
Temporal Dependency:
在A-A Interaction里我们得到了当前agent历史每一帧的feature,这里我们在末尾加上一个可学习的token,再为每一帧加上可学习的位置编码,此时得到,对其作self-attention
M是一个mask,目的是让当前时间步只能观察到之前的时间步而不能观察到之后的时间步
Agent-Lane Interaction:
把agent的local region里所有车道段旋转到当前agent的朝向下,并且融入车道段和当前agent的相对位置向量和车道段的语义信息
将上一步的结果作为query,此步的结果作为key和value作cross attention
3.3.2Global Interaction Module
两个local region之间的交互被定义为
其中包含两个local region的中心agent之间的相对位置向量、旋转角度差
之后用想预测的agent的local encoder编码后的特征hi作为query,其余的agent的local encoder编码后的特征作为key和value作cross attention
3.3.3 Multimodal Future Decoder
作者把未来轨迹建模为多个拉普拉斯分布的组合,将local encoder后的特征和global interaction残差连接输入到MLP中,输出未来位置和相应的不确定度
(输出的轨迹是在agent-centric坐标系下),最后输出形状为[F, N, H ,4](模态数,num of agents,future lenth,坐标和不确定度)。还有另外一个MLP用softmax作为输出层输出每个模态相应的概率[N,F]
3.4. Training
训练策略采用winner-take-all的方式,即在计算损失时只考虑最佳模态的预测,得到
直白的解释的话就是把gt转到agent坐标系,然后计算gt和学到的laplace分布的差(把gt坐标代入laplace分布求值)。因为假设了时间独立,agent独立,因此需要把这个loss乘起来,所以用log后求和来避免特小值。负号确保越接近gt的loss是越小的。
分类loss控制模态概率学习。做法是计算每个模态和gt的差之和,离gt越近的模态算到的值越小,所以取负号使得越接近的模态值越高,然后用softmax计算出一个soft过的one hot label。于是就可以和预测概率去算交叉熵loss了。
4. Experiments
数据集:argoverse1
历史轨迹:20帧
预测轨迹:30帧
评价指标:minFDE、minADE、MR
每个模块的重要性:
门更新以及时间掩码:
平移不变性和旋转不变性:
部分参考:【轨迹预测系列】【笔记】HiVT: Hierarchical Vector Transformer for Multi-Agent Motion Prediction - 知乎 (zhihu.com)