1 环境配置
1.1 环境安装
# 1 拉取源码 github加速代理https://ghproxy.com/
git clone https://github.com/fundamentalvision/BEVFormer.git# 2 创建虚拟环境
conda create -n bev python=3.8 -y# 3 激活虚拟环境
conda activate bev# 4.1 安装torch,torchvision,torchaudio
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# -i https://pypi.tuna.tsinghua.edu.cn/simple/# 4.2 conda安装
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 5 gcc版本 可选
conda install -c omgarcia gcc-6 # gcc-6.2# 6 mmcv-full会装很久,可以先装openmim,用mim安装mmcv-full快一些
pip install mmcv-full==1.4.0 mmdet==2.14.0 mmsegmentation==0.14.1# 7 源码安装mmdet3d-v0.17.1版本
# 7.1 进入bevformer目录
cd bevformer
# 7.2 下载mmdetection3d github加速代理https://ghproxy.com/
git clone https://github.com/open-mmlab/mmdetection3d.git
# 7.3 进入mmdetection3d目录
cd mmdetection3d
# 7.4 切换v0.17.1
git checkout v0.17.1
# 7.5 安装mmdet3d-v0.17.1版本
python setup.py install# 8 安装 Detectron2 and Timm
# 8.1 安装基本python依赖包
pip install einops fvcore seaborn iopath==0.1.9 timm==0.6.13 typing-extensions==4.5.0 pylint ipython==8.12 numpy==1.19.5 matplotlib==3.5.2 numba==0.48.0 pandas==1.4.4 scikit-image==0.19.3 setuptools==59.5.0 yapf==0.40.1
# 8.2 安装 Detectron2
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'# 9 下载预训练模型
# 9.1 进入bevformer目录
cd bevformer
# 9.2 创建并进入ckpts文件夹
mkdir ckpts && cd ckpts
# 9.3 下载预训练权重r101_dcn_fcos3d_pretrain.pth,github加速代理https://ghproxy.com/
wget https://github.com/zhiqi-li/storage/releases/download/v1.0/r101_dcn_fcos3d_pretrain.pth
1.2 运行报错汇总
# 报错1 ImportError: libGL.so.1: cannot open shared object file: No such file or directory
# 修改:安装libsm6 libxext6 libgl1-mesa-glx
apt-get install libsm6 libxext6 libgl1-mesa-glx# 报错2 ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
# 修改:安装libglib2.0-dev
apt-get install libglib2.0-dev# 报错3 ModuleNotFoundError: No module named 'tools'
# 修改:添加python环境变量
export PYTHONPATH="./"# 报错4
# from data_converter import indoor_converter as indoor
# File "/home/lin/Documents/BEVFormer/tools/data_converter/indoor_converter.py", line 6, in <module>
# from tools.data_converter.s3dis_data_utils import S3DISData, S3DISSegData
# ModuleNotFoundError: No module named 'tools.data_converter'修改:./tools/data_converter/indoor_converter.py的6-8行位置左右
将from tools.data_converter.s3dis_data_utils import S3DISData, S3DISSegData改成由from data_converter.s3dis_data_utils import ...
也就是tools.data_converter换成data_converter# 错误5 TypeError: FormatCode() got an unexpected keyword argument 'verify'
# 修改:更新yapf版本为0.40.1
pip install yapf==0.40.1# 错误6 显存爆炸
# 修改:samples_per_gpu=1, 48G显存设2显存就炸了, bev没钞能力还是不要玩
我没用use_can_bus将配置文件中use_can_bus改为False,生成数据use_can_bus有关的代码注释掉