深度好文!一文看懂目前端到端自动驾驶算法实现原理

作者 | 大壮 来源 | 智驾极客

 原文链接:https://zhuanlan.zhihu.com/p/28803001646

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心『端到端自动驾驶』技术交流群

本文只做学术分享,如有侵权,联系删文

0

1

从传感器数据到控制策略的端到端方法

端到端自动驾驶基本流程:

(1)子任务模型被更大规模的神经网络模型取代,最终即为端到端神经网络模型;

(2)由数据驱动的方式来解决长尾问题,取代rule-based的结构。

优点:

(1)直接输出控车指令,避免信息损失;

(2)具备零样本学习能力,更好解决OOD问题;

(3)数据驱动方式解决自动驾驶长尾问题;

(4)避免上下游模块误差的过度传导;

(5)模型集成统一,提升计算效率。

02

完全端到端是怎么做的

评估指标

●开环指标

○L2误差

○碰撞率

●闭环仿真

○路线完成率(RC)路线完成的百分比

○违规分数(IS)衡量触发的违规行为

○驾驶分数(DS)表示驾驶进度和安全性

03

端到端的一些主流方法

3.1 UniAD算法详解

算法动机

●跨模块信息丢失、错误积累和特征misalignment

●负向传输

●安全保障和可解释性方面

●考虑模块较少

开创性思路

●第一项全面研究自动驾驶领域包括感知、预测和规划在内的多种任务的联合合作的工作

●以查询方式链接各模块的灵活设计

●一种以决策为导向的端到端框架

主体结构

该模型包括特征提取,特征转换,感知模块(目标检测+多目标跟踪+建图部分,TrackFormer、MapFormer),预测模块(MotionFormer、OccFormer),规划模块(指令导航、Occ矫正轨迹)

性能对比

消融实验证明各个模块都是不可或缺的,然后再去对比单个模块的性能。各个模块的对比这里不再展开。

3.2 VAD算法详解

算法动机

●栅格化表示计算量大,并且缺少关键的实例级结构信息

●矢量化表示,计算方面效率高

主体结构

该模型包括特征提取、特征转换、矢量化场景学习、规划模块。

性能对比

3.3 UAD算法详解

算法动机

●现存方法的标注和计算开销过大,所以本篇没有人工标注的需求

●感知模块的标注不是提升规划性能的关键,扩大数据量才是关键。只对数据量扩大但不增加标注成本。

开创性思路

●无监督代理任务

●自监督方向感知策略

主体结构

整体结构包括两部分的内容,分别是

无监督的代理任务

输入是一个环视的图像,通过GroundingDINO(开集检测器,在训练集中10个类别的数据,但是验证集中有多出来的其他类别也要要求能检测出来),然后得到BEV特征,经过Dreaming Decoder得到预测结果与刚才说获取的标签去计算一个loss(二分类交叉loss)

用于对物体预测的Dreaming decoder的整体结构是:初始化K个角度的Query,BEV特征被分成了K个区域跟Query一一对应,经过GRU模块(用t-1时刻的Query和当前时刻t的特征F去计算当前时刻t的Query),用t时刻的特征和t时刻的Query做一个CrossAttention得到下一时刻的特征。即自回归的一种方式。Query之间对平均值和方差进行一个DreamingLoss,让其分布尽量相似。

利用方向感知的规划模块

该模块包括三部分的内容

(1)PlanningHead规划头(通过模仿学习来计算未来轨迹,对BEV特征进行旋转,过规划头得到响应的预测轨迹,然后GT也要旋转,两者得到一个模仿学习的loss。)

(2)Directional Augmentation方向增强(先对轨迹沿着车辆行驶方向划分为直行、左转、右转,然后通过这个预测头做一个三分类)

(3)Directional Consistency方向一致性(旋转后的特征得到的轨迹再旋转回去之后,跟之前的对比得到loss。)

性能对比

3.4 SparseDrive算法详解

算法动机

●认为传统方法中BEV特征计算成本高

●忽略了自车对周围代理的影响

●场景信息是在agent周围提取,忽略了自车

●运动预测和规划都是多模态问题,应该输出多种轨迹

开创性思路

●探索了端到端自动驾驶的稀疏场景表示,并提出了一种以稀疏为中心的范式

●修改了运动预测和规划之间的巨大相似性,提出了一种分层规划选择策略

主体结构

输入环视的6幅图像,输出是其他agent的预测和规划结果。

中途处理过程包括:特征提取、对称稀疏感知、平行运动规划三大模块。

在对称稀疏感知模块中,主要包含:稀疏检测、稀疏跟踪、稀疏在线建图任务,我们来具体看一下。

在平行运动规划器模块中:作者认为其他agent的轨迹预测和自车的轨迹预测应该是一个任务,并且是互相影响的。

性能对比

3.5 ReasonNet算法详解

这是一个时序+多模态的方案,这篇论文对一些特殊的场景进行了考虑。

算法动机

●应该对驾驶场景的未来发展做出高保真的预测;

●处理长尾分布中罕见不利事件,遮挡区域中未被发现但相关的物体。

开创性思路

●提出一种新型的时间和全局推理网络,增加历史的场景推理,提高全局情景的感知性能;

●提出一种新基准,由城市驾驶中各种遮挡场景所组成,用于系统性地评估遮挡事件。

主体结构

这篇文章是多模态的,所以其输入是图像输入和雷达点云的输入所组成的,输出是waypoints。

主体结构分为三个模块:

感知模块:从Lidar和RGB数据中提取BEV特征;

时间推理模块:处理时间信息并维护存储历史特征的存储库;S用于计算存在Memory Bank中的历史特征和当前特征的相似度

全局推理模块:捕获物体与环境之间的交互关系,以检测不利事件(如遮挡)并提高感知性能。

性能对比

基于本文提出的新的benchmark叫做DOS benchmark:四种场景分别包含25种不同的情况,包括车辆和行人的遮挡,有间歇性遮挡和持续遮挡但有交互线索。

3.6 FusionAD算法详解

这是一篇多模态的方案,是在UniAD的基础上加入了点云数据,改造成了多模态的方案。

算法动机

●传统的模块化方法没办法支持梯度反传,会造成信息的丢失。

●UniAD只支持图像输入,不支持激光雷达信息。

开创性思路

●第一个统一的基于BEV多模态、多任务的端到端学习框架,重点关注自动驾驶的预测和规划任务;

●探索融合特征增强预测和规划任务,提出一个融合辅助模态感知预测和状态感知规划模块,称为FMSPnP。

主体结构

该模型的主体结构包括特征融合模块、预测模块、规划模块。

性能对比

3.7 Hydra-MDP算法详解

CVPR 2024端到端自动驾驶挑战赛冠军+多模态方案,具备多个目标的多头蒸馏。

算法动机

本文作者提出的新的范式,就是规划模块是多模的输出,同时,目标也是多样性的,即不仅是GT的轨迹也同时引入了更多的正样本,由不同的专家给出的。此外,将后处理的模块变成了可微分的用于训练的神经网络的模块,从而消除了第二种范式中由于不可微分而带来的信息损失的情况。

开创性思路

●引入了更多的正样本,由不同专家给出;

●感知真值引入规划模块用于训练。

主体结构

第一部分是感知的信息处理融合和提取,第二个模块是用前面得到的特征去解码出轨迹,最后一个模块是多目标学习范式部分。

感知模块用的Transfuser的baseline

轨迹解码器:计算不同的预测轨迹与GT轨迹的距离,这里用的是L2,用这个距离做softmax,然后去产生不同轨迹的得分情况,从而去监督得分。

多目标多头蒸馏模块:我们看到轨迹模仿学习之后的轨迹还过了其他的MLP,这就是其他头,它的目标也是不一样的,第一个是跟碰撞相关的,第二个是跟行驶区域相关的,第三个是跟舒适度相关的,也就是说不同的评判指标都有一个teacher,之前的模仿学习就是人类的teacher,那么这些teacher是怎么来的呢?怎么通过这些teacher来蒸馏的呢?我们看下作者是怎么去做的,首先我们得到规划词表Planning Vocabulary之后,对规划词表进行了一个模拟(用感知模块的GT进行训练的),有了这两个之后,我们就能算出来这些评估指标,从而计算每条轨迹的得分。总结一下就是对整个训练数据集的规划词汇进行离线模拟,在训练过程中引入每条轨迹的模拟分数的监督。

性能对比

自动驾驶之心

论文辅导来啦

知识星球交流社区

近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。

独家专业课程

端到端自动驾驶大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频

学习官网:www.zdjszx.com

### 自动驾驶端到端技术的实现方法与框架 #### 1. 全场景感知框架的重要性 全场景感知框架是端到端自动驾驶系统的核心组成部分之一,它负责处理来自传感器的数据并生成环境的理解。这一框架的设计需要综合考虑多个方面,包括但不限于感知模块设计、数据处理与融合、场景理解与决策以及系统的实际实现[^1]。 #### 2. NVIDIA 的 Hydra-MDP 框架 NVIDIA 提出了名为 Hydra-MDP 的端到端自动驾驶框架,其核心在于多目标蒸馏(Hydra-distillation)。此方法利用师生学习机制来训练模型,在其中“教师”可以由多种来源组成,比如人类驾驶员的行为记录或者基于规则的传统规划器。通过这种方式,模型不仅学会了遵循预定义规则的能力,还具备了更强的适应性以应对复杂和不可预测的道路状况[^2]。 #### 3. MapFormer 和 MotionFormer 结合的方法 另一种创新性的解决方案是由 MapFormer 和 MotionFormer 构成的技术体系。MapFormer 基于 Panoptic SegFormer 进行改进,用于识别道路上的各种元素并将它们转化为结构化的地图查询形式;这些查询进一步传递给 MotionFormer 来完成动态物体行为预测等功能。这种方法强调对道路要素的有效表达及其对于后续动作规划的支持作用,并且采用稀疏表示减少计算负担的同时保留重要信息[^3]。 ```python class AutonomousDrivingFramework: def __init__(self): self.perception_module = PerceptionModule() self.data_fusion_layer = DataFusionLayer() self.scene_understanding_component = SceneUnderstandingComponent() def process(self, sensor_data): perceived_info = self.perception_module.analyze(sensor_data) fused_data = self.data_fusion_layer.integrate(perceived_info) decision_output = self.scene_understanding_component.decide(fused_data) return decision_output # Example usage of the framework components. framework_instance = AutonomousDrivingFramework() sensor_input = {"lidar": ..., "camera": ...} decision_result = framework_instance.process(sensor_input) print(decision_result) ``` 上述代码片段展示了一个简化版的端到端自动驾驶软件架构实例,展示了如何将不同的功能组件串联起来形成完整的流水线操作过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值