DriveTransformer革新端到端自动驾驶:统一Transformer架构实现端到端效率革命

一、文章导读

近年来,端到端自动驾驶可谓是自动驾驶领域爆火的话题之一,已经有很多代表性的工作,也取得了非常不错的效果。端到端自动驾驶将感知、预测、规划集成到一个网络框架当中,因为可以做到数据驱动和可扩展性,持续吸引工业界和学术界的兴趣。

虽然端到端算法具有很大的优势,但现有的端到端算法框架大多采用感知-预测-规划的顺序管线,下游任务的性能严重依赖于上游的结果。这种顺序设计可能导致累积误差,从而导致训练不稳定,如图1(b)所示。

现有方法面临的另一个挑战是现实世界的时空复杂性。由于BEV网格的密集特性,基于BEV的表示在长距离检测中存在计算挑战。对于时序融合而言,基于BEV的方法通常存储历史BEV特征进行融合,这同样需要大量的计算。

总而言之,基于BEV的方法忽略了三维空间的稀疏性,并丢弃了每帧的任务查询,这会导致大量的计算浪费,从而影响效率,如图1(c)所示。

图1:不同端到端算法模型网络架构对比

基于上述提到的问题,本文引入了DriveTransformer,一个高效、可扩展的端到端自动驾驶框架,如图1(d)所示。实验结果表明,DriveTransformer在模拟闭环基准测试Bench2Drive和真实开环基准测试nuScenes中均实现了SOTA性能,且推理速度很快。

二、本文创新点

  • 任务并行性:所有任务查询在每个块上直接相互交互,促进跨任务知识转移,同时保持系统稳定性,无需明确的层次结构。
  • 稀疏表示:任务查询直接与原始传感器特征相关,提供一种高效、直接的信息提取方法,符合端到端优化范式。
  • 流式处理:时间融合通过先进先出队列实现,该队列存储历史任务查询和时间交叉注意,确保效率和特征重用。

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

本文提出的DriveTransformer算法模型的整体网络结构如图2所示。

图2:DriveTransformer算法模型的整体流程图

通过上图可以看出,DriveTransformer旨在根据原始传感器输入输出多项任务的结果,包括目标检测、运动预测、在线建图和规划。每个任务都由其对应的查询处理,这些查询彼此直接交互,从原始传感器输入中提取信息,并整合历史记录中的信息。

INITIALIZATION & TOKENIZATION

在DriveTransformer中交换信息之前,所有输入都被转换为统一的Token进行表示,如图3所示。

图3:INITIALIZATION & TOKENIZATION过程示意图

具体而言,来自周围摄像头的多视角图像分别由ResNet等主干网络编码成语义嵌入。同时,本文采用3D位置编码对传感器特征的位置信息进行编码。

此外,本文为了对复杂驾驶场景进行建模,初始化了三种类型的任务查询,以提取不同的信息。

  • Agent Query:用于表示动态目标(汽车、行人等),用于进行物体检测和运动预测;
  • Map Query:表示静态元素(车道、交通标志等),用于进行在线地图绘制;
  • Ego Query:表示自我车辆的潜在行为,将用于进行规划;

TOKEN INTERACTION

DriveTransformer内部的所有信息交换均基于原生注意力机制,确保了其可扩展性和易于部署的特性。本文中涉及到的注意力机制包含三种类型,如图4所示。

图4:DriveTransformer中的三种不同注意力类型

  • Sensor Cross Attention:在任务和原始传感器输入之间建立直接路径,实现端到端学习,避免信息丢失。

  • Task Self Attention:支持任意任务之间的直接交互,而无需明确的约束,从而促进规划感知和博弈论交互预测和规划等协同作用。

  • Temporal Cross Attention:整合了先前观察到的历史信息。

综上所述,DriveTransformer 是由多个块组成的堆栈,每个块包含前面提到的三个注意力机制和一个 FFN:

DETR-STYLE TASK HEAD

  • 目标检测 & 运动预测头:DriveTransformer 采用更端到端的方法,通过将相同的代理查询输入到不同的任务头中,无需跟踪即可进行对象检测和运动预测。
  • 在线建图:由于地图折线分布不规则且多样,点级特征检索而非实例级特征检索至关重要。因此,在进行传感器交叉注意时,DriveTransformer将每个地图查询重复N次,并为每个点配对位置编码。这样,对于那些较长的折线,每个点都可以检索具有更好局部性的原始传感器信息。
  • 规划:将自身车辆的未来运动建模为高斯混合模型。具体而言,DriveTransformer根据方向和距离将所有训练轨迹分为六类:直行、停止、左转、急左转、右转、急右转。为了生成这些模式的轨迹,DriveTransformer将六种模式的嵌入向量分别输入多层感知器进行正弦和余弦编码,然后将其添加到自身特征中,以预测六种特定于模式的自身轨迹。

四、实验结果

本文在Bench2Drive闭环数据集上开展了评估实验,与其他SOTA算法模型的比较结果汇总在下图所示。

DriveTransformer在nuScenes开环数据集上与其他SOTA算法模型的比较结果汇总在下图所示。

一些可视化结果展示

五、结论

本文提出了DriveTransformer,一个基于Transformer的端到端自动驾驶统一范式,其特点是任务并行、流式处理和稀疏表示。它在Bench2Drive的CARLA闭环评估和nuScenes开环评估中均实现了最佳性能,并实现了高FPS,展现了这些设计的高效性。

#算法##算法工程师##论文##自动驾驶#
智驾感知论文集合 文章被收录于专栏

记录一位智驾感知算法工程师的日常读论文笔记(不定期更新~)

全部评论

相关推荐

06-02 21:16
已编辑
门头沟学院 嵌入式工程师
1.自我介绍2.问最近的一个项目:工创赛的生活垃圾智能分类的项目的背景和目的🗡你们是软硬件都有做🗡问项目里面的maxicam是通过什么来通信的🗡了解串口通信的基本特性吗?🗡用的串口是多大波特率的?🗡调试的时候有用到什么设备来测串口吗?🗡模块是外购的还是自己设计的?🗡电源是自己设计的电路板吗?(其实我们不完全自己设计,只设计了分电板,稳压模块是自己买的,当时有点小尴尬)🗡这个锂电池能供多少电压和电流(只知道电压12v,电流没有具体测过😅)🗡显示屏是通过什么传输?串口🗡摄像头是怎么跟主芯片沟通?串口能够保证🗡摄像头的整个图像信号传到STM32🗡🗡你们整个装置有涉及到蓝牙和wifi(我说没有,我应该引导到我另一个项目,我另一个项目做了,面试官应该是想问这方面的问题)有没有涉及到画pcb💡(面试官还解释了一下杜邦线,想太多会乱,连接上不是很稳定)🗡你知道pcb画板的一些基本的规则(好久之前花了STM32两层开发板,很多规则忘记了,只记得一个高频信号走钝角和铺铜)这里回答了很不好后面面试官还说了一下我pcb设计的比较少,确实也设计的比较少,本来面试前是有想去看看的,但是忘记了😣💡后面面试官还解释了一些画pcb的规则:高速线不走直角…铺铜的话对地的处理…对地的铺铜要完整还有线宽啊,电流大的话,要走大线。还有线间距,还有线不能在外面。布局,考虑到散热的设计,大功率器件不能靠太近,会发热之类的。(面试官讲完我才想起来😂)3.接着让我挑一个印象最深刻的来说我说了第一个项目,还解释是包装过的,原本叫基于多传感融合的医院智能配送机器系统,实际上是智能送药小车题目(其实我不应该太实诚,应该继续说下去)1⃣这些都是通过算法去编的,用的是什么语言🗡PID控制是什么意思🗡最难的地方在哪里🗡调试PID有出现什么问题🗡这个项目实际偏软件的,在产品是怎么调试的(其实我是预料到这个问题的,面试官肯定也是想引导我往硬件方面引导)🗡灰度传感器是什么原理4.项目参与参与比较多,向往嵌入式还是哪个方向发展(这个回答的没有具体回答)我只是说我想全方面发展5.面试官给我解释公司是做什么的:做相机产品的硬件测试以及他的屏幕,电池的充放电,电池的一些保护特性:过压保护、欠压保护还有续航,接口类的性能测试(TyPeC)还有存储接口数据传输之类的东西。在测试过程用到一些基本的电子测试工具,比如万用表,示波器,debug工具串口工具,所以我们这边大部分都是偏硬件测试的工作。6.问了这个和我的预期是不是相符的我回答是相符的。(其实复盘的时候可能面试官觉得我不太符合才和我解释他们的工作内容)7.从学生到实习到职场有一个转变过程,从学生到职场需要什么样的调整(其实我没有准备这个内容,其实刚开始有一点慌)后面就想到心态的调整…和人际交往(这里面试官笑了一下应该还是回答的比较好)8.我有什么不足我就直接承认了我的硬件方面要补足的…9.经典反问1⃣有几轮面试2⃣可以说一下面试评价吗面试官首先是肯定了我是比较好的,对项目熟悉程度也是ok,不足1.在于对后面的职业规划不够明确,给面试官不太判定我的意向2.硬件技能上的不足居然复盘的时候发现在说第一个项目的时候挺卡顿的,总是会说嗯…,然后…简历不太符合岗位,可能通过不了面试官还是挺好的,对我的回答有补充,回答不了也有解释
查看24道真题和解析
点赞 评论 收藏
分享
评论
7
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务