BEVFusion

GitHub
958 125 较难 1 次阅读 昨天Apache-2.0图像其他
AI 解读 由 AI 自动生成,仅供参考

BEVFusion 是一个专为自动驾驶场景设计的开源框架,旨在通过融合激光雷达(LiDAR)与摄像头数据,实现高精度的 3D 物体检测。传统融合方法通常依赖激光雷达点云作为查询基础来提取图像特征,这导致一旦传感器出现轻微故障或完全失效,整个系统便无法输出任何预测结果,严重限制了其在真实复杂环境中的部署能力。

BEVFusion 创新性地提出了一种简单而鲁棒的解决方案:其摄像头数据流完全独立于激光雷达输入。这种架构设计确保了即使在激光雷达发生故障时,系统仍能依靠视觉信息维持基本的检测能力,从而显著提升了系统的可靠性。实验数据显示,在模拟各类传感器故障的严苛测试中,BEVFusion 的性能比现有最先进方法高出 15.7% 至 28.9%,且在正常设置下同样表现卓越。

该工具基于 PyTorch 构建,提供了完整的训练与推理代码及预训练模型,特别适合从事自动驾驶感知算法研究的科研人员、希望提升系统鲁棒性的算法工程师,以及需要处理多传感器融合任务的开发者使用。作为首个能有效应对现实传感器故障且无需额外后处理即可部署的方案,BEVFusion 为构建更安全的自动驾驶系统提供了强有力的技术支撑。

使用场景

某自动驾驶初创团队正在城市复杂路况下测试其 L4 级物流车的感知系统,重点验证传感器故障时的安全冗余能力。

没有 BEVFusion 时

  • 单点故障导致系统瘫痪:传统融合方案依赖激光雷达点云作为查询基准,一旦激光雷达因镜头污损或硬件抖动发生轻微故障,摄像头数据无法独立工作,导致整个感知系统停止输出预测结果。
  • 极端天气下盲区激增:在暴雨或浓雾中,激光雷达性能大幅下降,原有框架因强行绑定多模态数据,无法利用视觉信息补充缺失的深度感知,车辆被迫紧急降级或停车。
  • 需繁琐的后处理兜底:为了应对传感器失效,工程师不得不编写复杂的规则代码进行人工切换或插值补偿,增加了系统延迟和维护成本,且难以覆盖所有长尾场景。

使用 BEVFusion 后

  • 相机流独立运行保安全:BEVFusion 创新地解耦了相机流对激光雷达输入的依赖,即使激光雷达完全失效,系统仍能仅凭视觉数据维持高精度的 3D 物体检测,确保车辆不“失明”。
  • 鲁棒性显著提升:在模拟各类激光雷达故障的测试中,BEVFusion 的平均精度均值(mAP)比现有最先进方法高出 15.7% 至 28.9%,在恶劣环境下依然能稳定识别行人与障碍物。
  • 部署流程极简:无需任何额外的后处理程序或手动切换逻辑,BEVFusion 原生支持从正常模式到故障模式的无缝过渡,大幅降低了实车部署的工程复杂度。

BEVFusion 通过架构级的解耦设计,彻底解决了多传感器融合中“一损俱损”的痛点,让自动驾驶系统在真实世界的传感器不确定性面前真正具备了落地所需的鲁棒性。

运行环境要求

操作系统
  • Linux
GPU

需要 NVIDIA GPU(基于 PyTorch 和 mmdet3d),具体型号和显存未说明,需支持 CUDA(版本未明确,依赖 torch==1.7.0 通常对应 CUDA 10.2 或 11.0)

内存

未说明

依赖
notes该工具基于 mmdetection3d 框架,安装需参考其官方文档。训练分为相机流、激光雷达流和融合网络三个阶段。推荐使用 8 卡 GPU 环境进行分布式训练(示例命令使用 8 卡)。README 未明确提及 Windows 和 macOS 支持,通常此类深度学习项目主要在 Linux 下运行。
python3.8.3
torch==1.7.0
torchvision==0.8.0
mmcv==1.4.0
mmdet==2.11.0
mmdet3d==0.11.0
numpy==1.19.2
BEVFusion hero image

快速开始

BEVFusion:一个简单且鲁棒的激光雷达-相机融合框架。

这篇论文链接专注于用于3D目标检测的激光雷达与相机融合。如果您觉得该项目有用,请引用以下内容:

@inproceedings{liang2022bevfusion,
  title={{BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework}},
  author={Tingting Liang, Hongwei Xie, Kaicheng Yu, Zhongyu Xia, Zhiwei Lin, Yongtao Wang, Tao Tang, Bing Wang and Zhi Tang},
  booktitle = {Neural Information Processing Systems (NeurIPS)},
  year={2022}
}

引言

将相机和激光雷达信息进行融合已成为3D目标检测任务的事实标准。当前的方法通常以激光雷达传感器生成的点云作为查询,从而利用图像空间中的特征。然而,研究者发现,这种假设使得现有的融合框架在激光雷达出现故障时(无论故障大小)都无法产生任何预测结果。这从根本上限制了其在实际自动驾驶场景中的部署能力。相比之下,我们提出了一种出人意料地简单但又新颖的融合框架——BEVFusion,该框架的相机流并不依赖于激光雷达数据的输入,从而解决了先前方法的不足之处。实验表明,在常规训练设置下,我们的框架性能已超越当前最先进方法;而在模拟各种激光雷达故障的鲁棒性训练设置中,我们的框架在mAP指标上更是大幅领先于现有方法,提升幅度达15.7%至28.9%。据我们所知,我们是首个能够有效应对真实场景中激光雷达故障,并可在无需任何后处理步骤的情况下直接部署到实际场景中的方案。

pipeline

主要结果

nuScenes 检测测试集

模型 头部 3D骨干网络 2D骨干网络 mAP NDS 链接
BEVFusion TransFusion-L VoxelNet Dual-Swin-T 69.2 71.8 检测结果
BEVFusion* TransFusion-L VoxelNet Dual-Swin-T 71.3 73.3 排行榜

nuScenes 检测验证集

模型 头部 3D骨干网络 2D骨干网络 mAP NDS 模型
BEVFusion PointPillars - Dual-Swin-T 22.9 31.1 模型
BEVFusion PointPillars PointPillars - 35.1 49.8 模型
BEVFusion PointPillars PointPillars Dual-Swin-T 53.5 60.4 模型
BEVFusion CenterPoint - Dual-Swin-T 27.1 32.1 -
BEVFusion CenterPoint VoxelNet - 57.1 65.4 -
BEVFusion CenterPoint VoxelNet Dual-Swin-T 64.2 68.0 -
BEVFusion TransFusion-L - Dual-Swin-T 22.7 26.1 -
BEVFusion TransFusion-L VoxelNet - 64.9 69.9 -
BEVFusion TransFusion-L VoxelNet Dual-Swin-T 67.9 71.0 -
BEVFusion* TransFusion-L VoxelNet Dual-Swin-T 69.6 72.1 模型

*: 这些方法在训练过程中采用了BEV空间的数据增强技术。

关于BEV空间增强的致谢

我们使用的BEV空间增强技术(GlobalRotScaleTransBEV和RandomFlip3DBEV)由BEVFusion-mit实现。您还可以参考BEVDetDEVDepth等项目,获取更多实现版本。

此外,还有基于图像空间的增强方法,您可以在LSSBEVDetBEVFusion-mit以及DEVDepth中探索。

感谢这些优秀的开源项目及其高质量的代码库。

nuScenes 检测在激光雷达故障情况下的验证

激光雷达故障可视化

验证集中随机丢弃目标框的相关信息见 drop_foreground.json,其中包含激光雷达文件名以及是否丢弃目标框(True 表示丢弃,False 表示不丢弃)。

模型 有限视场 物体丢失 头部 3D骨干 2D骨干 mAP NDS 模型
BEVFusion (-π/3,π/3) False PointPillars PointPillars Dual-Swin-T 33.5 42.1 模型
BEVFusion (-π/2,π/2) False PointPillars PointPillars Dual-Swin-T 36.8 45.8 模型
BEVFusion - True PointPillars PointPillars Dual-Swin-T 41.6 51.9 模型
BEVFusion (-π/3,π/3) False CenterPoint VoxelNet Dual-Swin-T 40.9 49.9 -
BEVFusion (-π/2,π/2) False CenterPoint VoxelNet Dual-Swin-T 45.5 54.9 -
BEVFusion - True CenterPoint VoxelNet Dual-Swin-T 54.0 61.6 -
BEVFusion (-π/3,π/3) False TransFusion-L VoxelNet Dual-Swin-T 41.5 50.8 -
BEVFusion (-π/2,π/2) False TransFusion-L VoxelNet Dual-Swin-T 46.4 55.8 -
BEVFusion - True TransFusion-L VoxelNet Dual-Swin-T 50.3 57.6 -

nuImage 检测验证

模型 2DBackbone bbox_mAP segm_mAP 模型
Mask R-CNN Dual-Swin-T 56.0 46.1 模型

使用 BEVFusion

安装

请参阅 getting_started.md 以了解 mmdet3d 的安装方法。

推荐环境:

python==3.8.3
mmdet==2.11.0 (请在 mmdetection-2.11.0 中安装 mmdet)
mmcv==1.4.0
mmdet3d==0.11.0
numpy==1.19.2
torch==1.7.0
torchvision==0.8.0

基准评估与训练

请参阅 data_preparation.md 准备数据。然后按照其中的说明训练我们的模型。所有检测配置均包含在 configs 中。

# bevfusion-pointpillar 的训练示例
# 针对相机流骨干和颈部训练 nuimage。
./tools/dist_train.sh configs/bevfusion/cam_stream/mask_rcnn_dbswin-t_fpn_3x_nuim_cocopre.py 8
# 首先训练相机流
./tools/dist_train.sh configs/bevfusion/cam_stream/bevf_pp_4x8_2x_nusc_cam.py 8
# 然后训练激光雷达流
./tools/dist_train.sh configs/bevfusion/lidar_stream/hv_pointpillars_secfpn_sbn-all_4x8_2x_nus-3d.py 8
# 最后训练 BEVFusion
./tools/dist_train.sh configs/bevfusion/bevf_pp_2x8_1x_nusc.py 8

### bevfusion-pointpillar 的评估示例
./tools/dist_test.sh configs/bevfusion/bevf_pp_2x8_1x_nusc.py ./work_dirs/bevfusion_pp.pth 8 --eval bbox

### 具有 BEV_augs 的 SOTA 结果的训练示例
git checkout dev_aug
# 首先训练相机流
./tools/dist_train.sh configs/bevfusion/cam_stream/bevf_tf_4x8_20e_nusc_cam_lr.py 8
# 然后训练激光雷达流
./tools/dist_train.sh configs/bevfusion/lidar_stream/transfusion_nusc_voxel_L.py 8
# 最后训练 BEVFusion
./tools/dist_train.sh configs/bevfusion/bevf_tf_4x8_10e_nusc_aug.py 8

致谢

我们衷心感谢 mmdetection3dTransFusionLSSCenterPoint 的作者们开源他们的方法。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|3天前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.1k|★★☆☆☆|今天
开发框架图像Agent

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|2天前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|2天前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|今天
图像数据工具视频