摘要:本文面向水果分级、缺陷筛查与成熟度判定等场景,设计并实现一套基于深度学习的水果品质检测桌面系统:前端采用 PySide6/Qt,支持单张图片、视频文件与本地摄像头三类输入,检测过程中提供用时统计与处理进度条反馈,并可在界面内完成 Conf/IoU 阈值调节、目标选择与高亮定位。系统提供结果的结构化落库与可追溯管理:检测记录可写入 SQLite 本地数据库,支持 登录/注册(可跳过) 以区分会话空间,并支持按最近记录快速检索、CSV 导出与表格高亮定位。针对工程部署与实验对比的统一性,系统支持 模型选择/权重加载(.pt 热切换),切换后同步刷新类别信息与配色,并覆盖 YOLOv5–YOLOv12(共 8 种) 模型的训练、推理与评测流程,输出 mAP、F1、PR 曲线与训练曲线等对比结果。导出侧面向质检留档与复核,支持一键导出带框结果:单帧保存为 PNG、多帧序列保存为 AVI,并采用时间戳命名便于批量归档与追溯。文末提供完整工程与数据集链接

功能效果展示视频:热门实战|《基于深度学习的水果品质检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换

➷点击跳转至文末所有涉及的完整代码文件页☇


1. 系统功能与效果

(1)登录注册:系统提供登录、注册与一次性跳过三种入口,用户可在启动后快速进入主界面或建立个人会话空间;登录状态仅在本次会话内生效,用于区分历史记录、导出偏好与最近操作。进入系统后,操作动线清晰:先浏览功能概况,再进入图片检测等核心页面,随后完成模型选择与结果导出。为兼顾体验与安全,账户信息与检测记录采用本地数据库管理并进行口令校验,跳过入口不影响后续随时补登。
在这里插入图片描述

(2)功能概况:主界面以“左侧控制—中央显示—右侧详情—底部记录与进度”为核心布局,用户无需频繁切换窗口即可完成从输入到导出的全流程。左侧集中放置数据源与阈值调节,中央用于展示叠加检测框的可视结果,右侧呈现目标列表与属性信息,底部则聚合最近记录与处理进度提示。整体交互强调“少打断、可追溯”,适合在分拣台或质检工位长期使用。
在这里插入图片描述

(3)选择模型:系统支持在界面中选择本地权重文件实现模型热切换,切换后会同步刷新类别名称与可视化配色,避免同一目标在不同模型间出现“标签错配”的困扰。模型选择过程尽量减少操作成本,用户可在检测前或检测中按需更换,以便在速度优先与精度优先之间快速切换。常用配置与界面主题可本地保存,保证多次启动后的视觉一致性与使用习惯延续。
在这里插入图片描述

(4)图片检测:系统支持单张图片即时推理,在主显示区叠加检测框并展示类别名与置信度,结果列表与画面高亮联动,便于快速复核疑似缺陷或成熟度边界样本。用户可通过 Conf/IoU 等参数进行实时调节,观察阈值变化对误检与漏检的影响,并可按目标类别进行筛选与重点标注。检测记录会在底部区域持续累计,便于回看最近样本并快速定位对应结果。
在这里插入图片描述

(5)文件保存:系统提供一键导出机制,支持结构化结果导出为 CSV,并支持将带框可视结果保存为图片,便于质检留档与复查对比。所有导出文件统一采用时间戳命名并按类别清晰归档,降低批量管理与追溯成本。用户可从记录区按文件名快速定位历史结果,实现“检测—导出—复核”的闭环体验。
在这里插入图片描述


2. 绪论

2.1 研究背景及意义

随着果蔬分级、自动化分拣与智慧农业的落地加速,“水果品质检测”正在从实验室走向生产线与田间端侧:一方面,外观缺陷、成熟度、果柄/果梗识别等结果直接影响采摘策略、分拣定价与仓储损耗;另一方面,真实场景中普遍存在遮挡、密集堆叠、反光高光、光照突变与尺度差异等因素,使得传统依赖手工特征与固定阈值的视觉方案难以稳定泛化,尤其在跨品种、跨产线与跨时段部署时更容易出现误检与漏检。(PLOS)

深度学习目标检测以端到端特征学习替代人工设计,已成为水果品质检测中“既要精度、又要速度”的主流技术路径:从两阶段检测器以候选框提升精度,到单阶段检测器通过密集预测提升实时性,算法演进的核心始终围绕“复杂背景下的鲁棒识别”和“在线推理的吞吐延迟”两条主线展开。(arXiv) 在成熟度与缺陷并存的细粒度任务里,类别长尾与类间相似会进一步放大训练不稳定与阈值敏感问题,因此需要在模型结构、损失函数与训练策略层面进行针对性设计与可复现实验对比。

从工程价值看,一个可用的水果品质检测系统不应止步于“离线跑通模型”,而应具备面向操作员的交互闭环:多源输入(图片/视频/摄像头)、可视化框选与高亮、阈值可调与实时刷新、结果可追溯导出与本地化存储等能力,才能让模型真正进入分拣台与采摘现场,形成“检测—复核—反馈”的持续迭代机制。(Ultralytics Docs)

2.2 国内外研究现状

面向水果品质检测的具体场景(温室与自然田间的成熟度识别、产线近距离的缺陷点检测、堆叠条件下的计数与分级),研究普遍需要同时应对目标密集遮挡、反光与阴影共存、果实尺度跨度大、类间相似与长尾分布显著等难点,而这些因素往往会导致精度下降与实时性波动。(PLOS) 以番茄成熟度与果柄/果梗协同识别为例,样本不均衡与尺度差异会显著抬高半熟类别的漏检风险,并诱发模型在复杂背景下的误检。

从检测范式看,两阶段检测器通过候选区域机制在小目标与遮挡场景中具备较强的精度潜力,但其推理链路较长、端侧部署成本更高。(arXiv) 单阶段检测器以“密集预测+后处理”获得更高吞吐,SSD 将多尺度默认框引入统一检测框架,成为轻量化实时检测的早期代表之一。(arXiv) RetinaNet 则针对正负样本极度不均衡提出 Focal Loss,推动单阶段检测在精度上进一步逼近两阶段方法。(CVF开放获取)

近年来,YOLO 系列围绕结构效率、训练策略与后处理链路持续迭代,逐步成为水果检测/分级任务的主力方案:YOLOv9 通过可编程梯度信息与轻量结构设计,强调在不同规模模型上提升梯度质量与参数利用率。(arXiv) YOLOv10 进一步提出面向端到端的设计以减少对 NMS 的依赖,并在速度与参数量上给出相对 RT-DETR 的量化对比。(arXiv) 在工程生态层面,Ultralytics 系列将训练、验证与导出链路产品化,YOLO11 给出了跨导出格式的基准指标,便于在“精度—延迟—参数量”之间进行可复现的取舍。(Ultralytics Docs) 更进一步的 YOLOv12 以注意力为中心的结构尝试在实时延迟下提升精度,并报告了在 T4 上的毫秒级延迟与 mAP 指标,为“高精度但仍可实时”的路线提供了新的实现范式。(arXiv)

方法 范式/家族 数据集 关键改进技术 优势与局限 关键性能指标(示例) 适用场景/对应任务难点 参考
Faster R-CNN 两阶段 / Anchor-based COCO RPN 候选区域 + RoI 分类回归 小目标与遮挡更稳,但推理链路较长、端侧成本更高 以候选区域机制实现高精度(文中给出实时目标检测方向) 小目标、遮挡重、但对实时性要求相对宽松的质检复核 (arXiv)
RT-DETR-R50 Transformer / DETR 系 COCO 高效混合编码器 + 不确定性最小查询选择 端到端免 NMS、精度高,但结构相对重、部署复杂度更高 53.1% AP;108 FPS(T4) 追求免后处理与稳定端到端推理的在线检测 (CVF开放获取)
YOLOv10-S 单阶段 / YOLO COCO NMS-free 训练分配 + 效率驱动结构设计 延迟更低、利于端到端部署,但仍需结合任务调参 相对 RT-DETR-R18:在相近 AP 下快 1.8×,参数与 FLOPs 更小 低延迟在线分拣、对吞吐敏感的产线检测 (arXiv)
YOLO11n(Ultralytics 基准) 单阶段 / YOLO COCO 改进 backbone/neck 与训练流程(工程化基准) 生态完善、导出便利,但论文级细节公开有限 mAP(50–95)=39.5;T4 TensorRT10=1.5ms;Params=2.6M 端侧部署与工程落地优先的实时检测 (Ultralytics Docs)
YOLOv12-N 单阶段 / 注意力 YOLO COCO 注意力为中心架构,强调速度可比 CNN-YOLO 精度提升明显,但注意力模块可能带来训练/内存压力 40.6% mAP;1.64ms(T4) 复杂背景下更强表征需求、但仍需实时的任务 (arXiv)
YOLOcF(改进 YOLOv5) 单阶段 / YOLO(水果检测) CFruit 面向水果场景的轻量化改进与对比评测 速度极高、利于移动端,但仍受遮挡与光照影响 相对多版本 YOLO:mAP 提升(0.7%–1.3% 等);速度 323 fps 多品类水果检测与计数、移动端快速部署 (PLOS)
YOLOX-SE-GIoU(番茄成熟度+果梗) 单阶段 / YOLOX 自建番茄数据 加入 SE 通道注意力 + 将回归损失替换为 GIoU 对长尾与尺度差异更友好,但数据集迁移仍需再训练 mAP=92.17%;相对 YOLOv4/5/7/YOLOX 提升 1.17–22.21% 类别不均衡、果梗细小、遮挡与尺度变化显著

除 YOLO 路线外,Anchor-free 与 Transformer 化也在水果检测中持续渗透:FCOS 以逐像素预测替代预设锚框,降低了对锚框超参的敏感性,适合目标尺度差异大的场景。(CVF开放获取) CenterNet 将目标建模为中心点,在速度-精度权衡上给出了明确的 FPS 与 AP 组合,为轻量端实时检测提供了另一种端到端思路。(arXiv) DETR 将检测视作集合预测问题,通过二分图匹配式损失简化后处理链路,但训练成本与收敛速度曾长期制约其实时应用。(arXiv) RT-DETR 则通过高效编码器与查询选择机制将 DETR 系推进到实时区间,并在 COCO 上报告了兼顾 AP 与 FPS 的结果。(CVF开放获取)

在部署与系统层面,研究越来越强调“训练—导出—加速—可视化—追溯”的闭环:一方面,需要在导出格式与推理框架上形成可复现的基准;另一方面,也需要将阈值、类别信息与结果记录纳入产品级管理,以减少模型更新时的运维摩擦。(Ultralytics Docs) 因此,ONNX/TensorRT 等加速链路、量化/剪枝/蒸馏等轻量化策略,往往与多源输入、批量导出、在线评估与数据反馈共同构成“可持续迭代”的工程趋势。(Ultralytics Docs)

2.3 要解决的问题及其方案

围绕“基于深度学习的水果品质检测系统”,本文需要解决的问题主要体现在算法性能与工程闭环的耦合关系上:一方面,品质检测往往包含成熟度、缺陷点、果柄/果梗等细粒度目标,既要高精度也要低延迟;另一方面,真实场景的遮挡、反光与长尾分布会放大误检漏检,导致系统在跨环境使用时体验不稳定。为此,本文将检测算法评测与桌面端交互集成作为同等重要的目标,通过统一的数据流与结果管理,把“模型能力”转化为“可用能力”。

要解决的问题可概括为:
(1)检测与分级的准确性与实时性矛盾,尤其在密集遮挡与小目标(缺陷点、果梗)场景下更为突出。
(2)模型对光照变化、反光高光、背景复杂与品类差异的环境适应性与泛化能力不足。
(3)桌面端交互的直观性与功能完整性需求高,要求多源输入、阈值联动、结果可视化与可追溯导出同时成立。
(4)数据处理效率与存储安全性要求高,需兼顾批量检测、记录检索与本地化权限管理。

对应的解决方案为:
(1)以 YOLOv12 为核心模型路线,在 YOLOv5–YOLOv12 范围内开展统一训练与推理评测,通过 mAP、F1、PR 等指标对“精度—速度”边界进行量化对比,并据此确定部署侧的默认模型与备选模型。(arXiv)
(2)针对遮挡、尺度差异与长尾分布,引入与任务难点匹配的数据增强与训练策略,并在必要时采用注意力模块与回归损失优化等思路提升对细粒度类别的区分能力。
(3)前端采用 PySide6/Qt 构建桌面交互,将图片、视频与摄像头输入纳入统一流程,并实现模型权重热切换、阈值滑块联动与结果可视化,保证算法输出可被操作员快速理解与复核。(Ultralytics Docs)
(4)优化数据处理与存储结构,采用时间戳命名与本地数据库管理检测记录与账户信息,提升批量检测效率与数据安全性,形成可追溯的闭环工作流。(Ultralytics Docs)

2.4 博文贡献与组织结构

本文的主要贡献体现在“算法对比的可复现性”与“系统闭环的可用性”两条线上:
(1)综合文献综述:围绕水果品质检测的典型难点,系统梳理 YOLO 与 DETR 系方法在精度、速度与部署复杂度上的权衡,并给出可追溯的对比表格作为选型依据。(CVF开放获取)
(2)深度学习模型的选择与优化:以 YOLOv12 为主线,结合 YOLOv5–YOLOv12 的横向对比,说明不同版本在实时推理与复杂背景鲁棒性上的差异与适用边界。(arXiv)
(3)美观友好的桌面端设计(PySide6/Qt):将多源输入、阈值联动、结果记录与导出追溯整合为一致的交互动线,使模型迭代可在前端快速验证与复核。(Ultralytics Docs)
(4)算法效果对比分析:以 mAP、F1、PR 曲线与训练曲线为核心,给出面向品质检测任务的解释性分析框架,讨论误检漏检成因与改进方向。
(5)完整的数据集和代码资源:强调数据、训练与评测流程的可下载与可复现,为后续迁移到不同水果品类与不同产线提供基础。(PLOS)

在组织结构上,后续章节将依次介绍系统功能与交互体验、数据集处理与标注规范、YOLO 模型原理与训练要点、YOLOv5–YOLOv12 的实验对比与分析,以及 Qt 桌面端的系统分层设计与关键流程图,最后总结本文工作并展望模型轻量化、端侧部署与数据闭环的进一步方向。(Ultralytics Docs)


3. 数据集处理

本系统使用的 FruitQuality 数据集共包含 2583 张图像,其中 1811 张用于训练、514 张用于验证、258 张用于测试;划分在全流程中保持固定,用于保证 YOLOv5–YOLOv12 多模型对比时的数据一致性与指标可比性。从训练样例可视化可以看到,图像覆盖室内台面、户外地面、手持近景与自然背景等多种采集条件,既有单果近距离的大目标,也存在同画面多果密集、部分遮挡与尺度差异显著的情况,同时还伴随反光高光、阴影与背景纹理干扰,这些因素共同构成了水果品质检测在真实落地中的主要难点。
在这里插入图片描述

类别体系以“品类 × 品质(Good/Bad)”组织,包含苹果、香蕉、番石榴、酸橙、橙子、石榴等品类的好/坏共 12 个类别,并额外引入“好苹果-坏苹果”的复合类别以刻画同画面混合样本,总计 13 类;界面侧通过 Chinese_name 完成英文标签到中文显示的映射,从而让检测框叠加、结果表格与导出报表在质检语境下更直观可读。标注采用目标检测框形式(每个目标对应类别与边界框),在数据进入训练前会进行基础一致性检查与清洗,如空标注与异常极端框的剔除、重复标注的合并与可视化抽检,以减少噪声对后续 PR、F1 与混淆矩阵分析的干扰。标签及其对应中文名如下:

Chinese_name = { 'Apple_Bad': '苹果_坏','Apple_Good': '苹果_好','Banana_Bad': '香蕉_坏','Banana_Good': '香蕉_好',
'Good_Apple-Bad_Apple': '好苹果-坏苹果', 'Guava_Bad': '番石榴_坏', 'Guava_Good': '番石榴_好','Lime_Bad': '酸橙_坏',
'Lime_Good': '酸橙_好', 'Orange_Bad': '橙子_坏','Orange_Good': '橙子_好','Pomegranate_Bad': '石榴_坏', 
'Pomegranate_Good': '石榴_好'}

在这里插入图片描述
在预处理与增强策略上,推理侧统一采用 640×640 的尺度规范并在输出阶段进行坐标还原,以便在桌面端对不同输入源(图片/视频/摄像头)的结果进行一致叠加与复核;训练侧默认沿用 YOLO 系检测常用的数据增强组合,以颜色扰动缓解光照偏移、以随机尺度与几何扰动覆盖视角变化,并通过拼接类增强提升密集目标与遮挡场景的鲁棒性。结合标签分布相关图可以观察到目标中心更倾向于分布在画面中部,同时框的宽高尺度跨度较大、长宽比形态多样,这意味着模型需要同时兼顾近景大目标的完整轮廓与小目标缺陷/斑点的细粒度表征;从归一化混淆矩阵也能看出主要误差往往发生在同品类的 Good/Bad 之间,反映了品质差异在纹理与色泽层面的细微性,因此在后续实验中对 Conf/IoU 阈值与误检漏检样例的联动分析会尤为关键。


4. 模型原理与设计

本文默认以 YOLOv12 作为主线模型来组织检测原理:整体流程以单阶段目标检测为核心,将输入图像经过统一的尺度归一与张量化后送入网络,网络在多尺度特征层上同时预测类别概率与边界框位置,从而在一次前向传播中完成“定位+分类”。对于水果品质检测这类细粒度任务,模型除了要区分不同品类(如苹果、香蕉等),还要区分同品类的好坏等级,这使得“类间相似高、边界纹理细、缺陷面积小”的样本更依赖强表征与多尺度融合:低层特征负责保留边缘与斑点等局部细节,高层特征负责稳定语义与抗光照扰动,最终通过特征融合把两者在检测头处对齐。

在网络结构上,YOLOv12 可以抽象为“骨干(Backbone)—颈部(Neck)—检测头(Head)”三段式:骨干侧负责从输入中提取层级特征,常见做法是在卷积下采样与残差/聚合模块之间交替堆叠,以兼顾感受野与梯度传播;YOLOv12 的关键变化在于把注意力机制更深地纳入特征提取与融合阶段,使网络在复杂背景下能更稳定地聚焦果实主体与缺陷区域。一个直观的实现思路是用“区域注意力”降低标准自注意力的二次复杂度:设特征图为 ( X ∈ R H × W × C X\in\mathbb{R}^{H\times W\times C} XRH×W×C),标准注意力可写为
A t t ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Att}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, Att(Q,K,V)=softmax!(d QK)V,
其中 (Q,K,V) 由 (X) 线性映射得到、(d) 为通道维度;若将特征图沿水平或垂直方向均分为 (L) 个区域,在每个区域内独立计算注意力,则可把计算量从 (O((HW)^2)) 近似降为 (O((HW)^2/L)),在维持大感受野建模能力的同时更贴近实时检测的延迟预算。颈部侧通常采用自顶向下与自底向上的多尺度融合(如上采样与拼接/聚合),把不同分辨率的特征对齐到检测头;检测头侧多采用解耦设计,将分类分支与回归分支分开优化,减少“同一特征既要分好坏又要回归位置”带来的梯度干扰,从而更适合处理水果 Good/Bad 这类相似类别的判别。网络整体架构图如下图所示:

在这里插入图片描述

损失函数方面,训练目标可写为加权多任务优化:
L = λ box L ∗ box + λ ∗ cls L ∗ cls + λ ∗ aux L ∗ aux , \mathcal{L}=\lambda_{\text{box}}\mathcal{L}*{\text{box}}+\lambda*{\text{cls}}\mathcal{L}*{\text{cls}}+\lambda*{\text{aux}}\mathcal{L}*{\text{aux}}, L=λboxLbox+λclsLcls+λauxLaux,
其中 ( L ∗ box \mathcal{L}*{\text{box}} Lbox) 用于约束边界框回归、( L ∗ cls \mathcal{L}*{\text{cls}} Lcls) 用于类别学习,( L ∗ aux \mathcal{L}*{\text{aux}} Laux) 可表示质量分支或分布式回归等辅助项(是否启用取决于具体实现)。边界框回归在工程中常用 IoU 系列损失以提升对尺度变化与遮挡的鲁棒性,例如 CIoU 可写为
L CIoU = 1 − I o U + ρ 2 ( b , b ∗ ) c 2 + α v , \mathcal{L}_{\text{CIoU}} = 1-\mathrm{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2}+\alpha v, LCIoU=1IoU+c2ρ2(b,b)+αv,
其中 ( b , b ∗ \mathbf{b},\mathbf{b}^* b,b) 分别为预测框与真值框的中心点,( ρ ( ⋅ ) \rho(\cdot) ρ()) 为中心距离,© 为最小外接框对角线长度,(v) 描述宽高比一致性、( α \alpha α) 为权重项;这一形式对“果实边界完整但局部有缺陷”的样本更友好,因为它不只看重叠面积,还显式约束几何对齐。分类损失通常采用交叉熵或二元交叉熵(多标签实现时更常见),在 Good/Bad 样本不均衡或难例较多时可引入类似 Focal 的重加权思想,提升对“轻微瑕疵”“局部色斑”等难判样本的学习强度,避免训练被大量易样本主导而出现决策边界偏移。

训练与正则化策略上,本文更关注“与任务难点一一对应”的可解释取舍:批归一化与指数滑动平均有助于稳定收敛,适度的数据增强(颜色扰动、随机缩放与裁剪、拼接类增强等)用于覆盖光照突变、反光高光与遮挡密集的分布漂移;学习率通常采用 warmup 配合余弦退火或分段衰减,以减少早期梯度震荡对细粒度类别的破坏。推理侧则通过置信度阈值 ( C o n f \mathrm{Conf} Conf) 与重叠阈值 ( I o U \mathrm{IoU} IoU) 控制“召回与精度”的平衡:提高 ( C o n f \mathrm{Conf} Conf) 往往能压制背景误检,但也可能漏掉缺陷较轻的 Bad 样本;提高 ( I o U \mathrm{IoU} IoU) 阈值会让后处理更“严格”,对密集堆叠场景的重复框抑制更敏感,因此桌面端提供的滑块调参并不是单纯的交互装饰,而是把检测理论中的阈值决策显式暴露给质检流程,便于在不同品类、不同采集环境下快速完成模型行为校准与误差复核。


5. 实验结果与分析

本章实验目标是评估不同 YOLO 版本在水果品质检测任务上的精度与效率边界,并为桌面端在线推理提供可落地的默认模型与阈值建议。实验基于前述 2583 张数据集划分(训练 1811/验证 514/测试 258),对比模型覆盖 n 系列(yolov5nu、yolov6n、yolov7-tiny、yolov8n、yolov9t、yolov10n、yolo11n、yolo12n)与 s 系列(yolov5su、yolov6s、yolov7、yolov8s、yolov9s、yolov10s、yolo11s、yolo12s)。评测指标采用 Precision、Recall、F1、mAP@0.5(记为 mAP50)与 mAP@0.5:0.95(记为 mAP50-95),并统计端到端耗时由预处理、推理与后处理三部分组成;测试硬件为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB),便于将“指标”直接映射到桌面端实时体验。

在这里插入图片描述

综合结果可概括为“精度差异小、效率差异大”,其中 n 系列整体更适合作为桌面端默认部署:从双条形图对比(F1 与 mAP50)可见,各模型 mAP50 基本稳定在 0.889–0.897 区间、F1 位于 0.858–0.885 区间,说明该数据集在目标可见性较好时具备较高可分性,但在“好/坏”细粒度边界上仍存在一定误差上限。就 n 系列而言,yolo12n 给出最高 F1=0.8849,同时保持 mAP50=0.8960;若更看重吞吐与交互流畅度,yolov8n 与 yolov6n 的总耗时约 10 ms 级(含预处理与后处理),更贴近“视频/摄像头 30FPS 不卡顿”的工程目标。与之相对,yolov9t 虽然 mAP50=0.8971 接近最优,但推理时间明显偏长,适合做精度对照或离线复核而非默认在线模型。

从收敛与阈值选择看,训练曲线显示各项损失在前期快速下降并进入平台期,mAP50 与 mAP50-95 在较早 epoch 即达到稳定水平,后续提升趋缓,说明该任务更需要“稳健泛化与误差校准”,而不是一味延长训练轮次。PR 曲线与 F1-Confidence 曲线进一步给出了可操作的部署结论:

在这里插入图片描述

总体 PR 曲线在高召回区域末端会出现较明显的精度下滑,反映当召回逼近 1 时误检更易累积;

在这里插入图片描述
F1-Confidence 曲线在置信度约 0.492 处达到全类最优(F1≈0.88),这与桌面端默认 Conf=0.50 的设置非常贴合,意味着默认阈值已接近“精度—召回”的经验最优点,后续主要依赖用户在不同光照/反光条件下做小幅微调。

需要特别关注的是,单类 PR 结果中 “Good_Apple-Bad_Apple” 的 AP 近似为 0,结合任务语义更可能是长尾样本极少、标注定义不稳定或验证集中缺失导致的指标塌陷;这类问题在系统侧往往表现为“某一复合类别几乎不出框”,建议在数据侧补足样本或将其拆解为更一致的原子类别,并在界面侧通过 CSV 高亮与样例回放快速定位异常类别。

在这里插入图片描述

混淆矩阵(归一化)从另一角度解释了误差来源:大多数类别对角线值接近 0.92–0.99,说明同一品类的定位整体可靠,但误差主要集中在同品类的 Good/Bad 之间,如苹果、番石榴、酸橙与橙子存在一定比例的互相误判,这与品质差异通常体现为局部色斑、轻微碰伤或纹理变化的事实一致。对于这些“细粒度差异+反光干扰”的典型难点,后续改进更建议从两条线并行推进:一是数据层强化光照与材质变化的增强覆盖,并补齐长尾类别;二是模型层针对细粒度类别引入更强的特征聚焦(例如更偏向注意力的骨干/颈部配置)与更稳健的回归质量建模,从而把“定位正确但分错好坏”的误差进一步压低。

模型 Params (M) FLOPs (G) 总耗时 (ms) F1 mAP50 mAP50-95
YOLOv5su 9.1 24.0 12.24 0.8823 0.8954 0.6340
YOLOv6s 17.2 44.2 12.26 0.8745 0.8931 0.6276
YOLOv7 36.9 104.7 29.52 0.8833 0.8863 0.5809
YOLOv8s 11.2 28.6 11.39 0.8819 0.8971 0.6343
YOLOv9s 7.2 26.7 22.17 0.8843 0.8963 0.6397
YOLOv10s 7.2 21.6 14.19 0.8694 0.8957 0.6349
YOLOv11s 9.4 21.5 13.47 0.8824 0.8956 0.6315
YOLOv12s 9.3 21.4 16.74 0.8830 0.8970 0.6392
YOLOv5nu 2.6 7.7 10.94 0.8733 0.8957 0.6301
YOLOv6n 4.3 11.1 10.34 0.8740 0.8939 0.6304
YOLOv7-tiny 6.2 13.8 21.08 0.8768 0.8970 0.5932
YOLOv8n 3.2 8.7 10.17 0.8679 0.8948 0.6284
YOLOv9t 2.0 7.7 19.67 0.8785 0.8971 0.6354
YOLOv10n 2.3 6.7 13.95 0.8583 0.8890 0.6296
YOLOv11n 2.6 6.5 12.97 0.8775 0.8950 0.6288
YOLOv12n 2.6 6.5 15.75 0.8849 0.8960 0.6311

综合以上结果,如果以“桌面端默认在线检测”为目标,博主更倾向于给出两档推荐:其一是精度优先的 yolo12n(F1 最优且 mAP50-95 稳定),适合作为默认权重并配合 Conf≈0.50 的经验阈值;其二是体验优先的 yolov8n / yolov6n(10ms 级总耗时),更适合视频流与摄像头长时间运行。在“离线复核或精度对照”场景下,可选择 yolo12s 或 yolov9s 获得更高的 mAP50-95 上界,但需要接受更高的推理延迟;而对 yolov10n/s 这类后处理耗时极低的模型,更建议在本任务中把它视作“工程效率特性明显、但需要更精细阈值与数据校准”的备选项,通过界面端的 PR/F1 曲线联动与混淆矩阵回放,逐步把精度缺口用数据与策略补回来。


6. 系统设计与实现

6.1 系统设计思路

本系统面向“水果品质检测”的实际工作流,采用分层架构组织实现逻辑,使桌面端交互、推理计算与数据管理在职责上解耦、在数据流上闭环:表现与交互层由 PySide6/Qt 客户端承担,负责多源输入选择、Conf/IoU 参数控制、检测画面叠加与目标详情展示,并将用户操作转化为稳定的事件信号;业务与会话管理层负责会话状态、输入源互斥、参数同步、记录编排与导出策略,确保用户在切换图片/视频/摄像头或更换模型权重时,系统状态能够一致更新且不会出现“旧参数驱动新任务”的错位;推理与任务调度层将媒体接入、帧分发、预处理、YOLO 推理与后处理(过滤、NMS、坐标还原)串联为可复用的任务流水线;数据持久化层则以本地 SQLite 管理账户、配置与检测记录,并以统一的导出接口生成 CSV/PNG/AVI 等可追溯文件,从而形成“可用、可查、可复核”的闭环系统。

跨层协同的核心在于事件驱动的帧流与参数一致性:当输入源为单图时,系统以一次性任务触发推理并回填结果;当输入源为视频或摄像头时,系统以帧为粒度在任务队列中异步调度,业务层维护帧序号、进度条与耗时统计,推理层仅关注吞吐与稳定输出,前端层则以节流方式刷新主显示区与底部记录表格,避免 UI 阻塞。为保证实时性,推理环节在进入模型前统一执行 640×640 的预处理与张量化,使不同输入源在模型侧具备同构接口;为保证一致性,Conf/IoU 的调整以业务层的参数容器为单一可信来源,并在每次后处理阶段读取,从而保证“滑块变化立即生效”且不会破坏帧流的顺序性。

在可扩展性方面,系统将模型权重管理视为一等公民:用户选择本地 .pt 权重后,业务层触发模型实例切换并同步刷新类别名与配色,前端据此更新图例与高亮规则,数据层将本次会话的默认模型与导出偏好落库以便下次启动恢复。与此同时,记录与导出被设计为与推理解耦的编排模块:推理输出的结构化结果统一进入记录缓存与数据库写入队列,导出阶段再按时间戳命名规则生成 CSV 与带框 PNG/AVI,从而在保证追溯性的同时减少对实时推理链路的干扰;当出现输入源异常、帧读取中断或模型切换失败时,业务层以统一的异常通道回退 UI 状态并保留最近一次稳定结果,提升系统鲁棒性与可维护性。

在这里插入图片描述

图6-1 系统流程图
图注:系统自初始化加载配置与模型列表开始,完成多源输入接入、预处理、YOLO 推理与后处理,并在前端形成“阈值调参—可视化—记录导出”的闭环;视频/摄像头以事件驱动帧流循环处理并更新进度条。

在这里插入图片描述

图6-2 系统设计框图
图注:框图按“表现与交互层—业务与会话管理层—推理与任务调度层—数据持久化层”分层组织模块边界,数据流自上而下贯通推理链路,控制流与统计信息自下而上回灌 UI,实现可视化与可追溯导出的闭环。

6.2 登录与账户管理 — 流程图

在这里插入图片描述

图6-3 登录与账户管理流程图
图注:流程覆盖启动展示登录界面、注册落库、口令校验与会话建立,并在成功登录后加载个性化配置与最近记录;同时保留注销与切换账号入口以支持多用户共用设备的质检场景。

登录与账户管理流程在系统闭环中承担“会话边界”与“个性化恢复”的双重作用:应用启动后首先呈现登录界面,用户可选择注册新账号或直接输入账号口令进行校验,注册信息与口令校验结果均写入本地数据库以实现最小依赖的离线可用;一旦认证通过,业务层将载入用户的主题风格、默认模型选择与最近检测记录,使主界面在进入多源检测前即处于可用且一致的状态。该流程与主检测链路通过会话对象衔接,保证导出偏好、统计口径与历史记录在同一用户空间内可追溯,同时保留注销与切换账号入口以适配多人共用质检设备的现场需求。


7. 项目资源链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

在这里插入图片描述
项目完整文件请见项目介绍及功能演示视频处给出:

完整项目及文档: https://newtopmat.feishu.cn/wiki/FgmkwgkfMi6VAhkeVVGcguxon7b

功能效果展示视频:热门实战|《基于深度学习的水果品质检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程
数据集标注教程(如需自行标注数据):数据标注合集


参考文献(GB/T 7714)

1 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. arXiv:1506.01497, 2015. (arXiv)
2 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. arXiv:1512.02325, 2016. (arXiv)
3 Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//Proceedings of ICCV. 2017. (CVF开放获取)
4 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[EB/OL]. arXiv:2005.12872, 2020. (arXiv)
5 Tian Z, Shen C, Chen H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//Proceedings of ICCV. 2019. (CVF开放获取)
6 Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. arXiv:1904.07850, 2019. (arXiv)
7 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[C]//Proceedings of CVPR. 2024: 16965-16974. (CVF开放获取)
8 Wang C Y, Yeh I H, Liao H Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[EB/OL]. arXiv:2402.13616, 2024. (arXiv)
9 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024. (arXiv)
10 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
11 Ultralytics. Ultralytics YOLO11 文档[EB/OL]. 2024. (Ultralytics Docs)
12 Ultralytics. Ultralytics YOLOv5 文档[EB/OL]. 2025. (Ultralytics Docs)
13 Ultralytics. ultralytics/yolov5 Releases(软件发布记录)[EB/OL]. 2025. (GitHub)
14 Ultralytics. ultralytics/assets Releases(YOLO11 模型发布记录)[EB/OL]. 2024. (GitHub)
15 Honggang H, Lawal O M, Tan Y, Cheng K. An Anchor-Based YOLO Fruit Detector Developed on YOLOv5[J]. PLOS ONE, 2025, 20(9): e0331012. (PLOS)
[16] Li Y, Li J, Luo L, Wang L, Zhi Q. Tomato Ripeness and Stem Recognition Based on Improved YOLOX[J]. Scientific Reports, 2025, 15:1924.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐