mmdet3d安装教程

前言

  没有GPU的用户可以跳过了1
  mmdet3d官方的教程对于mmdet3d的依赖库的版本描述存在一定的问题,经过多日痛苦的环境配置,对mmdet3d的安装流程做了一个总结。当然,经常配置环境的朋友都知道,这是一个玄学问题,所以该教程也难以覆盖到配置过程中的各种问题,本教程仅可作为参考!

(一) Windows平台

  mmdet3d官方文档中说明,对于Windows平台是实验性支持,经过实测,PointPillar网络+KITTI数据集的配置成功在Windows11系统中完成运行和推理。但是个人感觉,对于深度学习,相同的硬件条件下,Windows平台的速度要低于Linux(以Ubuntu进行实测)的速度,个人更推荐在Linux系统中进行配置。2

1. 虚拟环境创建

  首先你需要有conda(默认你已经会安装Anaconda,Miniconda等Conda包管理器并且完成了安装和配置,也知道下载慢可以通过更换镜像或者科学上网解决),然后打开Anaconda Powershell Prompt,创建一个Python版本为3.9的环境3。现成的安装指令如下。

conda create -n mmdet3d python=3.9 -c conda-forge -y

随后激活该环境:

conda activate mmdet3d

2. Pytorch安装

  在进行这一步之前,首先需要考虑自己的需求,如果要复现别人的论文,根据论文提供的代码的需求进行配置,如果是个人学习,可以选择较新的稳定版本,以获得一些新特性带来的运行速度的提升。

  • 进入Pytorch官网,下拉找到如下表格:
    Pytorch

  • 如果是安装最新版本,选择Conda(此处推荐Conda安装,可以直接同步安装cuda依赖,降低版本冲突的可能),选择需要的CUDA版本,复制对应的指令,进入1.中打开的命令行窗口中,输入,回车。这条指令总会安装最新的版本,当然CUDA版本可能会不支持,要灵活变通。截止写稿时间,安装的是Pytorch 2.5.0版本。

    conda install pytorch torchvision pytorch-cuda=12.1 -c pytorch -c nvidia -y
    
  • 如果选择安装先前版本,找到表格上方install previous version of Pytorch,点击进入,选择对应的平台和版本。这里选择如下:

    Conda; Linux or Windows; CUDA12.1; Pytorch 2.3.1
    

    安装指令:

    conda install pytorch==2.3.1 torchvision==0.18.1 pytorch-cuda=12.1 -c pytorch -c nvidia -y
    

3. C++构建工具安装

  C++构建工具是为了后续和NVCC交叉编译mmdet3d的库。根据微软提供的Microsoft Visual C++ 编译器版本控制信息,Visual Studio 2022 版本 17.10对应的版本号_MSC_VER值为1940,大于该版本的VS将与CUDA的host_config.h头文件中#if _MSC_VER < 1910 || _MSC_VER >= 1940宏定义冲突,导致编译错误。

  1. 引导程序下载页面,下载小于等于17.10版本且仍在支持周期内的构建工具的Build Tools,安装C++构建工具。
  2. 进入安装界面,选择使用C++的桌面开发,勾选如下可选项,点击安装,等待安装完成。
    在这里插入图片描述
  3. C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x64添加到系统PATH环境变量中,具体路径需要根据安装目录进行调整。
  4. 打开终端,输入cl.exe回车,识别到cl,说明环境变量配置正确。cl.exe

4. CUDA安装

  这里安装CUDA是由于后续的包需要自行编译,需要用到NVCC编译器。

  1. 进入CUDA下载页面,如果是最新版本,直接选择对应平台进行下载。这里的配置,CUDA版本为12.1,需要找到先前版本,选择对应的Windows平台。这里提供Windows11 CUDA12.1版本链接
    在这里插入图片描述
    在这里插入图片描述

  2. 选择自定义安装,安装如图所示组件,程序将自动添加环境变量。
    在这里插入图片描述
    在这里插入图片描述

  3. 打开终端,输入nvcc -V,出现如下提示,CUDA安装完成。
    在这里插入图片描述

5. openmmlab基础系列安装

官方给出的安装教程中,由于不同库更新的频率不同,导致出现了版本冲突,经过实测,合理的安装指令为:

pip install -U openmim
mim install "mmengine>=0.7.1,<1.0.0"
mim install "mmcv>=2.0.0rc4, <2.2.0"
mim install "mmdet>=3.0.0,<3.3.0"

这里给出pip设置镜像的指令:

pip config set global.index-url 'https://mirrors.cloud.tencent.com/pypi/simple'
  1. 执行pip install -U openmim后,如果出现提示:
    在这里插入图片描述
    继续执行conda install mkl fsspec -c conda-forge

  2. 执行mim install "mmengine>=0.7.1,<1.0.0"完成后,通过以下命令,验证安装。

    python -c 'import mmengine;print(mmengine.__version__)'
    
  3. 执行mim install "mmcv>=2.0.0rc4, <2.2.0",此过程根据版本不同,可能需要编译,根据系统硬件配置不同,执行时间不同,大概半个小时左右,请耐心等待。执行以下命令,验证安装。

    python -c 'import mmcv;print(mmcv.__version__)'
    

    如果前置安装的CUDA为低于12.1的版本,可通过mmcv官方文档页面下方选择预购构建的包进行安装,但必须保证mmcv版本满足上述需求。

  4. 执行mim install "mmdet>=3.0.0,<3.3.0",不出意外,很快安装完成。通过以下步骤,验证安装。

    • 下载配置文件和模型权重文件
      mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .
      
    • 创建demo文件夹
      mkdir demo
      
    • 下载测试图像
      powershell中执行
      curl  https://raw.githubusercontent.com/open-mmlab/mmdetection/main/demo/demo.jpg  -O ./demo/demo.jpg
      
      cmd中执行
      curl  https://raw.githubusercontent.com/open-mmlab/mmdetection/main/demo/demo.jpg  -o -L ./demo/demo.jpg
      
    • 创建测试脚本
      输入notepad test.py,在打开的文件中输入
      from mmdet.apis import init_detector, inference_detector
      config_file = 'rtmdet_tiny_8xb32-300e_coco.py'
      checkpoint_file = 'rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth'
      model = init_detector(config_file, checkpoint_file, device='cuda:0')  # or device='cpu'
      print(inference_detector(model, 'demo/demo.jpg'))
      
      执行python test.py,出现类似输出,说明mmdet安装正确。
      在这里插入图片描述
  5. mmdet3d安装

    • 从Github克隆mmdet3d源码(这里-b v1.4.0表示指定版本)
      git clone -b v1.4.0 https://github.com/open-mmlab/mmdetection3d.git
      
    • 安装依赖
      lyft_dataset_sdk
      networkx>=2.5
      numba # you should install numba==0.53.0 if your environment is cuda-9.0
      numpy==1.23.0 #np.long 异常,后续版本将np.long修改为了np.longlong
      nuscenes-devkit
      open3d
      plyfile
      scikit-image
      tensorboard
      trimesh
      
      将上述内容复制到文本文件中,命名为requirements.txt,执行:
      pip install -r requirements.txt
      
    • 安装mmdet3d
      cd mmdetection3d
      pip install -v -e .
      # "-v" 指详细说明,或更多的输出
      # "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。
      
    • 验证
      • 下载配置文件和模型权重文件
        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
        
        出现类似如下结果,说明安装成功
        在这里插入图片描述

(二) Linux(Ubuntu)平台

  Linux平台的步骤与Windows平台基本一致,区别在于一些依赖的配置和命令的使用。

1. C++套件安装

安装mmvc过程中出现编译错误,要求GCC,G++等编译器版本为11,通过以下命令安装gcc11:(执行gcc -v,如果当前GCC版本为11,则跳过此步骤)

# 添加Ubuntu Toolchain测试版源:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

# 安装最新版本的GCC(版本为11):
sudo apt-get install gcc-11 g++-11

# 设置gcc-11的优先级,最后的数越大,
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100

# 查看当前系统中的GCC版本:
gcc -v

2. 其余项目安装

Linux一般作为服务器使用,本身已经有一些Pytorch,CUDA等的配置,根据已有配置,参考(一)完成各种环境的安装。4


  1. mmdet3d需要nvcc编译,同时框架也依赖于GPU的各种CUDA算子。 ↩︎

  2. 有些模型用到3D卷积,而3D卷积依赖的一些3D的CUDA算子仅支持Linux平台。 ↩︎

  3. 一些库的依赖的python版本较低,亲测Python3.9有效,Python3.12很多包需要自行编译,复杂度高 。 ↩︎

  4. Linux写的这么简陋的原因是,Windows的配置还Hyper-V里面重新执行了一遍,但是Hyper-V下的Linux太卡了!!! ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值