[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation

在前期进行充分调研后,在考虑模型精度与时延的基础上,确定使用VectorNet作为预测模块,直道模型的预测模型,现对模型进行简单的要点分析。

VectorNet

  • [文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation
    • 1. HighLight
    • 2. Summary
    • 3. 网络介绍
      • 向量表示
      • Polyline子图构建
      • 高阶交互
      • 轨迹生成
      • 多任务训练
      • 损失函数
    • 4. 实验
      • Datasets
      • 1. 消融性实验 for the ConvNet baseline
        • Impact of receptive fields
        • Impact of rendering resolution
      • Ablation study for VectorNet
        • Impact of input node types
        • Impact on the graph architectures
      • comparison with ConvNets
          • Comparison of Performance
        • Comparison of FLOPs and model size
          • Comparison with state-of-the-art methods
    • 小结
    • 参考文献

1. HighLight

(1)使用矢量化的高精地图以及障碍物的历史轨迹,从而避免有损渲染

(2)设计子图网络以及全局图网络,建模低阶以及高阶交互

(3)auxiliary task 提高网络性能

2. Summary

最近很多Prediction将车辆和环境呈现为一个鸟瞰的图像,并用卷积神经网络(ConvNets)进行编码。VectorNet通过对矢量化高精地图和车辆轨迹,避免了有损渲染和计算密集型ConvNet编码的步骤。

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第1张图片

语义地图 vs VectorNet对比图

VectorNet在Argoverse和 in-house 的数据集上都取得了最好的效果,并且相比语义地图的方法节省70%的模型参数,节约了计算开销。

3. 网络介绍

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第2张图片

向量表示

向量的表示就是上面图2的最左边。

The geographic extent of the road features can be a point, a polygon, or a curve in geographic coordinates. For example, a lane boundary contains multiple control points that build a spline; a crosswalk is a polygon defined by several points; a stop sign is represented by a single point.

lane可以表示为splines,人行道可以表示为一个很多个点组成的polygon,stop sign标记可以表示为单一个点。 对于agent来说,他们的轨迹也是一种splines。 这些元素都可以向量化表示:

for map features, we pick a starting point and di- rection, uniformly sample key points from the splines at the same spatial distance, and sequentially connect the neighboring key points into vectors;

for trajectories, we can just sample key points with a fixed temporal interval (0.1 second), starting from t = 0 , and connect them into vectors.

  • 对于地图的特征:选择一个start poine和朝向,等间距均匀采样关键点,并于相邻的关键点相连为向量
  • 对于agent轨迹,按照0.1s sample关键点,并将它们连接成向量。

通过向量化的过程,可以得到折线polylines,这个polylines和轨迹、地图标注之间是一一对应的。如果给定的时空间隔足够小,得到的这些折线就与原始地图和轨迹十分接近。

我们将属于折线 P j P_j Pj

的每一个向量vi看出图中的一个节点,节点特征如下:
v i = [ d i s , d i e , a i , j ] v_i=[d^s_i,d^e_i,a_i,j] vi=[dis,die,ai,j]

  • 其中前两个vector分别是vector的start和end point的坐标,可以是(x,y)或者(x,y,z)三维的形式

  • 第三个向量则是attribute属性的特征,比如object的类型,轨迹的时间戳,道路的特征,道路限速等

  • 最后一个是障碍物id,表示 v i v_i vi属于 P j P_j Pj

Polyline子图构建

对于一个Polyline P, 它的节点有 { v 1 , v 2 , . . . , v p } \{v_1,v_2,...,v_p\} {v1,v2,...,vp}

, 可以定义一个子图网络:
v i l + 1 = ϕ r e l ( g e n c ( v i l ) , φ a g g ( v j l ) ) v^{l+1}_i=ϕ_{rel}(genc(v^{l}_i),φ_{agg}({v^{l}_j})) vil+1=ϕrel(genc(vil),φagg(vjl))

v i l v^l_i vil 代表第i个节点第L层的节点特征

g e n c ( ⋅ ) genc(⋅) genc()代表节点的变换,实践中采用MLP来实现

φ a g g ( ⋅ ) φ_{agg}(⋅) φagg()代表特征聚合,用来从相邻的节点来获取信息,实践中采用的是max_pooling

φ r e l ( ⋅ ) φ_{rel}(⋅) φrel()代表vi和周围节点的关系,实践中采用的是concate的操作

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第3张图片

最后经过多层的堆叠,来获取整个Polyline级别的特征:
P = φ a g g ( v i L p ) P=φ_{agg}({v^{Lp}_i}) P=φagg(viLp)
这里, φ a g g ( ⋅ ) φ_{agg}(⋅) φagg()也是max pooling操作

高阶交互

经过上面的子图进行低阶模型建模后,现在有了polyline级别节点的特征 { p 1 , p 2 , . . . , p P } \{p_1,p_2,...,p_P\} {p1,p2,...,pP}

为了建立高阶的交互,需要建立一个global的交互图,详见论文图2的第3个子图。
P i l + 1 = G N N ( p i l , A ) {P^{l+1}_i}=GNN({p^{l}_i},A) Pil+1=GNN(pil,A)

  • p i l {p^l_i} pil代表polyline节点的集合

  • A A A代表邻接矩阵,实践中采用全链接

  • G N N ( ⋅ ) GNN(⋅) GNN()代表 一层的GNN网络,实践中采用的是self attention layer:
    G N N ( P ) = s o f t m a x ( P Q P K T ) P V GNN(P)=softmax(P_QP^T_K)P_V GNN(P)=softmax(PQPKT)PV

    其中,P是node的feature matrix, P Q , P k , P v P_Q,P_k,P_v PQ,Pk,Pv则是它的线性投影。

轨迹生成

经过了全局的网络之后,就生成了节点的特征P(Lt)i,其中Lt是全局GNN网络的层数。然后将P(Lt)i放入decoder进行轨迹的生成:
v i f u t u r e = φ t r a j ( P i L t ) v^{future}_i=φ_{traj}(P^{L_t}_i) vifuture=φtraj(PiLt)

论文中,decoder φ t r a j ( ⋅ ) φ_{traj}(⋅) φtraj() 使用的是MLP,当然也可以用MultiPath的方法。多模型预测

多任务训练

为了让全局交互图能更好地捕捉不同轨迹和地图元素之间的交互信息,论文还提出了一个辅助的任务:在训练过程中,随机mask掉一些节点的特征,然后尝试去还原被掩盖的节点特征:
P ^ i = φ n o d e ( P i L t ) \hat{P}_i=φ_{node}(P^{L_t}_i) P^i=φnode(PiLt)
这里节点的decoder φ n o d e ( ⋅ ) φ_{node}(⋅) φnode() 也是一个MLP,只在训练的时候使用。

损失函数

L = L t r a j + α L n o d e L=L_{traj}+αL_{node} L=Ltraj+αLnode

  • L t r a j L_{traj} Ltraj: negative Gaussian log-likelihood loss

  • L n o d e L_{node} Lnode: 是预测的节点和被掩盖节点的huber损失

GaussianLogLikelihood损失函数为:
L ( x , y ) = − l o g P ( y ) = − l o g P ( y ∣ μ ( x ) , Σ ( x ) ) L(x,y)=−logP(y)=−logP(y|μ(x),Σ(x)) L(x,y)=logP(y)=logP(yμ(x),Σ(x))

where
p ( y ) = p ( y ∣ μ , Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 e x p − 12 ( y − μ ) ⊤ Σ − 1 ( y − μ ) p(y)=p(y|μ,Σ)=1(2π)n/2|Σ|1/2exp{−12(y−μ)⊤Σ−1(y−μ)} p(y)=p(yμ,Σ)=1(2π)n/2Σ1/2exp12(yμ)Σ1(yμ)
Huber比较常见:
KaTeX parse error: Expected '}', got 'EOF' at end of input: …−12δ2otherwise

4. 实验

Datasets

  • Argoverse: 333K 5-second long sequences split into 211K training, 41K validation and 80K testing sequences. (0, 2] seconds are used as observation and (2, 5] seconds for trajectory prediction.
  • In-house dataset:2.2M的训练集和0.55M的测试集,轨迹为4s, (0, 1] 作为历史信息 (1, 4] 作为预测值

1. 消融性实验 for the ConvNet baseline

Impact of receptive fields

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第4张图片

  • 对比Resolution为400X400的卷积核3,5,7,可以看出更大的卷积核会有更大的性能提升,同时计算量也会增大。
  • 从表1的第3行到第6行我们可以看出,较大的裁剪尺寸可以显著地提高性能,同时沿着轨迹裁剪也能得到更好的性能

这一观察结果证实了当把栅格化图像作为输入时,感受野的重要性。同时,也体现了它的局限性,一个精心设计的裁剪策略通常伴随着计算成本的增加。

Impact of rendering resolution

对比分辨率 400× 400(0.25 meter per pixel), 200× 200(0.5 meter per pixel) and 100× 100(1 meter per pixel) 可以看出随着分辨率的提高,性能也普遍得到了提高。

对于Argoverse数据集我们可以看出将分辨率从200×200增加到400×400会导致性能的略微下降,这可以解释为对于固定的3×3卷积核尺寸,有效感受野的减小造成的。

Ablation study for VectorNet

Impact of input node types

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第5张图片

  • 前三行对应只使用目标车辆的历史轨迹,只添加地图特征以及同时添加轨迹特征。我们可以清楚地看到增加地图特征明显地改善了轨迹预测性能。
  • 表2的后四行比较了辅助任务的影响。我们可以看出添加这一任务有助于改善性能,尤其在长期预测。

Impact on the graph architectures

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第6张图片

  • 对于折线子图,三层具有最好的性能,而对于全局图,只需要一层。
  • 让MLP变宽并不会带来更好的性能,反而会对Argoverse数据集造成不好的影响

comparison with ConvNets

Comparison of Performance

对于内部数据集,在大量减少模型参数和计算量的前提下,VectorNet达到了与最好的残差网络模型相当的性能。 对于Argoverse数据集,VectorNet明显优于最好的卷积网络,在预测3秒时位置误差减少了12%。

我们发现内部数据集包含很多静止的车辆,这些场景可以很容易地被卷积网络解决,因为它擅长捕捉局部模式。但是Argoverse数据集中只提供“interesting”场景。VectorNet性能好过最优的卷积网络基线,大概是因为它能够通过层级图网络捕捉更大范围的环境信息。

Comparison of FLOPs and model size

[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第7张图片
[文献阅读笔记]:VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation_第8张图片

结果如表4所示(预测的解码器没有添加到计算量和参数量的计算中)。 我们可以看到随着卷积核尺寸和输入图片尺寸的增加,卷积网络的计算量呈二次方增加,并且模型的参数量也随着卷积核呈二次方增加。 对于VectorNet,计算量取决于场景中的向量节点和折线的数量。对于内部数据集,地图中折线的平均数量为17,包含205个向量。平均动态交通参与者折线数为59,包含590个向量。我们基于这些平均数来计算计算量。注意Vector是以障碍物为中心计算的,所以计算量随着预测目标的数量呈线性增加。

比较R18-k3-t-r400(卷积网络中最优模型)和VectorNet,VectorNet明显优于卷积网络。在计算方面,对于一个交通参与者,卷积网络比VectorNet增加了200+倍的计算量。考虑到场景中车辆的平均数量约为30辆,VectorNet的实际计算量仍然比卷积网络小得多。同时,VectorNet的参数量为卷积网络参数量的29%。基于比较可以发现VectorNet可以在大幅度减少计算成本的同时显著提高性能。

Comparison with state-of-the-art methods

VectorNet性能最好

小结

vectornet是一个比较新颖的特征提取工具,通过将地图与车辆历史轨迹看为"vector"的形式,能较好的学习到环境语义的embedding表达。据说Waymo内部将vector用在高速卡车上。

由于vectornet对于道路模型的依赖较强,可能其只适用于直道障碍物的预测,且后期可以探索,共享特征进行多轨迹并行预测,一次更进一步的降低时延。

参考文献

  1. Gao J, Sun C, Zhao H, et al. VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 11525-11533.

你可能感兴趣的:(文献阅读报告,自动驾驶,深度学习,神经网络)