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

基于yolov26+pyqt5的石榴成熟度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

基于 PyQt5 和 YOLO26 的目标检测桌面应用程序支持图片、视频和摄像头实时检测。功能特性图片检测支持图片检测视频检测支持视频文件实时检测与播放摄像头检测支持实时摄像头视频流检测模型切换支持加载不同的 YOLO26 模型.pt 或 .onnx 格式参数调节可调节置信度阈值和 IOU 阈值类别筛选支持按类别筛选检测结果结果导出支持检测结果保存为图片或导出为 JSON/TXT 格式实时统计显示 FPS、目标数量等实时统计信息效果展示训练数据集介绍数据集格式YOLO格式(不包含分割路径的txt文件仅仅包含jpg图片以及对应的yolo格式txt文件)图片数量(jpg文件个数)9953标注数量(txt文件个数)9953训练集数量8196验证集数量1171测试集数量586标注类别数5所在github仓库firc-dataset标注类别名称(注意yolo格式类别顺序不和这个对应而以labels文件夹classes.txt为准):[‘bud’,‘early-fruit’,‘flower’,‘mid-growth’,‘ripe’]每个类别标注的框数bud花芽/幼蕾框数 4132early-fruit幼果期框数 2162flower开花期框数 4786mid-growth中果期/中期生长框数 5077ripe成熟期框数 3259总框数19416图片分辨率640x640使用标注工具labelImg标注规则对类别进行画矩形框重要说明暂无特别声明本数据集不对训练的模型或者权重文件精度作任何保证图片预览标注例子:训练情况介绍模型在训练集8196张1171验证集张图片进行训练得到ClassImagesInstancesPRmAP50mAP50-95all117123200.9170.8560.9230.790bud2904770.9170.7900.8900.697early-fruit2042960.9050.8340.9110.819flower3475320.9190.8650.9370.791mid-growth3336120.8930.8590.9120.781ripe2234030.9480.9330.9630.863算法原理YOLO26 目标检测算法本项目基于YOLO26You Only Look Once v26目标检测算法由 Ultralytics 公司开发。YOLO26 是一种单阶段One-Stage目标检测器具有以下特点1. 网络架构YOLO26 采用先进的骨干网络Backbone和特征融合网络Backbone采用基于PPHGNetV2改进的C3k2_HGBlock结构集成HGBlock密集连接与压缩激励机制搭配LightConv轻量级卷积在降低计算量的同时提升特征提取效率适配边缘设备的轻量化需求[2]Neck采用 PAN-FPNPath Aggregation Network - Feature Pyramid Network结构实现自顶向下和自底向上的特征融合Head解耦头Decoupled Head设计将分类和定位任务分开处理提升检测精度2. 检测流程图像预处理将输入图像调整为模型输入尺寸默认 640x640进行归一化处理特征提取通过 Backbone 网络提取多尺度特征图特征融合Neck 网络融合不同层级的特征增强小目标检测能力预测输出Head 网络输出每个网格的类别概率和边界框坐标后处理无需使用NMS非极大值抑制算法模型采用端到端设计可直接输出最终检测结果简化部署流程并降低推理延迟[3]3. 关键技术Anchor-Free 检测YOLO26 采用无锚框设计直接预测目标中心点和尺寸简化模型结构动态目标分配DTA替代传统Task-Aligned Assigner训练时为每个目标分配唯一正样本网格从根源上避免重复框产生支撑端到端无NMS设计[1]无DFL设计摒弃传统DFLDistribution Focal Loss的复杂分布建模采用轻量化直接坐标回归降低推理负担提升边缘设备运行速度[1]Mosaic 增强训练时采用 Mosaic 数据增强将四张图片拼接提升小目标检测能力端到端无NMS设计YOLO26 摒弃了传统NMS后处理步骤通过优化预测生成和训练过程让模型直接输出最终检测结果无需额外过滤重复框不仅提升了推理速度还简化了多硬件平台的部署流程[3]4. 后处理算法置信度过滤过滤掉置信度低于阈值的检测结果类别筛选支持按指定类别过滤检测结果环境要求硬件要求项目最低配置推荐配置CPUIntel i5 或同等性能Intel i7/i9 或 AMD Ryzen 7/9内存8 GB16 GB 或以上显卡支持 CUDA 的 NVIDIA GPU可选NVIDIA RTX 1660 或以上显存4 GBGPU 推理8 GB 或以上硬盘2 GB 可用空间SSD5 GB 可用空间软件环境操作系统Windows 10/11、Linux、macOSPython3.9 或以上版本CUDA11.8 或以上如需 GPU 加速cuDNN8.6 或以上如需 GPU 加速安装步骤1. 克隆或下载项目# 使用 git 克隆,可以在github仓库firc-projects找到完整源码gitclone项目仓库地址# 或直接下载 ZIP 压缩包并解压2. 创建虚拟环境推荐# 使用 conda 创建conda create-nYOLO26-detpython3.9conda activate YOLO26-det# 或使用 venv 创建python-mvenv venv# Windows:venv\Scripts\activate# Linux/Mac:sourcevenv/bin/activate3. 安装依赖包# 安装 PyTorch根据 CUDA 版本选择# CUDA 11.8 版本pipinstalltorch2.0.1cu118torchvision0.15.2cu118 --extra-index-url https://download.pytorch.org/whl/cu118# CUDA 12.1 版本pipinstalltorch2.0.1cu121torchvision0.15.2cu121 --extra-index-url https://download.pytorch.org/whl/cu121# CPU 版本无显卡pipinstalltorch2.0.1torchvision0.15.2 --extra-index-url https://download.pytorch.org/whl/cpu# 安装其他依赖pipinstallultralytics8.4.31 pipinstallPyQt55.15.9 pipinstallopencv-python4.8.0.74 pipinstallnumpy1.24.34. 准备模型文件将训练好的 YOLO26 模型文件.pt 格式放入weights/目录下weights/ ├── best.pt # 主要模型文件 ├── class_names.txt # 类别名称文件 └── ...运行步骤启动应用程序# 激活虚拟环境后python main.py使用流程加载模型程序启动时会自动加载weights/目录下的默认模型或点击加载模型按钮手动选择模型文件选择检测模式图片检测点击图片检测按钮然后选择选择文件加载图片视频检测点击视频检测按钮选择视频文件摄像头检测点击摄像头检测按钮自动打开默认摄像头设置参数可选调节置信度阈值控制检测结果的置信度下限0.1 - 0.9调节IOU 阈值控制非极大值抑制的重叠度阈值0.1 - 0.9选择类别筛选只显示指定类别的检测结果勾选显示标签与置信度控制是否在图像上显示标签开始检测点击开始检测按钮启动检测检测过程中可点击停止检测终止保存结果点击保存结果保存检测结果图片点击导出结果将检测数据导出为 JSON 或 TXT 格式点击截图保存快速保存当前画面注意事项1. 模型文件确保模型文件.pt与类别名称文件class_names.txt匹配模型文件路径不能包含中文字符建议放在项目根目录的weights/文件夹下支持的模型格式PyTorch (.pt) 和 ONNX (.onnx)2. GPU 加速首次运行时会自动下载 CUDA 相关的预训练权重可能需要等待几分钟如遇到 CUDA 内存不足错误请关闭其他占用显存的程序无 NVIDIA 显卡时程序会自动切换为 CPU 推理速度较慢3. 检测参数置信度阈值建议设置在 0.3 - 0.5 之间过低会产生大量误检过高可能漏检IOU 阈值建议设置在 0.4 - 0.6 之间用于去除重叠的检测框参数调整会实时生效无需重新加载模型4. 摄像头检测确保摄像头设备正常工作且未被其他程序占用默认使用摄像头索引 0如需修改请在代码中调整camera_index参数摄像头检测为实时模式按停止检测或关闭窗口即可退出5. 性能优化视频检测时检测速度取决于视频分辨率和显卡性能如检测卡顿可尝试降低输入视频分辨率或更换更高性能的显卡批量图片检测时会顺序处理建议在处理大量图片前确保磁盘空间充足6. 常见问题问题解决方案模型加载失败检查模型文件路径是否正确确保文件未损坏无法打开摄像头检查摄像头连接确保没有其他程序占用摄像头CUDA out of memory减小 batch size关闭其他程序或使用 CPU 推理检测结果不准确调整置信度和 IOU 阈值或更换更合适的模型界面显示异常确保 PyQt5 正确安装尝试更新显卡驱动文件夹结构YOLO26-det-pyqt5/ # 项目根目录 │ ├── main.py # 主程序入口PyQt5 界面实现 ├── Yolov26Detector.py # YOLO26 检测器核心类 ├── README.md # 项目说明文档 │ ├── weights/ # 模型权重文件夹 │ ├── weights/ # 子文件夹存放 .pt 模型文件 │ │ └── best.pt # 默认模型文件 │ ├── class_names.txt # 类别名称列表 │ ├── args.yaml # 训练参数配置 │ ├── data.yaml # 数据集配置 │ ├── results.csv # 训练结果数据 │ ├── results.png # 训练结果图表 │ ├── confusion_matrix.png # 混淆矩阵 │ ├── BoxF1_curve.png # F1 分数曲线 │ ├── BoxP_curve.png # 精确率曲线 │ ├── BoxR_curve.png # 召回率曲线 │ └── ... # 其他训练和验证可视化结果 │ ├── test_img/ # 测试图片文件夹 │ ├── firc_1000.jpg # 测试图片示例 │ ├── firc_1001.jpg │ └── ... # 更多测试图片 │ └── 数据集地址.xlsx # 数据集信息文档文件说明文件/文件夹说明main.py应用程序主入口包含 PyQt5 GUI 界面、多线程检测逻辑、信号槽处理Yolov26Detector.pyYOLO26 检测核心类封装模型加载、推理、可视化等功能weights/存放模型权重文件和相关配置是检测功能的核心资源目录test_img/提供测试用的示例图片用于快速验证检测功能class_names.txt类别名称定义文件每行一个类别顺序需与模型训练时一致data.yamlYOLO26 数据集配置文件包含类别数、类别名称、数据集路径等技术栈Python 3.9编程语言PyQt5桌面 GUI 框架YOLO26Ultralytics目标检测模型OpenCV图像和视频处理NumPy数值计算PyTorch深度学习框架许可协议本项目仅供学习和研究使用。更新日志v1.0初始版本发布支持图片、视频、摄像头三种检测模式实现参数调节和结果导出功能提供实时 FPS 和统计信息显示

相关文章:

基于yolov26+pyqt5的石榴成熟度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面

基于 PyQt5 和 YOLO26 的目标检测桌面应用程序,支持图片、视频和摄像头实时检测。 功能特性 图片检测:支持图片检测视频检测:支持视频文件实时检测与播放摄像头检测:支持实时摄像头视频流检测模型切换:支持加载不同的 …...

客服机器人支持快捷键操作吗?Agent 系统后台可自定义热键,客服效率能提升多少?

在数字化客服时代,企业每天面对海量咨询,如何让客服团队从重复劳动中解放出来,同时实现秒级响应和精准转化,成为竞争关键。许多企业主和客服负责人都在问:客服机器人支持快捷键操作吗?Agent 系统后台可自定…...

记一次跨境电商客服系统的搭建与差评处理复盘

做跨境独立站第一年,被一个差评整破防了。美国客户买的露营灯,留言说亮度虚标,给了一星。我当时盯着后台看了半小时,不知道怎么回,怕英文写不利索把事情搞得更糟。后来问了一圈做跨境的朋友,慢慢摸出点门道…...

Python与爬虫

爬虫是一种Python编写的,按照既定的规则,抓取网站数据的脚本程序,其优点在于,语言简洁,工作效率高,适合重复性工作1.先导入模块,首先打开wiindows命令行,输入pip install requests下…...

【多模态大模型落地自动驾驶实战白皮书】:20年智驾专家首曝3大失败场景、5类传感器融合陷阱与实时推理优化黄金公式

第一章:多模态大模型在自动驾驶中的应用 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型正深刻重塑自动驾驶系统的感知、推理与决策范式。传统 pipeline 架构依赖独立模块分别处理摄像头、激光雷达、毫米波雷达及高精地图数据,而多模态大模…...

【紧急预警】HuggingFace最新v4.45更新已默认禁用legacy cross-attention kernel——你的多模态微调Pipeline可能已在静默崩溃!

第一章:多模态大模型中的注意力机制 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型的核心挑战在于如何对齐与融合来自图像、文本、音频等异构模态的语义表征,而注意力机制正是实现跨模态动态关联的关键引擎。它不再局限于单一模态内的局部…...

Windows 下部署与配置 Hermes Agent 完全指南:AI 智能体、OpenRouter、LLM、本地大模型、WSL2、自动化、自进化 AI、Ollama、Claude 3.5、GPT-4

本文内容深度融合相关以下技术相关词的汇,放在文章开头以便于您快速阅读以及学习: 平台:Windows、WSL2核心项目:Hermes AgentAI 能力:AI 智能体(AI Agent)、自进化 AI、自动化任务、代码解释器、…...

.json标记转换.txt格式小工具

当使用自建数据库对YOLO等模型进行训练时,有时候会碰到无法直接使用.json文件进行训练的问题,而labelme有时候标出来是.json格式。这里提供一个工具脚本,在训练前先运行一遍可以有效解决该问题。该脚本原本用于YOLO-v8-seg模型训练&#xff0…...

数组增删改查及双指针法

刷题日记:LeetCode 27 移除元素 —— 双指针法真的太香了!今天死磕了 LeetCode 第 27 题「移除元素」,从一开始的暴力暴力,到最后秒懂双指针法,真的有一种“打通任督二脉”的感觉!把这一题的学习心得写成一…...

第一范式是关系型数据库设计的最基本要求,核心规则是**关系模式的所有属性都是不可再分的原子数据项**

第一范式是关系型数据库设计的最基本要求,核心规则是关系模式的所有属性都是不可再分的原子数据项,即表中每一列的取值都是单一值,不存在组合值或多值情况。 1NF的典型问题 以教材中的FIRST关系表为例(供应商-零件供应关系&#x…...

函数依赖是关系数据库中属性之间的一种约束关系,表示当属性集合X的值确定时

函数依赖是关系数据库中属性之间的一种约束关系,表示当属性集合X的值确定时,属性集合Y的值也被唯一确定,记作X→Y,其中X称为决定因素。 函数依赖的类型: 完全函数依赖:若X→Y,且X的任何真子集都…...

Java面试通关宝典,内容涵盖Java所有热门技术!

金三银四快过去了,不少人找LZ咨询,问我现在的面试需要提前准备什么?为了造福更多的开发者,也为了让更多的小伙伴通过面试;LZ近期也一直想着怎么才能帮到大家。所以近期在各大渠道整合大厂相关面试题,并结合…...

Meta新模型Muse Spark上手体验

Meta发布了Muse Spark,这是他们自Llama 4几乎整整一年前以来的首个模型发布。它是托管的,不是开放权重,API目前"仅向选定用户开放私人预览",但你今天就可以在meta.ai上试用(需要Facebook或Instagram登录&…...

AIAgent联邦学习架构设计核心矛盾解析(通信开销×模型收敛×合规边界三重博弈)

第一章:AIAgent联邦学习架构设计核心矛盾解析(通信开销模型收敛合规边界三重博弈) 2026奇点智能技术大会(https://ml-summit.org) 在AI Agent驱动的联邦学习系统中,各参与方既是智能体又是数据孤岛守护者,其架构设计天…...

线上 CPU 暴涨 99%!MySQL只用了这一招,回表次数竟然减半?

周一早高峰,手机疯狂振动。 线上 CPU 报警 99.9%,慢查询日志塞满了磁盘。 小开发在一旁满头大汗:“Fox 哥,明明加了组合索引,回表次数怎么还是这么高?” 我端起咖啡,淡定一笑:“兄弟…...

Unsloth量化指南:手把手教你压缩模型,速度提升2倍

Unsloth量化指南:手把手教你压缩模型,速度提升2倍 1. Unsloth量化技术概述 1.1 什么是模型量化 模型量化是一种通过降低模型参数的数值精度来减小模型体积和加速推理的技术。想象一下,当你需要搬运一堆书籍时,把精装本换成平装…...

SystemVerilog 中浅拷贝与深拷贝的实战应用与陷阱解析

1. 从生活中的复印机说起:理解拷贝的基本概念 想象一下办公室里的复印机。当你把一张纸放进去复印,会得到一张看起来一模一样的新纸。这就是拷贝的基本概念——创建一个与原对象相同的新对象。在SystemVerilog中,我们处理类对象时也经常需要这…...

操作系统中的资源管理与调度算法

操作系统中的资源管理与调度算法 现代操作系统作为计算机系统的核心,负责协调硬件与软件资源的高效利用。资源管理与调度算法是操作系统的关键组成部分,直接影响系统性能、响应速度及用户体验。无论是多任务处理、内存分配,还是磁盘I/O调度&…...

ClaudeCode 中子 Agent 的权限机制

概述 如果子 Agent 尝试使用未在 allowed-tools 中声明的工具或 Skill,会经历两层拦截,最终被拒绝执行: 第一层拦截:工具集过滤(Tool Pool Filtering) 子 Agent 启动时,resolveAgentTools() 会根据 allowed-tools 白名单从 availableTools 中过滤出 resolvedTools。不…...

qy2格式怎么转成MP3?7种方法一次讲清楚(附详细步骤)

很多人在使用 爱奇艺 下载音频或缓存内容时,可能会遇到一种比较少见的格式——QY2。这种格式属于平台专用的加密音频文件,主要用于版权保护,在官方APP内可以正常播放,但一旦导出到其他设备,就会出现无法识别、无法播放…...

OntoKG:Schema-First 知识图谱构建新范式

📌 一句话总结: 本工作提出 OntoKG,一种以本体(ontology)为核心的知识图谱构建框架,通过 intrinsic-relational routing 实现 schema-first 的结构化建模与下游可复用性。 🔍 背景问题&#x…...

SITS2026正式发布:5个被92%企业忽略的AIAgent部署关键指标(附Gartner验证清单)

第一章:SITS2026正式发布:AIAgent最佳实践指南 2026奇点智能技术大会(https://ml-summit.org) SITS2026(Smart Intelligent Task System 2026)是面向生产级AI Agent系统设计与落地的权威实践框架,由ML Summit联合Open…...

图像描述生成不再依赖大模型:2026奇点大会首发轻量化多模态对齐引擎(参数量<1.2B,BLEU-4提升21.6%)

第一章:2026奇点智能技术大会:图像描述生成 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次设立“视觉语义协同”专项赛道,聚焦图像描述生成(Image Captioning)在多模态大模型驱动下的范式跃迁。与传统基…...

C语言分支与循环学习笔记

一、分支语句1. if 语句多分支:例题:判断奇偶数注意: 条件要用 比较,不要写成 (赋值)即使只有一条语句,也建议加 {},避免后面加语句时出错2. switch 语句适合同一个表达式与多个固…...

扩展异常对象的批量处理脚本

该PL/SQL脚本可自动识别扩展使用率≥95%的段对象(表、索引、分区等),并批量将其MAX_EXTENTS设置为UNLIMITED,解决“段无法扩展”的核心问题,避免手动逐个修改的低效与遗漏。 一、批量处理脚本 SET SERVEROUTPUT ON; DECLARE-- 定义变量:存储对象信息V_SEGMENT_NAME …...

Python 循环基础:for、while、break、continue

文章目录前言一、循环到底是干嘛的?先把逻辑搞明白二、for循环:Python里最常用的“批量工具”2.1 for循环基础语法2.2 最简单的for循环示例2.3 遍历字符串:for循环也能拆文字2.4 遍历字典:键、值、键值对全拿下2.5 for循环嵌套&am…...

大模型窗口越来越大,为什么 Agent 还是总会失控?

前端出身,跨进智能体这个坑已经有一段时间了。写这个系列,是想把自己摸索的过程留下来,不是教程,是记录。 很多刚开始接触 Agent 的人,都会有一个直觉: 现在模型的上下文窗口不是已经越来越大了吗&#x…...

应届生面试:3分钟搞定自我介绍

文章目录前言一、为什么应届生面试,自我介绍这么重要?1.1 面试官的真实目的:3秒筛选,3分钟定印象1.2 3分钟不是上限,是“黄金区间”1.3 2026年校招趋势:更看重“务实”,不看“空喊口号”二、90%…...

uniapp中uview组件库的NoticeBar滚动通知进阶配置与实战技巧

1. NoticeBar组件核心功能解析 滚动通知栏作为移动端高频使用的UI组件,在uniapp生态中通过uView的NoticeBar实现了开箱即用的解决方案。这个看似简单的组件实际上隐藏着不少值得深挖的特性。先说说它的基础能力:支持水平和垂直两种滚动模式,水…...

Springboot常见内存溢出与线程报错分析

Springboot内存溢出与线程报错分析 Spring Boot 应用在生产环境中常见的内存溢出(OOM)和线程相关报错,主要源于 JVM 内存模型、线程模型与应用代码/配置的交互。以下是系统性整理:一、常见 内存溢出(OutOfMemoryError&…...