BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation复现

本文详细介绍了如何在Python环境中设置虚拟环境,安装PyTorch及其相关库,如torchvision和cudatoolkit,以及OpenMPI和MMCV等。步骤包括配置CUDA、安装其他依赖包、修改配置文件、下载源代码和数据集,最后进行多卡训练、数据预处理和模型测试/可视化。
摘要由CSDN通过智能技术生成

1、创建虚拟环境

conda create -n BevFusion python=3.8
conda activate BevFusion

conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch

查看显卡:nvidia -smi

查看CUDA版本 nvcc -v

安装gpu版本的torch:pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html

2、安装其它包

 安装mmcv-full:pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html

安装mmdet:pip install mmdet==2.20.0

conda install openmpi

conda install mpi4py

pip install Pillow==8.4.0

pip install tqdm

pip install torchpack

pip install nuscenes-devkit

pip install ninja
pip install numpy==1.19

pip install numba==0.48.0
pip install shapely==1.8.0

wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.4.tar.gz

cd openmpi-4.1.4

./configure --prefix=/usr/local/openmpi

编译:make -j8

安装:sudo make install

 3、更改配置文件

sudo gedit ~/.bashrc

把下面几句加入bashrc文件 

MPI_HOME=/usr/local/openmpi
OMPI_MCA_opal_cuda_support=true
export PATH=${MPI_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATH
export MANPATH=${MPI_HOME}/share/man:$MANPATH

更新配置文件:soure ~/.bashrc

4、下载源代码

git clone https://github.com/mit-han-lab/bevfusion.git

现在git的版本是作者更新了

打开mmdet3d/ops/spconv/src/indice_cuda.cu,把4096改成256

打开根目录下的setup.py,保留"-gencode=arch=compute_86,code=sm_86"

 编译

cd bevfusion
python setup.py develop

 

 5、下载数据集

下载Map expansionv1.3,选Asia

 下载trainval,有三百个G左右,如果内存不够可以下载mini版本,选Asia版本

 下载test

 将下载好的数据集组织成以下格式:

 6、终端运行

数据预处理

cd bevfusion
python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes

#mini版本
 python tools/create_data.py  nuscenes --root-path ./data/nuscenes/ --version v1.0-mini --out-dir data/nuscenes/ --extra-tag nuscenes

 数据集处理成以下格式

mini版本

下载预训练权重

./tools/download_pretrained.sh

多卡训练,-np 2是指我在两块显卡上分布式训练,可以根据自己需要改

 torchpack dist-run -np 2 python tools/train.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml --model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth --load_from pretrained/lidar-only-det.pth --run-dir output/bev_result/

# 多卡测试
 torchpack dist-run -np 2 python tools/test.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml pretrained/bevfusion-det.pth --eval bbox

 如果运行torchpack时,一直没有结果,不知道哪里报错,可以加上-v, torchpack dist-run -np 2 -v。pred是预测,gt是真实。

#可视化  

 torchpack dist-run -np 2 python tools/visualize.py configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/convfuser.yaml --checkpoint pretrained/bevfusion-det.pth --out-dir viz/fusion-det-pred --mode pred 

BevFusion是一种基于深度学习的三维点云重建方法,其主要思想是将点云转换为体素表示,然后使用神经网络进行体素的重建。以下是BevFusion的简单复现步骤: 1. 数据准备:使用3D扫描仪或其他方式获取物体的点云数据,并将其转换为体素表示。在这个过程中,需要选择合适的体素大小和分辨率,以保证重建的准确性和效率。 2. 构建神经网络:使用TensorFlow或PyTorch等深度学习框架,搭建BevFusion的神经网络模型。该模型包括编码器、解码器和重建器三个部分,其中编码器负责将体素表示转换为低维特征向量,解码器负责将特征向量转换回体素表示,而重建器则负责整合编码器和解码器,实现点云重建。 3. 训练模型:使用已准备好的数据集对神经网络模型进行训练。训练过程中需要选择合适的损失函数和优化器,以及设置合理的训练参数(如学习率、批次大小、迭代次数等)。 4. 进行点云重建:使用训练好的神经网络模型对新的点云数据进行重建。在此过程中,需要将点云数据转换为体素表示,并输入到神经网络中进行重建。最终,可以得到重建后的点云数据,并进行后续的处理和分析。 需要注意的是,BevFusion复现过程较为复杂,需要具备一定的深度学习和计算机视觉基础,同时还需要大量的计算资源和时间。因此,建议在有相关经验或团队支持的情况下进行复现
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值