1. 项目概述
BEVFusion是一个基于多模态传感器融合的3D目标检测框架,它通过将激光雷达点云和摄像头图像在鸟瞰图(BEV)空间进行特征融合,实现了优异的3D检测性能。这个项目基于mmdet3d框架进行复现,主要涉及环境配置、数据集准备、模型训练和推理等环节。
作为一名计算机视觉工程师,我在复现BEVFusion时遇到了不少环境配置和代码适配的问题。本文将详细记录整个复现过程,包括环境搭建、数据处理、模型训练和推理等关键步骤,并分享一些实际踩坑经验。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境配置
2.1 基础环境准备
首先需要创建一个独立的Python虚拟环境,避免与系统环境冲突。我使用的是Python 3.8版本,因为这个版本与BEVFusion的依赖兼容性较好:
bash复制conda create -n bevfusion python=3.8
conda activate bevfusion
注意:建议使用conda而不是virtualenv来管理环境,因为conda可以更好地处理CUDA相关的依赖。
2.2 PyTorch安装
BEVFusion对PyTorch版本有特定要求。根据官方文档,我选择了PyTorch 2.1.1版本,对应CUDA 11.8:
bash复制conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=11.8 -c pytorch -c nvidia
这里有几个关键点需要注意:
- CUDA版本必须与显卡驱动兼容
- PyTorch版本必须与mmdet3d版本匹配
- torchvision和torchaudio版本也需要对应
2.3 mmdet3d安装
mmdet3d是OpenMMLab推出的3D目标检测工具箱,BEVFusion是其内置的一个项目。安装步骤如下:
bash复制pip install openmim
git clone https://github.com/open-mmlab/mmdetection3d.git -b v1.3.0
cd mmdetection3d
pip install -v -e .
这里使用`-b v1.
