Swin Transformer Object Detection 目标检测-1——环境搭建详细教程

文章目录

  • 一、所需软件(包)介绍
  • 二、环境安装
  • 0. 版本选择
  • 1. VS 2019 安装
  • 2. 创建conda 虚拟环境
  • 方案一(直接创建)
  • 方案二(指定目录创建)
  • 3. pytorch 安装
  • 4. 安装其他必要的Python包
  • 5. 安装mmcv
  • 6. 安装mmdetection
  • 7. 安装 apex
  • 8. 拉取代码
  • 9. 测试工程
  • 10. 常见问题

  • 视频教程完整版
    我的教学视频

       

    一、所需软件(包)介绍

  • VS 2017-2019 ,用里面的一个编译软件去编译文件,用于安装mmcv,因为mmcv没有提供编译好的可用于windows的文件。(注意只能安装2017-2019版本,不然在编译mmcv时会报错,只装C++部分即可)。下载地址:VS 2019下载
  • MMDetection:是一个基于 PyTorch 的目标检测开源工具箱。但是依赖 mmcv,支持 pytorch 1.5+。
  • mmcv:类似OpenCV,是一个开源的面向计算机视觉的基础库,高质量实现CUDA算子,使用它的话需要 python 3.6+
  • 二、环境安装

    0. 版本选择

  • VS 2019 建议安装2019版本。
  • MMDetection:2.20.0 (地址:https://github.com/open-mmlab/mmdetection/blob/master/docs/en/get_started.md
  • mmcv:1.3.17 (参考:https://github.com/open-mmlab/mmdetection/blob/master/docs/en/get_started.md)由 VS的编译工具 cl 编译得到。
  •         注:想选择使用2.20.0版本,但是最后你会发现没办法使用,他会退回到2.11.0,Github上issues中解决办法就会让他退回到2.11.0这个版本。

    1. VS 2019 安装

            直接去VS官网下载,第一步下载的时候可能需要翻墙,后面下载的时候不用翻墙,安装时只勾选桌面端的C++部分就可以。

  • 添加环境变量到系统环境变量->Path下,地址在安装目录下(根据自己的安装位置):D:\install_in_D\VS2019\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64
  • 验证是否可用:
  • image.png

    2. 创建conda 虚拟环境

    方案一(直接创建)
  • 直接创建:conda create -n swin_det python=3.8
  • 激活conda环境:activate swin_det
  • 方案二(指定目录创建)
  • 指定目录创建:如在 E:\workspace\Python\Pytorch\STOD 目录下执行下面的命令:
  • 执行:conda create --prefix=E:\workspace\Python\Pytorch\STOD\swin_det python=3.8
  • 激活 conda 环境:activate E:\workspace\Python\Pytorch\STOD\swin_det
  • 3. pytorch 安装
  • 官网地址:https://pytorch.org/
  • 安装:pip3 install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
  • 指定阿里源 (国内一般需要)-i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
  • 4. 安装其他必要的Python包

  • 在虚拟环境下执行:
    pip install cython matplotlib opencv-python timm -i [http://mirrors.aliyun.com/pypi/simple/](http://mirrors.aliyun.com/pypi/simple/) --trusted-host mirrors.aliyun.com
  • 5. 安装mmcv

  • 项目地址:https://github.com/open-mmlab/mmcv/blob/master/README_zh-CN.md
  • 进入之前创建的conda环境跟目录内:如:E:\workspace\Python\Pytorch\STOD\swin_det
  • 克隆指定版本的 mmcv代码(或者clone master 之后再checkout)。
  • git clone -b v1.3.17 git@github.com:open-mmlab/mmcv.git(需要你在github配置了密钥,没有配置的话使用https链接克隆)
  • 此时环境内就有 mmcv的文件夹。
  • 打开 conda的power shell(一定要用这个)
  • image.png

  • 进入到 conda环境目录,激活conda 环境
  • 直接创建的conda环境的使用:conda activate swin_det
  • 指定了conda环境路径的使用:conda activate .\mmdet_swin
  • 进入到 mmcv 目录下,执行 pip install -r requirements.txt来安装mmcv所需的python包
  • 配置环境变量:应该是因为在安装mmcv时用到。
  • $env:TORCH_CUDA_ARCH_LIST="8.6" 8.6为显卡算力,查询位置:英伟达官网(3060看英文文档),3060 查看算力位置:英文算力位置
  • $env:MMCV_WITH_OPS = 1
  • $env:MAX_JOBS = 8 根据CPU核心数设置(其实我是10核心,不大于你CPU核心应该就没事)
  • 运行:python setup.py build_ext(这步包括下面的一步就会用到之前VS中的cl工具)
  • 运行:python setup.py develop
  • 验证:codna list 会看到 mmcv-full(记得确定一下版本对不对 1.3.17)
  • 6. 安装mmdetection

  • 进入之前创建的conda环境目录内:如我的目录:E:\workspace\Python\Pytorch\STOD\swin_det,确保已经激活了conda虚拟环境
  • 克隆mmdetection 的代码,找到要拉取的版本后 git clone(或者clone master 之后再checkout),地址:https://github.com/open-mmlab/mmdetection/tree/v2.20.0
  • git clone -b v2.20.0 git@github.com:open-mmlab/mmdetection.git(需要你在github配置了密钥,没有配置的话使用https链接克隆)
  • 进入 mmdetection的代码目录,安装mmdetection所需的python包,执行:pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com (会在下载mmtrack时候出错,这是某个测试环境需要的包,暂时不管它,把它屏蔽掉,再运行上面命令)。
  • 屏蔽方式:
  • image.png
  • 安装 mmdetection,执行 :python setup.py develop (过程中安装了pycocotools,但是最后发现用不到)
  • 验证 pip list 可以看到 mmdet(记得确定一下版本对不对 2.20.0)
  •         注:apex可以尝试直接用pip装,但是不是确定是否可用,可以尝试。

    7. 安装 apex

  • 进入之前创建的conda环境目录内
  • 激活conda 环境
  • clone apex 项目:https://github.com/NVIDIA/apex
  • 进入 apex 文件夹
  • 执行:python setup.py install
  • pip list 能看见 apex (0.1版本,只有这一个版本)
  • 注:安装的apex会在训练模型时候有一个警告内容如下:(但实际没啥影响)
  • fused_weight_gradient_mlp_cuda module not found. gradient accumulation fusion with weight gradient computation disabled.
  • 8. 拉取代码

  • 地址:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection
  • 设置工程所用环境为前面准备好的虚拟环境
  • 9. 测试工程

  • 下载权值文件:(直接丢在项目根目录下)
  • image.png

  • 验证执行如下命令:
    python demo/image_demo.py demo/demo.jpg configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py mask_rcnn_swin_tiny_patch4_window7.pth

  • 成功的话 能看到实例图片,当 mask_rcnn_swin_tiny_patch4_window7.pth 不在项目根目录下的时候,需要在前面指定具体位置。
  • 10. 常见问题

  • Q1:TypeError: MaskRCNN: SwinTransformer: init() got an unexpected keyword argument ‘embed_dim’
  • A1:在虚拟环境下,进入Swin-Transformer-Object-Detection 项目目录,执行:python setup.py develop
  • 此时会发现 mmdetection被换了版本,变为了 2.11.0,我也没办法,最终使用的并不是开始设想的2.20.0
  • 下一篇:Swin Transformer Object Detection 目标检测-2——训练自己的数据集

     
     

    关于作者:

  • 个人网站:https://beyonderwei.com
  • 邮箱:beyonderwei@gmail.com
  • 微信公众平台

    来源:Beyonderwei

    物联沃分享整理
    物联沃-IOTWORD物联网 » Swin Transformer Object Detection 目标检测-1——环境搭建详细教程

    发表评论