当前位置: 首页 > news >正文

【图像分类】Yolov8 完整教程 |分类 |计算机视觉

目标:用YOLOV8进行图像分类。

图像分类器。

学习资源:https://www.youtube.com/watch?v=Z-65nqxUdl4

@努力的小巴掌 记录计算机视觉学习道路上的所思所得。

1、文件结构化

划分数据集:train,val,test

知道怎么划分数据集很重要。

文件夹下面有不同类别的图片。

train 

     -----dog

     -----cat

val 

     -----dog

     -----cat

test

     -----dog

     -----cat

    

2、YOLOV8做图片分类任务

方法1:

在python写脚本

首先,确保自己已经安装了ultralytics和numpy。

可以直接创建requirements.txt文件,写上这个:

ultralytics==8.0.58

numpy==1.24.2

然后pip install requirements.txt

参考官网给的文档:

Classify - Ultralytics YOLO Docs

创建main.py

from ultralytics import YOLO

# Load a model
# model = YOLO("yolov8n-cls.yaml")  # build a new model from YAML
model = YOLO("yolov8n-cls.pt")  # load a pretrained model (recommended for training)
# model = YOLO("yolov8n-cls.yaml").load("yolov8n-cls.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="数据集的的绝对路径", epochs=1, imgsz=64)

在本地运行时候,只是为了看看train.py能不能正常运行,所以,epocha设置成1;

data="数据集的的绝对路径",这里是放所有图片的那个总文件夹,就是train/val/test上面一级的,然后注意一定是绝对路径。

方法2

命令行

yolo classify train data='绝对路径' model=yolov8n-cls.pt epochs=1 imgsz=64

3、查看结果

结果保存在runs/classify下

4、分析结果

结果有3个,

weights:best.pt和last.pt 模型文件

args.yaml: 类似于配置文件,列出了我们训练时候的所有参数

results.csv:所有epochs的训练结果

其中我们重点关注,loss和accuracy。

我们要保证其损失是一直下降的。

数字不好看,我们用每个epoch的loss值画一个图像,可以直观的看。

创建画图脚本plot_metrics.py

代码:

import os
import pandas as pd
import matplotlib.pyplot as pltresults_path = './runs/classify/train14/results.csv'results = pd.read_csv(results_path)plt.figure()
plt.plot(results['                  epoch'], results['             train/loss'], label='train loss')
plt.plot(results['                  epoch'], results['               val/loss'], label='val loss', c='red')
plt.grid()
plt.title('Loss vs epochs')
plt.ylabel('loss')
plt.xlabel('epochs')
plt.legend()plt.figure()
plt.plot(results['                  epoch'], results['  metrics/accuracy_top1'] * 100)
plt.grid()
plt.title('Validation accuracy vs epochs')
plt.ylabel('accuracy (%)')
plt.xlabel('epochs')plt.show()

结果类似于:
 

5、预测新图片

创建predict.py

from ultralytics import YOLO

# Load a model

model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("图片位置")  # predict on an image

names_dict = results[0].names

probs = results[0].probs.tolist()

print(names_dict)

print(probs)

print(names_dict[np.argmax(probs)])

computervisioneng (Computer vision engineer) · GitHub

http://www.lryc.cn/news/385244.html

相关文章:

  • PyCharm 2024.1最新变化
  • 金融行业专题|某头部期货基于 K8s 原生存储构建自服务数据库云平台
  • DELL服务器 OpenManage监控指标解读
  • vscode下无法识别node、npm的问题
  • C语言之字符串处理函数
  • 昇思25天学习打卡营第4天|onereal
  • restTemplate使用总结
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
  • PostgreSQL 高级SQL查询(三)
  • 麒麟系统安装Redis
  • Java-方法引用
  • 华为---配置基本的访问控制列表(ACL)
  • Apple Intelligence,我们能得到什么?(上)
  • 【数据库中的存储桶】
  • 多选项卡的shiny
  • Python项目Django框架发布相关
  • kettle使用手册 安装9.0版本 建议设置为英语
  • golang string、byte[]以及rune的基本概念,用法以及区别
  • 全国211大学名单及排名
  • ASR 语音识别相关
  • kotlin require和assert 区别
  • 考研:数学一/二 和英语一/二 有什么区别
  • 地铁中的CAN通信--地铁高效安全运转原理
  • 简化数据提取:Excel-Extractor 使用指南
  • 用户中心项目全流程
  • 达梦数据库的系统视图v$database
  • Vue.js中的虚拟DOM
  • 【设计模式之迭代器模式 -- C++】
  • Linux网络编程:套接字编程
  • 多电商账户为什么要用指纹浏览器?