VADv2: 基于矢量表征和概率规划的E2E架构

1. 写在前面

今天分享一篇自动驾驶领域的论文VADv2(End-to-End Vectorized Autonomous Driving via Probabilistic Planning), 基于矢量表征和概率规划的E2E架构,2024年2月份华中科技大和地平线合作的一篇文章, 在经典的端到端模型架构上作出了基于概率规划去输出规划轨迹的改进,更好的建模场景的不确定性。

在这里插入图片描述

  • 论文地址: https://arxiv.org/pdf/2402.13243
  • GitHub地址: https://hgao-cv.github.io/VADv2

内容如下

  • 1. 写在前面
  • 2. 传统自动驾驶 VS 端到端自动驾驶
  • 3. 前期工作
    • 3.1 MapTR
    • 3.2 PIP网络
    • 3.3 VAD架构
      • 3.3.1 Abstact & Introduction
      • 3.3.2 模型架构
  • 4. VADv2
    • 4.1 论文动机
    • 4.2 方法论
      • 4.2.1 模型
      • 4.2.2 Scene Encoder
      • 4.2.3 概率规划
      • 4.2.4 思路来源
      • 4.2.5 Planning词典的构建
      • 4.2.6 训练损失
      • 4.2.7 推理阶段
    • 4.3. 实验
      • 4.3.1 闭环结果
      • 4.3.2 开环结果
      • 4.3.3 定性定量
  • 5. 小总

Ok, let’s go!

2. 传统自动驾驶 VS 端到端自动驾驶

VAD是一个经典的端到端自动驾驶的模型结构框架, 介绍具体结构之前,先简单了解下端到端自动驾驶和传统自动驾驶的区别:
在这里插入图片描述

定义特点
传统自动驾驶感知、预测、规控解耦,每个模块独立优化(1) 每个模块需要单独的encoder, 存在大量冗余计算,每个模块难度会下降
(2) 模块间梯度断开,仅传递指定特征(检测框), 存在信息丢失和误差累计,影响模型最终性能
端到端自动驾驶统一的感知-预测-规划网络,多任务联合优化(1) 共享的Backbone, 大幅降低计算开销
(2) 规划任务的梯度可反转到raw data, 所有上游任务均可以为规划性能服务
(3) 端到端模型是data-driven, 对人工设计的依赖小,无需人工设计各种复杂的规则逻辑

3. 前期工作

VADv2是在VAD的基础上进行的改进,模型架构沿用了VAD上面的模型架构, 而VAD又采用了他们之间提出的一些技术,所以这个部分,主要是先大概介绍下作者团队之前的一些工作。这些工作不会详细整理, 感兴趣的可以看对应的论文。

3.1 MapTR

这是个在线预测的地图方案(端到端在线局部建图),地图在自动驾驶领域中的重要性不言而喻, 主要负责给自动驾驶提供自车的位置以及周围的环境等信息, 在传统自驾领域里面用的是高精地图, 精度非常高,但是标注和维护的成本非常搞。这篇论文的工作是提出了一个能实时在线建图的方案, 用模型的力量取代之前人工的一些工作。

  • 输入: 周视的图像(7V) + lidiar点云数据
  • 输出: 矢量化的道路结构(人行道, 车道分割线,路边界)

优点:

  • 传感器 + 模型, cost 低
  • 端到端输出, 自动化

主要有两篇paper:

  • MapTRv1: https://arxiv.org/abs/2208.14437(地图的物理层级建模,比如道路分割线)

    在这里插入图片描述

  • MapTRv2: https://arxiv.org/pdf/2308.05736(地图的物理层级+逻辑层级(道路中心线)中心线,路口处各种先)
    在这里插入图片描述

  • 代码:https://github.com/hustvl/MapTR

3.2 PIP网络

有了在线的建图方案之后, 作者团队又进了一步, 把建图方案和轨迹预测相结合来证明在线建图方案的有效性,所以基于这个想法作了实验, 提出了PIP网络(Perceive, Interact, Predict: Learning Dynamic and Static Clues for End-to-End Motion Prediction: 基于动静态场景元素交互的端到端轨迹预测)(在线预测地图+轨迹预测方案)

  • paper:https://arxiv.org/pdf/2212.02181
    在这里插入图片描述
  • 输入:周视的6V图片,提取出Map Query, Agent Query
  • 核心: 地图信息和Motion信息设计, 作到agent与地图元素更好的交互
    • 充分利用显式地图元素和隐式query的矢量化地图元素特征
    • 针对预测地图(非高精地图)设计交互策略, 需要规避预测地图产生的误差对模型的影响
      • Agent-wise normalization: 多目标的轨迹预测,每个目标在场景中位置不同,所以把每个目标周围的地图元素放缩到每个目标为中心的坐标系下
      • Filtering:
        • 过滤掉confindence score低的地图元素
        • 针对距离范围的过滤,使得每个目标只关注周围的地图元素
      • 交互:
        • 作完检测, agent query包含目标的特征,这里又引入了一个轨迹模态的query(mode query), 来捕捉不同的驾驶意图下的轨迹特征, 两者合并,得到用来作轨迹预测的motion query

          在这里插入图片描述

        • Mtion之间交互 + 地图信息交互

        • 更新后的Motion query, 用来预测未来的车辆轨迹

  • 结论: 在线地图也能有效的提升轨迹预测方法,接近使用高精地图方案, 证明在线地图的可行性

多模态的endpoint轨迹预测可视化(6模态的轨迹预测)

  • 轨迹预测的中点可视化

    在这里插入图片描述
  • 原始的车辆朝向归一化,统一朝前

    在这里插入图片描述

3.3 VAD架构

在前面两篇工作的基础上,2023年2月份该团队提出了一个经典的端到端模型架构VAD: Vectorized Scene Representation for Efficient Autonomous Driving,矢量化的场景表征的planning方案,把自车规划的工作也加入了进来。(在线建图 + Motion预测 + 自车规划)

  • paper:https://arxiv.org/pdf/2303.12077(ICCV.2023)

主要创新点:

  1. 首次提出基于矢量化环境表征的端到端感知+预测+规控的方案
  2. 提出三项矢量化规划约束,训练阶段优化planning安全性
  3. 无需高精地图和人工设计的后处理步骤
  4. 基于Transformer架构和统一的Query 表征,扩展性强

3.3.1 Abstact & Introduction

简介优/缺点典型
已有方案依赖密集的栅格化场景表示,比如OCC、语义Map1. 计算量大
2. 缺少instance级别的结构化信息
UniAD
新方案将整个驾驶场景矢量化1. instance级别的规划约束,提升了规划安全性
2. 运行速度更快
3.矢量化场景表示优于栅格化。因为矢量化的道路信息已经能够表达道路结构,矢量化的障碍物信息已经能够用于碰撞检测,同时计算量更小
4.矢量化结果同时被规划隐式和显式的使用,隐性feature会用于规划模型,同时显式结果也会给到规划做规划约束,碰撞约束、车道线约束、车道方向约束
VAD

矢量化的场景信息建模, 矢量化 VS 栅格化(预测方面的两个研究方向)

在这里插入图片描述

定义特点
栅格化1. 驾驶场景表征为渲染图的形式
2. 重感知, 相对降低规控模块的负但,引入了很多后处理测量,导致网络鲁棒性稍差
3. 占有图网络
1. 像素级别的预测,计算量大(比如与驾驶无关区域,场景路边等,栅格化表征都需要作预测)
2. 丢失实例级别的特征(比如道路拓扑结构, 在栅格化场景表征中是pixel, 没有方向信息和连接性)
3. 规控方面用的也比较多,原因是易于和现有的安全后处理策略结合(比如,基于占有图(occupcy)预测,仅可在可行区域规划轨迹)
矢量化1. 场景作抽象,把动静态场景元素编码成向量的形式
2. 轨迹预测领域大规模使用
1. 极大降低网络计算量(场景做了抽象, 与场景无关的要素不编码, 矢量表征 相比与 Pixel, 语义层级更高,信息更丰富)
2. 矢量化表征容易和Transformer结合
3. 更高效的场景表征, 保留实例级别特征(比如车辆的速度信息,道路方向等都可以编码到向量中)

3.3.2 模型架构

在这里插入图片描述
架构总结

模块模型结构输入/输出loss设计
BEV Encoder参考Bev Former, 采用了ResNet50输入: 多视角的图片
输出: BEV Feature
Vectorized Motion Transformer输入:BEV feature
输出:agent’s attributes (location, class score, orientation, etc.)和每个agent的多条未来轨迹
Motion Loss:
1. L1 loss: 作为回归loss预测agent的回归属性,比如location,orientation
2. forcal loss预测agent的class
3. l1 loss作为预测轨迹和真实轨迹的距离
4. forcal loss用于多模态之间的分类
Motion会给其他agent预测多条轨迹,有最小FDE的会被作为representative trajectory。Loss计算既考虑了轨迹距离,也考虑了多轨迹的分类loss
Vectorized Map Transformer输入:BEV feature
输出:Map vectors(只考虑3种,车道分隔线、道路边界和人行横道)
Map loss (Lmap)
1.Manhattan distance
2. map classification loss
Planning Transformer输入:three kinds of driving commands: turn left, turn right and go straight, Ego status,Updated Agent Query Updated Map Query
输出:自车未来一段时间的预测轨迹,一般6s
1. imitation learning loss: 预测自车轨迹和真值自车轨迹的loss (Limi)
2. Ego-Agent Collision Constraint: 自车和他车的碰撞Loss (Lcol)
3. Ego-Boundary Overstepping Constraint: 自车轨迹和车道线的loss (Lbd)
4. Ego-Lane Directional Constraint: 自车轨迹和车道行驶方向的loss (Ldir)

重点细节

  • Map Query + Vectorized Map Transformer 是前面的MapTR方案
  • Agent Query + Vectorized Motion Transformer 是前面PIP的方案
  • 创新点:
    • 加了一个Planning Transformer(端到端架构)
      • 提取ego query(随机初始化) ,分别和Motion agent query 与 Map query分别交互,提取驾驶场景中用到的动态 和 静态的信息, query间隐式特征的交互
      • 加 自车的状态信息 + 导航的信息 预测自车的轨迹信息
    • 显示特征(motion的轨迹 + 地图的元素道路拓扑) 作约束,提出了3种约束,以loss的形式体现并惩罚,监督模型训练,使得网络模型获取一个驾驶的先验信息。- Map Query + Vectorized Map Transformer 是前面的MapTR方案
      在这里插入图片描述
      • Ego-Agent碰撞约束 (Ego-Agent Collision Constraint):自车和它车是否碰撞,保证与它车的纵向和横向的安全距离
        在这里插入图片描述
      • 自我边界超越约束 (Ego-Boundary Overstepping Constraint): 与道路边界保持一个安全距离
        在这里插入图片描述
      • 通道方向约束 (Ego-Lane Directional Constraint):预测出来的轨迹要和车道线的方向尽量一致, 车头偏离车道线方向太多,不合理(角度约束)
        在这里插入图片描述

模型训练

在这里插入图片描述
结果

和其他模型的对比结果:
在这里插入图片描述
模型自己的定型定量等实验

在这里插入图片描述

4. VADv2

4.1 论文动机

自动驾驶的决策规划存在天然不确定性, 主要来自:

  1. 场景的不确定性(同一个场景,自车可能有多种选择)
  2. 人类行为的不确定性(司机的驾驶习惯和行为)

这些隐式的因素很难直接被建模出来(左边两张图)。

在这里插入图片描述
判别式建模 VS 概率建模

特点优/缺点典型
判别式建模1. 输出一条确定性的轨迹, 场景与轨迹之间,建模的是一种确定性关系
2. Loss function追求的与轨迹的l2误差最小
例子: 同一个场景, 可能司机两次作出了不同的轨迹,判别式建模,可能会在两个轨迹间作一个折中
确定性建模基于的假设是环境和行为之间有确定的相关性, 但实际上很多场景,人类的行为是多变的
1. 不能很好的处理非凸的可行性空间(决策不只一种)情景, 这时候可能兼顾多种决策,输出折中结果,导致安全问题
2. 倾向于输出训练数据中看到的最多的主导轨迹或者行为
VADv1及之前的方案
概率建模1. 建模场景下不同action的分布, 最后根据场景选择概率更大的action
2. 根据不同策略,选择想要的轨迹
1. 更加丰富的监督信号:不仅监督正样本,也监督了planning vocabulary的所有候选
2. 会输出多种预测结果, 比较灵活,能更好的匹配规则进一步处理
VADv2

4.2 方法论

4.2.1 模型

模型架构
在这里插入图片描述
总结

模块模型结构输入/输出Loss设计
Encoder输入:multi-view image sequence
输出:一组Scene Tokens
     map token: the vectorized representation of the map (including lane centerline, lane divider, road boundary, and pedestrian crossing).
    agent token: other traffic participants’ motion information (including location, orientation, size, speed, and multi-mode future trajectories).
    traffic element token: the states of traffic elements. In CARLA, we consider two types of traffic signals: traffic light signals and stop signs.
     image token
Scene Token Loss: Map tokens, agent tokens, and traffic element tokens are supervised with corresponding supervision signals to make sure they explicitly encode corresponding high-level information.
Planning TransformerMLP Transformer输入:Scene Tokens, Ego state, Navi info
输出:多条轨迹及每个轨迹的概率
轨迹分布词表:we collect all the planning actions in driving demonstrations and adopt the furthest trajectory sampling to select N representative actions to serve as the planning vocabulary. Each trajectory in V is sampled from driving demonstrations and thus naturally satisfies the kinematic constraints of the ego vehicle, which means that when the trajectory is converted into control signals (steer, throttle, and brake), the control signal values do not exceed the feasible range. By default, N isset to 4096.
根据驾驶演示得来,所以轨迹肯定能够转换为有效的控制信号;使用最远轨迹抽样法;N取值是4096
驾驶轨迹分布真值:训练数据中轨迹概率分布
Distribution Loss: 输出的轨迹概率分布与训练数据中的轨迹概率分布的KL散度
Conflict Loss: 与其他agent的轨迹冲突、与车道线的边界冲突

创新点:

  • 提出planning vocabulary
    • Action Space是所有可行的空间, 离散化成词典, vocabulary的每个action对应一条轨迹
  • 根据数据集中的分布,来判断当前场景下, 可行action的概率,让模型建模action的分布

前向传播过程:
在这里插入图片描述
给定某个特定的场景,模型要学习到和行为之间的相关性, 预测轨迹的一个分布,从而决定有哪些行为是可行的

4.2.2 Scene Encoder

Image本身是稀疏, 信息是低层级的, 所以通过各种Encoder对场景特征进行编码,获取instance-level的token, 获得高级别的特征,主要有4中tokens(见图):

  • Map Tokens: 地图表征信息, 道路中心线,分道线,道路边界等路网拓扑
  • Agent Tokens: 其他交通参与者(位置,方向,大小,速度,状态,行为,轨迹等)
  • Image Tokens: 多视图,场景信息
  • Traffic Element Tokens: 交通元素(信号灯, 标志牌)
    其他: 导航信息和自车的一些状态特帧,也通过NLP编码成Embedding。

4.2.3 概率规划

对于planning中的不确定性,采用了一种概率规划。
Planning action的空间是高维连续的,直接建模不可行,所以基于收集的大量轨迹数据,对planning的动作空间离散化。具体做法:

  • 在驾驶场景的数据集中,收集了所有的planning actions(轨迹)

  • 采样N个有代表性行为轨迹, 构成了一个planning词典 V = a i N V = {a^i}^N V=aiN(默认 N = 4096 N=4096 N=4096)

    在这里插入图片描述

  • 轨迹点(N,2)需要编码到高维空间,因为后面要和场景表征token进行交互

    • 借鉴Ne

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NLP11-命名实体识别(NER)概述

目录 一、序列标注任务 常见子任务 二、 命名实体识别(NER) (一)简介 (二)目标 (三)应用场景 (四)基本方法 (五)工具与资源 一…

虚拟仿真无线路由器5G和2.4G发射信号辐射对比(虚拟仿真得出最小安全距离,与国际标准要求一致)

1、前言 有人说,只要有电磁波的地方就有辐射。5G和2.4G信号辐射强度是多少?是否会对人体构成危害?无线路由器的2.4GHz频段,频率范围:2.4 GHz 至 2.4835 GHz,信道宽度:通常为20 MHz,…

深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配

深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配 一、引言二、OpenCV 的安装(一)使用 pip 安装(二)使用 Anaconda 安装 三、OpenCV 基础操作(一)图像的读取、显示与保存(…

DOM HTML:深入理解与高效运用

DOM HTML:深入理解与高效运用 引言 随着互联网的飞速发展,前端技术逐渐成为软件开发中的关键部分。DOM(文档对象模型)和HTML(超文本标记语言)是前端开发中的基石。本文将深入探讨DOM和HTML的概念、特性以及在实际开发中的应用,帮助读者更好地理解和使用这两项技术。 …

【数据挖掘】Matplotlib

Matplotlib 是 Python 最常用的 数据可视化 库之一,在数据挖掘过程中,主要用于 数据探索 (EDA)、趋势分析、模式识别 和 结果展示。 📌 1. Matplotlib 基础 1.1 安装 & 导入 # 如果未安装 Matplotlib,请先安装 # pip instal…

DHCP配置实验

实验拓扑图 首先配置server的IP地址和网关 接下来配置R1 undo info-center enable dhcp enable //开启DHCP服务 ip pool dhcp-pool1 //开始配置dhcp地址池 gateway-list 192.168.1.254 //配置网关 network 192.168.1.0 mask 255.255.255.0 //配置网段和子网掩码 dns-list …

Linux:ELF文件-静动态库原理

✨✨所属专栏:Linux✨✨ ✨✨作者主页:嶔某✨✨ ELF文件 什么是编译?编译就是将程序源代码编译成能让CPU直接执行的机器代码 如果我们要编译一个 .c文件,使用gcc -c将.c文件编译为二进制文件.o ,如果一个项目有多个.…

C++性能优化常用技巧

一. 选择合适的数据结构 1.1 map与unordered_map的选择 如果仅仅只需要使用到快速查找的特性,那么unordered_map更加合适,他的复杂度是O(1)。如果还需要排序以及范围查找的能力,那么就选择map。 1.2 vector与list的选择 通常情况下&#…

Towards Graph Foundation Models: A Survey and Beyond

Towards Graph Foundation Models: A Survey and Beyond WWW24 ​#paper/⭐⭐⭐#​ #paper/💡#​ 背景和动机 背景与意义 随着基础模型(如大语言模型)在NLP等领域的突破,图机器学习正经历从浅层方法向深度学习的范式转变。GFM…

基于 Python 深度学习的电影评论情感分析可视化系统(2.0 全新升级)

基于 Python 深度学习的电影评论情感分析可视化系统,基于 Flask 深度学习,构建了一个 影评情感分析系统,能够 自动分析影评、计算情感趋势 并 可视化展示,对于电影行业具有重要参考价值! 基于 Python 深度学习的电影评…

Cargo, the Rust package manager, is not installed or is not on PATH.

今天在Windows操作系统上通过pip 安装jupyter的时候遇到这个报错,Cargo, the Rust package manager, is not installed or is not on PATH.。 解决办法 官网:https://rustup.rs/# 下载:https://win.rustup.rs/x86_64 安装完成之后&#xff0c…

CSS—text文本、font字体、列表list、表格table、表单input、下拉菜单select

目录 1.文本 2.字体 3.列表list a.无序列表 b.有序列表 c.定义列表 4.表格table a.内容 b.合并单元格 3.表单input a.input标签 b.单选框 c.上传文件 4.下拉菜单 1.文本 属性描述color设置文本颜色。direction指定文本的方向 / 书写方向。letter-spacing设置字符…

开启AI短剧新纪元!SkyReels-V1/A1双剑合璧!昆仑万维开源首个面向AI短剧的视频生成模型

论文链接:https://arxiv.org/abs/2502.10841 项目链接:https://skyworkai.github.io/skyreels-a1.github.io/ Demo链接:https://www.skyreels.ai/ 开源地址:https://github.com/SkyworkAI/SkyReels-A1 https://github.com/Skywork…

数学建模:MATLAB极限学习机解决回归问题

一、简述 极限学习机是一种用于训练单隐层前馈神经网络的算法,由输入层、隐藏层、输出层组成。 基本原理: 输入层接受传入的样本数据。 在训练过程中随机生成从输入层到隐藏层的所有连接权重以及每个隐藏层神经元的偏置值,这些参数在整个…

Android15音频进阶之定位混音线程丢帧问题(一百零八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

_ 为什么在python中可以当变量名

在 Python 中,_(下划线)是一个有效的变量名,这主要源于 Python 的命名规则和一些特殊的使用场景。以下是为什么 _ 可以作为变量名的原因和常见用途: --- ### 1. **Python 的命名规则** Python 允许使用字母&#xff…

Electron+Vite+React+TypeScript开发问题手册

ElectronViteReactTypeScript跨平台开发全问题手册 一、开发环境配置类问题 1.1 依赖安装卡顿(国内网络环境) 问题现象:执行npm install时卡在node-gyp编译或Electron二进制包下载阶段 解决方案: # 配置国内镜像源 npm config …

【计算机网络入门】初学计算机网络(七)

目录 1. 滑动窗口机制 2. 停止等待协议(S-W) 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议(GBN) 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议(SR&a…

《Python实战进阶》No 8:部署 Flask/Django 应用到云平台(以Aliyun为例)

第8集:部署 Flask/Django 应用到云平台(以Aliyun为例) 2025年3月1日更新 增加了 Ubuntu服务器安装Python详细教程链接。 引言 在现代 Web 开发中,开发一个功能强大的应用只是第一步。为了让用户能够访问你的应用,你需…

GitLab Pages 托管静态网站

文章目录 新建项目配置博客添加 .gitlab-ci.yml其他配置 曾经用 Github Pages 来托管博客内容,但是有一些不足: 在不科学上网的情况下,是没法访问的,或者访问速度非常慢代码仓库必须是公开的,如果设置为私有&#xff0…