文献阅读报告-Learning Lane Graph Representations for Motion Forecasting

文献阅读报告-Learning Lane Graph Representations for Motion Forecasting-ECCV,2020

原文文献:
Liang, M. and 6 colleagues 2020.\ Learning Lane Graph Representations for Motion Forecasting.\ arXiv e-prints.ECCV, 2020

1. 概览

1.1 简述

文中提出一个运动预测模型,通过利用车道图结构以及actor-map表示交互地图,取代编码栅格图像矢量化图,。通过构造一个车道图像从原始地图数据显式保存地图结构。为了捕获车道图的复杂拓扑和长时依赖关系,提出了LaneGCN(一种图运算算子),它使用多个邻接矩阵扩展图的卷积操作,并沿车道进行尺度扩张。捕捉actor和map之间的复杂的相互作用,利用一个融合网络(FusionNet)对四种类型的交互:actor-to-lane, lane-to-lane, lane-to-actor, actor-to-actor进行建模。

1.2 主要结论和贡献

  1. 过往方法的缺点
    1)rasterization 的过程不可避免的会导致信息的丢失。
    2)使用二维卷积捕捉地图图结构复杂的拓扑结构,效率可能会很低。
  2. 主要贡献
    1)代替删格化地图,从矢量地图数据中构造车道图。
    2)提出车道图卷积网络(laneGCN),以此捕捉车道的拓扑结构和长时依赖。
    3)将actor和车道表征为图中的节点,使用1D CNN和LaneGCN,分别提取actor和车道的节点特征,利用GCN和空间注意力模型捕捉四种交互类型:A2L, L2L, L2A, A2A。

1.3 测试与实验

在Argoverse运动预测基准上进行训练。
数据集:Argoverse
数据规模:train:205942 vail:39472 test:78143
seq_len: 5s observe: 2s pred:3s
KPI:minADE, minFDE, MR(漏失率,最终预测的位置与gt之间超过2m的比率)

1.3.1 与VectorNet的比较

首先,VectorNet使用无向全连接的普通图网络(Vanilla GCN),本文泽根据map拓扑构造稀疏连接的车道图,并提出了针对特定任务的多类型扩展图操作符。
其次,VectorNet使用折线级的节点进行交互,而我们的LaneGCN使用折线段作为地图节点以获取更高的分辨率。注意,在我们的方法中,不同折线中的节点可以扩展连接的相互作用。

1.4 进一步研究方向

2. 模型

文献阅读报告-Learning Lane Graph Representations for Motion Forecasting
首先从原始地图数据(HD-map)中构造车道图像并使用LaneGCN提取地图特征。同时,ActorNet从观察到的过去轨迹中提取行动者的特征。然后使用FusionNet融合模型模拟actor和车道图之间的交互,并预测未来的轨迹。

2.1 模型整体框架

1. ActorNet:

ActorNet接收actor的历史轨迹作为输入,并使用一维卷积提取actor节点的特征。
1)Input tensor:(x,y,mask)T{(x, y, mask)*T} 。其中,(x,y)(x,y): actor的坐标信息,mask: 掩码矩阵,表示轨迹是否需要0填充,T: 输入的seq长度。
2)Model:使用多尺度的一维卷积代替CNNs和RNNs,3组多尺度一维卷积+FPN(特征金字塔网络)+输出残差块
3)Output(128,1){(128, 1)},输出一维特征图,128为输出的hidden_sizehidden\_size
文献阅读报告-Learning Lane Graph Representations for Motion Forecasting

2. MapNet:

从HD地图中构建车道图(矢量化),并使用设计的LaneGCN提取车道节点的Feature。
1)车道图(lane map)的构建,将车道节点定义为车道中心线任意两点之间的中心线片段,而车道节点的位置定义为两点之间的平均坐标。
2)Input:VRN2V\in\R^N*2{Ai}\{A_i\}为邻接矩阵,i{pre,suc,left,right}i\in\{pre,suc,left,right\},其中V为节点矩阵,N表示为节点的数量,2为节点的位置纬度,{Ai}RN×N\{A_i\}\in\R^{N\times N}表示为车道节点属于哪一类型的连通性。节点特征:编码节点的特征信息,考虑相应线段节点的形状(大小和方向)和位置(中心坐标):
xi=MLPshape(viendvistart)+MLPloc(vi)x_i=MLP_{shape}(v_i^{end}-v_i^{start})+MLP_{loc}(v_i)
其中,MLP为多层感知器,xiX,viVx_i\in X,v_i\in V, X为节点特征矩阵用来捕捉每一条节点线段的本地信息。
3)LanConv算子
为了聚合更多的拓扑信息,文章中设计了LaneConv操作符:
Y=XW0+i{pre,suc,left,right}AiXWiY=XW_0+\sum_{i\in \{pre,suc,left,right\}}A_iXW_i
为捕捉长时依赖信息,将LaneConv进行扩张卷积的类比,定义K-dilation-LaneConv:
Y=XW0+AprekXWpre,k+AsuckXWsuc,kY=XW_0+A_{pre}^kXW_{pre,k}+A^k_{suc}XW_{suc,k}
为了进一步提升网络的性能在扩张卷积的基础上,使用多尺度信息定义LaneGCN。
最后,LaneGCN是由4个多尺度Lanconv块组成的堆栈,每一个块由一个LaneConv(1,2,4,8,16,32)LaneConv(1,2,4,8,16,32)和全连接层组成,网络的通道数为128。

文献阅读报告-Learning Lane Graph Representations for Motion Forecasting

3. FusionNet:

融合模块由四个网络子模块组成,用于处理actor和车道节点之间所有的信息流,A2L,L2L,L2A,A2A。
其中,
A2L引入了实时交通信息,如堵塞或使用的车道,用来更新车道节点传播特性的车道的交通信息图。
L2A将更新地图特征并与实时交通信息进行融合,反馈给actor。
A2A处理actor之间的交互并输出actor的特征,然后被预测头用于运动预测。这三个模块的网络模型采用空间注意力层,
L2L使用LaneGCN去提取feature。
节点的特征聚合:
yi=xiW0+iϕ(concat(xi,Δi,j,xj)W1)W2y_i=x_iW_0+\sum_i\phi(concat(x_i,\Delta_{i,j},x_j)W_1)W_2

4. Prediction Header

预测头进行预测时,使用两个分支,一个分支是回归模型,用来预测k个轨迹,一个分支是分类模型,用来对每条轨迹进行打分,得到每条轨迹的置信度。

5. 模型的总体结构图:

文献阅读报告-Learning Lane Graph Representations for Motion Forecasting

6.损失函数

使用分类和回归损失函数对模型进行端到端的训练:
L=Lcls+LregL=L_{cls}+L_{reg}
分类:
Lcls=1M(K1)m=1Mk=k^max(0,cm,k+ϵcm,k^)L_{cls}=\frac{1}{M(K-1)}\sum_{m=1}^M\sum_{k=\hat k}max(0,c_{m,k}+\epsilon-c_{m,\hat k})
其中,M为actor的总数,K为轨迹生成的数量,k^\hat k为k条轨迹中具有最小FDE的那条轨迹,以此为label,c为分类模型的置信度输出。
回归:
Lreg=1MTm=1Mt=1Treg(pm,tk^pm,t)L_{reg}=\frac{1}{MT}\sum_{m=1}^{M}\sum_{t=1}^{T}reg(p_{m,t}^{\hat k}-p_{m,t}^{*})
其中,reg(x)=id(xi)reg(x)=\sum_id(x_i),使用smoothed l1损失:
d(xi)={0.5xi2ifxi<1xy0.5otherwise,d(x_i)=\begin{cases} 0.5x_i^2&if||x_i||<1 \\ ||x_y||-0.5&otherwise, \\ \end{cases}

3. 问题以及思考

  1. 多尺度1D卷积处理actorNet的有效性?是否可以提取时序序列数据?