多传感器感知原理解读 | BEVFusion解读(一)

简介: 多传感器感知原理解读 | BEVFusion解读(一)

本篇解读主要用于了解熟悉BEVFusion的算法原理,以及实验结论,并且总结一些自己在看完这篇论文的启发和想法。

Motivation

多传感器融合对于自动驾驶系统至关重要,近来的方法通常基于point-level fusion的方式,使用图像特征用于增强Lidar点云特征,然而这种camera-to-LiDAR的投影方式丢弃掉图像特征的semantic density特性,妨碍了这类方法在semantic-oriented任务中的性能。

Method

构建多任务-多传感器融合架构,在BEV空间中统一多模态特征,同时保留几何特征与语义特征。

提出高效BEV Pooling降低耗时,解决view transformation的技术瓶颈。

Contribution

  • 针对view transformation的主要瓶颈,作者通过precomputation和interval reduction降低bev pooling耗时,相比于以往方法加速40倍以上;
  • 打破以往认为point-level fusion性能最好的想法,可以作为sensor fusion研究的baseline;

Pipeline

首先,应用模态特定的encoders分别提取图像、Lidar点云对应的特征;

然后,将特征转换成统一的BEV表征;

为了避免不同特征之间的局部对齐误差,作者应用conv-based BEV encoder用于统一BEV特征;

最后,采用任务特定的head用于支持不同的3D任务。

统一表征

camera-to-bev 转换是实现多传感器融合的关键

LiDAR-to-BEV投影将稀疏的LiDAR特征沿着高度维度展开,因此没有导致几何特征损失。

camera-to-BEV

camera-to-BEV投影将每一个camera feature pixel投影回3D空间下的一个射线ray,从而构成密集的BEV特征图。

遵循LSS和BEVDet中预测图像中每一个像素的深度概率分布的方式,沿着相机光线将每个特征像素分散到D个离散点,并根据相应的深度概率对相关特征进行缩放,获取camera feature 点云的维度是,然后使用step size沿着x,y维度对图像点云进行量化,使用BEV pooling操作在每一个  BEV网格中聚合特征,然后沿着z轴将特征展开。

Efficient BEV Pooling

  • 「Precomputation」: 特征点云的坐标是固定的,因此预先计算3D coordinate以及每一个点的BEV grid index,根据网格indices排序所有点并记录点的顺序。在推理过程中,仅需要根据预先计算的顺序对所有特征点进行排序。
  • 「Interval Reduction」:实现并行的在BEV网格中计算的GPU kernel

全卷积-based Fusion

考虑到Lidar BEV特征和camera BEV特征之间会存在空间上的对齐误差,作者应用conv-based BEV encoder(with a few residual blocks)以弥补这种局部误差,降低潜在的depth estimation误差。

作者在此处提到使用GT depth用于监督view transformer可能会在未来工作中尝试。

Multi-Task Heads

文中应用task-specific heads,主要是3D object detection和BEV map segmentation任务。

Experiments

  • 「Model」: 使用swin-T作为image backbone, VoxelNet作为LiDAR backbone, FPN用于聚合多尺度的1/8下采样率的图像特征。将图像特征下采样到,将Lidar点云使用0.75m(检测)体素化。
  • 「Training」: 与将camera encoder固定(freeze)的方法不同,作者以端到端的方法训练整个模型,应用image和Lidar数据增强用于避免过拟合,使用AdamW weight decay 用于优化。
  • 「Dataset」: 使用nuScenes评估这个方法。

3D Object Detection实验

  • 「Setting」: 使用mAP和NDS作为检测评估指标,同样也衡量在RTX3900 GPU的single-inference MACs和latency
  • 「Results」: 相比于TransFusion高出1.3%, 对比point-level fusion方法PointPainting和MVP 1.6x速度,1.5x MACs reduction以及3.8 higher mAP.

作者分析了weather and lighting, sizes and distances, sparse Lidars, multi-task learning等多种情况下BEVFusion性能。

结论

BEVFusion在共享的BEV空间下统一camera feature和Lidar点云feature, 为了实现camera-to-BEV转换的高效,文中提出实现并行计算的GPU kernel,将速度提升40倍。BEVFusion打破了以往将point-level fusion作为最佳解决方案的经验,并在3D检测和BEV segmentation均实现新SOTA。

相关文章
|
传感器
多传感器感知原理解读 | BEVFusion解读(二)
多传感器感知原理解读 | BEVFusion解读(二)
1073 0
|
机器学习/深度学习 PyTorch 算法框架/工具
为什么大型语言模型都在使用 SwiGLU 作为激活函数?
SwiGLU可以说是在大语言模型中最常用到的激活函数,我们本篇文章就来对他进行详细的介绍。
1812 9
|
传感器 机器学习/深度学习 自动驾驶
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
5543 1
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
|
机器学习/深度学习 算法 计算机视觉
3D目标检测框架 MMDetection3D环境搭建 docker篇
本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。
1766 0
|
Ubuntu
ubuntu 替换清华源遇到的问题-不能更新,无法拉取 https 源解决
ubuntu 替换清华源遇到的问题-不能更新,无法拉取 https 源解决
6530 0
ubuntu 替换清华源遇到的问题-不能更新,无法拉取 https 源解决
|
传感器 机器学习/深度学习 编解码
Radar-LiDAR BEV融合!RaLiBEV:恶劣天气下3D检测的不二之选
论文使用最近发布的Oxford Radar RobotCar(ORR)数据集展示了所提出方法的优越性能。实验表明,RaLiBEV的精度大大优于其他最先进的方法。
Radar-LiDAR BEV融合!RaLiBEV:恶劣天气下3D检测的不二之选
|
8月前
|
数据采集 自动驾驶 Java
PAI-TurboX:面向自动驾驶的训练推理加速框架
PAI-TurboX 为自动驾驶场景中的复杂数据预处理、离线大规模模型训练和实时智能驾驶推理,提供了全方位的加速解决方案。PAI-Notebook Gallery 提供PAI-TurboX 一键启动的 Notebook 最佳实践
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
传感器 机器学习/深度学习 编解码
一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)(下)
目前3D目标检测领域方案主要包括基于单目、双目、激光雷达点云、多模态数据融合等方式,本文主要介绍基于激光雷达雷达点云、多模态数据的相关算法,下面展开讨论下~
一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)(下)