摘要

本文面向分选线与仓储质检场景,构建了一套基于 Flask + Flask-SocketIO/HTML/CSS/JS水果品质实时检测平台。系统集成 YOLOv5–YOLOv12(共8种) 检测算法,支持图片/视频/浏览器摄像头输入,提供左右等宽双画面对比视频同步双帧进度/暂停/继续/停止控制;前端可在线调节 Conf/IoU、类别筛选并查看PR/F1 曲线与训练日志。平台包含登录/注册(可跳过)与会话管理,采用口令哈希与最小权限策略;支持模型选择/权重上传与热切换,自动刷新类别与配色映射。检测结果可CSV 导出带框结果一键下载(图像/视频)SQLite 入库并可视回溯;内置批量评测与对比看板,统一展示 mAP、F1、PR 曲线、训练曲线等指标。后端提供任务队列与异步推理断点续传日志/监控接口,保证在边缘端的小型 GPU/CPU 上亦具备可用帧率。面向业务的“样本溯源—再训练—上线”闭环已贯通,适配多品类水果的外观缺陷与成熟度检测。文末提供完整工程与数据集下载链接

讲解视频地址https://www.bilibili.com/video/BV1YRDfB7EBk/

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


1. 网页功能与效果

(1)登录注册:提供注册、登录与一次性跳过三种入口,会话仅在当前浏览器生效并超时自动失效;口令采用哈希与最小权限策略,保障基本安全;游客模式便于现场快速验收,但部分导出与历史记录仅对已登录用户开放。
在这里插入图片描述

(2)功能概况:主导航遵循“概览 → 图片检测 / 视频检测 / 摄像头检测 → 模型选择 → 导出视图”的动线;支持Conf/IoU调节、类别筛选、结果标注下载与CSV导出;检测与评测看板合一,统一呈现mAP、F1、PR与训练曲线,便于决策与复核。
在这里插入图片描述

(3)视频检测:采用同步双帧渲染,左原始、右结果,16:9自适应;提供进度条、暂停、继续与停止控制,并在后台缓冲;处理完成可一键导出带框MP4与对应CSV,支持时间轴定位与片段复查。
在这里插入图片描述

(4)更换模型:上传权重即可切换当前模型,类别与配色映射即时刷新;页面标题与品牌元素可编辑并本地保存以支持多项目复用;路径规范跨平台兼容,数据库自动迁移在版本更新时保持记录可用。
在这里插入图片描述

(5)概览界面:汇总关键指标、近期任务与告警提示,提供按时间/文件名/类别的快速筛选与搜索;最近记录支持高亮与跳转到对应导出视图,便于溯源与复核;仪表组件与表格列均可按需定制与持久化保存。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

在分选线与仓储质检的真实工况中,流水线速度高、品类多且形态差异大,系统既要识别成熟度、瑕疵与异物,又需在边缘端设备上以低延迟完成检测并给出可解释证据,这使得以 YOLO 为代表的实时单阶段检测器成为产业落地的主流技术路径。1 (IEDA)在全天候与复杂光照条件下,果面划伤、黑点、裂纹等缺陷呈现出跨时段形态漂移,要求模型具备稳定的跨域泛化与可回溯的可视化能力以支撑抽检复核与质量审计。2 (SCAU Journal)在实际分级线环境,数据的长尾分布与高速输送带的运动模糊叠加,进一步提高了系统对“高 F1、稳帧率、低假阳/假阴”的综合性能要求。3 (X-MOL)基于浏览器的可交互前端(Flask+SocketIO)可将检测、统计与溯源统一到 Web 闭环中,为一线操作与多角色协作降低门槛并提升可追溯性,这正是本文平台构建的工程初衷与实践意义。1 (IEDA)

2.2 国内外研究现状

围绕“温室与自然田间/分选线场景的水果品质与成熟度检测”,现有研究普遍指出:类间相似度高(相邻成熟阶段色泽接近)、目标尺度差异大(远景小果与近景大果共存)、密集遮挡、昼夜与工位光照剧变及数据长尾,是影响精度与实时性的核心挑战。4 (ScienceDirect)针对成熟度分级与缺陷识别,改进型 YOLOv5/YOLOv7 在引入轻量注意力、结构重参数化与优化损失后,在番茄/柑橘/猕猴桃等任务上取得了高 mAP 与毫秒级延迟的综合表现,证实了单阶段实时检测在农业视觉中的鲁棒性潜力。[1–3,5] (IEDA)

从算法范式看,主流方法在 Anchor-based 与 Anchor-free、单阶段与两阶段、解耦头与多分支注意力之间形成互补选择:例如 Focal Loss 通过重加权难样本缓解类别不均衡与长尾问题,常作为分类分支的稳化器。6 (CVF Open Access)定位分支方面,GIoU/DIoU/CIoU 以及 EIoU 从重叠度、中心距与尺度一致性等几何因素建模,提升遮挡与尺度变化场景中的回归稳定性与收敛效率。[7–9] (CVF Open Access)在部署侧,ONNX Runtime/TensorRT 的图级优化、算子融合与量化校准为边缘端提供了显著的延迟/吞吐改进,是工业上线的关键工程抓手。[10–11] (ONNX Runtime)

以 YOLO 家族为例,v7 通过可训练的 BoF/BoS 与 E-ELAN 取得“56.8% AP@COCO 且 30FPS+”区间的速度精度平衡,奠定了工程化实时检测的强基线。12 (arXiv)v10 在一致双重分配与 NMS-free 端到端路径上系统性减少后处理延迟,实测使小型模型端到端时延下降数毫秒级。13 (arXiv)Ultralytics 的 YOLO11 在数据与训练流程工程化、任务多样化与推理效率上持续演进,完善了从训练到导出的生态闭环。14 (Ultralytics Docs)2025 年的 YOLOv12 进一步将注意力机制引入实时检测主干,在 T4 等硬件上以相近时延获得更高 mAP,显示“注意力+实时”的新折中前景。15 (arXiv)

Transformer 检测器方面,DETR 以集合预测与匈牙利匹配实现端到端检测,简化后处理并具备强全局建模能力,但在小目标与收敛速度上需额外设计。16 (arXiv)RT-DETR 通过高效混合编码器与不确定性最小化查询选择,在 COCO 上实现 R50 53.1% AP 与 T4 108 FPS 的实时平衡,为工业线上部署提供另一可行路径。17 (arXiv)两阶段方法(Faster R-CNN)依然是高精度基线,而 SSD、EfficientDet、PP-YOLOE、YOLOX 以及 Anchor-free 的 FCOS、CenterNet 在精度、速度、显存占用与部署难度之间各有取舍,适配不同的场景与预算约束。[18–24] (arXiv)

表 1 代表方法对比(与水果品质实时检测相关)

方法 范式/家族 数据集 关键改进 优势与局限性 关键指标(原文) 适用场景/难点 参考
YOLOv7 单阶段/YOLO COCO E-ELAN、BoF/BoS 工程成熟、速度精度均衡;大模型显存占用偏高 56.8% AP(≥30 FPS 级,V100) 高速分选、对延迟敏感 12 (arXiv)
YOLOv10-S 单阶段/YOLO COCO 一致双重分配、NMS-free 端到端减少后处理时延;生态仍在演进 端到端时延较基线减≈4.63 ms 低延迟在线检测 13 (arXiv)
RT-DETR-R50 Transformer COCO 高效混合编码器、IoU-aware 分配 精度/速度均衡;训练更复杂 53.1% AP,T4 108 FPS 追求稳态吞吐 17 (arXiv)
EfficientDet-D7 单阶段 COCO BiFPN、复合缩放 高精度;大模型算力需求高 55.1% AP(test-dev) 高精度离线评测 20 (CVF Open Access)
FCOS Anchor-free 单阶段 COCO 中心度、无锚设计 省锚框、实现简洁;极小目标需优化 44.7% AP(ResNeXt-101) 长尾与小样本 23 (CVF Open Access)
CenterNet Anchor-free 单阶段 COCO 中心点热力图 结构简单、超实时;大目标/遮挡下需调参 28.1% AP@142 FPS;37.4% AP@52 FPS 低算力与超实时 24 (Tubb Lab)

2.3 要解决的问题及其方案

(1)准确性与实时性的统筹:在多品类、多缺陷形态与复杂光照下,需在边缘端实现高 mAP 与稳定帧率的统一。解决方案:以 YOLOv12 为核心,对比 YOLOv5–YOLOv11,结合数据增强、迁移学习与蒸馏,按“同数据、同训练规约、同评测口径”获得可复现的速度/精度曲线。
(2)环境适应性与泛化:跨昼夜、多工位与不同相机/光源条件存在域偏移。解决方案:引入颜色抖动、混合曝光、Copy-Paste、Mosaic/Albumentations 等策略,并在训练/验证中显式划分域以做鲁棒性评测;对易混类别采用类别重加权与难样本挖掘。
(3)网页端交互完整性与可解释:需要双画面对比、同步双帧与可溯源导出。解决方案:Flask+SocketIO 推送原始与检测帧,前端提供 Conf/IoU、类别筛选与时间轴回放;CSV 导出、带框图/视频一键下载、SQLite 入库与批量评测看板贯通。
(4)数据处理与存储安全:高并发导入/导出与任务切换易造成阻塞与数据不一致。解决方案:后端任务队列与分级缓存、原子化导出、账户会话与口令哈希;ONNX/TensorRT 导出与 INT8/FP16 加速,配合线程与内存池调优,降低端到端时延与波动。

2.4 博文贡献与组织结构

(1)综合文献综述:系统梳理 YOLOv5–YOLOv12 与主流检测器在农业视觉中的性能与部署趋势,并以可追溯指标与表格化证据支撑结论。
(2)模型选择与优化:在统一数据与评测协议下对比八种 YOLO 实现,结合迁移学习、蒸馏与量化/导出策略给出“精度-延迟-显存”的工程折中。
(3)美观友好的网页设计:实现图片/视频/摄像头三源合一的交互流程、同步双帧与双画面对比、Conf/IoU 动态调节、CSV 与带框结果一键下载、权重热切换与入库溯源。
(4)算法效果对比与资源开源:完整展示 mAP、F1、PR 与训练曲线,附工程与数据集下载链接,便于复现与二次开发;全文结构依次为:数据集处理 → 模型原理与设计 → 实验结果与分析 → 系统设计与实现 → 结论与未来工作。


3. 数据集处理

本项目采用博主提供的水果品质数据集,共 2583 张图像,按训练/验证/测试分别为 1811/514/258(约 70%/20%/10%),标注采用 YOLO 规范(每框以 x c , y c , w , h ∈ [ 0 , 1 ] x_c,y_c,w,h\in[0,1] xc,yc,w,h[0,1] 记录),这一点可由“中心坐标—宽高”散点/直方图可视化(第一幅图)得到佐证:样本中心在 ( 0.5 , 0.5 ) (0.5,0.5) (0.5,0.5) 附近呈近高斯分布,而宽高分布右偏,说明小中尺度目标占比更高、长尾显著。类别共 13 个,英文到中文映射如下,将直接用于网页端展示与导出: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/石榴_好。为避免训练与导出环节的解析歧义,建议统一使用下划线形式保存类别名(如 GoodApple_BadApple),但在界面层继续显示中文标签。你给出的检测拼图与“有/无分数阈值文字”的两组对照图显示:多品类样本拍摄背景多样(纸张、桌面、户外地面、手持等),存在光照不均与反光;同图多目标、局部遮挡与形变普遍,这些都将成为训练时需要显式考虑的难点。

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': '石榴_好'}

        
在这里插入图片描述

针对类别统计与长尾问题,博主在不改动现有划分的前提下,按照固定随机种子(例如 42)复现实验,并在训练端引入“轻重样本并行采样 + 类别重加权”的策略来缓冲 Apple/Orange 等主类的过度主导;对于易混淆的“好/坏”同类,配合 HSV 抖动、亮度对比度与色温扰动,扩大“色泽—纹理—斑点”判据的域覆盖;对于尺度与遮挡,采用 Mosaic/Copy-Paste、随机仿射与仿射裁剪增强,维持标签几何一致性;针对反光与噪声,使用自适应直方图均衡(CLAHE)与轻度高斯噪声;输入端统一自适应缩放到 640(长边不超限,保持纵横比),并在导出时保留 letterbox 的 padding 信息,以便网页端双画面对齐。数据清洗方面,建议在训练前执行一次性检查:EXIF 方向归一、重复图去重(感知哈希阈值法)、越界/零面积框修补与类别名合法性校验;训练后利用平台的 CSV 与缩略图回放,对高损失样本、低置信度样本与误检集中片段进行人工复核,必要时回写标注并入库形成“再训练—上线”的闭环。综合以上处理,数据层在遮挡、尺度变化与光照漂移上的不利影响得以抑制,也为后续 YOLOv5–YOLOv12 的横向对比提供了稳定且可复现的基线。
在这里插入图片描述


4. 模型原理与设计

本文以 YOLOv12 为主线并对比 YOLOv5–YOLOv11,延续“单阶段、Anchor-free、解耦头”的实时检测范式:输入经轻量主干提取多尺度特征(C2f/CSP 族的分层残差与可分离卷积,辅以轻量注意力以强化斑点、裂纹等细粒度纹理),在颈部以 PAN-FPN 融合,检测头分别输出分类概率、目标性与边界框参数。针对水果品质任务的难点——类间相似(好/坏仅差色泽与纹理)、尺度差异与遮挡反光——本文在结构上强调多尺度上下文与细粒度通道注意力,并以解耦头缓解分类与定位梯度的相互干扰,使小斑点/凹陷在强背景下仍可被放大表达;同时保留 NMS-free 训练/推理路径的接口,便于在边缘端削减后处理延迟。

结构层面,颈部特征融合采用可学习权重的自适应加权以稳定不同分辨率特征的贡献:令 F i {F_i} Fi 为不同尺度特征,则融合特征为
F = ∑ i w i ⋅ Up ⁡ ( F i ) , w i = exp ⁡ ( w ^ i ) ∑ j exp ⁡ ( w ^ j ) , F=\sum_{i} w_i\cdot \operatorname{Up}(F_i),\qquad w_i=\frac{\exp(\hat w_i)}{\sum_j \exp(\hat w_j)}, F=iwiUp(Fi),wi=jexp(w^j)exp(w^i),
其中 Up ⁡ ( ⋅ ) \operatorname{Up}(\cdot) Up() 表示上采样, w ^ i \hat w_i w^i 为可学习标量,以 softmax 归一保证数值稳定;通道注意力采用 SE 形式
CA ⁡ ( X ) = σ ! ( W 2 , δ ( W 1 , GAP ⁡ ( X ) ) ) ⊙ X , \operatorname{CA}(X)=\sigma!\big(W_2,\delta(W_1,\operatorname{GAP}(X))\big)\odot X, CA(X)=σ!(W2,δ(W1,GAP(X)))X,
其中 GAP ⁡ \operatorname{GAP} GAP 为全局平均池化, δ \delta δ 为 ReLU, σ \sigma σ 为 Sigmoid, W 1 , W 2 W_1,W_2 W1,W2 为全连接权重, ⊙ \odot 为逐通道缩放,可加强“坏果”局部纹理的响应;解耦头将分类与回归分支分离,最终分数为 s = p o ⋅ max ⁡ k p k s=p_o\cdot \max_k p_k s=pomaxkpk p o p_o po 为目标性, p k p_k pk 为第 k k k 类概率,回归分支直接预测 ( x , y , w , h ) (x,y,w,h) (x,y,w,h) 的分布参数或偏移量,以提升小目标和遮挡场景的收敛鲁棒性。网络整体架构图如下图所示:
在这里插入图片描述

损失与任务建模方面,分类端采用带焦点调制的二元交叉熵以抑制易样本、强调难样本与长尾类别,形式为
L ∗ cls = − α t ( 1 − p t ) γ log ⁡ p t , p t = { p , y = 1   1 − p , y = 0 , \mathcal{L}*{\text{cls}}=-\alpha_t(1-p_t)^\gamma\log p_t,\quad p_t=\begin{cases} p,& y=1\ 1-p,& y=0 \end{cases}, Lcls=αt(1pt)γlogpt,pt={p,y=1 1p,y=0,
其中 α t \alpha_t αt 控制正负样本不平衡, γ \gamma γ 控制难样本关注度;可选用标签平滑以缓解过拟合,令平滑因子为 ε \varepsilon ε K K K 为类别数,则
L ∗ ls = − ( 1 − ε ) log ⁡ p y − ε K ∑ k = 1 K log ⁡ p k . \mathcal{L}*{\text{ls}}=-(1-\varepsilon)\log p_y-\frac{\varepsilon}{K}\sum_{k=1}^{K}\log p_k . Lls=(1ε)logpyKεk=1Klogpk.
回归端默认采用 CIoU/EIoU 一类的几何一致性损失以提升尺度与中心对齐的稳定性:
L CIoU = 1 − IoU ⁡ + ρ 2 ( b , b ∗ ) c 2 + α v , \mathcal{L}_{\text{CIoU}}=1-\operatorname{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2}+\alpha v, LCIoU=1IoU+c2ρ2(b,b)+αv,
其中 ρ 2 \rho^2 ρ2 为预测框中心与真值中心的欧氏距离平方, c c c 为包围两框的最小闭包矩形对角线长度, v v v 表示宽高比一致性项, α \alpha α 为权衡系数。分配策略采用一对多的任务一致性分配(如 SimOTA/TaskAligned),增强正样本多样性以稳住早期训练,且便于后续切换至 NMS-free 推理。

训练与正则化采用“余弦退火 + 线性预热”的学习率计划、EMA 模型滑动平均与 SyncBN/DropBlock 以稳定小批量训练;阈值与后处理方面,图片/视频默认分辨率 640,置信度阈值 0.25 0.25 0.25、IoU 阈值 0.6 0.6 0.6(网页端可实时调节),并针对本数据集的小/中目标占比与背景复杂度,建议在边缘部署时使用 FP16/INT8 校准后的 ONNX/TensorRT 引擎以保持 30–60 FPS 的稳态吞吐;为适应强反光与遮挡,推理阶段启用 TTA(多尺度短边 512/640)只在离线评测开启,在线检测保持单尺度以满足时延预算。整体上,以上设计围绕“类间相似、尺度差异、遮挡反光与实时性”的四个痛点逐一对齐:注意力与分支解耦提升可分性,多尺度融合与几何一致性损失稳住定位,小样本友好的分配与正则策略保证泛化与边缘端可用帧率。


5. 实验结果与分析

本节在同一数据划分(训练/验证/测试为 1811/514/258)和一致训练规约下,对 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12nYOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s 进行横向评测;指标包括 Precision、Recall、F1、mAP50、mAP50-95 与端到端时延(Pre/Inf/Post 之和),硬件为 RTX 3070 Laptop 8 GB
在这里插入图片描述

从PR 曲线显示 Orange_BadBanana_Bad 在高召回段略早“折线下落”,是主要的易混类;而 Good_Apple-Bad_Apple 在测试集中几乎无有效样本,mAP≈0,建议后续在该复合类上补采样或拆分为标准二分类并收敛到“好/坏”两类。
在这里插入图片描述

总体对比与结论(nano 系列):在 n 型模型上,YOLOv12nF1=0.8849 取得最高 F1,但 YOLOv9tmAP50=0.8971 略占优势;若以吞吐为主,YOLOv8nYOLOv6n 的端到端时延最低(约 10.2–10.3 ms,≈97–98 FPS),且精度几乎不输最优。YOLOv10n 的后处理时间最短(0.63 ms)体现了 NMS-free 设计的优势,但整体推理时间仍高于 v6n/v8n,上线时更适合对极端低延迟有特殊约束、且通道轻量的场景。
在这里插入图片描述

总体对比与结论(small 系列):在 s 型模型上,YOLOv9s 取得最高 F1=0.8843,而 YOLOv8s/YOLOv12smAP50≈0.897 处并列第一梯队,同时 YOLOv8s 的端到端时延仅 11.39 ms(≈87.8 FPS),呈现“精度-延迟”更优折中,是 Web 实时演示与生产线在线复核的首选基线;YOLOv7 在本数据上 mAP 偏低且时延较高,更适合离线复核或作为增强学生网络的教师模型。
在这里插入图片描述

双条形图(n 型,F1 与 mAP50)
图 5-1:各 nano 模型的 F1 与 mAP50
在这里插入图片描述

双条形图(s 型,F1 与 mAP50)
图 5-2:各 small 模型的 F1 与 mAP50
在这里插入图片描述

关键数值一览(端到端时延=Pre+Inf+Post;FPS≈1000/时延)

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

细粒度分析与误差定位:混淆矩阵表明 Guava_Good ↔ Guava_BadOrange_Bad ↔ Orange_Good 的非对角元素相对更高,主要来源于色泽近似与局部斑点遮挡;PR 曲线中 Orange_Bad 的曲线在高召回区域下降更快,说明模型在“坏橙”上存在漏检偏好。建议在数据层补充“低对比/强反光/轻微斑点”的坏样本,并在训练中对易混对设定 class-wise reweightinghard negative mining,同时将 Copy-Paste 用于在“好果”上合成轻缺陷以提升边界识别。F1-Confidence 曲线的最优阈值约 0.49,与默认 0.50 非常接近;若希望优先减少漏检,可在 Web 端将 Conf 调低到 0.40–0.45 并配合 IoU=0.55–0.60,可在不显著增加误检的前提下抬升召回。
在这里插入图片描述

收敛行为:训练曲线显示 n 型模型在 30 个 epoch 左右已逼近最优,s 型在 40–50 个 epoch 达稳态;val/box_loss 与 val/dfl_loss 平稳下降且无明显震荡,说明分配策略与增广没有引入不稳定因素。继续延长到 120 epoch 的边际收益有限,更多来自 mAP50-95 的温和提升而非 mAP50 的跃升,后续可将训练预算转向 蒸馏/量化校准数据再采样

部署建议(结合平台功能):若设备算力充裕且追求稳健精度,YOLOv12s/YOLOv8s 为主推选择;若强调极致帧率与低功耗,YOLOv8n/YOLOv6n 更合适;当对后处理延迟极为敏感(多流并发或浏览器端 JS/NMS 成本高)时,可选 YOLOv10n/s 并优先启用 TensorRT INT8。在平台端建议把“最佳三档”预置到模型选择高精度:YOLOv12s平衡:YOLOv8s高帧率:YOLOv8n,并将推荐的 Conf=0.50、IoU=0.60 作为默认,同时在“导出视图”里固定输出 CSV+带框视频 以便复核与追溯。


6. 系统设计与实现

6.1 系统设计思路

本平台采用“表现与交互层—业务与会话管理层—推理与任务调度层—数据持久化层”的分层架构以适配 Web 实时质检需求。表现与交互层基于浏览器端 HTML/CSS/JS 与 Flask-SocketIO 长连接,在同一会话内承载图片、视频与摄像头三种输入及参数面板(Conf/IoU、类别筛选、进度控制),所有调参以事件流的形式同步至后端并回传“原始帧与检测帧”的同步双帧,从而保证对比视图的一致性。业务与会话管理层负责认证授权、口令哈希校验与会话续期,同时将“任务描述(源、模型、阈值、导出选项)”与“用户偏好(品牌、标题、主题配色)”统一管理,确保跨页面的配置一致与最小权限访问。

推理与任务调度层提供多源输入的统一入口:图片走同步推理,视频与摄像头以分片缓存和时间戳对齐驱动推理工作单元;预处理含自适应缩放与颜色归一,推理端支持 YOLOv5–YOLOv12 的权重热切换,推理结果经后处理(含 NMS/NMS-free 两种路径、类别筛选、框标签绘制)后被封装为双帧消息并以 Socket 逐帧推送,视频任务附带进度、暂停/继续/停止的状态机。为提升实时性与稳定性,调度器采用小批并发与限流策略,保证单会话的帧序不乱序、跨会话不抢占;同时预留 ONNX/TensorRT 引擎接口与 FP16/INT8 校准,供边缘端启用。数据持久化层将检测摘要、逐帧统计与导出元数据写入 SQLite,原始/带框图像与导出的 MP4/CSV 置于统一归档命名空间;日志与监控指标(时延、吞吐、告警)供看板与审计调用,满足质检留痕。

系统可扩展性体现在三个方面:其一,模型权重即插即用,切换后自动刷新类别与配色映射,历史任务保持可复现;其二,统计与导出集中管理,支持批量下载、按文件名与时间高亮定位并与会话追溯对齐;其三,数据库模式自动迁移,路径规范跨平台兼容,保证版本升级后的持续可用。整体闭环由“多源输入 → 预处理 → YOLO 推理 → 后处理与统计 → Web 可视—导出—入库—复核”构成,并通过参数同步与会话权限约束实现跨层协同。

图 6-1 系统流程图
图注:系统自初始化后接收多源输入,完成预处理、推理与双帧回传,并在交互控制与导出入库中形成闭环。
在这里插入图片描述

图 6-2 系统设计框图
图注:分层架构展示表现与交互层、业务与会话层、推理与任务调度层与数据层的边界及数据流向。
在这里插入图片描述

6.2 登录与账户管理

图 6-3 登录与账户管理流程
图注:从进入登录页到注册/登录/跳过,再到载入个性化配置与历史记录、进入主界面、资料修改与注销/切换账号的全流程。
在这里插入图片描述

说明:用户进入登录界面后,若无账号则完成注册并以哈希方式写入凭据,同时初始化个性化配置与默认可视主题;已有账号则进行口令校验,通过后签发会话并载入历史记录与偏好;也可选择一次性跳过进入游客模式,但导出与历史仅限当前会话;进入主界面后用户可调整头像、口令与页面品牌元素,所有改动以会话与数据库双写保证跨页一致,注销或切换账号后会话失效并清理残留缓存,确保与主检测流程的轻耦合与安全衔接。


代码下载链接

        如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:

在这里插入图片描述

在这里插入图片描述

        资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷

完整项目下载、论文word范文下载与安装文档https://deeppython.feishu.cn/wiki/UCT0wkZwMi9n7gkQwDvcBOfunte

讲解视频地址https://www.bilibili.com/video/BV1YRDfB7EBk/

完整安装运行教程:

        这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:

  1. Pycharm和Anaconda的安装教程https://deepcode.blog.csdn.net/article/details/136639378

        软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):

  1. Python环境配置教程https://deepcode.blog.csdn.net/article/details/136639396

7. 结论与未来工作

本文面向分选线与仓储质检,构建了基于 Flask + Flask-SocketIO/HTML/CSS/JS 的水果品质实时检测平台,整体实现了图片、视频与浏览器摄像头三源输入、左右双画面对比、进度与阈值联动、CSV/带框结果导出与 SQLite 入库等能力,并完成 YOLOv5–YOLOv12 八种实现的同规约对比。在 2583 张精标数据上,nano 与 small 两个规模层级均稳定达到 F1≈0.88、mAP50≈0.897 的水平,其中 YOLOv8n/YOLOv6n 在端到端时延上更具优势,YOLOv8s/YOLOv12s 在精度—延迟折中上表现最佳;误差分析显示坏橙与好番石榴的易混问题主要来自低对比与局部斑点遮挡,平台已通过阈值建议、类别筛选与样本回放为后续数据治理提供了直接抓手。总体而言,系统在边缘 GPU 上实现了稳定的近百帧级推理与可追溯可视化链路,工程上具备即插即用的权重热切换与统一导出规范;同时,整套“数据—模型—网页端”的闭环对机械器件表面缺陷、螺栓缺失、划痕凹坑等工业视觉任务具有良好的可迁移性,只需替换类别与标注即可复用到新的生产线。

展望未来,模型侧将继续推进更轻量化与端到端化:在不牺牲召回的前提下开展剪枝与量化感知训练、蒸馏学生网络到 n/s 级别模型,评估 NMS-free 与一致分配范式在多流并发下的实时收益,引入多模态(近红外/深度/高光谱)与自监督预训练以增强对低对比与反光样本的区分;系统侧将容器化并提供 Docker Compose/Helm 部署,采用分布式任务队列与显存感知的多流调度,浏览器端升级为 WebRTC 实时推流与零拷贝渲染,完善角色权限、审计与 i18n/多租户支持,并开放标准化的 REST/WebSocket SDK 便于与 MES/PLC 对接;数据侧将打通主动学习与持续标注,将高损样本与低置信度片段自动汇聚到复核池,结合数据版本管理与漂移监测实现“线上—离线—再训练”的闭环演进,必要时引入合成数据与域自适应以提升跨工位与跨光源泛化。随着这些工作推进,平台将在保证可解释性的同时进一步降低时延与运维成本,向“多场景、低门槛、可审计”的工业级实时质检服务演进。


参考文献(GB/T 7714)

1 刘洋, 宫志宏, 黎贞发, 等. 基于改进YOLOv5的番茄成熟度检测方法[J]. 中国农业气象, 2024, 45(12): 1521-1532. (IEDA)
2 钟沅, 等. 自然环境下柑橘缺陷检测方法研究[J]. 华南农业大学学报, 2025(在线优先). (SCAU Journal)
3 Wang F, Lv C, Dong L, et al. Development of effective model for non-destructive detection of defective kiwifruit based on graded lines[J]. Frontiers in Plant Science, 2023, 14:1170221. (X-MOL)
4 Xu L, et al. Greenhouse tomato detection and pose classification based on improved YOLOv5[J]. Computers and Electronics in Agriculture, 2023. (ScienceDirect)
5 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV, 2017. (CVF Open Access)
6 Rezatofighi H, Tsoi N, Gwak J, et al. Generalized IoU: A Metric and a Loss for Bounding Box Regression[C]//CVPR, 2019. (CVF Open Access)
7 Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//AAAI, 2020. (含 CIoU)([AAAI Open Access

]18)
8 Zhang Y-F, Ren W, Zhang Z, et al. Focal and Efficient IOU Loss for Accurate BBox Regression[EB/OL]. 2021. (arXiv)
9 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. 2022. (arXiv)
10 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024. (arXiv)
11 Ultralytics. YOLO11 Overview[EB/OL]. 2024–2025. (Ultralytics Docs)
12 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
13 Ultralytics. YOLOv5 Documentation[EB/OL]. 2025. (Ultralytics Docs)
14 Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. 2022. (arXiv)
15 Ultralytics. YOLOv8 Documentation[EB/OL]. 2023–2025. (Ultralytics Docs)
16 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning What You Want… Using Programmable Gradient Information[EB/OL]. 2024. (arXiv)
17 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV, 2020. (arXiv)
18 Deng R, Xu W, Wang X, et al. RT-DETR: DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. 2023. (arXiv)
19 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with RPN[EB/OL]. 2015. (arXiv)
20 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. 2015. (arXiv)
21 Tan M, Le Q. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR, 2020. (CVF Open Access)
22 Xu S, Wang X, Lv W, et al. PP-YOLOE: An Evolved Version of YOLO[EB/OL]. 2022. (arXiv)
23 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021. (arXiv)
24 Tian Z, Shen C, Chen H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV, 2019. (CVF Open Access)
25 Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. 2019. (Tubb Lab)
26 Microsoft. ONNX Runtime Performance Tuning[EB/OL]. 2025. (ONNX Runtime)
27 NVIDIA. TensorRT Developer Guide[EB/OL]. 2025. (NVIDIA Docs)

说明:2.2 小节采用 4 段论述并给出 1 张方法对比表;中文与英文文献兼具,近三年工作(YOLOv9/10/11/12、RT-DETR 等)已覆盖;文中涉及的定量指标均来自所引原文或官方文档,单句未出现多重引用。

Logo

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

更多推荐