依赖项准备

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

  • Git for Windows

    1. 安装时,请勾选Git from the command line and also from 3rd-party software
    2. 安装完成后,确认...\Git\cmd已添加至环境变量Path中,否则手动添加
  • Visual Studio Community 2019

    1. 安装时,请勾选使用C++的桌面开发
    2. 安装完成后,将...\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\Hostx86\x64添加到环境变量Path中(注意替换VS版本)
  • Anaconda


    1. 安装完成后,将...\anaconda3...\anaconda3\Scripts...\anaconda3\Library\bin都添加到环境变量Path
  • CUDA Toolkit & cuDNN

    1. 参考本人的这篇博客来选择合适的版本进行安装(若未安装驱动,也请注意安装驱动)
    2. 安装CUDA Toolkit时,注意勾选Visual Studio Integration
    3. 安装完成后,添加...\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin...\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp到环境变量Path中(注意替换CUDA版本)
    4. 新建环境变量CUDA\_PATH...\NVIDIA GPU Computing Toolkit\CUDA\v11.1,新建环境变量CUDA\_PATH\_V11\_1...\NVIDIA GPU Computing Toolkit\CUDA\v11.1(注意替换CUDA版本)
  • 注:由于本人的依赖项是陆陆续续安装的,以上依赖项不确定全部必需,也可能有遗漏之处,欢迎大家指出!

mmcv-full的编译与安装

  1. 管理员身份运行Anaconda Powershell Prompt(注意一定要打开基于PowerShell的Prompt),并进入工作目录
cd D:/137/workspace
  1. 创建conda环境:
conda create -n mm python=3.8
conda activate mm
  1. 安装pytorch,这里也参考本人的这篇博客来选择
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge
  1. 下载mmcv源码
git clone https://github.com/open-mmlab/mmcv.git
cd mmcv
  1. 安装mmcv所需的python依赖包
pip install -r requirements.txt
  1. 打开mmcv/ops/csrc/ms_deform_attn_cuda_kernel.cuh,搜索floor,将其全部替换为floorf,否则编译时会报错:

在这里插入图片描述

在这里插入图片描述

  1. 打开mmcv/ops/csrc/roi_align_rotated_cuda_kernel.cuh,搜索ceil,将其全部替换为ceilf,否则编译时也会报上述类似的错
  2. 按指令编译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
  1. 安装python依赖包
pip install -r requirements.txt
  1. 打开setup.py,找到extra_compile_args,设置其中'cxx'键的值为['-DMS_WIN64', '-MD'](注:这一步本人不确定是否必需,大家可以试一下)
  2. 编译安装mmdetection
python setup.py build_ext
python setup.py develop

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

在这里插入图片描述

  1. 运行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

标签: 安装, python, Windows, CUDA, Win10, mmcv, mmdetection

相关文章推荐

添加新评论,含*的栏目为必填