PaperNotes(18)-VectorNet- Encoding HD Maps and Agent Dynamics from Vectorized Representation

自动驾驶论文阅读笔记1

  • 1. Ployline Garph
  • 2. Global Graph
  • 3. 模型目标函数
  • 4.Related work
  • 5.Experiment
    • 5.1 实验设置
    • 5.2 消融实验
    • 5.3 模型资源消耗
    • 5.4 与其他模型的对比实验

VectorNet- Encoding HD Maps and Agent Dynamics from Vectorized Representation
VectorNet: 通过矢量化表示编码高精度地图与动态交通参与者
自动驾驶大佬waymo
论文翻译

目标:轨迹预测
方法:

  1. 向量化表示地图和移动agent(轨迹,车道线采样,每个点用特征向量表示)
  2. 利用local graph net 聚合每条折线的特征(全联接网路,一条折线最后凝练出一个特征向量–就是一个点)
  3. 利用全局graph聚合各个折线特性点的相互作用(全局图就是各个结点全联接构成的图,经过一层状态更新后通过解码网络得到目标对象的预测轨迹–轨迹的一步坐标位移)

(损失函数的设置,附加恢复网络等等细节需要去看原文)

20210426–(资料表明是CVPR2020的文章,但是标了arxiv:2005.就表示迷惑了)

road components

  1. moving agents(pedestrians, vehicles)
  2. road context information(lanes, traffic lights)

1. Ployline Garph

  1. 向量化
    地图特征(车道线,交叉路口)-选定起点和方向,在spline(样条)上等空间间隔采样,连接相邻点构成向量,运动轨迹-等时间间隔采样关键点,构成向量。一条轨迹 P j \mathcal{P}_j Pj就是一个向量集合 { v 1 , v 2 , . . . , v p } \{v_1,v_2,...,v_p\} {v1,v2,...,vp}
    曲线 P j \mathcal{P}_j Pj向量 v i v_i vi-向量的 d i s , d i e d_i^s,d_i^e dis,die起始和终止点的坐标; a i a_i ai对象类型、时间戳、道路类型、限速;j是轨迹编号:
    v i = [ d i s , d i e , a i , j ] v_i=[d_i^s,d_i^e,a_i,j] vi=[dis,die,ai,j]

  2. 折线子图–polyline subgraphs
    同一条折线(polyline)上的节点构成一张子图,节点特征更新规则:
    v i ( l + 1 ) = φ r e l [ g e n c ( v i ( l ) ) , φ a g g ( { g g e n ( v j ( l ) ) } ) ] v_i^{(l+1)}=\varphi_{rel}[g_{enc}(v_i^{(l)}),\varphi_{agg}(\{g_{gen}(v_j^{(l)})\})] vi(l+1)=φrel[genc(vi(l)),φagg({ggen(vj(l))})]
    g e n c g_{enc} genc–MLP–处理每个节点的特征。同层结点权值共享,不同层权重不同
    φ a g g \varphi_{agg} φagg–最大池化–聚合邻居结点的信息
    φ r e l \varphi_{rel} φrel–concatenation(简单的连接操作)–本结点特征和邻居结点特征相互结合
    堆叠多层 g e n c ( ⋅ ) g_{enc}(·) genc()操作

  3. 折线的表征–同一条折线上所有结点特征经过一个最大池化操作,聚合特征
    p = φ a g g ( { v i ( L p ) } ) \bm{p}=\varphi_{agg}(\{v_i^{(L_p)}\}) p=φagg({vi(Lp)})

注:

  1. 起始和终止点的坐标–二维/三维都可以
  2. 目标agent最后一次被观察到的time step/位置 作为时间或者空间的原点。
  3. 折线子图可以看作是PointNet的一般化–在PointNet中, d s = d e d^s=d^e ds=de a a a l l l为空。但是本文作者表明,odering 信息,连接性约束(没发现呀,和l有关?)使得本文子图网络能够更好的编码结构化的信息。

2. Global Graph

  1. 全局图
    折线结点 { p 1 , p 2 , . . . , p P } \{p_1, p_2,...,p_P\} {p1,p2,...,pP}构造全局图,A–邻接矩阵–为了简单起见,本文采用全联接图。
    { p i ( l + 1 ) } = G N N ( { p i ( l ) } , A ) \{p_i^{(l+1)}\}=GNN(\{p_i^{(l)}\},A) {pi(l+1)}=GNN({pi(l)},A)
    图具体计算采用self-attention操作:
    G N N ( P ) = s o f t m a x ( P Q , P K T ) P V GNN(P)=softmax(P_Q,P_K^T)P_V GNN(P)=softmax(PQ,PKT)PV
    P为结点的特征矩阵, P Q , P K , P V P_Q,P_K,P_V PQ,PK,PV是P的线形投影(具体操作没说)

  2. 预测moving agents的未来轨迹
    v i f u t u r e = φ t r a j ( p i ( L t ) ) v_i^{future}=\varphi_{traj}(p_i^{(L_t)}) vifuture=φtraj(pi(Lt))

φ t r a j ( ⋅ ) \varphi_{traj}(\cdot) φtraj()–轨迹解码器–MLP
(本文GNN网络只有一层,所以在推断的时候,只需要计算target agent的特征。)

  1. 附加图补全任务–auxiliary graph completion task
    为了使图捕获轨迹和车道线强交互,在训练时,隐藏一部分折线结点特征向量,用模型去预测该特征:
    p ^ i = φ n o d e ( p i ( L t ) ) \hat{p}_i=\varphi_{node}(p_i^{(L_t)}) p^i=φnode(pi(Lt))
    φ n o d e ( ⋅ ) \varphi_{node}(\cdot) φnode()–结点特征解码器-MLP,目标函数和BERT的目标函数相似。
    (这一点写的不是很明白, φ n o d e ( ⋅ ) \varphi_{node}(\cdot) φnode()输入特征的构造这一点)

论文解读:Attention is All you need
Transformer–论文翻译:Attention Is All You Need 中文版
论文笔记:Attention is all you need

3. 模型目标函数

多目标优化目标函数:
L = L t r a j + α L n o d e \mathcal{L}=\mathcal{L}_{traj} + \alpha\mathcal{L}_{node} L=Ltraj+αLnode

L t r a j \mathcal{L}_{traj} Ltraj–负高斯对数似然, 轨迹是二维随机变量,作二元高斯分布假设,使用最大似然法。二元正态分布的概率密度函数
L n o d e \mathcal{L}_{node} Lnode–Huber损失函数,预测点的特征和masked 节点特征??

为了避免由 优化 L n o d e \mathcal{L}_{node} Lnode使得结点特征的幅度较小 而引起的平凡解,将结点特征L2正则化后再输入到后续的网路中。


20210430-还剩下related work 和实验部分没有整理

4.Related work

(介绍了4个部分的相关工作)

  1. 自动驾驶中的行为预测–IntentNet, ConvNets, MultiPath…
  2. 多agent交互预测
  3. entities 集合的表征学习–图结点的表示方式
  4. 自监督建模–来自NLP中单词补全任务

5.Experiment

5.1 实验设置

1 数据集
两个车辆行为预测bench-marks

  1. Argoverse dataset:简介 每条轨迹5s,前2s作为观测,后3s作为标签
  2. in-house behavior prediction dataset: 每条轨迹4s,前1s作为观测,后3s作为标签

两个数据集的历史轨迹都是从感知模型来的,所以有噪声(感知建模不准嘛)。Argoverse dataset的标签轨迹也是从感知来的,in-house behavior prediction dataset的标签轨迹是经过手工标记过的。

2 度量
ADE-Average Displacement Error–平均偏移误差,在时间 t = 1.0 , 2.0 , 3.0 s t=1.0,2.0,3.0s t=1.0,2.0,3.0s预测轨迹处的偏移量,单位是米。

3 baseline–ConvNet
从最后一次观测到vehicle的帧开始,往前render N 个连续的帧,每一帧的分辨率为4004003。对于Argoverse 数据集来说400像素代表了130米,in-house数据集来说400像素代表了100米。将N帧堆叠在一起,形成一个4004003N 的图像输入数据。

ConvNet 网络模型输入数据的处理:crop the feature patch around the target vehicle from the convolutional feature map, and average pool over all the spatial locations of the cropped feature map to get a single vehicle feature vector。并且针对卷积的感受野,特征剪裁策略,和分辨率分别做了消融实验。

4 VectorNet
原则-尽量保证于ConVNet具有相同的输入信息(对比实验嘛,怎么公平怎么来)。 折线子图采用3层结构,全局图为一层结构,MLP 是64个结点。对context information,子图和全局图的层数做了消融实验。

5.2 消融实验

1.ConvNet 网络消融实验–卷积核、Crop 尺寸、图像分辨率
2.VectorNet 网络的消融实验–Context、Node Compl、子图和全局图的层数

5.3 模型资源消耗

FLOPs : FLOATING-POINT OPERATIONS PER SECOND–每秒浮点数计算
模型尺寸:

似乎pytorch可以有专门计算的接口: profile

5.4 与其他模型的对比实验

state-of-art: Agoverse Forecasting 挑战赛的冠军。结果统计在表格5中,VectorNet完胜。

你可能感兴趣的:(PaperNotes,自动驾驶,机器学习,人工智能)