使用mmyolo快速搭建yolo网络
环境搭建
使用conda创建新环境并安装pytorch
1 | conda create -n mmyolo python=3.8 -y |
安装 MMYOLO 和依赖库
1 | git clone https://github.com/open-mmlab/mmyolo.git |
准备数据集
此处数据集为官方文档中演示所用的Cat 数据集,为包括144张图片的单类别数据集
在上一步中克隆的mmyolo源码中,使用如下命令即可自动下载目标数据集
1 | python tools/misc/download_dataset.py --dataset-name cat --save-dir ./data/cat --unzip --delete |
data/cat/annotations
中存放的是 COCO 格式的标注,data/cat/images
中存放的是所有图片
文件配置
官方源码中已经为我们提供了yolov5等的配置文件,位于configs
中,我们只需要继承这些配置文件,并按照需求进行相应修改即可
官方所给的配置案例为
1 | # 基于该配置进行继承并重写部分配置 |
可以直接复制使用,也可以进行进一步修改
其中
_base_ = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'
修改所继承的配置文件,从configs
中选取
将如上继承后的文件另行保存至任意位置即可(需记下路径)
模型训练
训练
在命令行中使用指令运行如
1 | python tools/train.py configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py |
tools/train.py
为训练脚本configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py
为上一步中所说的配置文件,可直接使用官方所给,也可以使用自己所集成修改的,将此参数改为上一步中继承后的文件的路径即可
运行以上训练命令
work_dirs/yolov5_s-v61_fast_1xb12-40e_cat
文件夹会被自动生成,权重文件以及此次的训练配置文件将会保存在此文件夹中。
注意事项
在训练过程中会打印如下两个关键警告:
1 | You are using YOLOv5Head with num_classes == 1. The loss_cls will be 0. This is a normal phenomenon.\ |
这两个警告都不会对性能有任何影响。第一个警告是说明由于当前训练的类别数是 1,根据 YOLOv5 算法的社区, 分类分支的 loss 始终是 0,这是正常现象。第二个警告是因为目前是采用微调模式进行训练,我们加载了 COCO 80 个类的预训练权重, 这会导致最后的 Head 模块卷积通道数不对应,从而导致这部分权重无法加载,这也是正常现象。
训练中断后恢复训练
如果训练中途停止,可以在训练命令最后加上 --resume
,程序会自动从 work_dirs
中加载最新的权重文件恢复训练。
例如
1 | python tools/train.py configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py --resume |
节约显存策略
如果显存不够,可以考虑开启混合精度训练--amp
1 | python tools/train.py configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py --amp |
训练可视化
官方文档中展示了多种可视化方案,在此处我们使用tensorboard
在先前我们已经配置好的配置文件中的最后加入
1 | visualizer = dict(vis_backends=[dict(type='LocalVisBackend'), dict(type='TensorboardVisBackend')]) |
重新运行训练命令后,Tensorboard 文件会生成在可视化文件夹 work_dirs/yolov5_s-v61_fast_1xb12-40e_cat.py/{timestamp}/vis_data
下, 运行下面的命令便可以在网页链接使用 Tensorboard 查看 loss、学习率和 coco/bbox_mAP 等可视化数据了:
1 | tensorboard --logdir=work_dirs/yolov5_s-v61_fast_1xb12-40e_cat.py |
其中最后一个.py文件参数为配置文件
模型测试及预测
模型测试
运行如下
1 | python tools/test.py configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py \ |
两个文件参数分别为配置文件、权重文件
运行以上测试命令, 不仅可以得到模型训练部分所打印的 AP 性能,还可以将推理结果图片自动保存至 work_dirs/yolov5_s-v61_fast_1xb12-40e_cat/{timestamp}/show_results
文件夹中。
如果使用了 WandbVisBackend
或者 TensorboardVisBackend
,则还可以在浏览器窗口可视化模型推理结果。
- Title: 使用mmyolo快速搭建yolo网络
- Author: CGC
- Created at: 2023-03-26 14:43:05
- Updated at: 2023-07-09 20:06:42
- Link: https://redefine.ohevan.com/2023/03/26/使用mmyolo快速搭建yolo网络/
- License: This work is licensed under CC BY-NC-SA 4.0.