前言

此程序是使用YOLOv8训练自己的图像并测试。Yolo系列模型可以说是比较特殊的模型,因为不像其他公开网络ResNet、GoogLeNet等等,可以自己构建和更改层。Yolo只能整体调用这个网络,这个可能是让初学者比较头疼的问题,就是看不到网络的每个层,也看不到构建网络的代码。

但其实这样一来反而方便了,就是只需要指定好图像的目录就可以了,甚至都不用去统一图像的尺寸。

参考了网上的各种大佬写的调用方法,以及YOLO模型官网的介绍,整理了一下比较简洁、适合初学者使用的代码。

YOLO官网写的其实很详细,强烈建议大家可以参考:https://docs.ultralytics.com/tasks/classify/

本程序是用JupyterLab写的,方便逐块运行。当然放到pycharm或者vscode里都没问题。使用YOLOv8进行猫狗图像二分类,使用了猫狗各500张,提前划分好训练集、验证集、测试集放到不同文件夹。

方便替换图像数据,只需要将图像放入文件夹中即可。如果是多分类,只需将对应好放入不通文件夹即可,程序不用做改动。

如有其他问题还是去参考官网。

整理好的程序已放在闲鱼,整理不易,价格低廉15。

【闲鱼链接】:https://m.tb.cn/h.T0BQky2?tk=4IKN3rZPzdX MF7997

如果连接失效,可在闲鱼搜索:耐心的等待5283,然后点“用户”即可找到个人主页下的程序。

程序工作如下:

1、图像数据

Catdogs是所有图像。分为test和train,test和train里都是cats、dogs两个文件夹。因为训练时,会自动指定文件夹名作为图像的标签。

2、加载YOLOv8模型

如果当前目录没有此模型,运行时会自动从官网下载这个模型;如果当前目录有此模型,则会直接加载。

自动下载可能需要真互联网。如果提示下载失败,可以手动点这个链接(真互联网),就能自动下载到一个“yolov8n-cls.pt”。直接放到当前目录这就可以。最终程序压缩包里也有这个文件,不自己下载直接用也行。

3、加载图像数据。

这里注意一定得是图像的绝对路径,不能写相对路径。方便起见,用os.path获取了绝对路径。

4、训练模型。

训练时指定好图像路径、轮数、图像尺寸、设备(GPU或CPU)即可,都有详细注释。会显示训练信息。

第一次运行可能会自动下载yolo11n.pt,应该是工具包自带的,等待下载完即可,不用理会。

然后会开始训练。

最终会提示结果保存到了 runs/classify/train的路径里。

这时候当前目录会出来"runs"文件夹。

打开里面是一堆文件,主要关注以下几个即可。

① weights文件夹。best.pt和last.pt分别是训练完,得到的最好的模型和最后一轮的模型。进行单个图片识别测试的时候,可以用best.pt模型。

② results.csv。这是训练的acc和Loss数据,后续画图可以用到。

③ result.png。这是train和acc loss曲线,这个当然也可以用results.csv自己画。

④ confusion_matrix.png。这个是测试集混淆矩阵。

⑤ args.yaml。这个是训练的一些参数。

5、读取results.csv的数据,绘制训练集acc和loss。

当然自动保存下来的图片也有这个曲线了,这里是为了方便保存原图。

6、测试单个图片

显示两个类别、概率、识别结果。

【闲鱼链接】:https://m.tb.cn/h.T0BQky2?tk=4IKN3rZPzdX MF7997

如果连接失效,可在闲鱼搜索:耐心的等待5283,然后点“用户”即可找到个人主页下的程序。

注:程序完全由本人所写,旨在帮助大家了解如何用yolov8训练自己的图像。原始程序如运行不通可远程帮忙调试。整理不易,唯一渠道为闲鱼售卖。最近盗版本人程序太多,私聊后还拒不承认。。。。本程序已于2024.11.11申请淘天知识产权并进行备案,如有盗版将追究。时间关系解答简单问题,谢谢理解。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐