系统相关
首页 > 系统相关> > 【Win10+RTX3090】Windows下最新版本mmdetection的安装/环境配置流程

【Win10+RTX3090】Windows下最新版本mmdetection的安装/环境配置流程

作者:互联网

依赖项准备

执行以下安装程序时,都以管理员身份运行

mmcv-full的编译与安装

  1. 管理员身份运行Anaconda Powershell Prompt(注意一定要打开基于PowerShell的Prompt),并进入工作目录

    cd D:/137/workspace
    
  2. 创建conda环境:

    conda create -n mm python=3.8
    conda activate mm
    
  3. 安装pytorch,这里也参考本人的这篇博客来选择

    conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
    
  4. 下载mmcv源码

    git clone https://github.com/open-mmlab/mmcv.git
    cd mmcv
    
  5. 安装mmcv所需的python依赖包

    pip install -r requirements.txt
    
  6. 打开mmcv/ops/csrc/ms_deform_attn_cuda_kernel.cuh,搜索floor,将其全部替换为floorf,否则编译时会报错:

    在这里插入图片描述

    在这里插入图片描述

  7. 打开mmcv/ops/csrc/roi_align_rotated_cuda_kernel.cuh,搜索ceil,将其全部替换为ceilf,否则编译时也会报上述类似的错

  8. 按指令编译mmcv-full:

    $env:MMCV_WITH_OPS = 1 # 选择安装mmcv-full
    $env:MAX_JOBS = 8 # 根据你可用CPU以及内存量进行设置
    $env:CUDA_HOME = $env:CUDA_PATH_V11_1 # CUDA_PATH_V11_1在准备依赖项时已设置好,注意替换CUDA版本
    $env:TORCH_CUDA_ARCH_LIST="8.6" # RTX3090的算力是8.6
    python setup.py build_ext
    python setup.py develop
    pip list # 检查是否安装成功
    

mmdetection的编译与安装

  1. 同上激活环境、下载源码

    cd D:/137/workspace
    conda activate mm
    git clone https://github.com/open-mmlab/mmdetection.git
    cd mmdetection
    
  2. 安装python依赖包

    pip install -r requirements.txt
    
  3. 打开setup.py,找到extra_compile_args,设置其中'cxx'键的值为['-DMS_WIN64', '-MD'](注:这一步本人不确定是否必需,大家可以试一下)

  4. 编译安装mmdetection

    python setup.py build_ext
    python setup.py develop
    

    注:这里会报colorama的错,该模块是用来在命令行print彩色文字的,推测只是信息流print的一些小问题,后续本人使用mmdetection的过程中没有碰到任何问题

    在这里插入图片描述

  5. 运行demo.py,测试mmdetection

    注:以下代码修改自官方文档

    代码运行结束后,打开work_dirs/demo.jpg查看检测结果

    from mmdet.apis import init_detector, inference_detector
    import cv2
    
    config_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
    # download the checkpoint from model zoo and put it in `checkpoints/`
    # url: https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
    checkpoint_file = 'work_dirs/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
    device = 'cuda:0'
    # init a detector
    model = init_detector(config_file, checkpoint_file, device=device)
    # inference the demo image
    result = inference_detector(model, 'demo/demo.jpg')
    
    img_show = cv2.imread('demo/demo.jpg')
    
    model.show_result(img_show,
                      result,
                      show=True,
                      out_file='work_dirs/demo.jpg',
                      score_thr=0.3)
    
    print(1)
    
    

最后注:pip list会显示mmcv和mmdet的安装目录,因为它们是develop(-e)安装,然后egg-link到指定目录的,不是在对应python的site-packages下安装的。conda list会报错,因为mmcv目录下同时有mmcv和mmcv-full的egg-info,把mmcv.egg-info目录重命名或删除即可。

参考

  1. WINDOWS 下 MMCV | MMCV-full 的安装
  2. mmdetection在windows10系统环境中搭建
  3. Windows 10 上安装有 GPU 支持 mmcv-full

标签:...,mmcv,Windows,python,Win10,CUDA,mmdetection,安装
来源: https://blog.csdn.net/qq_39929304/article/details/118524306