首页 > 其他分享 >YOLOV8解读--分类模型训练与预测

YOLOV8解读--分类模型训练与预测

时间:2023-12-25 17:33:46浏览次数:29  
标签:__ False img -- ultralytics YOLOV8 解读 import model

YOLOV8命名不同于V5系列,V8不强调yolo这一模型,更加强调其框架属性,所以V8在github上的项目名为 ultralytics 。

所以在下载代码时不要怀疑,就是这个地址:https://github.com/ultralytics/ultralytics

下边写基于V8模型做分类的方法

数据集部分

分类模型的数据集与V5的检测或分割最大的不用试,既不需要配置文件也不需要标注文件。

数据集先直接分为train和val(必须是这两个名称)

YOLOV8解读--分类模型训练与预测_预测代码

然后再在teain和val下再分不同的类别,一个类别一个文件夹,文件夹的名称既是类别的名称,文件夹内全部是图片,没有标注文件或其他。

YOLOV8解读--分类模型训练与预测_分类模型_02

训练部分

训练和预测开始前需要配置好V8所使用的环境,环境依照项目的requirements配置即可。

训练代码如下:

#from ultralytics import RTDETR
from ultralytics import YOLO

if __name__ == "__main__":
    model = YOLO('D:/code/model/ultralytics-main/models/yolov8s-cls.pt')

    # Display model information (optional)
    # model.info()

    # Train the model on the COCO8 example dataset for 100 epochs
    results = model.train(task='classify',mode='train', \
        data='E:/data/classfication_datasets_2', batch=8, imgsz=640, \
            val=False, cache=False, optimizer='auto',cos_lr=True, close_mosaic=25, amp=False, half=False, \
            dnn=False, int8=False, dynamic=False, simplify=False, degrees=30, mosaic=1, augment=True, mixup=0.75, \
            copy_paste=0.5, scale=0.5,epochs=100,device=0,workers=2)

注意 :这里 ‘model = YOLO('D:/code/model/ultralytics-main/models/yolov8s-cls.pt')’ 括号内是提前下载好的预训练模型的地址。预训练模型内已经包含网络结构类型等,所以不需要另外的网络配置文件。

预训练权重下载地址在项目的readme中有说明,如下:

YOLOV8解读--分类模型训练与预测_分类模型_03

data中  ‘data='E:/data/classfication_datasets_2',’  这里的地址是数据集目录的地址(train文件夹上一级)。其他参数和V5类似的含义,直接按需求修改(还有一部分参数这里未给出,是默认值,也可以直接设置)。

预测部分

代码如下:

from ultralytics import YOLO
import cv2
import numpy as np
import os
from tqdm import tqdm


def cv_show(name:str,img):
    cv2.namedWindow(name,0)
    cv2.imshow(name, img)
    cv2.waitKey(100)
    # cv2.destroyAllWindows()
    return


class ClsPredict():
    # 预训练权重,训练权重
    def __init__(self,official_model,custom_model) -> None:
        self.model = YOLO(official_model)  # load an official model
        self.model = YOLO(custom_model)  # load a custom model
        
    # 单张预测
    def predict(self,img):

        # 0Predict with the model  
        results = self.model(img) 
        
        # 各类别名称
        names = results[0].names
        # 各类别置信度
        confs = results[0].probs.data.cpu().numpy()
        # 置信度最高的索引
        max_index = np.argmax(confs)

        state = names[max_index]
        score = confs[max_index]

        return state+str(score)
 if __name__ == "__main__":
    # 预训练权重地址(与训练时使用的是同一个)
    official_model = 'D:/code/model/ultralytics-main/models/yolov8s-cls.pt'
    # 训练的得到的权重的地址
    custom_model = 'D:/code/model/ultralytics-main/runs/classify/train6/weights/last.pt'
    
    clspredic = ClsPredict(official_model,custom_model)
    
    img = cv2.imread(img_path)
    results = clspredic.predict(img)  # predict on an image

最终返回的结果包含每个类的名称和每个类的置信度,一一对应。


标签:__,False,img,--,ultralytics,YOLOV8,解读,import,model
From: https://blog.51cto.com/u_16471221/8970413

相关文章

  • Windows Server 2022 OVF, updated Dec 2023 (sysin) - VMware 虚拟机模板
    WindowsServer2022OVF,updatedDec2023(sysin)-VMware虚拟机模板2023年12月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2022-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • 客户案例 | 思腾合力助力某能源公司地质数据智能化计算平台建设
    石油行业是全球最大的行业之一,涉及到从地下或海底开采原油和天然气的勘探、开发、生产、运输、精炼和销售的全过程。石油不仅是世界上最主要的能源之一,还是化工产品的主要原料。石油行业的运作对全球经济有着重大影响,其价格波动可以影响到各国的经济状况和政策决策。客户需求与解决......
  • Windows Server 2022 中文版、英文版下载 (updated Dec 2023)
    WindowsServer2022中文版、英文版下载(updatedDec2023)WindowsServer2022正式版,2023年12月更新请访问原文链接:https://sysin.org/blog/windows-server-2022/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org此次发布更新了什么?答:版本号,当然还有……2021.......
  • Windows Server 2025 简体中文版下载 (Inside Preview, updated Dec 2023) - 下一代 W
    WindowsServer2025简体中文版下载(InsidePreview,updatedDec2023)-下一代Windows11ServerWindowsServerNext请访问原文链接:https://sysin.org/blog/windows-server-2025/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org我们知道WindowsServer2022......
  • 华纳云云服务器2核4g能干什么?
     对于许多个人和企业来说,云服务器的硬件配置是至关重要的。其中,常见的有2核4G配置。 谈到2核4g配置,它是指云服务器拥有2个CPU核心和4GB的内存。2核指的是处理器(CPU)的核心数量,而4G则是指内存的大小。这个配置通常对于中小型网站应用和简单计算应用来说已经足够。它的优势在......
  • 无涯教程-PostgreSQL - Functions(函数)
    PostgreSQL函数,也称为存储过程,使您能够执行通常会在数据库中的单个函数中进行多个查询和往返的操作,函数允许数据库重用,因为其他应用程序可以直接与您的存储过程进行交互,而无需中间层或重复代码。Functions-语法创建函数的基本语法如下-CREATE[ORREPLACE]FUNCTIONfuncti......
  • ConcurrentHashMap从入门到入睡
    ConcurrentHashMap为什么使用ConcurrentHashMap前文提到,HashMap无论任何版本都是线程不安全的。但Hashtable会给整张表加悲观锁,仅允许单个线程独占,效率低下。synchronizedMap加入了互斥锁mutex,在方法上加上synchronized,效率同样不高。所以需要更低粒度的锁以换取更好的并......
  • 外网<远程>访问Tomcat
    前言Tomcat作为一个轻量级的服务器,不仅名字很有趣(让人想起童年),也拥有强大功能,由于其可以实现JavaWeb程序的装载,就成为配置JSP和Java系统必备的环境软件,也是开发调试JSP程序的首选。Tomcat运行稳定且开源免费,加上apache和Sun的加持即免费和开源的特性,使其广泛应用在中小型系统及并......
  • 优维产品最佳实践第20期:控制台全链路监控
    之前我们会觉得cmdb自动发现没有上报很难排查,弄不清楚数据的上报链路;监控指标的数据断点很难定位,flink对现场来说是一个黑盒子;apm数据更新不及时到底是上报异常还是入库失败呢?现在控制台集成了对数据链路的监控,数据上报链路全透明,问题节点一目了然,极大的减少问题定位的难度。「全......
  • vivo何以穿越周期?
    经历了几年低迷期的徘徊,手机产业正在进入新的周期。谁,能成为新赢家?科技行业一直在快速迭代,能穿越产业周期的企业不是很多。从全球来看,很多PC时代、互联网时代的明星企业都已经陨落。手机产业更是迭代快、淘汰狠,过去二十年中,很多红极一时的品牌都已经黯然退场。在通信行业,一向低调的......