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

本文主要是介绍[文献阅读报告]: 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编码的步骤。

在这里插入图片描述

语义地图 vs VectorNet对比图

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

3. 网络介绍

在这里插入图片描述

向量表示

向量的表示就是上面图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的操作

在这里插入图片描述

最后经过多层的堆叠,来获取整个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

在这里插入图片描述

  • 对比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

在这里插入图片描述

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

在这里插入图片描述

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

comparison with ConvNets

Comparison of Performance

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

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

Comparison of FLOPs and model size

在这里插入图片描述
在这里插入图片描述

结果如表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.

这篇关于[文献阅读报告]: VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/567228

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

【阅读文献】一个使用大语言模型的端到端语音概要

摘要 ssum框架(Speech Summarization)为了 从说话人的语音提出对应的文本二题出。 ssum面临的挑战: 控制长语音的输入捕捉 the intricate cross-mdoel mapping 在长语音输入和短文本之间。 ssum端到端模型框架 使用 Q-Former 作为 语音和文本的中介连接 ,并且使用LLMs去从语音特征正确地产生文本。 采取 multi-st