自动驾驶---E2E架构演进

news2025/1/12 22:25:13

1 背景

        模型最早应用的自动驾驶模块就是感知层面,随着技术的发展,逐渐开始应用到决策规划等其它模块。端到端自动驾驶架构是一种基于深层神经网络模型和方法的自动驾驶技术模式。目前一段式端到端系统只有在英伟达早期所做的demo中实现,再者就是特斯拉(但特斯拉并没有官方说明是一段式端到端,笔者结合特斯拉的OTA推送说明推测端到端到轨迹层面)。

        在目前的量产领域,考虑到系统稳定性和安全性,暂时很少有公司做到一段式端到端,大部分都集中在两段式,甚至三段式。

2 自动驾驶E2E演进

        目前,端到端自动驾驶架构的演进可以分为四个主要阶段,分别是感知模型化,决策规划模型化,多模块化下的模型以及one model。

  • 感知“端到端”

        这一阶段,整个自动驾驶架构被拆分成了感知和预测决策规划两个主要模块,其中,感知模块已经通过基于多传输器融合的 BEV 或者 OCC 技术实现了模块级别的“ 端到端”。通过引入transformer 以及跨传感器的cross attention 方案,感知输出检测结果的精度及稳定性相对之前的感知方案都有比较大的提升,不过,规划决策模块仍然以Rule-based 为主。

2dbfebfe8a9840c8b53339829bcf38a6.png

  • 决策规划模型化

        这个阶段,整个自动驾驶架构被仍然分为感知和预测决策规划两个主要模块,其中,感知端仍保持上一代的解决方案,但预测决策规划模块的变动比较大—— 从预测到决策到规划的功能模块已经被集成到同一个神经网络当中。值得注意的是,虽然感知和预测规划决策都是通过深度学习实现,但是这两个主要模块之间的接口仍然基于人类的理解定义(如障碍物位置,道路边界等);另外,在这一阶段,各模块仍然会进行独立训练。

        相比于第一阶段Rule-based 的决策方案,第二阶段的决策规划模块化很大程度地提升了决策规划应对复杂外界状况的上限。一方面,基于模型的方案能够最大程度地利用数据提升最终效果;另一方面,当现行模型大小不足以应对当前场景的复杂度时,扩大决策规划模型并重新进行训练在工程实现上也要比持续更新和维护规则库或状态空间模型容易很多。在各功能模块都完成了“ 神经网络模型化” 后,接下来的技术发展方向更多地体现在如何通过改进各功能模块间的互联方式获得更好的效果。而以这个标准来看,第二阶段的方案仍然存在着固有缺陷。一方面,为了进行每个模块的独立训练和验证,接口的设计需统一抽象为人类的理解形式,这种方案在带来训练方便及验证便利性的同时,会不可避免地以信息的损失为代价;另一方面,由于各模块之间无法进行全量有效的梯度传导——对每个模型的训练和优化更多地局限在模块内部,因而,在系统层面看,这更多是一种局部优化而非全局优化的方案。

        该阶段可参考笔者之前写的文章《自动驾驶---行泊一体(车位到车位功能)量产》,主要介绍了华为ADS3.0中的方案架构。

ac251fdfa343484fbda280e40f3905ae.png

  • 模块化端到端

        从结构上来讲,这一阶段的结构和上一阶段比较类似,但是在网络结构的细节及训练方案上有很大不同。首先,感知模块不再输出基于人类理解定义的结果,而更多给出的是特征向量。

        相应地,预测决策规划模块的综合模型基于特征向量输出运动规划的结果。除了两个模块之间的输出从基于人类可理解的抽象输出变为特征向量,在训练方式上,这个阶段的模型必须支持跨模块的梯度传导—— 两个模块均无法独立进行训练,训练必须通过梯度传导的方式同时进行。

        第三阶段的模块化端到端则通过避免对接口信号的过度抽象保证了信息的完整性,而跨模块的梯度传导也保证了对端到端模型的所有训练都有助于最终达到全局优化的效果。但该过程仍然有信息之间的相互传递,也不可避免的存在信息损失。

        典型的架构就是UniAD提出的多模块模型架构,其中的感知、地图、决策规划都是模型输出,如下图所示。

3a5472849df1427bac99c6b311979833.png

        还有理想和清华大学共同研究的自动驾驶双系统模型(多模块端到端+VLM) ,笔者也把该方案归到了这一类中,关于理想汽车智能驾驶双系统的详细内容可以参考笔者之前的博客 《自动驾驶---各大车企的端到端之旅》和《自动驾驶---理想汽车智驾进展》。

  • One Model/ 单一模型端到端

        虽然One Model 属于第四阶段的方案,但是这个概念被提出的时间比模块化端到端更早。在自动驾驶产业刚刚开始起步的 2016 年,英伟达在论文《End to End Learning for Self-Driving Cars》中就提出采用单个神经网络(卷积 + 全连的简单架构)来实现端到端的自动驾驶,输入和输出就是最原始的传感器信号、方向盘角度及油门开度。但由于结构设计过于简单,模型的规模也过小,这种方案仅能支持高速或者简单道路状况下的自动驾驶,且仅仅完成了小规模的 demo 验证,与量产需要的可靠性差距较大。

a8900fcc1e50923fdf9a348e453e45ca.png

        然而,随着 Transformer 网络架构和车端算力(逐步可支持0.1B~1B 级参数量网络运行)的提升,One Model 的端到端方案又重新回到人们的视野中,甚至很可能成为端到端的终局解决方案。相比于模块化方案,One Model 端到端方案虽然在训练以及调试上更为复杂,但在理论上,其最终效果具有更高的天花板。主要原因是,无论是采用基于RL/IL 的学习类架构,还是采用以世界模型作为基底的衍生架构,为了保证能够拥有对世界更全面的理解,One Model 端到端方案的训练过程能够涵盖更广范围的数据,这就使得对真实世界的所有知识和认知都可以完整地应用于自动驾驶,因而模型可以实现更好的泛化效果。

        在这一阶段,就不再有感知、决策规划等功能的明确划分。基于实现方案的不同,这一阶段的One Model 可以是基于强化学习(Reinforcement Learning, RL)或模仿学习(Imitation Learning, IL)的端到端模型,也可以通过世界模型这类生成式模型衍生而来。

        目前大部分车企(包括特斯拉,华为,理想,小鹏)集中精力在做 one model,当然也包括one model的优化,但 one  model模型的输出为轨迹,还并没有到控制层面。

        此外,这类架构对于环境以及和其他物体交互的理解具有很强通用性,因此,它就不单单为自动驾驶,也为如机器人等其他领域的应用打好了基础,从而最终实现跨领域模型的统一。

3 总结

        端到端自动驾驶通过统一的模型直接从传感器输入映射到驾驶动作,简化了传统模块化系统的复杂性,但目前还没有完全实现。

        随着深度学习、多模态融合和强化学习等技术的发展,端到端自动驾驶研究在近几年取得了显著进展。未来,通过结合大规模预训练、模型发展和仿真技术,端到端自动驾驶有望实现更高的安全性、鲁棒性和泛化能力。

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

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

相关文章

如何优雅地绘制时序图

说到时序图,相信所有从事嵌入式开发的伙伴都非常熟悉,在各种元器件手册以及处理器说明书中,但凡涉及到通信、接口、交互等内容,都会涉及到时序图。时序图可以非常详细且明确地描述硬件及软件接口中各个信号的时序关系,…

SpringCloud系列教程:微服务的未来(十一)服务注册、服务发现、OpenFeign快速入门

本篇博客将通过实例演示如何在 Spring Cloud 中使用 Nacos 实现服务注册与发现,并使用 OpenFeign 进行服务间调用。你将学到如何搭建一个完整的微服务通信框架,帮助你快速开发可扩展、高效的分布式系统。 目录 前言 服务注册和发现 服务注册 ​编辑 …

WebGIS在应急灾害中对村庄、风景区、机场的影响范围应用-以日喀则市定日县地震为例

目录 前言 一、关于影响范围 1、震中距离5公里 2、震中20公里范围 3、20到80公里范围 二、空间查询知识 1、相关数据介绍 2、空间数据查询 三、前后端数据查询以及web可视化实现 1、后台API实现 2、WebGIS前端实现 四、Web成果展示 1、空间位置分析 2、包含风景区…

使用网页版Jupyter Notebook和VScode打开.ipynb文件

目录 正文 1、网页版Jupyter Notebook查看 2、VScode查看 因为总是忘记查看文件的网址,收藏了但分类众多每次都找不到……当个记录吧(/捂脸哭)! 正文 此处以gitub中的某个仓库为例: https://github.com/INM-6/mu…

景联文科技提供高质量多模态数据处理服务,驱动AI新时代

在当今快速发展的AI时代,多模态数据标注成为推动人工智能技术进步的关键环节。景联文科技作为行业领先的AI数据服务提供商,专注于为客户提供高质量、高精度的多模态数据标注服务,涵盖图像、语音、文本、视频及3D点云等多种类型的数据。通过专…

Python在Excel工作表中创建数据透视表

在数据处理和分析工作中,Excel作为一个广泛使用的工具,提供了强大的功能来管理和解析数据。当面对大量复杂的数据集时,为了更高效地总结、分析和展示数据,创建数据透视表成为一种不可或缺的方法。通过使用Python这样的编程语言与E…

django基于Python的电影推荐系统

Django 基于 Python 的电影推荐系统 一、系统概述 Django 基于 Python 的电影推荐系统是一款利用 Django 框架开发的智能化应用程序,旨在为电影爱好者提供个性化的电影推荐服务。该系统通过收集和分析用户的观影历史、评分数据、电影的属性信息(如类型…

GPT-SoVITS学习01

1.什么是TTS TTS(Text-To-Speech)这是一种文字转语音的语音合成。类似的还有SVC(歌声转换)、SVS(歌声合成)等。 2.配置要求 GPT-SoVITS对电脑配置有较高的要求。 训练:对于Windows电脑&#…

计算机网络 (36)TCP可靠传输的实现

前言 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通过多种机制实现可靠传输,这些机制主要包括连接管理、序列号和确认应答机制、重传机制、流量控制、拥塞控制等。 一、连接管理 TCP使用三次握手&#xff0…

视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp

文章链接:https://arxiv.org/pdf/2412.19761 项目链接:https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题,目标是利用 I2V 模型的生成能力,将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…

make工程管理器与Makefile

目录 一、介绍 1、make工程管理器 2、Makefile 二、Makefile语法规则 1、Makefile语法格式 2、Makefile中特殊处理与伪目标 3、变量、规则与函数 (1)自定义变量使用示例 (2)自动变量使用示例 一、介绍 1、make工程管理器 定义: make是一个命令工具&…

【git】-2 分支管理

目录 一、分支的概念 二、查看、创建、切换分支 1、查看分支-git branch 2、创建分支- git branch 分支名 3、切换分支- git checkout 分支名 三、git指针 -实现分支和版本间的切换 四、普通合并分支 git merge 文件名 五、冲突分支合并 ​​​​​​【git】-初始gi…

3DGabor滤波器实现人脸特征提取

import cv2 import numpy as np# 定义 Gabor 滤波器的参数 kSize 31 # 滤波器核的大小 g_sigma 3.0 # 高斯包络的标准差 g_theta np.pi / 4 # Gabor 函数的方向 g_lambda 10.0 # 正弦波的波长 g_gamma 0.5 # 空间纵横比 g_psi np.pi / 2 # 相位偏移# 生成 Gabor 滤…

接口项目架构流程图-thinkphp6-rabbitmq

一、整个系统流程 第一步:平台在创建好后开启消息队列; 第二步:平台为需要服务的客户开好账号并传输对应的公私钥文件; 第三步:客户通过平台分享的接口连接地址采用开户时的手机号查看; 第四步:…

Vue3初学之组件通信

一起进行学习: 在 Vue 3 中,组件通信是一个非常重要的概念,它决定了如何在父子组件之间、兄弟组件之间以及跨层级组件之间传递数据和事件。以下是 Vue 3 中常见的组件通信方式: 父子组件通信 1.1 父组件向子组件传递数据&#x…

2025年第三届“华数杯”国际大学生数学建模竞赛【A题】Problem A: Can He Swim Faster

问题1:运动员的出色比赛表现通常得益于艰苦且持续的专业训练,这不仅提升了游泳技能,也增强了生理储备。比赛中,科学控制游泳速度是关键,包括保持个人节奏、寻求最佳身体状态节奏和合理分配体力。针对自由泳项目&#x…

【计算机网络】lab4 Ipv4(IPV4的研究)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀计算机网络_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2.…

ELFK日志采集实战

一、日志分析概述 日志分析是运维工程师解决系统故障,发现问题的主要手段 日志主要包括系统日志、应用程序日志和安全日志 系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因 经常分析日志可以了解服务器的负荷&#x…

辅助--Inspector

辅助–Inspector 1.Introduction This manual explains how to use the Inspector. 1.1.Overview Inspector is a Qt-based library that provides functionality to interactively inspect low-level content of the OCAF data model, OCCT viewer and Modeling Data. Thi…

如何播放视频文件

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节3. 示例代码4. 内容总结我们在上一章回中介绍了"如何获取文件类型"相关的内容,本章回中将介绍如何播放视频.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用的功能,不过Flutter官方…