Swin-Ttransformer Object Detection 环境配置及训练

在这里插入图片描述

Swin-Ttransformer Object Detection 环境配置及训练

源码地址:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection
参考目录:
https://www.bilibili.com/video/BV1eu41197qK/?spm_id_from=333.788
https://www.bilibili.com/video/BV1Y3411676J?spm_id_from=333.337.search-card.all.click

简单记录下,安装、跑通、GPU训练swin-t源码的步骤。

环境配置

  1. 首先从官网获得源码:https://github.com/SwinTransformer/Swin-Transformer-Object-Detection
git clone https://github.com/SwinTransformer/Swin-Transformer-Object-Detection.git
  1. 新建conda环境、安装pytorch 我用的是python==3.6.13和pytorch==1.7.1和 torchvision==0.8.2
    安装pytorch的教程很多,这里就不赘述了,GPU版本注意和cuda驱动的匹配。验证方法我这边放一下:
    $ python 进入python命令行
    import torch 没有出现错误就ok了
    如果是GPU版本还需要输入torch.cuda.is_available()出现True,就是成功了。(available()后面有括号
    在这里插入图片描述

  2. 根据官网安装timm

 pip install timm==0.4.12
  1. 安装mmcv-full 直接用pip install mmcv-full==1.4.0失败了,用mim安装成功了(mim安装成功率还是蛮高的)。看到别的博主说1.4.5的版本容易踩坑。
pip install openmim
mim install mmcv-full==1.4.0      #(这部分会下载opencv-python,就不需要单独装了)
  1. 接下来根据官网安装
pip install -r requirements.txt
python setup.py develop
  1. apex暂时不装也可以,如果仅使用cpu,完全可以不装apex。但我就直接安装了:
git clone https://github.com/NVIDIA/apex        #(git clone的时候可能会失败,多试几次就好了。)
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./        #(这句失败) 
pip install -v --no-cache-dir ./     #(我是用这句成功的,在GPU上这句的成功率高)

至此安装就结束了。

demo

尝试运行demo.py
命令:

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

解释一下,其中:
configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py 是配置文件
./mask_rcnn_swin_tiny_patch4_window7_1x.pth 是预训练模型参数,我放在当前目录下,放在哪里路径就写哪里。
预训练模型从官网下载,我下的是
在这里插入图片描述

运行结果:可以看到检测的精度很高,边缘把握的很准。
在这里插入图片描述

COCO训练

下载COCO数据集:官网地址
但是官网特别难下,网页总也打不开
以下地址直接复制到网页就能下载:
http://images.cocodataset.org/zips/train2017.zip
http://images.cocodataset.org/annotations/annotations_trainval2017.zip
http://images.cocodataset.org/zips/val2017.zip
http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip
http://images.cocodataset.org/zips/test2017.zip
http://images.cocodataset.org/annotations/image_info_test2017.zip
一般只要下载前三个就行了,包括训练和验证的图像和标签。

接下来要对代码做一些小修改,主要是①数据集的路径,②如果GPU带不动可以修改scaling大小。以上两点就可以了,其他的调试可以在后续再做。

  1. 打开配置文件swin-T-DE/configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py
    (我修改了Swin-Transformer-Object-Detection为swin-T-DE)

    可以看到调用的是coco_instance.py文件,这个是目标分割的,没有关系,我们就先用这个。或者有强迫症的同学也可以修改为coco_detection.py。

调用的哪个文件,就打开哪个(coco_instance.py or coco_detection.py),可以看到第二行,数据集路径data_root,改为自己存放数据集的路径
在这里插入图片描述

下面是寻找训练和验证集的路径,参考自己的路径。我的全部放在COCO文件夹下,annotations_trainval2017.zip解压后文件名为annotations。
在这里插入图片描述
在这里插入图片描述

OK到这里已经可以训练了,如果怕GPU带不动,那么看第二点

  1. ①和1中一样,调用哪个文件就在哪个文件中修改(coco_instance.pycoco_detection.py),将缩放尺度改为(256,256)。一共有两处,应该是第八行和第十九行。
    ②在1中用到过的配置文件mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py中修改三处尺度放缩。已经在图中圈出来了。
    在这里插入图片描述
    在这里插入图片描述

这是我训练中途的过程:
在这里插入图片描述

训练大概需要两天的时间吧


最后祝各位科研顺利,身体健康,万事胜意~

猜你喜欢

转载自blog.csdn.net/qq_45122568/article/details/125043314