MMDetection3D安装及踩坑指南

Tags: 3D Vision;三维目标检测;多模态感知融合;自动驾驶

Author: 杜毕安

关于mmdetection3d : 

https://github.com/open-mmlab/mmdetection3d 

MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代面向3D检测的平台. 它是 OpenMMlab 项目的一部分. 主分支代码目前支持 PyTorch 1.3 以上的版本. 主要具有以下优点:

  • 支持多模态/单模态的检测器

支持多模态/单模态检测器,包括 MVXNet,VoteNet,PointPillars 等.

  • 支持户内/户外的数据集

支持室内/室外的3D检测数据集,包括 ScanNet, SUNRGB-D, Waymo, nuScenes, Lyft, KITTI. 对于 nuScenes 数据集, 也支持 nuImages 数据集.

  • 与 2D 检测器的自然整合

MMDetection 支持的300+个模型 , 40+的论文算法, 和相关模块都可以在此代码库中训练或使用.

  • 性能高

训练速度比其他代码库更快。下表可见主要的对比结果。更多的细节可见基准测评文档。我们对比了每秒训练的样本数(值越高越好)。其他代码库不支持的模型被标记为 ×.

Methods MMDetection3D OpenPCDet votenet Det3D
VoteNet 358 × 77 ×
PointPillars-car 141 × × 140
PointPillars-3class 107 44 × ×
SECOND 40 30 × ×
Part-A2 17 14 × ×

和 MMDetectionMMCV 一样, MMDetection3D 也可以作为一个库去支持各式各样的项目.


安装踩坑指南 

基本流程参考:https://github.com/open-mmlab/mmdetection3d/blob/master/docs/getting_started.md 
创建环境:
conda create -n open-mmlab python=3.7 -y
conda activate open-mmlab
建议使用版本:(mmcv支持cuda-10.2搭配1.5到1.10的所有pytorch版本,后续灵活性更强;gcc版本必须在在5+(但高版本gcc-7会导致编译后部分.o文件丢失错误))
cuda-10.2
gcc 5.4.0
pytorch=1.5.0
torchvision=0.6.0
mmcv-full=1.4.0
mmdet=2.14.0
mmsegmentation=0.14.1
设置环境变量指定cuda和gcc(g++)版本:
vim ~/.bashrc
添加以下环境变量 (根据自己gcc和cuda安装位置进行具体修改)
export CC=../gcc/gcc-5.4/bin/gcc
export CXX=../gcc/gcc-5.4/bin/g++
export CUDA_HOME=../cuda-10.2/
export PATH=../gcc/gcc-5.4/bin:/mnt/lustre/share/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=../cuda-10.2/lib64/: ../boost/lib/:$LD_LIBRARY_PATH
#export FORCE_CUDA=”1″
export CPLUS_INCLUDE_PATH=../boost/include/:$CPLUS_INCLUDE_PATH
安装流程:
conda install pytorch==1.5.0 cudatoolkit=10.2 torchvision==0.6.0 -c pytorch
pip install mmcv-full https://download.openmmlab.com/mmcv/dist/cu102/torch1.5.0/index.html
pip install mmdet==2.14.0
pip install mmsegmentation==0.14.1
git clone https://github.com/open-mmlab/mmdetection3d.git
cd mmdetection3d
pip install -v -e .  # or “python setup.py develop”

注意

  1. 服务器上git clone如果timeout建议本地下载后ftp
  2. pip install -v -e .  # or “python setup.py develop”若出现以下error:

Command ‘[‘ninja’,’-v’]’ returned non-zero exit status 1;
RuntimeError: Error compiling objects for extension
则需修改/home/{用户名}/anaconda3/envs/{环境名}/lib/python3.7/site-packages/torch/utils/cpp_extension.py的[‘ninja’,’-v’]改为[‘ninja’,’–v’]或[‘ninja’,’–version’]