MMDetection3D 三维目标检测框架入门指南
MMDetection3D 三维目标检测框架入门指南前言MMDetection3D 是一个基于 PyTorch 的开源三维目标检测框架,专注于点云和三维视觉任务。作为 OpenMMLab 生态系统的重要组成部分,它提供了丰富的算法实现和模块化设计,能够帮助研究者和开发者快速搭建和训练三维目标检测模型。环境准备系统要求MMDetection3D 支持以下操作系统:Linux(推荐)W...
MMDetection3D 三维目标检测框架入门指南
前言
MMDetection3D 是一个基于 PyTorch 的开源三维目标检测框架,专注于点云和三维视觉任务。作为 OpenMMLab 生态系统的重要组成部分,它提供了丰富的算法实现和模块化设计,能够帮助研究者和开发者快速搭建和训练三维目标检测模型。
环境准备
系统要求
MMDetection3D 支持以下操作系统:
- Linux(推荐)
- Windows(实验性支持)
- macOS
软件依赖
需要满足以下基础软件要求:
- Python 3.7+
- PyTorch 1.8+
- CUDA 10.0+(如需GPU加速)
环境配置步骤
-
安装 Miniconda
建议使用 Miniconda 管理 Python 环境,可以从官方网站下载对应版本。 -
创建并激活 Conda 环境
conda create --name mmdet3d python=3.8 -y conda activate mmdet3d
-
安装 PyTorch
根据硬件平台选择安装命令:GPU 平台:
conda install pytorch torchvision -c pytorch
CPU 平台:
conda install pytorch torchvision cpuonly -c pytorch
安装 MMDetection3D
推荐安装方式
-
安装基础依赖
pip install -U openmim mim install mmengine mim install 'mmcv>=2.0.0rc4' mim install 'mmdet>=3.0.0'
注意:MMCV 2.x 版本中,
mmcv-full
已更名为mmcv
。如需轻量版可使用mim install "mmcv-lite>=2.0.0rc4"
-
安装 MMDetection3D
有两种安装方式可选:
从源码安装(推荐开发使用)
git clone -b dev-1.x mmdetection3d cd mmdetection3d pip install -v -e .
作为第三方包安装
mim install "mmdet3d>=1.1.0"
可选依赖安装
MMDetection3D 支持多种稀疏卷积后端,可根据需求选择安装:
-
SpConv 2.0
更节省显存的稀疏卷积实现:pip install cumm-cuxxx pip install spconv-cuxxx
其中
xxx
替换为 CUDA 版本号(如 10.2、11.1 等) -
Minkowski Engine
另一种稀疏卷积后端:conda install openblas-devel -c anaconda export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:${CONDA_PREFIX}/include pip install -U MinkowskiEngine
-
Torchsparse
轻量级稀疏卷积库:conda install -c bioconda sparsehash export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:${CONDA_PREFIX}/include pip install --upgrade torchsparse
验证安装
下载预训练模型
mim download mmdet3d --config pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car --dest .
运行推理演示
-
源码安装方式
python demo/pcd_demo.py demo/data/kitti/000008.bin \ pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py \ hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth \ --show
-
API 调用方式
from mmdet3d.apis import init_model, inference_detector model = init_model('pointpillars_hv_secfpn_8xb6-160e_kitti-3d-car.py', 'hv_pointpillars_secfpn_6x8_160e_kitti-3d-car_20220331_134606-d42d15ed.pth') result = inference_detector(model, 'demo/data/kitti/000008.bin')
数据格式转换
MMDetection3D 主要使用 .bin
格式的点云数据。如需转换其他格式:
-
PLY 转 BIN
def convert_ply(input_path, output_path): plydata = PlyData.read(input_path) data = plydata.elements[0].data data_pd = pd.DataFrame(data) data_np = np.zeros(data_pd.shape, dtype=np.float) for i, name in enumerate(data[0].dtype.names): data_np[:, i] = data_pd[name] data_np.astype(np.float32).tofile(output_path)
-
OBJ/OFF 转 PLY
def to_ply(input_path, output_path, original_type): mesh = trimesh.load(input_path, file_type=original_type) mesh.export(output_path, file_type='ply')
高级安装配置
CUDA 版本选择建议
- Ampere 架构显卡(如 RTX 30 系列、A100):必须使用 CUDA 11+
- 旧款 NVIDIA 显卡:CUDA 10.2 兼容性更好
不使用 MIM 安装
-
安装 MMEngine
pip install mmengine
-
安装 MMCV
pip install "mmcv>=2.0.0rc4" -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.12.0/index.html
Docker 支持
提供预构建的 Docker 镜像:
docker build -t mmdetection3d docker/
docker run --gpus all --shm-size=8g -it -v ${DATA_DIR}:/mmdetection3d/data mmdetection3d
常见问题
-
CPU 环境支持
目前不支持纯 CPU 环境编译。 -
多版本共存
训练和测试脚本已自动处理 Python 路径,确保使用正确的版本。如需修改,可调整脚本中的PYTHONPATH
设置。 -
显示问题
无显示设备的服务器可省略--show
参数,结果将保存为 JSON 文件。
通过本指南,您应该已经完成了 MMDetection3D 的安装和基础验证。接下来可以开始探索框架提供的丰富算法和工具,构建自己的三维目标检测应用。
更多推荐
所有评论(0)