1. 代码下载

git clone https://github.com/fundamentalvision/BEVFormer.git

2. 环境配置

使用conda创建环境

conda create -n bevformer python=3.8 -y

进入环境

conda activate bevformer

允许使用pip安装依赖库

export PIP_REQUIRE_VIRTUALENV=false

安装pytorch和torchvision

注意:根据你的cuda版本选择相应的版本,并注意它们之间的版本依赖关系。此处的例子适合cuda 11.3或11.4:

pip install torch==1.10.0+cu113 torchvision==0.11.0+cu113 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html

Install gcc>=5 in conda env (optional).

conda install -c omgarcia gcc-6 # gcc-6.2

安装mmcv-full

pip install mmcv-full==1.4.0

安装mmdet和mmseg

pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1

安装mmdet3d的依赖库

pip install ninja tensorboard==2.13.0 nuscenes-devkit==1.1.10 scikit-image==0.19.0 lyft-dataset-sdk==0.0.8
pip install numpy==1.19.5 pandas==1.4.4 llvmlite==0.31.0 setuptools==59.5.0

安装mmdet3d

git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
git checkout v0.17.1 # Other versions may not be compatible.
pip install -r requirements.txt 
pip install . 

 安装Detectron2 and Timm.

pip install einops fvcore seaborn iopath==0.1.9 timm==0.6.13  typing-extensions==4.5.0 pylint ipython==8.12 numba==0.48.0 scikit-image==0.19.3 yapf==0.40.1

git clone https://github.com/facebookresearch/detectron2.git
cd detectron2
pip install .

3. 准备数据

3.1. 下载数据

下载地址 https://www.nuscenes.org/download

从这里点击下载

3.1.1. 下载Mini数据

需要下载Mini, Test和can_bus,得到如下文件

v1.0-mini.tgz

v1.0-test_blobs.tgz

v1.0-test_meta.tgz

can_bus.zip

3.1.2. 下载全量数据

需要下载TrainVal, Test和can_bus,得到如下文件

v1.0-trainval01_blobs.tgz
v1.0-trainval02_blobs.tgz
v1.0-trainval03_blobs.tgz
v1.0-trainval04_blobs.tgz
v1.0-trainval05_blobs.tgz
v1.0-trainval06_blobs.tgz
v1.0-trainval07_blobs.tgz
v1.0-trainval08_blobs.tgz
v1.0-trainval09_blobs.tgz
v1.0-trainval10_blobs.tgz
v1.0-trainval_meta.tgz

v1.0-test_blobs.tgz

v1.0-test_meta.tgz

can_bus.zip

3.2. 组织数据

3.2.1. 组织Mini数据

把Mini的压缩包都放在同一个目录,例如名为v1.0-mini,然后解压,解压的时候会有一些目录合并。

把v1.0-mini改名为v1.0-trainval,这样得到的目录是

maps

samples

sweeps

v1.0-test

v1.0-trainval

can_bus

3.2.2. 组织全量数据

把全量的压缩包都放在同一个目录,例如名为v1.0-full,然后解压,解压的时候会有一些目录合并。

maps 

samples 

sweeps

v1.0-test

v1.0-trainval

can_bus

3.3. 预处理数据

python tools/create_data.py nuscenes --root-path [your path]/v1.0-mini/ --out-dir [your path]/v1.0-mini/ --extra-tag nuscenes --version v1.0 --canbus [your path]

4. 训练

打开文件projects/configs/bevformer/bevformer_base.py,修改data_root.

./tools/dist_train.sh ./projects/configs/bevformer/bevformer_base.py 8

没有改变其它参数,即:

samples_per_gpu=1
workers_per_gpu=4

显存占用情况如下:

5. 评测

./tools/dist_test.sh ./projects/configs/bevformer/bevformer_base.py ./path/to/ckpts.pth 8

参考文献

https://github.com/fundamentalvision/BEVFormer/blob/master/docs/install.md

https://github.com/fundamentalvision/BEVFormer/blob/master/docs/getting_started.md

BEVFormer环境配置_bevformer 环境配置和测试-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐