[文献阅读报告]: 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. 模型

在这里插入图片描述
首先从原始地图数据(HD-map)中构造车道图像并使用LaneGCN提取地图特征。同时,ActorNet从观察到的过去轨迹中提取行动者的特征。然后使用FusionNet融合模型模拟actor和车道图之间的交互,并预测未来的轨迹。

2.1 模型整体框架

1. ActorNet:

ActorNet接收actor的历史轨迹作为输入,并使用一维卷积提取actor节点的特征。
1)Input tensor: ( x , y , m a s k ) ∗ T {(x, y, mask)*T} (x,y,mask)T 。其中, ( x , y ) (x,y) (x,y): actor的坐标信息,mask: 掩码矩阵,表示轨迹是否需要0填充,T: 输入的seq长度。
2)Model:使用多尺度的一维卷积代替CNNs和RNNs,3组多尺度一维卷积+FPN(特征金字塔网络)+输出残差块
3)Output ( 128 , 1 ) {(128, 1)} (128,1),输出一维特征图,128为输出的 h i d d e n _ s i z e hidden\_size hidden_size
在这里插入图片描述

2. MapNet:

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

在这里插入图片描述

3. FusionNet:

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

4. Prediction Header

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

5. 模型的总体结构图:

在这里插入图片描述

6.损失函数

使用分类和回归损失函数对模型进行端到端的训练:
L = L c l s + L r e g L=L_{cls}+L_{reg} L=Lcls+Lreg
分类:
L c l s = 1 M ( K − 1 ) ∑ m = 1 M ∑ k = k ^ m a x ( 0 , c m , k + ϵ − c m , 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}) Lcls=M(K1)1m=1Mk=k^max(0,cm,k+ϵcm,k^)
其中,M为actor的总数,K为轨迹生成的数量, k ^ \hat k k^为k条轨迹中具有最小FDE的那条轨迹,以此为label,c为分类模型的置信度输出。
回归:
L r e g = 1 M T ∑ m = 1 M ∑ t = 1 T r e g ( p m , t k ^ − p m , t ∗ ) L_{reg}=\frac{1}{MT}\sum_{m=1}^{M}\sum_{t=1}^{T}reg(p_{m,t}^{\hat k}-p_{m,t}^{*}) Lreg=MT1m=1Mt=1Treg(pm,tk^pm,t)
其中, r e g ( x ) = ∑ i d ( x i ) reg(x)=\sum_id(x_i) reg(x)=id(xi),使用smoothed l1损失:
d ( x i ) = { 0.5 x i 2 i f ∣ ∣ x i ∣ ∣ < 1 ∣ ∣ x y ∣ ∣ − 0.5 o t h e r w i s e , d(x_i)=\begin{cases} 0.5x_i^2&if||x_i||<1 \\ ||x_y||-0.5&otherwise, \\ \end{cases} d(xi)={0.5xi2∣∣xy∣∣0.5if∣∣xi∣∣<1otherwise,

3. 问题以及思考

  1. 多尺度1D卷积处理actorNet的有效性?是否可以提取时序序列数据?
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值