swin-transformer训练自己的数据集<自留>

前期准备(数据处理)

标注数据集

LabelMe----> COCO

  1. LabelImg:能标注 VOC、YOLO格式数据集,标注VOC数据集尤其推荐
  2. 安装:pip install labelimg -i [http://mirrors.aliyun.com/pypi/simple/](http://mirrors.aliyun.com/pypi/simple/) --trusted-host mirrors.aliyun.com
  3. 启动: 直接在命令中输入 labelimg 启动软件
  4. ①勾选 View - Auto Save mode:这样切换到下一张图时就会将标签文件自动保存在Change Save Dir设定的文件夹。
    ②Open Dir:选择图片所在的文件夹 JPEGimages
    ③Change Save Dir:选择保存标签文件要保存的目录 Annotations
  5. 快捷键
    A:上一张图
    D:下一张图
    W:绘制矩形框

** LabelImg----> VOC **

  1. LabelMe:格式为LabelMe,提供了转VOC、COCO格式的脚本,可以标注矩形、圆形、线段、点。标注语义分割、实例分割数据集尤其推荐。
  2. 安装:pip install labelme -i [http://mirrors.aliyun.com/pypi/simple/](http://mirrors.aliyun.com/pypi/simple/) --trusted-host mirrors.aliyun.com
  3. 启动: 直接在命令行输入 labelme 启动软件
  4. ①勾选 File->Automatically:这样切换到下一张图时就会将标签文件自动保存在Change Save Dir设定的文件夹。
    ②Open Dir:选择图片所在的文件夹 JPEGimages
    File-> Change Output Dir:选择保存标签文件所在的目录 Annotations
    ③Edit -> Create Rectangle:选中,开始画矩形框
    ④注:如果想删除某个框,需要先点击左侧 Edit Polygons,然后再选择你要删的框,点击del键
  5. 快捷键
    A:上一张图
    D:下一张图
    Ctrl + R:画矩形框

VOC 转COCO
在github上下载运行,把voc数据集改为CoCo数据集
注:把数据在网站中格式化处理,可以看到数据集中的每个类别

一、结构目录

数据集目录
annotations下包含的是标签文件,分别有测试集(test)训练集(train)验证集(val)中间包含文件信息,目标位置信息
主要目录结构

二、要修改的地方

需要修改的地方

  1. 类别 修改configs/base/models/mask_rcnn_swin_fpn.py中的num_classes
#num_classes=80,#类别
num_classes=4,#类别改为4  我们训练的类别是4
  1. 配置权重信息 修改 configs/base/default_runtime.py 中的 interval,loadfrom
    interval:dict(interval=1) # 表示多少个 epoch 验证一次,然后保存一次权重信息
    loadfrom:表示加载哪一个训练好(预训练)的权重,可以直接写绝对路径如: load_from = r"E:\workspace\Python\Pytorch\Swin-Transformer-Object-Detection\mask_rcnn_swin_tiny_patch4_window7.pth"
    在这里插入图片描述

  2. 修改训练图片尺寸大小:如果显存够的话可以不改(基本都运行不起来),文件位置为:configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py

修改所有的 img_scale 为 :img_scale = [(224, 224)] 或者 img_scale = [(256, 256)] 或者 480,512等。
在这里插入图片描述
同时 configs/base/datasets/coco_instance.py 中的 img_scale 也要改成 img_scale = [(224, 224)] 或者其他值
注意:值应该为32的倍数,大小根据显存或者显卡的性能自行调整

  1. 配置数据集路径:configs/base/datasets/coco_instance.py
    修改data_root文件的最上面指定了数据集的路径,因此在项目下新建 data/coco目录,下面四个子目录 annotations和test2017,train2017,val2017。
    数据集跟路径
  2. 修改该文件下的 train val test 的路径为自己新建的路径:configs/base/datasets/coco_instance.py
    训练集、测试集、验证集 路径
  3. 修改 batch size 和 线程数,路径:configs/base/datasets/coco_instance.py ,根据自己的显存和CPU来设置
samples_per_gpu=8,  # batch size
workers_per_gpu=4,  # 每个GPU对应线程数 可以大一些

在这里插入图片描述
7. 修改分类数组:mmdet/datasets/coco.py
CLASSES中填写自己的分类:

CLASSES = ('person', 'bicycle', 'car')

在这里插入图片描述
8. 修改最大epoch configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
修改72行:runner = dict(type=‘EpochBasedRunnerAmp’, max_epochs=36)#最大epochs
在这里插入图片描述

三、开始训练

在终端输入

python tools/train.py configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py

解释:执行tools下train.py文件——传入configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py 这个参数(这个参数就是我们要使用的网络)

四、训练过程结果

  1. 每50个打印一次日志信息,后边有学习率和loss信息在这里插入图片描述
  2. 最后生成结果,会在项目根目录下生成work_dirs文件夹
    在这里插入图片描述
    在这里插入图片描述
    log:保存训练时终端打印的日志
    epoch.pth:我们得到的权重文件
    lastest.pth:最新保存的权重文件
  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
Swin-Transformer是一种新型的图像分类模型,它融合了transformer和局部窗口相互作用的思想,具有更高的计算效率和分类性能。在使用Swin-Transformer模型对自己的数据集进行训练时,一般需要进行以下几个步骤。 首先,需要准备好自己的数据集。这个数据集应包含图像和对应的类别标签。可以通过从网上下载公开数据集或者自己收集构建数据集。 接下来,需要对数据集进行预处理。首先,可以对图像进行尺寸的调整和归一化操作,确保输入的图像具有一致的尺寸和数据范围。其次,可以对标签进行编码,将类别信息转换为模型可以理解的数字形式。 然后,可以使用Swin-Transformer模型对数据集进行训练。在训练过程中,需要将数据集按照一定的比例分为训练集和验证集。训练集用于模型的参数更新,而验证集用于调整模型的超参数,以及评估模型的性能。 在每个训练迭代中,可以将一批图像输入到Swin-Transformer模型中,并计算模型的损失函数。通过反向传播算法,可以更新模型的参数,使得模型能够更好地拟合训练数据。 训练完成后,可以使用训练好的Swin-Transformer模型对新的图像进行分类预测。只需将图像输入到模型中,即可得到图像所属的类别标签。 总之,使用Swin-Transformer模型对自己的数据集进行图像分类需要准备数据集、预处理数据、划分训练集和验证集、进行训练和评估,并最终利用训练好的模型进行预测。这个过程需要仔细调整模型的超参数和进行适当的数据增强操作,以获得更好的分类性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹万1w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值