51-16 FusionAD 用于自动驾驶预测与规划任务的多模态融合论文精读

news2024/11/17 3:25:51

今天要分享的是基于BEV的多模态、多任务、端到端自动驾驶模型FusionAD,其专注于自动驾驶预测和规划任务。这项工作首次发表于2023年8月2日,性能超越了2023 CVPR最佳论文UniAD模型。论文题目是FusionAD: Multi-modality Fusion for Prediction and Planning Tasks of Autonomous Driving,主要作者来自Udeer.ai、西湖大学和和菜鸟网络。

Abstract

构建多模态、多任务神经网络以实现准确和稳健的性能是自动驾驶感知任务的事实标准。然而,利用来自多个传感器的这些数据来联合优化预测和规划任务在很大程度上仍未得到探索。为此我们提出了 FusionAD,这是第一个融合来自两个最关键传感器(相机和 LiDAR) 信息的统一框架,超越了感知任务。具体来说,我们首先构建了一个基于transformer的多模态网络,以有效地产生基于融合的特征。与基于相机的端到端方法UniAD相比,我们建立了一个旨在融合模态感知预测和状态感知规划的模块。它利用了多模态特征,在这里称为 FMSPnP。我们在常用的基准nuScenes数据集进行了广泛的实验,FusionAD在检测和跟踪等感知任务上有最先进的性能。它平均超过基线15%,占用预测精度提高10%,ADE评分的预测误差从0.708降低到0.389,并将碰撞率从0.31%降低到仅0.12%。

Introduction

在过去的几年里,深度学习一直在加速自动驾驶 (Autonomous Driving,AD) 的发展。对于自动驾驶,AD算法通常将相机和激光雷达信号作为感知输入,然后直接输出控制命令。AD任务通常分为感知、预测和规划。在传统的范式中,AD中的每个学习模块分别使用自己的主干并独立执行学习任务。此外,预测和规划等下游任务通常依赖于感知结果的向量化表示,而高级语义信息通常是不可用的,如图所示。

以前,基于端到端学习的方法通常基于透视视图相机和激光雷达信息直接输出控制命令或轨迹。最近的端到端学习方法开始将端到端学习表述为一个多任务学习问题,同时输出中间信息以及计划的轨迹。这些方法仅采用单一输入模式。另一方面,特别是通过融合激光雷达和相机信息进行感知任务,可以显著提高感知结果。最近,人们对BEV (Bird’s Eye View)感知的兴趣激增,特别是对于以视觉为中心的感知。这一发展显著提高了自动驾驶汽车的能力,并使视觉和激光雷达模式的融合更加自然。对于感知任务,已经证明了使用基于BEV融合的方法是非常有效的。然而,以端到端的方式使用来自多模态传感器的特征,在预测和规划任务中仍未得到探索。

为此,我们提出了 FusionAD。据我们所知,这是第一个基于专注于自动驾驶预测和规划任务的BEV多模态、多任务端到端学习框架。我们从最近流行的以视觉为中心的方法开始来制定我们的pipeline。首先,我们设计了一个简单而有效的transformer架构,融合多模态信息,在BEV transformer 空间中产生统一特征。由于我们的主要重点是探索融合特征以增强预测和规划任务,为此制定了融合模态感知预测和状态感知规划的模块,称为FMSPnP。它结合了渐进式交互和细化,制定了基于融合的碰撞损失建模。与其他方法不同的是,FMSPnP 模块利用了如图所示的分层金字塔架构,以确保所有任务都可以从中间感知特征中受益。该方法更好地传播高级语义信息,并有效地共享不同任务之间的特征。

我们在流行的自动驾驶基准nuScenes数据集上进行了广泛的实验,实验表明FusionAD显著优于目前最先进的方法。主要贡献总结如下:

我们提出了一种基于BEV融合的自动驾驶多感知、多任务、端到端的学习方法。与基于相机的BEV方法相比,基于融合的方法大大提高了性能。

我们提出了 FMSPnP 模块,该模块结合了模态自注意力和预测任务,以及宽泛的碰撞损失和与矢量化的自我信息融合以进行规划任务。实验研究表明,FMSPnP提高了预测和规划结果。

我们对多个任务进行了广泛的研究,以验证所提方法的有效性,实验结果表明,FusionAD在预测和规划任务中取得了SOTA结果,同时在中间感知任务中也保持具有竞争力的结果。

Related work

BEV Perception

BEV感知方法在自动驾驶中用于感知周围环境,引起了人们广泛的关注。基于相机的BEV方法将多视角摄像机图像特征转换为BEV空间,无需后处理重叠区域即可实现端到端感知。LSS 和BEVDet 使用基于图像的深度预测来构建视锥,并提取图像BEV特征进行地图分割和3D对象检测。在此基础上,BEVdet4D和SoloFusion通过将当前帧BEV特征与对齐的历史帧BEV特性相结合来实现时间融合。BEVFormer使用带有transformer的时空注意力来获得时间融合的图像BEV特征。这些方法提高了对动态环境的理解,增强了感知效果。但是基于相机的感知方法距离感知精度不足,LiDAR可以提供准确的位置信息,然其点云又是稀疏的。为了解决这个问题,之前的一些方法探索了融合多模态数据以进行感知。BEV是基于Lidar的感知算法的一个共同视角,将多模态特征转换为BEV空间有助于融合特征的融合。BEVFusion将LSS方法得到的图像BEV特征与Voxelnet得到的LiDAR BEV特征连接起来,得到融合的BEV特征,提高了感知性能。SuperFusion进一步提出了基于多模态地图感知的多阶段融合。

Motion Forecasting

由于VectorNet方法取得的成功,现在主流运动预测(或轨迹预测)方法通常利用高清地图和基于矢量的障碍物表示来预测agent的未来轨迹。在此基础上,LaneGCN和PAGA通过改进的地图特征(如车道连接属性)来增强轨迹-地图匹配。此外,某些基于锚点的方法对地图附近的目标点进行采样,从而能够基于这些点进行轨迹预测。然而,这些方法严重依赖于预先收集的高清地图,这使得它们不适合地图不可用的区域。

矢量化预测方法往往缺乏高级语义信息,需要高清地图辅助,因而,最近的工作开始使用原始感知信息进行轨迹预测。PnPNet提出了一种新的跟踪模块,该模块从检测任务中在线生成目标轨迹,并利用轨迹级特征进行运动预测,但其总体框架基于CNN,运动预测模块相对简单,只有单模输出。由于transformer应用于检测和跟踪,VIP3D成功地借鉴了以前的工作,提出了第一个基于transformer的联合感知预测框架。UniAD进一步合并了更多的下游任务,并提出了一个面向规划的端到端自动驾驶模型。在前辈的基础上,我们对运动预测任务进行了更精细的优化,并引入了细化机制和模型注意力,大大提高了预测指标。

Learning for Planning

模仿学习(IL)和强化学习(RL)已被用于规划。IL 和 RL 用于端到端方法 (使用图像和/或激光雷达作为输入)或矢量化方法(使用矢量化感知结果作为输入)。虽然使用中间感知结果进行规划可以提高泛化和透明度,但矢量化方法存在后处理噪声和感知结果的变化。早期的端到端方法,如ALVINN和PilotNet,通常直接输出控制命令或轨迹,而缺乏中间结果/任务。相反,P3、MP3、UniAD学习了一个端到端的可学习网络,该网络执行联合感知、预测和规划,可以产生可解释的中间表示,提高了最终的规划性能。然而,它们要么只使用激光雷达输入,要么利用相机输入,这限制了它们的性能。Transfuser方法同时使用激光雷达和相机输入,但不在BEV空间中,只执行很少的AD学习任务作为辅助任务。为了解决这个问题,我们提出了一种基于BEV融合的、统一的多模态、多任务框架,该框架同时融合激光雷达和相机输入。

Method

我们提出的FusionAD的整体网络架构如图所示。最初,使用基于BEVFormer的图像编码器将相机图像映射到BEV空间。然后,这些再与BEV空间中的激光雷达特征相结合。再经过时间融合之后,融合的 BEV 特征将用于通过基于查询的方法进行检测、跟踪和映射任务。随后,token被转发到运动和占用预测任务和规划任务。我们把辅助模态感知预测和状态感知规划模块简称为FMSPnP。

BEV Encoder and Perception

我们从FusionFormer中获得灵感,提出了一种新的多模态时间融合框架,用基于transformer的架构进行三维目标检测。为了提高效率,我们采用类似于BEVFormer的循环时间融合技术。与FusionFormer不同,我们使用BEV格式的特征作为LiDAR分支的输入,而不是体素特征。多模态时间融合模块包括6个编码层,首先利用一组可学习的BEV查询器分别使用points cross-attention和image cross-attention融合LiDAR特征和图像特征,然后,我们通过时间自注意力将生成的特征与前一帧的历史BEV特征融合。查询由前馈网络更新,然后作为下一层的输入。经过6层融合编码后,这将为后续任务生成最终的多模态时间融合BEV特征。

LiDAR 首先对原始LiDAR点云数据进行体素化,然后根据SECOND网络生成LiDAR BEV特征。

Camera 多视角相机图像首先通过骨干网进行特征提取,然后,利用FPN网络生成多尺度图像特征。我们进一步开发了以下技术来有效地提高融合模块的性能。

Points Cross-Attention

在points cross-attention过程中,每个BEV查询只与其对应的参考点周围的LiDAR BEV特征交互。这种交互是使用可变形注意力实现的:

其中 Qp 表示点 p = (x, y) 处的BEV查询,BLiDAR表示LiDAR分支输出的BEV特征。P是BEV空间中坐标p=(x,y)在LiDAR BEV空间中的投影。

Image Cross-Attention

为了实现image cross-attention,我们参照了BEVFormer类似的方法。每个BEV查询都以类似于pillar表示。在每个pillar沿 Z 轴采样固定数量的 Nref 3D 参考点。image cross-attention过程如下所示:

其中 Vhit 表示可以投影参考点的相机视图的数量,i 是相机视图的索引,Fi 表示第 i 个相机的图像特征,P (p, i, j) 表示 BEV 查询 Qp 到第 i 个相机的图像坐标系中的 3D 参考点 (x, y, zi) 的投影。

Temporal Self-Attention

我们还参考了BEVFormer来实现时间自我注意。具体来说,我们的方法涉及基于车辆在帧之间的运动的历史帧 BEV 特征的时间对齐。然后我们使用时间自注意力来融合历史帧 BEV 特征,如下所示:

其中B 't−1表示时间对齐后时间戳t−1处的BEV特征。由于我们对预测和规划增强感兴趣,对于感知中的检测、跟踪和映射任务,我们主要遵循UniAD论文中的设置。

Prediction

得益于信息量更大的BEV特征,预测模块能接收到更稳定、更细粒度的信息。在此基础上,为了进一步捕获多模态分布并提高预测精度,我们引入了模态自注意力和细化网络。设计细节可以在下图中找到Design of the prediction module in FMSPnP。

Context-Informed Mode attention

在UniAD中,使用数据集级的统计锚点来辅助多模态轨迹学习,并应用锚点间自注意力来提高锚点的质量。然而,由于这些锚点没有考虑历史状态和地图信息,它们对多模态学习的贡献是有限的。因此,我们稍后考虑添加此操作。在运动查询检索所有场景上下文以捕获代理-代理、代理-地图和代理-目标点信息后,我们引入 mode self-attention来实现各种mode之间的相互可见性,从而获得更好的质量和多样性。

其中MHSA表示多头自注意。Qu 表示获取上下文信息的查询。

Refinement Network

可变形注意力使用统计锚作为参考轨迹与 Bev 特征交互。如前所述,由于需要特定的场景信息,该参考轨迹增加了后续学习的难度。我们引入了一个Refinement Network,使用Motionformer生成的轨迹作为更精确的空间先验,查询场景上下文,并在这个阶段预测地面真实轨迹和先验轨迹之间的偏移量。如下所示:

Anchorp 表示空间先验,一个简单的MLP将用于对Motionformer输出的轨迹进行编码,在时间维度上执行maxpool得到它。Xm表示Motionformer输出轨迹的端点。

 Planning

在评估过程中,我们无法访问高清 (HD) 地图或预定义的路线。因此,我们依靠可学习的命令嵌入来表示导航信号(包括左转、右转和保持前进)来指导方向。为了获得周围的嵌入,我们将由自我查询和命令嵌入组成的计划查询输入到BEV特征中。然后,我们将其与由 MLP 网络处理的自我车辆嵌入进行融合,以获得状态嵌入。然后将此状态嵌入解码为未来的航路点 ^τ。

为了确保安全,在训练过程中,除了简单的imitation L2 loss外,我们还将碰撞损失的可微分collision loss纳入,如下设计。

其中 λimi = 1, λcol = 2.5, ^τ 是原始规划结果,~τ 表示规划标签,b 表示场景中预测的代理。碰撞损失由下式计算:

Trainning

我们利用三阶段训练进行多传感器、多任务学习。在第一阶段,我们只训练BEV编码器和感知任务;在第二阶段,我们固定BEV编码器并训练感知、预测和规划任务;而对于可选的第三阶段,我们进一步训练占用和规划任务,固定所有其他组件。

Experiments

Experiment Setup

我们使用 32 个 A100 GPU 进行实验训练,使用 nuScenes 数据集,包括在波士顿和新加坡捕获的 1000 个驾驶场景。每个场景跨越大约 20 秒,nuScenes 提供了 140 万个 3D 边界框,其中包含 23 个不同的类别,以 2Hz 采样。我们遵循业界常用评估方法来评估端到端自动驾驶任务的性能。具体来说,使用 mAP 和 NDS 来评估检测任务,AMOTA 和 AMOTP 来评估跟踪任务,IoU 来评估映射任务,而且使用端预测精度 (EPA)、平均位移误差 (ADE)、最终位移误差 (FDE) 和错误率 (MR) 来评估运动预测的性能。对于未来的占用率预测,我们使用FIERY中采用的近(30 × 30m)和远(100 × 100m)范围的度量未来视频全景质量(VPQ)和IoU。我们采用位移误差(DE)和碰撞率(CR)来评价规划性能,其中碰撞率被认为是主要指标。

Experiment Results

The results of motion forecasting FusionAD remarkably outperforms

The results of occupancy prediction FusionAD remarkably outperforms

 Planning Results: FusionAD achieves the stateof-the-art performance

Ablation Studies

消融实验相对来说做得少些。

FMSPnP模块相关的消融研究如表五和表六所示。很明显,细化网络和self-attention模块对提高预测结果有显著贡献。同时对规划结果而言,当过去轨迹矢量化表示和自我状态相融合时,观察到显著的改进。

Qualitative Results

Discussion

虽然所提出的方法表现出很强的定量和定性性能,但它仍然依赖于基于规则的系统对输出进行后处理,以实现可靠的现实世界性能。此外,目前的研究工作主要使用规划任务的开环结果来评估学习的规划器,这可能无法有效地衡量其性能。用真实世界的感知数据以闭环方式评估规划器带来了挑战。尽管如此,端到端框架下的预测结果仍然很有希望,并且有可能在此框架内进一步改进规划模块。 

Conclusions

我们提出了FusionAD,这是一种利用BEV融合来促进多感知、多任务、端到端的学习新方法,从而显着增强自动驾驶领域的预测和规划任务。该方法强调了将统一的端到端框架有效地扩展到基于融合方法的潜力。与仅依赖于基于相机的BEV的端到端学习方法相比,在预测和规划任务上都有显着的性能改进,同时也提高了感知性能。

https://arxiv.org/abs/2308.01006

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

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

相关文章

C++面试:散列表

目录 1. 散列表的基本概念 散列表的定义 散列函数 哈希冲突 2. 处理冲突的方法 链地址法(Separate Chaining) 开放地址法 再散列 3. 散列表的性能分析 1. 平均查找长度(ASL) 2. 负载因子(Load Factor&#…

GNSEC 2022全球下一代软件工程峰会:核心内容与学习收获(附大会核心PPT下载)

随着科技的飞速发展,软件工程领域也在不断演变。为了更好地应对未来的挑战和机遇,全球的软件工程师、研究者、企业家以及相关领域的专家齐聚一堂,参与了GNSEC 2022全球下一代软件工程线上峰会。这次大会的核心内容涵盖了软件工程的最新技术、…

Blender教程-初始用户界面-01

开始第一天的Blender学习、也是业余学习。希望记录下这一份学习的过程、并且分享给大家。今天带大家认识Blender这一款软件,先说说我为什么选择了Blender,我在软件市场找了好久,市场上其他雷同软件都是要么收费要么不好用,最终决定…

使用vs2022将.net8的应用程序发布为一个单独文件

在使用.NetCore3.1时&#xff0c;可以通过设置以下工程配置文本来将项目发布为一个单独的应用程序文件&#xff1a; <Project Sdk"Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><…

HCIA学习作业三

要求&#xff1a; 拓扑图&#xff1a; <AR1>ping 5.5.5.1 <AR1>display ip interface brief <AR1>display ip routing-table <AR1>display ip routing-table protocol static <AR2>ping 5.5.5.1 <AR2>display ip interface brief <…

RUST笔记:candle使用基础

candle介绍 candle是huggingface开源的Rust的极简 ML 框架。 candle-矩阵乘法示例 cargo new myapp cd myapp cargo add --git https://github.com/huggingface/candle.git candle-core cargo build # 测试&#xff0c;或执行 cargo ckeckmain.rs use candle_core::{Device…

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上&#xff0c;根据实际安装经验&#xff0c;稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…

过采样和欠采样是处理类别不平衡问题的两种常见方法,它们的特点是什么?

问题描述&#xff1a;过采样和欠采样是处理类别不平衡问题的两种常见方法&#xff0c;它们的特点是什么&#xff1f; 问题解答&#xff1a; 过采样和欠采样是处理类别不平衡问题的两种常见方法&#xff0c;它们各自具有一些特点&#xff1a; 过采样&#xff08;Oversampling&…

反射机制学习

因为反射java变成了动态 反射 Reflection(反射)是java被视为动态语言的关键&#xff0c;反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法 Class C Class.forName("java.lang.String") 加…

扩散视觉反事实算法 DVC:对抗性鲁棒分类器 + 扩散模型,跨模态对比原始的 fundus 图 VS 生成的 OCT 图

对抗性鲁棒分类器 扩散模型&#xff1a;为 正常的 fundus 和 OCT 图&#xff0c;生成更多病症图 解决问题创新点 效果调参技巧总结Fundus 转 OCT&#xff08;只是猜想&#xff0c;不一定&#xff09;1. 疾病特征模拟2. 数据增强3. 疾病进展模拟4. 跨模态学习 解决问题 论文&a…

Ultraleap 3Di示例Interactable Objects组件分析

该示例代码位置如下&#xff1a; 分析如下&#xff1a; Hover Enabled&#xff1a;悬停功能&#xff0c;手放在这个模型上&#xff0c;会触发我们手放在这个模型上的悬停功能。此时当手靠近模型的时候&#xff0c;手的模型的颜色会发生改变&#xff0c;反之&#xff0c;则不会…

npm create vue3项目特别慢

问题&#xff1a;Vue CLI v5.0.8在配置了淘宝镜像的情况下&#xff0c;创建项目报Failed to check for updates&#xff0c;还特别慢&#xff0c;等了好久都创建不好 查看 npm config get registry更换npm镜像 npm config set registryhttps://registry.npmmirror.com这样创建…

如何监控两台android设备之间串口通讯的ADB日志?

如果你的目标是将设备通过 Wi-Fi 连接到计算机&#xff0c;可以执行以下步骤&#xff1a; 一.通过 USB 连接设备&#xff1a; adb devices 确保设备通过 USB 连接&#xff0c;并且可以通过 adb devices 命令正常识别。 二、将设备1和设备2都切换到 TCP/IP 模式&#xff1a;…

guitar pro2024永久免费许可证(下载安装步骤教程)

1-guitar pro 版本有win版和mac版两种&#xff0c;本次以安装guitar pro 7 win版做步骤详解。 2-下载就不教了&#xff0c;把下载链接复制到浏览器&#xff08;这里建议用迅雷下载&#xff0c;速度快&#xff0c;浏览器下载容易中途断开&#xff09; 3-打开软件安装包&#x…

Kubernetes多租户实践

由于namespace本身的限制&#xff0c;Kubernetes对多租户的支持面临很多困难&#xff0c;本文梳理了K8S多租户支持的难点以及可能的解决方案。原文: Multi-tenancy in Kubernetes 是否应该让多个团队使用同一个Kubernetes集群? 是否能让不受信任的用户安全的运行不受信任的工作…

【JaveWeb教程】(28)SpringBootWeb案例之《智能学习辅助系统》的详细实现步骤与代码示例(1)

目录 SpringBootWeb案例011. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建 1.2 开发规范 2. 部门管理 SpringBootWeb案例01 前面我们已经讲解了Web前端开发的基础知识&#xff0c;也讲解了Web后端开发的基础(HTTP协议、请求响应)&#xff0c;并且也讲解了数据库…

JavaWeb:商品管理系统(Vue版)

文章目录 1、功能介绍2、技术栈3、环境准备3.1、数据库准备3.2、在新建web项目中导入依赖3.3、编写Mybatis文件3.4、编写pojo类3.5、编写Mybatis工具类3.6、导入前端素材&#xff08;element-ui & vue.js & axios.js&#xff09;3.7、前端页面 4、功能实现4.1、查询所有…

ChatGPT惊艳更新!一个@让三百万GPTs为你打工

ChatGPT悄悄更新个大功能&#xff01;看起来要把插件系统迭代掉了。 部分(灰度)用户已经收到这样的提示&#xff1a; 现在可以在对话中任意GPT商店里的GPTs&#xff0c;就像在群聊中一个人。 体验到的博主Dan Shipper第一时间录视频激动地分享&#xff1a;一个改变游戏规则的…

Jenkins邮件推送配置

目录 涉及Jenkins插件&#xff1a; 邮箱配置 什么是授权码 在第三方客户端/服务怎么设置 IMAP/SMTP 设置方法 POP3/SMTP 设置方法 获取授权码&#xff1a; Jenkins配置 从Jenkins主面板System configuration>System进入邮箱配置 在Email Extension Plugin 邮箱插件…

excel中多行合并后调整行高并打印

首先参考该文&#xff0c;调整全文的行高。 几个小技巧&#xff1a; 1.转换成pdf查看文件格式 2.通过视图--》分页预览&#xff0c;来确定每页的内容&#xff08;此时页码会以水印的形式显示&#xff09; 3. 页面布局中的&#xff0c;宽度可以选为自动&#xff0c;因为已经是…