Yolov8实现瓶盖正反面检测

news/2024/7/11 0:39:54 标签: YOLO

一、模型介绍

  • 模型基于 yolov8n
  • 数据集采用SKU-110k,这数据集太大了十几个 G,所以只训练了 10 轮左右就拿来微调了
  •  基于原木数据微调:训练 200 轮的效果

10SKU-110k + 20 轮原木+ 200 轮瓶盖正反面 微调模型下载地址https://wwxd.lanzouu.com/iREN21gey34d
密码:d8x3

下载完把模型格式修改为 pt

二、模型测试

  • 废话不多说上代码:
import cv2
from ultralytics import YOLO

# 加载模型
model = YOLO('best_bottle.pt')  # 预训练的 YOLOv8n 模型

image_url = '123.webp'
# 在图片列表上运行批量推理
results = model([image_url])  # 返回 Results 对象列表

image = cv2.imread(image_url)  # 替换成实际图像路径

# 获取类别映射
class_mapping = {0: "BACK", 1: "FRONT"}

# 处理结果列表
for result in results:
    boxes = result.boxes  # 边界框输出的 Boxes 对象
    labels = boxes.cls
    boxes_np = boxes.xyxy.numpy()

    for box, label in zip(boxes_np, labels):
        x1, y1, x2, y2 = map(int, box)
        class_index = label.item()
        class_label = class_mapping.get(class_index, "Unknown")

        # 设置颜色
        color = (0, 255, 0) if class_label == "BACK" else (0, 0, 255)

        # 在图像上绘制边界框
        image = cv2.rectangle(image, (x1, y1), (x2, y2), color, 2)

        # 在图像上绘制分类标签
        label_text = f"{class_label}"
        label_size, _ = cv2.getTextSize(label_text, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1)
        label_position = (x1 + int((x2 - x1) / 2), y1 + int((y2 - y1) / 2))
        cv2.putText(image, label_text, label_position, cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 1, cv2.LINE_AA)

# 创建窗口并展示图像
cv2.namedWindow('Bounding Boxes', cv2.WINDOW_NORMAL)
cv2.imshow('Bounding Boxes', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、模型效果

四、实时推理


http://www.niftyadmin.cn/n/5227746.html

相关文章

基于单片机的空气质量实时监测系统(论文+源码)

1. 系统设计 通过文献和市场调查,本设计的实现方案框架是以单片机为核心控制处理器搭建外围的功能模块如温度传感器模块、湿度传感器检测模块、二氧化碳传感器检测设备模块、无线通信模块和蜂鸣器声光报警提示模块来实现,辅以显示模块来展示。 该系统通…

Docker安装可视化工具Portainer

目录 Portainer简介 Portainer安装 Portainer简介 Portainer是一款开源的容器管理平台,支持多种容器技术,如Docker、Kubernetes和Swarm等。它提供了一个易于使用的Web UI界面,可用于管理和监控容器和集群。Portainer旨在使容器管理更加简单…

“十道机器学习问题,帮助你了解基础知识和常见算法“

目录 简介: 1. 什么是机器学习?它与传统编程有什么不同之处?2. 请解释监督学习和无监督学习的区别。3. 什么是过拟合和欠拟合?如何解决这些问题?4. 请解释交叉验证在机器学习中的作用。5. 什么是特征选择?为…

正式版PS 2024 25新增功能 刚刚发布的虎标正式版

Adobe Photoshop 2024是一款业界领先的图像编辑软件,被广泛应用于设计、摄影、插图等领域。以下是这款软件的一些主要功能和特点: 丰富的工具和功能。Adobe Photoshop 2024提供了丰富的工具和功能,可以帮助用户对图像进行编辑、修饰和优化。…

Pycharm2020.3.5激活方式

激活插件链接:https://pan.baidu.com/s/1tPd7V4pKUx0Z6fSKumLjTQ 提取码:lr12 1.pycharm主界面点开设置如下: 2.点击 Plugins 然后依次点击:小齿轮->选择本地安装(下图) 3.找到存放插件的目录&#xf…

pthread_join()函数

pthread_join()函数作用 控制线程的执行流 等待线程执行结束 pthread_join() 函数声明在<pthread.h>头文件中&#xff0c;语法格式如下&#xff1a; int pthread_join(pthread_t thread, void ** retval);thread 参数用于指定接收哪个线程的返回值&#xff1b;retval …

【C语言期末不挂科——指针进阶篇】【上】

C语言进阶篇【上】 文章目录 C语言进阶篇【上】字符指针数组指针数组传参和指针传参  数组传参  一级指针传参  二级指针传参 前言&#xff1a; 我们在指针初阶篇学习了&#xff1a; 1、指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块空间。 2、指…

软件工程(九)

软件过程 定义 是软件生存周期中的一系列相关软件工程活动的集合&#xff0c;活动是任务的集合。 任务是将输入变换为输出的操作。 活动的执行可以是顺序的&#xff0c;重复的&#xff0c;并行的、嵌套的。 每一个软件过程由一组工作任务、项目里程碑、软件工程产品和交付…