Swin-Transformer-Object-Detection项目安装教程

0 基本环境要求

  • pytorch
  • CUDA
  • Visual Studio
  • anaconda

注意:

  • 我本机的pytorch版本是1.9.1,CUDA版本是11.1,anaconda版本是:Anaconda3-2021.04-Windows-x86_64.exe,Visual Studio版本是 Visual Studio Community 2019
  • 另外需要注意的是,使用python3.9版本可能会出现错误如下错误:
    No matching distribution found for pycocotools_windows,也就是说python3.9无法安装pycocotools_windows,所以最好将python版本改为3.6,3.7 或 3.8

1 安装mmcv

方法一 :离线安装(本人就是采用这种方式)

  • 第一步

克隆mmcv项目到本地(如d:)

git clone -b v1.3.1 https://github.com/open-mmlab/mmcv.git

Swin Transformer项目所要求的mvcc版本必须是 >=1.2.4且<=1.4.0,否则会报错。所以本人使用的mmcv版本是1.3.1

  • 第二步:
cd mmcv
pip install -r requirements.txt

  • 第三步:

找到cl.exe的路径地址,然后将其添加到环境变量中,通常cl.exe的位置就在Visual Studio 的安装的目录中

本人的 cl.exe位置在:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\Hostx64\x86
在这里插入图片描述
在这里插入图片描述

  • 第四步
    下面所有命令需要在Power Shell命令窗口执行,Power Shell的位置如下图红框所示
    在这里插入图片描述

打开Power Shell,如下输入命令

set Path=c
cl

如果出现如下结果,说明环境变量添加成功
在这里插入图片描述

  • 第五步

查看本机的GPU算力:

可以使用下面语句来查看本机的GPU算力:

import torch
print('当前显卡的CUDA算力:',torch.cuda.get_device_capability())

在这里插入图片描述

也可以打开下面链接查找GPU的计算能力
https://developer.nvidia.cn/zh-cn/cuda-gpus

本人的电脑显卡型号是GTX1660TI,无法在表中找到自己的GPU型号,所以选择了与其算了接近的RTX2060,算力值是7.5
在这里插入图片描述

  • 第六步

在Power Shell命令窗口中执行:

$env:TORCH_CUDA_ARCH_LIST="7.5" #估计自己电脑的GPU算力进行设置
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 4  # 根据你可用CPU的核心数进行设置
  • 第七步
#切换到mmcv所在目录
cd mmcv
#编译
python setup.py build_ext 
#安装
python setup.py build_ext 

方法二:在线安装
注意:本人刚开始就是使用在线安装的方式,虽然安装成功,但是后面在运行Swin Transformer项目的demo时,出现了如下错误信息:

No module named ‘mmcv_custom‘

后来才发现,原来是因为我安装的mmcv版本是1.4.0,该版本太高了,需要降低版本才可以,但是根据我的cuda版本和torch版本只能使用1.4.0及以上版本,所以放弃方法二,采用了方法一,并且顺利安装了1.3.1的版本,

  • 第一步

首先查看自己的torch版本和CUDA版本,然后打开mmcv的github链接:https://github.com/open-mmlab/mmcv/blob/master/README.md,查看下面的配置表,比如我的torch版本是1.9,CUDA版本是11.1,所以我就就选择下面红框所示的安装方法
在这里插入图片描述

  • 第二步:

打开上图中红框中的箭头,详细内容如下所示:

在这里插入图片描述

  • 第三步:

然后你还需要打开上面红框中的链接:https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html,核时一下该链接中是否有所需要的版本,因为我的系统是windows系统,python版本是3.8,并且我必须选择1.4.0及以下版本,所以此时的可选结果如下红框所示
在这里插入图片描述

注意:

  • Swin Transformer项目所要求的mvcc版本必须是:>=1.2.4且<=1.4.0,否则会报错,比如我第一次安装的mvcc版本是1.4.1,就会出现如下报错信息
    在这里插入图片描述
  • 第四步;

在命令行输入如下安装命令:

pip install mmcv-full== 1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

注意:这里我是按照自己的版本要求进行下载,你也可以根据自己的具体电脑情况进行下载,方法跟上面过程类似

2 安装mmdetection

mmdetection的版本一定要与mmcv版本相匹配,具体参考下表,由于我的mmcv版本是1.3.1,所以mmdetection的版本设定为2.11.0
在这里插入图片描述
分别在命令行输入如下四行命令:

git clone -b v2.11.0 https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py develop"

3 安装apex

它是用于半精度训练,可以节省显存和加快训练速度

克隆apex项目到本地(如d:)

git clone https://github.com/NVIDIA/apex

执行如下命令:

cd apex
python setup.py install

4 安装Swin-Transformer-Object-Detection

  • 克隆mmcv项目到本地(如d:)
    git clone https://github.com/SwinTransformer/Swin-Transformer-Object-Detection.git
  • 执行如下命令:
    cd Swin-Transformer-Object-Detection
    python setup.py develop
  • 测试是否安装成功
    首先到Swin-Transformer-Object-Detection的github官网https://github.com/SwinTransformer/Swin-Transformer-Object-Detection下载权重文件,
    在这里插入图片描述

然后将该权重文件放到Swin-Transformer-Object-Detection文件夹中

最后在命令行输入如下测试命令,如果出现下面的结果,则说明安装成功:

python demo/image_demo.py demo/demo.jpg 
configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py 
mask_rcnn_swin_tiny_patch4_window7_1x.pth

注意:上面的测试命令其实是一行命令,它输入到命令行的效果如下
在这里插入图片描述

在这里插入图片描述

如果出现信息UserWarning: Matplotlib is currently using agg, which is a non-GUI backend ,可在demo/image_demo.py中加入下面内容

import matplotlib
matplotlib.use('TkAgg')

猜你喜欢

转载自blog.csdn.net/m0_56192771/article/details/125921107