【ICCV 2023】华科&地平线提出基于矢量范式的端到端自动驾驶SOTA算法方案VAD

目录

一、论文导读

二、论文研究背景 

三、网络模型结构&技术细节梳理

核心创新点一:矢量化场景学习

核心创新点二:通过交互实现规划

核心创新点三:矢量规划约束

四、实验结果部分

整体实验对比

消融实验对比 


一、论文导读

在本文中,作者提出了一种基于纯视觉输入的矢量形式端到端自动驾驶算法VAD,以完全矢量化的方式对整个驾驶场景进行建模,超越了当时现有的端到端解决方案UniAD,在nuScenes数据集上实现了SOTA的性能和效率

二、论文研究背景 

传统的自动驾驶解决方案主要采用模块化的设计思路,其中感知和规划被解耦为独立的模块。但这会造成规划模块的输出结果完全基于感知模块的精度,感知的误差可能会严重影响到规划模块,也就是所谓信息传递是有损的,进而导致一些安全问题。所以,端到端的解决思路是将传感器数据作为感知的输入,用一个整体模型输出规划结果

此外,根据将传感器采集到的信息进行场景表达方式的不同,可以分成栅格化形式矢量化形式两种

  • 栅格化形式:大多数的工作都会将传感器采集的信息转换到栅格化形式的场景表达。这种形式相对简单但计算量很大,并且丢失了很多关键的实例级结构信息下图左侧

  • 矢量化形式:在本文中采用了矢量化的场景表达从而为自动驾驶系统提供道路结构信息以及其他交通参与者的运动信息,进而帮助自动驾驶系统做出更加准确的规划决策(下图右侧

三、网络模型结构&技术细节梳理

下图展示了VAD端到端算法模型的整体网络结构图

核心创新点一:矢量化场景学习

在本文中,矢量化场景的学习主要包括两部分的内容,分别是Vectorized Map以及Vectorized Agent Motion

  • Vectorized Map:在这一部分中,VAD主要采用一组Map Query从构建的BEV Features中提取地图信息,并预测地图向量以及对应的类别得分。在论文中,主要有三种地图元素,分别是lane divider、road boundary以及pedestrian crossing。经过Vectorized Map Transformer处理得到的Map Query以及Map Vector均会参与后续的规划任务

  • Vectorized Agent Motion:在这一部分中,VAD利用Decoder解码出agent相关的属性信息。同时对每个agent的未来轨迹进行预测,包含有不同的模态,每种模态代表了一种驾驶意图。最终agent的运动向量用于去约束自车的规划轨迹以及避免碰撞。同时agent quries作为场景信息喂入到规划模块

核心创新点二:通过交互实现规划

在核心创新点二中,主要包括Ego-Agent交互以及Ego-Map交互两种。

  • Ego-Agent交互:在自车和其他智能体的交互中,VAD先随机初始化ego query,然后与agent quries进行交互学习位置信息和运动信息。对于ego query和agent quries对应的位置编码信息则是利用感知模块的输出结果通过MLP网络编码获得

  • Ego-Map交互:经过上一步更新后的ego query与map query进行交互,从而使交互后的ego query具备整个驾驶场景中的动态和静态信息。对于ego query和map query对应的位置编码信息采用上一步类似的形式,但是参数并不共享

核心创新点三:矢量规划约束

在VAD算法框架中,基于明确的矢量化场景表示,VAD提出了三个实例级规划约束,分别是Ego-Agent碰撞约束Ego-Boundary越界约束Ego-Lane方向约束,如下图所示。

  • Ego-Agent碰撞约束:在这个过程中,本文明确考虑了Ego规划轨迹与其他Agent未来轨迹的兼容性,从而提高规划安全性和避免碰撞问题的发生。具体而言,VAD考虑了自车横向和纵向的安全边界,即在横向上车辆之间可以离的比较近,但是在纵向上却需要更远的安全距离

  • Ego-Boundary越界约束:该约束目的是为了将Ego的规划轨迹远离道路的边界区域,从而使自动驾驶车辆可以始终保持在可行驶区域内

  • Ego-Lane方向约束:该约束来源于自动驾驶车辆的运动方向应与车辆所在车道方向保持一致的先验条件。该约束利用矢量化车道方向来正则化规划轨迹的运动方向,从而实现二者能够保持一致。

四、实验结果部分

整体实验对比

消融实验对比 

### 关于端到端自动驾驶的开源项目和资源 #### 开源项目推荐 一个值得探索的开源项目是由 **OpenDriveLab** 维护的 **End-to-end-Autonomous-Driving** 平台,托管在 GitHub 上[^2]。此项目的地址为 [https://github.com/OpenDriveLab/End-to-end-Autonomous-Driving.git](https://github.com/OpenDriveLab/End-to-end-Autonomous-Driving.git),并采用了 MIT 许可证,方便开发者和研究人员自由贡献与使用。 该平台的核心功能包括但不限于以下几个方面: - **综合调研文献**:涵盖了超过 270 篇相关论文的分析,深入探讨了端到端自动驾驶的动机、方法论、面临的挑战以及未来的趋势。 - **教育资源**:整理了一系列针对不同水平的学习者(从初学者到高级研究员)的在线课程、讲座和工作坊资料。 - **标杆案例与挑战**:包含了多种自动驾驶竞赛的相关信息,例如 CARLA 挑战赛,同时还提供了现有公开数据集的排行榜,有助于社区成员参与竞争和学习。 - **代码与工具**:提供了用于实现端到端自动驾驶算法的具体框架和示例代码,支持快速原型设计和验证过程[^3]。 #### 另一重要开源成果 DriveAdapter 另一个值得关注的工作是 ICCV 2023 的开源项目 **DriveAdapter**,其主要目标在于解决传统行为克隆中存在的感知与规划耦合问题[^4]。该项目提出了一种全新的端到端范式,能够有效利用通过强化学习 (RL) 学习得到的教师模型中的驾驶知识,并克服了诸如感知不完善或教师模型本身存在的缺陷等问题。目前,这个算法已经开源,有兴趣的研究人员可以访问对应的仓库进一步了解其实现细节。 #### 示例代码片段 以下是基于上述提到的一个简单框架初始化脚本的例子: ```python import os def setup_environment(project_path="path/to/project"): """ 准备环境设置函数 参数: project_path (str): 项目路径,默认值为 "path/to/project" 返回: str: 安装成功的消息 """ try: # 创建目录结构 if not os.path.exists(os.path.join(project_path, 'data')): os.makedirs(os.path.join(project_path, 'data')) if not os.path.exists(os.path.join(project_path, 'models')): os.makedirs(os.path.join(project_path, 'models')) return f"Environment set up successfully at {project_path}" except Exception as e: return f"Failed to set up environment due to error: {e}" print(setup_environment()) ``` 以上代码展示了如何创建基本的数据存储和模型保存文件夹以便后续开发工作的开展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值