PaperNotes(16)-Learning Lane Graph Representations for Motion Forecasting

Learning Lane Graph Representations for Motion Forecasting

自动驾驶论文阅读笔记2
Uber–ECCV2020–论文文章代码

模型的作用:Motion Forecasting (这个motion都包括什么呢?
方法:模型由四个模块组成–ActorNet、MapNet、FusionNet、Header

1.ActorNet

作用–编码actor轨迹特征

  1. 输入:每一条actor的轨迹(3xT的输入向量)(actor包括所有运动者?)
  2. 操作:1D CNN + FPN(特征金字塔)(多尺度不断上采样融合特征)
  3. 输出:该轨迹的特征向量(多少维度呢?128维度么)

轨迹表示–位移差
{ Δ p − ( T − 1 ) , . . . , Δ p − 1 , Δ p 0 } \{\Delta p_{-(T-1)},...,\Delta p_{-1},\Delta p_{0}\} {Δp(T1),...,Δp1,Δp0}

Δ p t = ( x t , y t ) − ( x t − 1 , y t − 1 ) \Delta p_{t} = (x_t,y_t)-(x_{t-1},y_{t-1}) Δpt=(xt,yt)(xt1,yt1)

长度为T,不足T的padding 0,下面2xT的位移向量 拼接 1xT的padding标志向量(1-表示该位置的位移是padding的)

ActorNet–3组1D卷积,每组包括两个残差块;特征金字塔融合多尺度的特征(卷积 卷下去,上采样,再和对应的尺度叠加)

输出-- The output of ActorNet is a temporal feature map,whose element at t = 0 is used as the actor feature.(不是很清楚这个时间序列是怎么回事?

2.MapNet

作用–编码地图特征,主要是对车道的编码

  1. 构建lane graph(结点与连接的定义)
  2. 利用LaneGCN获取lane图的特征

2.1 构建lane Graph

  1. lane node --车道中心线的一段,结点位置为两端结点坐标的均值。==一条车?所有?==道线上的众多结点可以表示为向量 V ∈ R N × 2 V\in\mathbb{R}^{N\times 2} VRN×2(结点的二维特征表示)
  2. 车道结点特征向量带有4个连接矩阵 { A i } i ∈ { p r e , s u c , l e f t , r i g h t } \{A_i\}_{i\in \{pre,suc,left,right\}} {Ai}i{pre,suc,left,right}, A i ∈ R N × N A_i\in\mathbb{R}^{N\times N} AiRN×N, A i , j k = 1 A_{i,jk}=1 Ai,jk=1表示结点 j j j 存在一个类型 i i i的邻居结点 k k k
  3. LaneConv Operator
    a). lane node 特征 x i x_i xi–编码形状(长度方向),位置(空间坐标)信息,经过全联接层处理后,输出lane node特征 x i x_i xi;构成结点特征矩阵 X X X
    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)
    b).LaneConv 为了获得lane graph大规模拓扑信息(四个 A i A_i Ai矩阵都用上)
    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
    c).Dilated LaneConv 为了让模型获得车道线方向的长时依赖关系(速度快的物体位移大,只用到 A p r e A_{pre} Apre A s u c A_{suc} Asuc)
    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^k_{pre}XW_{pre,k} + A^k_{suc}XW_{suc,k} Y=XW0+AprekXWpre,k+AsuckXWsuc,k
    d). L a n e C o n v ( k 1 , . . . , k c ) LaneConv(k_1,...,k_c) LaneConv(k1,...,kc)=Dilated LaneConv + LaneConv - k c k_c kc为第 c c c个dilation 尺寸
    Y = X W 0 + ∑ i ∈ { l e f t , r i g h t } A i X W i + ∑ c = 1 C ( A p r e k c X W p r e , k c + A s u c k c X W s u c , k c ) Y=XW_0+\sum_{i\in\{left,right\}}A_iXW_i + \sum_{c=1}^C(A^{k_c}_{pre}XW_{pre,k_c}+A^{k_c}_{suc}XW_{suc,k_c}) Y=XW0+i{left,right}AiXWi+c=1C(AprekcXWpre,kc+AsuckcXWsuc,kc)

2.2 LaneGCN操作
L a n e C o n v ( k 1 , . . . , k c ) LaneConv(k_1,...,k_c) LaneConv(k1,...,kc) + Linear Layer 构成残差块, 4个残差块堆叠,构成LaneGCN。

注意点:
每个结点与邻居结点的连接关系,指明前后左右的结点。
a). 结点A的前驱结点、后续结点:同一条车道线上,能够到达A的结点和A能够到达的结点
b).结点A的左邻居结点、右邻居结点:邻居车道线上空间距离 l 2 l_2 l2最近的结点

对车道结点图不采用广泛使用的图卷积 L = D − 1 2 ( I + A ) D − 1 2 ( 1 ) L=D^{-\frac{1}{2}}(I+A)D^{-\frac{1}{2}}(1) L=D21(I+A)D21(1)更新隐状态的原因:
a). 不知道结点特征会保存何种车道信息(可解释性不强?)
b). 该拉普拉斯矩阵操作没法获取结点的连接关系信息(没有对 A i A_i Ai矩阵的操作,(1)式中的A为结点的邻接矩阵,与 A i A_i Ai内涵不同)
c). 无法解决长时依赖性的问题
为了解决以上三个不足点,作者提出了LaneConv Operator操作。

Dilated LaneConv 参考了dilated convolution,说是能够沿着车道线传递k步的信息。

3.FusionNet

利用空间注意力机制(spatial attention)(用于构建A2L, L2A, A2A) 和LaneGCN(主要用来构建L2L网络的)融合actor结点和lane结点的信息,
四个信息融合模块:

  1. A2L-将实时交通信息传达给lane node
  2. L2L-依据实时交通信息,更新lane node 的特征
  3. L2A-将更新后lane node 的特征返回给actor
  4. A2A-解决actor之间的相互作用,并且actor特征给motion预测网络

L2L 网络结构-结点特征更新时的LaneGAN结构一致
A2L, L2A, A2A网络结构一致,采用空间注意力机制构成残差块。
y i = x i W 0 + ∑ j ϕ ( c o n c a t ( x j , Δ i , j , x j ) W 1 ) W 2 y_i=x_iW_0 + \sum_j\phi(concat(x_j,\Delta_{i,j},x_j)W_1)W_2 yi=xiW0+jϕ(concat(xj,Δi,j,xj)W1)W2

4.Prediction Header

Prediction Header包含两路分支

  1. 回归分支- 回归每一个actor的k种模态(速度?path?)的预测轨迹,每一条轨迹包括T个时间步长, p m , 1 k p_{m,1}^k pm,1k轨迹的二维特征。
    O m , r e g = { ( p m , 1 k , p m , 2 k , . . . , p m , T k ) } k ∈ [ 0 , K − 1 ] O_{m,reg}=\{(p_{m,1}^k,p_{m,2}^k,...,p_{m,T}^k)\}_{k\in[0,K-1]} Om,reg={(pm,1k,pm,2k,...,pm,Tk)}k[0,K1]

  2. 分类分支-计算每个actor k种模态的置信度, 输入特征:actor 特征 拼接 预测轨迹的偏移 embeding- p m , T k − p m , 1 k p_{m,T}^k-p_{m,1}^k pm,Tkpm,1k

5.模型参数学习

end-to-end 学些过程,总的损失函数=分类损失+回归损失
L = L c l s + α L r e g L=L_{cls} + \alpha L_{reg} L=Lcls+αLreg
分类损失:置信系数的max-margin loss
L c l s = 1 M ( K − 1 ) ∑ m = 1 M ∑ k ≠ k ^ max ⁡ ( 0 , c m , k + ϵ − c m , k ^ ) L_{cls}=\frac{1}{M(K-1)}\sum_{m=1}^M\sum_{k\neq\hat{k}}\max(0, c_{m,k}+\epsilon-c_{m,\hat{k}}) Lcls=M(K1)1m=1Mk=k^max(0,cm,k+ϵcm,k^)
回归损失:正预测轨迹,逐结点smoth l1 loss
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}^Treg(p_{m,t}^{\hat{k}}-p_{m,t}^*) Lreg=MT1m=1Mt=1Treg(pm,tk^pm,t)

注:正轨迹 k ^ \hat{k} k^,在最后一个时间结点处拥有最小的偏移误差。


参考博文:
1.ECCV2020介绍Uber在GNN-based motion forecasting的两篇研究论文–还介绍了另一篇文章
2.2007-Learning Lane Graph Representations–提供代码开源信息,赞!
3.文献阅读报告-Learning Lane Graph Representations for Motion Forecasting–有和VectorNet的比较。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值