专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
证券时报  ·  重磅提示!交易仅剩一天 ·  22 小时前  
中国证券报  ·  “停牌潮”!什么原因? ·  昨天  
中国证券报  ·  宇树科技,高薪求才 ·  昨天  
中国证券报  ·  凌晨爆发!中国资产全线大涨 ·  2 天前  
上海证券报  ·  茶饮巨头突变:暂停加盟申请 ·  3 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

SparseDrive:通过稀疏场景表示实现端到端自动驾驶

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2025-01-13 00:26

正文

24年5月来自清华和地平线的论文“SparseDrive: End-to-End Autonomous Driving via Sparse Scene Representation”。

成熟的模块化自动驾驶系统被分解为不同的独立任务,例如感知、预测和规划,这些任务在模块之间会遭受信息丢失和错误积累。相比之下,端到端范式将多任务统一到一个完全可微的框架中,从而可以以规划为导向进行优化。尽管端到端范式具有巨大潜力,但现有方法的性能和效率都不令人满意,特别是在规划安全方面。其归因于计算成本高昂的 BEV(鸟瞰图)特征以及预测和规划的简单设计。为此,本文探索稀疏表示并回顾端到端自动驾驶的任务设计,提出 SparseDrive 范式。具体而言,SparseDrive 由对称稀疏感知模块和并行运动规划器组成。稀疏感知模块将检测、跟踪和在线建图与对称模型架构统一起来,学习驾驶场景的全稀疏表示。对于运动预测和规划,回顾这两个任务之间的巨大相似性,从而为运动规划器提出一种并行设计。基于这种将规划建模为多模态问题的并行设计,提出一种分层规划选择策略,该策略结合碰撞-觉察重评分模块,以选择合理且安全的轨迹作为最终规划输出。凭借这种有效的设计,SparseDrive 在所有任务的性能上都远远超过以前的最先进水平,同时实现更高的训练和推理效率。

如图所示各种端到端范式的比较。(a)BEV 为中心范式:UniAD 为例。(b)提出的稀疏为中心范式。(c)(a) 和 (b) 之间的性能和效率比较。



端到端规划的研究自上个世纪以来一直在进行[43]。早期的工作[6, 7, 44]忽略感知和运动预测等中间任务,这些任务缺乏可解释性且难以优化。一些工作[14, 4, 45, 8]从感知或预测结果中构建显式成本图以增强可解释性,但依靠手工制定的规则来选择成本最低的最佳轨迹。最近,UniAD[15]提出一种统一的查询设计,将各种任务集成到一个面向目标的模型中,在感知、预测和规划方面取得显著的表现。VAD[20]采用矢量化表示进行场景学习和规划约束。GraphAD[56]利用图模型实现交通场景中的复杂交互。FusionAD[49]将端到端驾驶扩展到多传感器输入。然而,以前的方法主要侧重于场景学习,并采用简单的预测和规划设计,没有充分考虑这两个任务之间的相似性,极大地限制性能。

SparseDrive 的整体框架如图所示。具体来说,SparseDrive 由三部分组成:图像编码器、对称稀疏感知器和并行运动规划器。给定多视角图像,图像编码器(包括主干网络和颈部)首先将图像编码为多视角多尺度特征图 I,S 是尺度数,N 是摄像机视角数。在对称稀疏感知模块中,特征图 I 被聚合成两组实例,以学习驾驶场景的稀疏表示。这两组实例分别代表周围智体和地图元素,被输入到并行运动规划器中,以与初始化的自我实例进行交互。运动规划器同时预测周围智体和自车的多模态轨迹,并通过分层规划选择策略选择一条安全轨迹作为最终规划结果。


如下图所示,稀疏感知模块的模型结构表现出结构对称性,将检测、跟踪和在线映射统一在一起。


稀疏检测 。周围智体由一组实例特征 Fd 和锚框 Bd 表示,Nd 是锚框的数量,C是特征通道维度。每个锚框都格式化为位置、尺寸、偏航角和速度:{x,y,z,lnw,lnh,lnl,sinyaw,cosyaw,vx,vy,vz}。稀疏检测分支由N/dec 个解码器组成,包括一个非时间解码器和 N/dec-1 个 时间解码器。每个解码器以特征图 I、实例特征 Fd 和锚框 Bd 作为输入,输出更新的实例特征和细化锚框。非时间解码器以随机初始化的实例作为输入,而时间解码器的输入来自当前帧和历史帧。具体来说,非时间解码器包括三个子模块:可变形聚合、前馈网络(FFN)和用于细化和分类的输出层。可变形聚合模块在锚框 Bd 周围生成固定或可学习的关键点,并将它们投影到特征图 I 进行特征采样。实例特征 Fd 通过与采样特征相加进行更新,并负责预测输出层中锚框的分类分数和偏移量。时间解码器有两个额外的多头注意层:上一帧的时间实例和当前实例之间的时间交叉注意,以及当前实例之间的自注意。在多头注意层中,锚框被转换成高维锚嵌入 Ed,并作为位置编码。

稀疏在线地图。在线地图分支与检测分支共享相同的模型结构,只是实例定义不同。对于静态地图元素,锚点被表示为具有 Np 个点的折线:x0、y0、x1、y1、...、xNp-1、yNp-1。然后,所有地图元素都可以用地图实例特征 Fm 和锚点折线 Lm 表示,Nm 是锚点折线的数量。

稀疏跟踪 。对于跟踪,遵循 Sparse4Dv3[33] 的 ID 分配过程:一旦实例的检测置信度超过阈值 T/thresh,它就会被锁定到目标上并分配一个 ID,该 ID 在整个时间传播过程中保持不变。这种跟踪策略不需要任何跟踪约束,从而为稀疏感知模块提供优雅而简单的对称设计。

如图所示,并运动规划器由三部分组成:自我实例初始化、时空交互和分层规划选择。


自我实例初始化 。与周围智体类似,自车由自我实例特征 Fe 和自我锚框 Be 表示。虽然自我特征在以前的方法中通常是随机初始化的,但自我特征也需要丰富的语义和几何信息来进行规划,类似于运动预测。然而,周围智体的实例特征是从图像特征图 I 中聚合出来的,这对于自车来说是不可行的,因为自车处于摄像头的盲区中。因此使用前置摄像头的最小特征图来初始化自我实例特征:Fe = AveragePool(I/front, S),这样做有两个优点:最小特征图已经编码驾驶场景的语义上下文,并且密集特征图可以作为稀疏场景表示的补充,以防存在一些黑名单障碍物,而这些障碍物在稀疏感知中无法检测到。

对于自我锚框 Be,可以自然地设置位置、尺寸和偏航角,因为知道自车的这些信息。对于速度,直接从真值速度初始化会导致自我状态泄漏,如 [27] 所示。因此,添加一个辅助任务来解码当前自我状态 ES/T,包括速度、加速度、角速度和转向角。在每一帧,用上一帧的预测速度作为自我锚框速度的初始化。

时空交互 。为了考虑所有道路智体之间的高级交互,将自我实例与周围智体连接起来以获得智体级实例:Fa = Concat(Fd, Fe), Ba = Concat(Bd, Be),由于自我实例的初始化没有时间线索,这对于规划很重要,设计一个大小为 (Nd + 1) × H 的实例内存队列用于时间建模,H 是存储的帧数量。然后执行三种类型的交互来聚合时空上下文:智体-时间交叉注意、智体-智体自注意和智体-地图交叉注意。请注意,在稀疏感知模块的时间交叉注意中,当前帧的实例与所有时间实例交互,称为场景级交互。而对于此处的智体时间交叉注意,采用实例级交互,使每个实例关注自身的历史信息。







请到「今天看啥」查看全文


推荐文章
证券时报  ·  重磅提示!交易仅剩一天
22 小时前
中国证券报  ·  “停牌潮”!什么原因?
昨天
中国证券报  ·  宇树科技,高薪求才
昨天
中国证券报  ·  凌晨爆发!中国资产全线大涨
2 天前
上海证券报  ·  茶饮巨头突变:暂停加盟申请
3 天前
吴晓波频道  ·  吴晓波:把市长关进“螺蛳壳”
8 年前
程序员的那些事  ·  详解 awk 工具的使用方法
7 年前