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格式转换

2906698832c745a6a10635c220ccb5a8.png

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

e103b08694274112b68624af8dcf0ce9.png

三、YOLO系列算法项目搭建

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

255c66132ff442eab693d9b8df812c76.png

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

e59f38fd4ebb451da0a59e9317fae556.png

 train.py中训练自己的数据集,需要修改data,改为自己的数据集yaml文件;修改name和project,改为训练名称, ​​​便于记录;修改cfg,修改配置网络文件;修改epochs,一般默认300,如果加载预训练模型的话,可以修改为100;修改resume,中途如果终端的话,改为True,即为从断点开始重新训练;修改batch-size,根据自己的显卡情况进行修改,最好为8的倍数慢慢增加修改,默认为32。8e4b5c6dc96f49b1a8f6e7ad8a3490d0.png

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

43df71c4c2c2409e803597b873f93380.png

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

c2d49987ec7e4435982d56f1c05e62c6.png

四、YOLO算法数据目录更改

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

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
YOLO(You Only Look Once)是一种实时目标检测算法YOLOv8、YOLOv7和YOLOv5是在YOLO算法基础上进行了改进的版本。 YOLOv8是YOLOv7的改进版本,主要的改进点在于改进网络架构和骨干网络。YOLOv8使用了Darknet53骨干网络,通过堆叠多个卷积层来提取特征。此外,YOLOv8还引入了SPP结构(Spatial Pyramid Pooling)来捕捉不同尺度的特征。它还采用了FPN(Feature Pyramid Network)来融合多层次的特征信息,以增加目标检测的准确性和鲁棒性。 YOLOv7相较于YOLOv8,改进点在于网络架构和损失函数。YOLOv7使用了YOLO9000的骨干网络Darknet19,并使用了Anchor Box来预测目标位置和大小。此外,YOLOv7还引入了Focal Loss来解决目标检测中类别不平衡的问题。Focal Loss能够更加关注困难样本,使得目标检测更加准确。 YOLOv5是YOLO的最新改进版本,相较于YOLOv4,它主要改进了网络架构和训练策略。YOLOv5使用了CSPDarknet53作为骨干网络,它可以提取更加丰富的特征。此外,YOLOv5还引入了PANet结构来融合不同层次的特征。此外,YOLOv5采用了自适应的训练策略,可以根据不同的目标检测任务自动调整模型大小和数据增强程度,从而提升了目标检测的性能和速度。 综上所述,YOLOv8、YOLOv7和YOLOv5都是在YOLO算法基础上进行了不同程度的改进,通过改进网络架构、骨干网络和训练策略等方面来提升目标检测的准确性和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人工智能算法研究院

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

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

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

打赏作者

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

抵扣说明:

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

余额充值