前面介绍了Swin Transformer的环境配置,配置好了就可以训练自己的数据集了!
对于Swin Transformer网络结构,采用VOC数据集,需要修改
1、新建文件夹
在Swin-Transformer-Object-Detection\data\VOCdevkit\VOC2007目录下新建文件夹:
2、修改配置文件
(1)数据集修改
在.\configs\_base_\datasets目录下,打开voc0712.py文件,将data_root改为自己的数据集路径:
修改训练集、验证集和测试集的路径:
修改输入图片的大小:
(2)修改数据集标签类别
1)模型文件修改:(这里我用的是mask-RCNN+Swin+fpn)
在.\configs\_base_\models中打开mask_rcnn_swin_fpn.py,将类别数改为自己的数量:
如果数据集中没有mask部分的标签,将mask_rcnn中的mask操作注释掉:
2)修改数据集标签类别名称
在.\mmdet\datasets中打开voc.py,将数据集标签类别名称改为自己的:
在\mmdet\core\evaluation中打开class_names.py,将数据集标签类别名称改为自己的:
(3)修改模型运行的默认配置文件
在configs\_base_中打开default_runtime.py,设置训练多少个iteration验证一次,设置预训练权重的路径:
(4)修改模型文件
在configs\swin中打开mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py,将模型路径和数据集路径改成自己的:
img_scale参数改成自己的输入图片尺寸。
如果目标检测不需要mask,则注释掉:
设置训练的轮数。
3、输入图像格式修改
默认格式是.jpg,修改的话,在mmdet\datasets目录中,打开wider_face.py和xml_style.py,
5、训练模型
在项目路径中,输入以下命令:
python tools/train.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
测试:
python tools/test.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py work_dirs/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco/latest.pth --show-dir detect_img --show --eval mAP