MMDetection3D 三维目标检测框架入门指南

【免费下载链接】mmdetection3d OpenMMLab's next-generation platform for general 3D object detection. 【免费下载链接】mmdetection3d 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection3d

前言

MMDetection3D 是一个基于 PyTorch 的开源三维目标检测框架,专注于点云和三维视觉任务。作为 OpenMMLab 生态系统的重要组成部分,它提供了丰富的算法实现和模块化设计,能够帮助研究者和开发者快速搭建和训练三维目标检测模型。

环境准备

系统要求

MMDetection3D 支持以下操作系统:

  • Linux(推荐)
  • Windows(实验性支持)
  • macOS

软件依赖

需要满足以下基础软件要求:

  • Python 3.7+
  • PyTorch 1.8+
  • CUDA 10.0+(如需GPU加速)

环境配置步骤

  1. 安装 Miniconda
    建议使用 Miniconda 管理 Python 环境,可以从官方网站下载对应版本。

  2. 创建并激活 Conda 环境

    conda create --name mmdet3d python=3.8 -y
    conda activate mmdet3d
    
  3. 安装 PyTorch
    根据硬件平台选择安装命令:

    GPU 平台:

    conda install pytorch torchvision -c pytorch
    

    CPU 平台:

    conda install pytorch torchvision cpuonly -c pytorch
    

安装 MMDetection3D

推荐安装方式

  1. 安装基础依赖

    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"

  2. 安装 MMDetection3D

    有两种安装方式可选:

    从源码安装(推荐开发使用)

    git clone -b dev-1.x mmdetection3d
    cd mmdetection3d
    pip install -v -e .
    

    作为第三方包安装

    mim install "mmdet3d>=1.1.0"
    

可选依赖安装

MMDetection3D 支持多种稀疏卷积后端,可根据需求选择安装:

  1. SpConv 2.0
    更节省显存的稀疏卷积实现:

    pip install cumm-cuxxx
    pip install spconv-cuxxx
    

    其中 xxx 替换为 CUDA 版本号(如 10.2、11.1 等)

  2. Minkowski Engine
    另一种稀疏卷积后端:

    conda install openblas-devel -c anaconda
    export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:${CONDA_PREFIX}/include
    pip install -U MinkowskiEngine
    
  3. 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 .

运行推理演示

  1. 源码安装方式

    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
    
  2. 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 格式的点云数据。如需转换其他格式:

  1. 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)
    
  2. 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 安装

  1. 安装 MMEngine

    pip install mmengine
    
  2. 安装 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

常见问题

  1. CPU 环境支持
    目前不支持纯 CPU 环境编译。

  2. 多版本共存
    训练和测试脚本已自动处理 Python 路径,确保使用正确的版本。如需修改,可调整脚本中的 PYTHONPATH 设置。

  3. 显示问题
    无显示设备的服务器可省略 --show 参数,结果将保存为 JSON 文件。

通过本指南,您应该已经完成了 MMDetection3D 的安装和基础验证。接下来可以开始探索框架提供的丰富算法和工具,构建自己的三维目标检测应用。

【免费下载链接】mmdetection3d OpenMMLab's next-generation platform for general 3D object detection. 【免费下载链接】mmdetection3d 项目地址: https://gitcode.com/gh_mirrors/mm/mmdetection3d

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐