YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程

本博文教大家如何快速便捷有效的跑通YOLO系列算法。如果有需要更正的请留言,我会进一步更新修正。

一、实验环境

        关于实验环境,YOLO系列算法官网源码用的是PyTorch框架写的,所以需要大家在自己电脑安装PyTorch环境,不同YOLO算法或者不同版本的同一算法再根据requirement.txt进行安装所需要的库即可。关于如何搭建PyTorch环境本人前期已进行教学,可以点击下方链接。

【学习经验分享NO.22】PyTorch环境搭建

二、数据集准备

        以公开的东北大学钢材表面缺陷NEU-DET数据集为例,首先将该数据集进行如下划分,按照6:2:2或者7:1:2比例进行划分为训练集、验证集、测试集,部分朋友会出现只划分了训练集和验证集,没有划分测试集,将最后train.py训练得到的mAP作为最终模型评估的结果,这其实是不准确的。这边顺便进行下解释,训练集就相当于学生的学习资料课堂学习、验证集就相当于课后作业可以反复更正练习测试,而测试集就相当于最后的期末考试,一个学生学的好坏最终还是靠最后的期末考试来进行评价的。有兴趣的朋友可以看下吴恩达的深度学习视频,里面有相关内容的讲解。关于划分数据集的代码以及数据集的YOLO格式转换,之前也有教学和代码示例,如下所示。学习经验分享之五:YOLOv5数据集划分以及YOLO格式转换

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第1张图片

 创建data.yaml,需要确定数据的路径以及数据集的类别数量nc以及类别的名称。 

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第2张图片

三、YOLO系列算法项目搭建

首先从官网上下载YOLO系列算法的源码,用Pycharm这个IDE打开,选择配置好环境。配置按钮如下所示。

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第3张图片

 以下为YOLOv5项目。train.py为训练数据集程序,val.py为评估验证模型程序,detect.py为应用训练得到的模型。

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第4张图片

 train.py中训练自己的数据集,需要修改data,改为自己的数据集yaml文件;修改name和project,改为训练名称, ​​​便于记录;修改cfg,修改配置网络文件;修改epochs,一般默认300,如果加载预训练模型的话,可以修改为100;修改resume,中途如果终端的话,改为True,即为从断点开始重新训练;修改batch-size,根据自己的显卡情况进行修改,最好为8的倍数慢慢增加修改,默认为32。YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第5张图片

 val.py中验证自己训练得到的模型,同train.py一样,不同的地方建议将iou-thres改为0.5,这样可以测试得到mAP0.5。一般实验设备等不影响评估得到的mAP结果,所以大家不用担心在服务器上训练验证得到的模型会在自己电脑上不一样的问题。

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第6张图片

 detect.py利用自己训练得到的模型。需要修改的参数为weights改为自己的训练得到模型的权值目录下就可以,其他自己参数自己进行调整就行。 

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第7张图片

四、YOLO算法数据目录更改

问题:就是将数据集防止在项目的项目之外的时候,可以通过修改general.py中的extract_dir这个参数进行路径的修正。具体情况如图所示。

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第8张图片

YOLO系列(YOLOv5/YOLOv7/YOLOv8)算法训练数据集保姆级教程_第9张图片

你可能感兴趣的:(YOLO算法改进系列,学习经验分享,YOLO,算法,深度学习)