1. 代码下载
git clone https://github.com/fundamentalvision/BEVFormer.git2. 环境配置
使用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.htmlInstall 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.tgzv1.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博客