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 | × | × |
和 MMDetection,MMCV 一样, 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 –f 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”
注意
- 服务器上git clone如果timeout建议本地下载后ftp
- 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’]