BEVFusion:Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation——论文笔记

本文介绍了BEVFusion,一种在鸟瞰视图(BEV)空间中融合LiDAR和Camera数据的方法,旨在结合图像的丰富语义信息和雷达的深度信息。通过改进LSS的‘splat’操作,提高了运算效率,并提出了BEVPool-V1和BEVPool-V2来优化内存使用和计算速度。实验表明,这种方法在3D检测和分割任务中表现出色。
部署运行你感兴趣的模型镜像

参考代码:bevfusion

1. 概述

介绍:在这篇文章中提出一种Lidar和Camera在BEV空间下实现特征融合的方法,有效利用了图像丰富语义信息和雷达深度信息,构建一个不同模态数据融合的范式。对于图像部分生成BEV特征采用的是LSS的方案,不过这里对“splat”这个操作进行了改进(这个操作在原版实现中比较耗时,距离实际工程化又近了一步),也就是通过GPU多线程的特性直接在不同的深度bins下求和,而不需要累加求和之后再相减,这样便可极大提升运算的效率(文中指出大概快了40倍)。

Lidar数据和Camera数据他们的局限如下图:
在这里插入图片描述
将Lidar的点云投影到图像上是一种前融合策略,但是实际中能正确匹配上图像的Lidar点其实只占很少的一部分,对此最右边就是文章提出的在BEV空间下的特征融合。

2. 方法设计

2.1 网络结构

下图展示的是文章方法的结构:
在这里插入图片描述
从上图中可以看到文章的方法采取的是不同传感器中融合的结构,融合是在BEV空间下完成的,同时还设计了一个BEV Encoder。这个模块的作用是弥补LSS中深度估计不准带来的影响,使用encoder参数自适应拟合的方式实现Lidar和Camera特征有效融合。最后融合的特征变用于各种任务头了。

2.2 BevPool-V1

这里把这篇文章对LSS中的“splat”进行改进版本称为V1版本,其原理是使用GPU中的并行计算机制直接在不同的深度bins下求和(这些不同的深度bins是可以通过之前设置的超参数提前计算得到),如下图中的(b)图所示:
在这里插入图片描述
从(c)(d)图中可以看到改进之后的计算方法在计算时间上有了较大压缩。

2.3 BevPool-V2

论文:BEVPoolv2: A Cutting-edge Implementation of BEVDet Toward Deployment
参考代码:BEVDet

在LSS中“lift”操作是矩阵外积操作,因而会需要存储一个高维度的矩阵,这就导致显存消耗比较严重,这里参考BevPool-V1中的思路将“lift”操作也适用并行化实现。其原理便是将深度特征和图像特征直接通过索引访问和并行求和得到最终BEV特征,在这样的操作下显存消耗可以节省约95%,其操作示意图见下图所示:
在这里插入图片描述

推理速度比较:
在这里插入图片描述

显存占用比较:
在这里插入图片描述

3. 实验结果

nuScenes 3D检测性能:
在这里插入图片描述

nuScenes分割性能:
在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Kotaemon

Kotaemon

AI应用

Kotaemon 是由Cinnamon 开发的开源项目,是一个RAG UI页面,主要面向DocQA的终端用户和构建自己RAG pipeline

### BEVFusion模型详解 BEVFusion 是一种先进的多传感器融合模型,主要用于自动驾驶中的3D目标检测任务。它通过鸟瞰图(Bird's Eye View, BEV)特征融合技术,将来自不同传感器(如摄像头和激光雷达)的数据进行有效整合,从而实现对周围环境的全面感知。 BEVFusion 的核心在于其独特的架构设计,该设计允许在共享的BEV表示空间中统一多模态特征[^2]。这种统一不仅保留了几何信息,还保持了语义信息的完整性,这对于执行复杂的感知任务至关重要。通过优化BEV Pooling过程,BEVFusion能够显著降低视图转换过程中的效率瓶颈[^2]。 ### 多任务多传感器融合 BEVFusion 的一大亮点是其与任务无关的设计理念。这意味着BEVFusion可以无缝支持不同的3D感知任务,而几乎不需要对架构进行修改。这种灵活性使得BEVFusion在多种应用场景下都能表现出色,包括但不限于3D物体检测和BEV地图分割[^2]。 ### 统一鸟瞰图表示 为了克服不同传感器数据间的表示差异,BEVFusion采用了一种创新的方法来寻找多模态数据之间的对应关系,并将这些数据转换并融合到一个统一的场景表示空间中[^3]。这种方法确保了从不同传感器获取的信息能够在同一个视角下被理解和处理,极大地提高了数据处理的效率和效果。 BEVFusion 在nuScenes数据集上达到了最先进的性能水平,不仅在3D物体检测上实现了1.3%更高的mAP和NDS,还在BEV地图分割上取得了13.6%更高的mIoU成绩,同时计算成本降低了1.9倍[^2]。 ### 示例代码 下面是一个简化的示例代码片段,用于演示如何在Python中实现BEVFusion的基本概念。请注意,实际的BEVFusion实现会更加复杂,并且涉及到大量的细节调整和优化。 ```python class BEVFusionModel: def __init__(self): # 初始化模型参数 pass def transform_view(self, lidar_data, camera_data): # 实现视图转换逻辑 pass def fuse_features(self, transformed_lidar, transformed_camera): # 实现特征融合逻辑 pass def detect_objects(self, fused_features): # 实现3D物体检测逻辑 pass # 创建模型实例 model = BEVFusionModel() # 假设的数据输入 lidar_data = ... # 激光雷达数据 camera_data = ... # 摄像头数据 # 视图转换 transformed_lidar, transformed_camera = model.transform_view(lidar_data, camera_data) # 特征融合 fused_features = model.fuse_features(transformed_lidar, transformed_camera) # 3D物体检测 detections = model.detect_objects(fused_features) ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值