Yolov8实现瓶盖正反面检测

news2024/12/25 9:35:19

一、模型介绍

  • 模型基于 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.coloradmin.cn/o/1271681.html

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

相关文章

北斗卫星助力乡村治理,走进数字化新时代

北斗卫星助力乡村治理,走进数字化新时代 随着国家对乡村治理越来越重视,为了进一步提升乡村治理水平,我国已经启动了全面建设现代化强国的大计划,其中数字化成为了重要的一环。而北斗卫星作为我国自主研制的卫星导航系统&#xff…

【漏洞复现】通达OA inc/package/down.php接口存在未授权访问漏洞 附POC

漏洞描述 通达OA(Office Anywhere网络智能办公系统)是由通达信科科技自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA为各行业不同规模的众多用户提供信息化管理能力,包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、…

西班牙Wallapop是什么?原来欧洲版闲鱼也很好用!

说到国内的闲鱼大家肯定不陌生,那国外的二手闲置平台大家知道吗?在西班牙,最受欢迎的移动购物APP是Wallapop和速卖通。Wallapop是西班牙第一大二手商品网站,网站上丰富的性价比高的商品正好满足了西班牙人的需求。今天龙哥就和大家…

VirtualBox上安装CentOS7

基础环境:宿主机是64位Windows10操作系统,通过无线网访问网络。 macOS可以以类似方式进行安装,不同之处见最后补充。 Step1 安装VirtualBox VirtualBox是一款免费、开源、高性能的虚拟机软件,可以跨平台运行,支持Wi…

VMware Linux(Centos)虚拟机扩容根目录磁盘空间

给VMWare虚拟机根目录扩容,简单有效!_迷倒万千少女的Csir的博客-CSDN博客 https://blog.csdn.net/m0_64206944/article/details/131453844?spm1001.2014.3001.5506 上述链接融合参考下面文章 VMware Linux(Centos)虚拟机扩容根目录磁盘空间 centosli…

开启新零售时代,引领消费革命

开启新零售时代,引领消费革命 新零售的魅力在于它将线上线下融合,打破了传统零售的界限。以往,消费者需要亲自前往实体店面购物,但如今他们可以通过电子商务平台随时随地进行购物。这种便捷的消费方式不仅节省了时间和精力&#x…

‘tsc‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

最近在用nodejs typescript 某游戏服务器在做一些研究 nodejs-tcs 问题描述: 1.使用命令npm install -g typescript安装typescript后,输入 tsc命令,一直报错 tsc 不是内部或外部命令,也不是可运行的程序 或批处理文件。 2.目…

JSch线上出现com.jcraft.jsch.JSchException: channel is not opened.问题分析

JSch线上出现com.jcraft.jsch.JSchException: channel is not opened.问题分析 文章目录 JSch线上出现com.jcraft.jsch.JSchException: channel is not opened.问题分析1. 背景1.系统使用jsch这个框架做文件发送以及远程命令执行的操作,系统一直运行正常,直到某一个环境发现 2.…

系列二、为什么要使用ThreadLocal?

一、为什么要使用ThreadLocal? 1.1、概述 并发场景下,会存在多个线程同时修改一个共享变量的场景,这就有可能会出现线程安全的问题。为了解决线程安全问题,可以用加锁的方式,比如对核心代码使用synchronized或者Lock进…

Docker的基本概念和优势,以及实际应用场景

目录 概要 基本概念 容器 (Container) 什么是容器 容器与虚拟机的区别 镜像 (Image) Dockerfile 仓库 (Repository) 容器编排 (Orchestration) Docker Compose Docker Daemon 和 Docker Client 网络 (Network) 数据卷 (Volume) 主要优势 提高移植性和可移植性 提…

基于Java SSM框架+Vue实现垃圾分类网站系统项目【项目源码+论文说明】

基于java的SSM框架Vue实现垃圾分类网站系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述…

【EI会议征稿通知】第七届结构工程与工业建筑国际学术会议(ICSEIA 2024)

第七届结构工程与工业建筑国际学术会议(ICSEIA 2024) 2024 7th International Conference on Structural Engineering and Industrial Architecture 随着城市化进程的不断深入,建筑领域的需求也在优化、调整。结构工程的发展依旧受到重视&am…

centos7 nginx_keepalived 在主备服务器上安装

脚本地址 https://gitcode.net/zengliguang/nginx_keepalived.git 文件说明keepalivedkeepalived的离线安装包nginx-1.24.0nginx的离线安装包centos7_keepalived_offline_install_backup.shkeepalved安装脚本,备服务器安装 centos7_keepalived_offline_install_mas…

实验8配置工具

一、实验目的 1. 掌握UML中建模工具——部署图,用于显示系统中软件和硬件的物理架构。 2. 掌握应用Visio等业界常用的建模工具的基本使用方法和基本绘图操作,选择一种并熟练使用,会使用该工具针对具体问题建立分析模型。 二、实验内容与步骤…

ESP32-Web-Server编程- 使用SSE 实时更新设备信息

ESP32-Web-Server编程- 使用SSE 实时更新设备信息 概述 如前所述,传统 HTTP 通信协议基于 Request-Apply(请求-响应)机制,浏览器(客户端)只能单向地向服务器发起请求,服务器无法主动向浏览器推…

C语言——指针(三)

📝前言: 上篇文章C语言——指针(二)中对:指针的运算和指针变量类型对指针使用的影响开展了进一步的探讨,这篇文章我们继续学习一下指针与一维数组之间的关系: 1,对数组名的理解 2&am…

什么是网络可视化?网络可视化工具有用吗

网络可视化定义是自我描述的,因为它在单个屏幕上重新创建网络布局,以图形和图表的形式显示有关网络设备、网络指标和数据流的信息,为 IT 运营团队提供一目了然的理解和决策。 网络是复杂的实体,倾向于持续进化,随着业…

关于pyqt5与moviepy到打包的坑点

1,pyqt5 关于pyqt5 designer.exe 的使用主要就是了解pyqt5右侧菜单栏的功能使用 打包后的文件,需要继承改类,进行图形指令交互 关于pyqt5,要了解信号,和槽点的相互关系。 我在pyqt5中使用moviepy的时候,需要用到异步…

css 字体倾斜

css 字体倾斜 //左右倾斜 transform: skew(40deg, 0deg);//上下倾斜 transform: skew(0deg, 16deg);

服务器安装JDK17 版本显示JDK8

服务器之前安装的是JDK8,后面升级JDK17后,发现执行 java -vsrsion 显示的是此时我的环境变量已经换成了JAVA17的路径 输入: vim /etc/profile 解决办法: 1.更新自己环境变量 bash export JAVA_HOME/usr/local/jdk-17.0.7 …