【YOLOv8图像分类】YOLOv8图像分类源代码

前言

此程序是使用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申请淘天知识产权并进行备案,如有盗版将追究。时间关系解答简单问题,谢谢理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12578.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【干货】金融数据分析:风险评估中的数据分析

风险评估中的数据分析 金融风险评估因是金融行业的核心任务之一,也是保障金融稳定和机构可持续发展的关键。在当今数字化时代,数据分析已经成为金融风险评估的有力武器,能够帮助我们拨开复杂现象的迷雾,洞察风险的本质。 金融风…

【Hadoop】【hdfs】【大数据技术基础】实验三 HDFS Java API编程实践

实验三: HDFS Java API编程实践 实验题目 HDFS Java API编程实践 实验目的 熟悉HDFS操作常用的Java API。 实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 JDK版本:1.6或以上版本 Java IDE:Eclipse 实验…

第R3周:RNN-心脏病预测(TensorFlow版)

>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客** >- **🍖 原作者:[K同学啊]** 🍺 要求: 找到并处理第8周的程序问题(本文给出了答案)了解循环神经网络&#xff08…

数据结构 ——— 链式二叉树oj题:将链式二叉树的前序遍历存放在数组中

题目要求 给你二叉树的根节点 root ,返回它节点值的 前序 遍历 手搓一个链式二叉树 代码演示: // 数据类型 typedef int BTDataType;// 二叉树节点的结构 typedef struct BinaryTreeNode {BTDataType data; //每个节点的数据struct BinaryTreeNode* l…

前端中的 File 和 Blob两个对象到底有什么不同

JavaScript 在处理文件、二进制数据和数据转换时,提供了一系列的 API 和对象,比如 File、Blob、FileReader、ArrayBuffer、Base64、Object URL 和 DataURL。每个概念在不同场景中都有重要作用。下面的内容我们将会详细学习每个概念及其在实际应用中的用法…

酒店叮咚门铃的类型有哪些

在酒店的环境中,叮咚门铃虽小,却有着重要的作用,它是客人与酒店服务人员沟通的重要桥梁。酒店叮咚门铃主要有以下几种类型: 有线叮咚门铃 这是较为传统的一种类型。它通过电线连接,通常安装在客房的墙壁上,…

SFW3009 多功能移动照明系统

SFW3009 多功能移动照明系统 适用范围 广泛适用于铁路、水利、电网等抢险救援现场大范围移动照明。 结构特性 灯具体积小、重量轻,可以实现拖行、手提、背行三种携带方式。灯具底部也可以安装铁轨轮,便于用户在铁轨上作业。 灯头组件由左右两个灯头…

JavaWeb——Web入门(8/9)- Tomcat:基本使用(下载与安装、目录结构介绍、启动与关闭、可能出现的问题及解决方案、总结)

目录 基本使用内容 下载与安装 目录结构介绍 启动与关闭 启动 关闭 可能出现的问题及解决方案 问题一:启动时窗口一闪而过 问题二:端口号冲突 问题三:部署应用程序 总结 基本使用内容 Tomcat 服务器在 Java Web 开发中扮演着至关重…

w032基于web的阿博图书馆管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件&#xff0…

Java:使用Jackson解析json时如何正确获取节点中的值?

使用Jackson解析json时,经常会需要获取到某一节点下的值,例如: { “data”: { "test1": "value1", "test2": null, "test3": 10 } } 以Jackson2.13.5为例,使用at(jsonPtrExp)这种API&…

前端必懂:常见排序算法深度解析

在前端开发中,排序算法是一种非常重要的工具。无论是对数组进行排序以展示数据,还是对复杂对象进行排序以实现特定的功能,理解和掌握常见的排序算法对于提高开发效率和代码质量至关重要。本文将介绍几种前端常见的排序算法。 一、冒泡排序(Bu…

vue 依赖注入(Provide、Inject )和混入(mixins)

Prop 逐级透传问题​ 通常情况下,当我们需要从父组件向子组件传递数据时,会使用 props。想象一下这样的结构:有一些多层级嵌套的组件,形成了一棵巨大的组件树,而某个深层的子组件需要一个较远的祖先组件中的部分数据。…

开启鸿蒙开发之旅:核心组件及其各项属性介绍——布局容器组件

写在前面 组件的结构 rkTS通过装饰器 Component 和 Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件。 自定义组件中提供了一个 build 函数,开发者需在该函数内以链式调用的方式进行基本的 UI 描述 今天我们要学习的就是写在build 函数里的系…

数据结构OJ题

目录 轮转数组原地移除数组中所有元素val删除有序数组中的重复项合并两个有序数组 轮转数组 思路1: 1.利用循环将最后一位数据放到临时变量(n)中 2.利用第二层循环将数据往后移一位 3.将变量(n)的数据放到数组第一位 时…

Pencils Protocol 推出新板块 Auction ,为什么重要且被看好?

Pencils Protocol 上线了又一新产品板块 Auction,预示着生态版图的进一步完善,该板块的推出无论是对于 Pencils Protocol 协议本身,还是 Scroll 生态都是极为重要的。 社区正在成为主导加密市场发展的重要力量 自 DeFi Summer 以来&#xf…

Pytorch学习--神经网络--完整的模型训练套路

一、下载数据集 train_data torchvision.datasets.CIFAR10(root"datasets",trainTrue,transformtorchvision.transforms.ToTensor(),downloadTrue) train_data torchvision.datasets.CIFAR10(root"datasets",trainFalse,transformtorchvision.transform…

常用数字器件的描述-组合逻辑器件

目录 基本逻辑门 编码器 译码器 数据选择器 数值比较器 三态缓冲器 奇偶校验器 组合逻辑器件有逻辑门、编码器与译码器、数据选择器和数值比较器、加法器、三态器件和奇偶校验器等多种类型。 基本逻辑门 Verilog HDL中定义了实现七种逻辑关系的基元,例化这些…

在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能

在Django中可以使用CKEditor4和CKEditor5两个版本,分别对应软件包django-ckeditor和django-ckeditor-5。原来使用的是CKEditor4,python manager.py makemigrations时总是提示CKEditor4有安全风险,建议升级到CKEditor5。故卸载了CKEditor4&…

高效视觉方案:AR1335与i.MX8MP的完美结合

方案采用NXP i.MX8MP处理器和onsemi AR1335图像传感器,i.MX8MP集成四核Cortex-A53、NPU及双ISP技术。AR1335是一颗分辨率为13M的CMOS传感器。它使用了先进的BSI技术,提供了超高的分辨率和出色的低光性能,非常适合于需要高质量图像的应用。此外…

STM32软件SPI驱动BMP280(OLED显示)

STM32软件SPI驱动BMP280 OLED显示 BMP280简介寄存器简要说明SPI通讯代码逻辑代码展示 现象总结 BMP280简介 数字接口类型:IIC(从模式3.4MHz)或SPI(3线或4线制从模式10MHz) 气压测量范围:300~11…