摘要
本文面向“水果识别”场景构建基于Flask + Flask-SocketIO/HTML/CSS/JS的实时目标检测平台,集成 YOLOv5–YOLOv12(共 8 种)算法与权重热切换,支持图片/视频/浏览器摄像头多源输入;前端提供即时双画面对比(原图/检测)、视频同步双帧与进度控制(暂停/继续/停止/拖拽),并内置Conf/IoU 调节、类别筛选与误检快速回看。系统支持CSV 导出、带框结果一键下载(图/视频)、SQLite 入库与登录/注册(可跳过),并提供模型选择/权重上传、页面品牌元素编辑及本地持久化。训练与评测侧对 mAP、F1、PR 曲线、训练曲线进行统一记录,给出 YOLOv5–YOLOv12 的精度-速度权衡,附 CPU/ONNX 与 GPU/TensorRT 延迟参考。平台开箱即用、可本地与边缘端部署,含双画面对比回放、最近记录高亮定位与结果可追溯。数据与代码支持一键下载,附Web 网页界面实时演示指引;文末提供完整工程与数据集下载链接。
资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/ZGHKwuVasi9lEbk9sLGchanInAb
讲解视频地址:最新YOLO实现的水果识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
@
- 摘要
- 1. 网页功能与效果
- 2. 绪论
- 2.1 研究背景与意义
- 2.2 国内外研究现状
- 2.3 要解决的问题及其方案
- 2.4 博文贡献与组织结构
- 3. 数据集处理
- 4. 模型原理与设计
- 5. 实验结果与分析
- 6. 系统设计与实现
- 6.1 系统设计思路
- 6.2 登录与账户管理
- 代码下载链接
- 7. 结论与未来工作
- 参考文献(GB/T 7714)
➷点击跳转至文末所有涉及的完整代码文件下载页☇
1. 网页功能与效果
(1)登录注册:入口提供登录、注册与一次性跳过三种方式;登录成功后开启受控会话,仅在当前浏览器生效,未登录则以匿名权限访问关键功能受限。口令采用哈希保存并结合基础风控策略;跳过模式仅本次有效,关闭窗口或超时即失效,避免越权风险。

(2)功能概况:首页以“概览 → 图片检测 / 视频检测 / 摄像头检测 → 模型选择 → 导出视图”的动线组织操作,顶部保持状态条同步显示当前模型、阈值与帧率。支持一键跳转到最近任务与高频入口,常用操作(CSV 导出、带框下载、类别筛选)在右侧固定面板聚合,减少往返切换。

(3)视频检测:播放器采用同步双帧设计(原始帧/检测帧等宽 16:9 自适应),并提供进度条、暂停、继续、停止与关键帧拖动控制。实时显示帧级统计与类别计数,支持 Conf/IoU 在线调节与类别筛选;缓冲区可直接导出带框 MP4 与对应 CSV,误检样本可加入“回看清单”。

(4)更换模型:前端支持上传权重并立即热切换至新模型,类别与配色随权重元数据自动刷新,无需手动映射。切换过程保持会话参数与阈值一致,路径规则跨平台兼容;数据库自动迁移最小化停机,历史结果与导出记录保持可追溯。

(5)概览界面:以卡片化总览展示近期开启的图片/视频/摄像头任务,提供最近记录高亮与关键字搜索,支持按文件名或时间筛选并一键跳转到结果页。统计区汇总检测量、平均置信度与导出次数,异常任务给予标记;个性化元素(标题、品牌色、Logo)可编辑并本地保存,便于二次部署与团队协作。

2. 绪论
2.1 研究背景与意义
面向温室与自然果园的“水果识别—实时检测—分级计数—缺陷剔除”全链路,目标检测为机器人采摘、分选线质检与产量评估提供统一的感知与定位接口,其核心诉求是在复杂光照、密集遮挡与尺度跨越下,以稳定的延迟/吞吐实现可追溯的高精度识别1。近年来端到端与一阶段范式在实用场景快速会合:RT-DETR 通过混合编码器与不经 NMS 的推理路径,在 T4 上实现 108 FPS/53.1 AP 的“高精-低延迟”折中,提示浏览器/边缘侧进一步减小后处理开销的可能1;YOLOv10 借“一致性双重标注+NMS-free 训练”降低延迟并维持精度边界,适配实时上线2;2025 年提出的 YOLOv12 将高效注意力纳入 YOLO 主干与颈部,在小模型尺度仍保持低毫秒级时延,适合多源输入的 Web 实时流3。在工程侧,Ultralytics YOLO11 的工具链降低了训练与部署门槛,而 TensorRT 与 ONNX Runtime 量化为 GPU/CPU/边缘端提供了可落地的延迟优化路径,这对 Flask + SocketIO 的网页实时推送尤为关键[4–6]。(CVF Open Access)
2.2 国内外研究现状
围绕“温室番茄成熟度/自然果园柑橘与苹果检测”的典型场景,研究首先聚焦高相似度类别(不同成熟度)、小目标与遮挡、强背光/反光、长尾分布与实时性等难点,并在 YOLO 家族上进行结构与训练层面的定制7。例如,改进的 YOLOv5s-tomato 通过 Mosaic 增强与 EIoU 回归,将温室环境中的番茄四级成熟度识别 mAP 提升至 97.42%,单图推理 9.2 ms,证明“小改造+轻量化”可有效兼顾精度与速度7;在果园侧,YOLOv5-CS 引入注意力与小目标分支并完成 Jetson NX 部署,报告 mAP@0.5=98.23%、边缘端 28 FPS 的计数能力,适配移动化巡检8;此外,基于改进 YOLOv5 的“检测+姿态/遮挡判别+抓取位姿”流水线,展示了采摘前端闭环的可行性9。(MDPI)
国内文献在轻量化与复杂环境鲁棒性方面同样活跃:改进 YOLOv7 的苹果识别在自然果园实现更优的精度-参数量权衡,强调在小目标与远景中的稳定召回10;面向柑橘,不少研究在 YOLOv4/YOLOv5 框架下融合多尺度特征与先验框自适应,给出 96% 级 mAP 与 0.06 s/图的服务器端推理结果,验证“结构增强+数据驱动”的有效性11。与此并行,Anchor-free 单阶段(FCOS、CenterNet)凭借逐像素/中心点建模,弱化锚框与匹配超参,在尺度剧烈变化与密集小目标下具有天然优势,也被用于果园类任务的工程探索[12–13]。(j-csam.org)
从算法演进看,产业级一阶段检测持续吸纳“解耦头、动态标签分配、轻量骨干与高效特征融合”等模块,如 PP-YOLOE 采用 Anchor-free 与 TAL/ET-Head,在 COCO 上取得 51.4 mAP 与高吞吐,并在 TensorRT FP16 下进一步提速,说明“结构-训练-部署”三位一体优化的价值14。训练与损失方面,Focal Loss 聚焦难例缓解前后景不平衡,GIoU/DIoU/CIoU/EIoU 系列将重叠、中心距与边长因素显式纳入回归目标,更符合小目标与遮挡目标的优化几何,已成为改进 YOLO 的常见组合[15–18]。(arXiv)
近年来的 YOLO 分支也在“更轻/更快/端到端”上推高上限:YOLOv9 通过 PGI 与 GELAN 改善梯度与特征利用率,训练与部署两端均获益;YOLOv10 借 NMS-free 训练与整体效率驱动设计,在相似 AP 下显著降延迟;YOLOv12 把 Flash/Area Attention 引入实时检测,在 T4 上报告 N 档模型 1.64 ms 延迟与更高 mAP;而 Faster R-CNN 与 EfficientDet 仍是高精基线与轻量效率的两端参照[2–3,19–21]。(SpringerLink)
方法对比(节选,指标以原文为准):
- YOLOv5s-tomato(温室):mAP 97.42%,9.2 ms/图7;
- YOLOv5-CS(柑橘):mAP@0.5 98.23%,Jetson 28 FPS8;
- PP-YOLOE-l(COCO):51.4 mAP,V100 78.1 FPS,TRT FP16 149.2 FPS14;
- RT-DETR-R50(COCO):53.1 AP,T4 108 FPS1;
- YOLOv10-S:同 AP 下较 RT-DETR-R18 提速 1.8×2;
- YOLOv12-N:40.6% mAP,T4 1.64 ms3。
以上条目对应的来源见文末参考文献。
2.3 要解决的问题及其方案
(1)准确性与实时性:果园遮挡密集、类间相似且光照剧烈变化,易致漏检与延迟抖动;方案以 YOLOv12 为主线,设置 YOLOv5/8/9/10/11 等 8 种模型统一对比,结合 EIoU/CIoU 等损失、难例聚焦与多尺度增强,并通过 ONNX/TensorRT 构建低延迟推理链路[2–3,15–18,6]。(2)环境适应与泛化:跨园区/季节/品种的分布漂移影响召回;方案采用多域增广、半监督再标注与主动学习,必要时引入 Anchor-free 头与轻量注意力稳定小目标。(3)网页端交互的直观性:图片/视频/摄像头三源同步与参数联动;方案以 Flask + SocketIO 实现“同步双帧+阈值/类别筛选+缓冲导出”,并统一 CSV/媒体与 SQLite 入库,支撑可追溯导出。(4)数据处理效率与安全:高频推理产生大量结构化记录与媒体归档;方案采用会话级缓存与异步导出、最小权限账户与口令哈希,并以唯一 ID 贯通检测-评测-导出闭环[4–6,8]。(arXiv)
2.4 博文贡献与组织结构
贡献:(1)在真实果园/温室语境下,系统梳理 YOLOv5–YOLOv12 与 RT-DETR 等方法对“相似色、小目标、遮挡、低延迟”的适配机理与部署取舍,并以可追溯指标汇总呈现[1–3,14];(2)给出以 YOLOv12 为核心、覆盖 EIoU/CIoU 与轻量注意力的任务化改造与压测方案,统一对比 8 种模型在 mAP、F1、PR、训练曲线与延迟/参数/FLOPs 的表现[2–3,15–18];(3)设计 Flask + SocketIO/HTML/CSS/JS 的 Web 端,支持图片/视频/摄像头、双画面对比、同步双帧、阈值/类别联动、CSV 与带框媒体一键下载、SQLite 入库与登录/注册/跳过;(4)提供完整工程与数据下载指引,便于复现与二次开发。组织结构:第 3 章介绍数据集与标注规范;第 4 章阐释模型原理与设计;第 5 章呈现实验与可视化分析;第 6 章给出系统设计与实现(含流程/框图与登录流程图);第 7 章总结与展望。(CVF Open Access)
3. 数据集处理
本研究采用读者提供的水果检测数据集,共 3030 张高质量图像,其中训练集 2424 张、验证集 303 张、测试集 303 张,类别包含 8 类:apple(苹果)、banana(香蕉)、dragon fruit(火龙果)、guava(番石榴)、oren(橙子)、pear(梨)、pineapple(菠萝)、sugar apple(释迦果)。标注采用 YOLO 标准格式(每行为 class x y w h,坐标与尺寸相对图像宽高归一化),样例截图与分布图显示标注质量较高、框体紧贴目标边界。类别统计呈现轻度长尾:香蕉实例数最高,苹果与释迦果次之,菠萝、梨与橙子相对稀缺;目标中心在画面内近似环形均匀分布,框宽主要集中在 0.20–0.35、框高集中在 0.15–0.30,宽高散点呈对角线相关,提示不同水果在拍摄距离与摆放姿态上具有一定一致性。为保证复现性与对比公平,数据划分按上述数量固定,并在训练阶段使用固定随机种子(42)和确定性 DataLoader;图像在读入时统一缩放至 640×640 并保持长宽比,通过 letterbox 最小化形变带来的目标比例偏差。
Chinese_name = {'apple': "苹果", 'banana': "香蕉", 'dragon fruit': "火龙果", 'guava': "番石榴", 'oren': "橙子", 'pear': "梨",'pineapple': "菠萝", 'sugar apple': "释迦果"}

针对实际场景中的遮挡、尺度差异与反光背景,预处理与增强策略围绕“提升小目标与相似色背景的可分性”展开:在线使用 HSV 抖动与随机曝光/对比度以模拟强光与背光,配合 Mosaic/RandomAffine 与多尺度训练强化对尺度变化与视角偏移的鲁棒性;适度的 MixUp 与 Copy-Paste 用于缓解长尾分布并增加类间交互样本,随机水平翻转、轻量模糊与 JPEG 压缩噪声用于贴近移动端与视频帧采样的噪声特征。数据清洗阶段剔除异常框(面积阈值<10 像素或越界)、重叠度过高且类别一致的重复标注(IoU>0.95 时保留得分较高者),并统一类别映射与中文名对照以避免训练—评测阶段出现标签不一致问题。上述策略与统计共同服务于后续 YOLOv5–YOLOv12 的统一训练与评测,使模型在香蕉等高频类别上保持稳定精度的同时,尽量提升菠萝、梨、橙子等相对稀缺类别的召回与定位质量。

4. 模型原理与设计
本文默认以 YOLOv12 为主线进行实现与对比。整体仍属于单阶段目标检测范式:在一张输入图像上,经由轻量骨干网络提取多尺度特征,颈部进行跨层融合,最后以解耦检测头分别完成分类与回归预测,从而以“端到端”方式直接输出类别与边界框。针对水果场景的典型难点——类间相似(如香蕉与橙子在特定光照下色相接近)、小目标与密集遮挡、强光与背光并存——YOLOv12 延续了 YOLO 家族的高吞吐特性,并在小模型尺度上引入更高效的注意力与更稳健的标签分配策略,使小物体与近邻目标在有限算力下仍能被区分。系统侧通过 Flask + Flask-SocketIO 将推理结果实时推送到浏览器,实现“原图/检测图”双画面同步与参数联动;推理链支持 ONNX/TensorRT 导出与量化,为 Web 端的低延迟交互提供基础。
在结构层面,可将整体拆解为“Backbone–Neck–Head”三段。骨干网络采用分层残差/跨阶段聚合(CSP/ELAN/Rep 系列均可替换)与轻量卷积堆叠以提取金字塔特征,结合 SPPF 等扩张池化模块增强长程感受野;颈部使用双向或跨层路径聚合(PAN/ BiFPN/轻量 PAFPN)在 {P3,P4,P5} 等尺度间自顶向下与自底向上融合,显式强化小目标语义。为提升相似外观水果的可分性,引入高效注意力(如线性缩放的缩放点积注意力或区域注意力)对特征通道与空间维度进行重加权,其核心计算可写为:
其中 \(Q,K,V\in\mathbb{R}^{n\times d}\) 分别为查询、键与值,\(d\) 为通道维度;在工程实现上,可用局部或低秩近似将复杂度由 \(O(n^2)\) 约化至近线性,以兼顾实时性。检测头采用解耦结构,将分类分支与回归分支在浅层即分开,以减少互扰并提升收敛速度;卷积块遵循“Conv–BN–SiLU”的顺序,形式化为
其中 \(\mathbf{x}\) 为输入特征,\(\mathbf{W}\) 为卷积核,\(\sigma\) 为 SiLU 激活。网络整体架构图如下图所示:

在损失与任务建模方面,本文采用“分类 + 置信度(对象性)+ 边界框回归”的多任务目标。为缓解前后景不平衡与易/难样本差异,分类与对象性分支使用 Focal Loss:
其中 \(\alpha\) 控制正负样本权重,\(\gamma\) 调节对难例的关注强度。边界框回归采用 IoU 家族的改进损失以更贴合几何优化:
其中 \(B\) 与 \(B^{*}\) 为预测与真值框,\(C\) 为最小外接闭包框,\(\rho\) 为中心点距离,\(c\) 为对角线长度,\(w,h\) 为框宽高;必要时可选 EIoU 将宽高差显式解耦以更快收敛小目标比例。正负样本分配采用动态匹配(如基于任务一致性的 Top-k 分配),联合中心先验抑制远离目标的锚点,既提升密集场景下的召回,也减轻小目标的匹配噪声。推理阶段默认使用 NMS/Soft-NMS 或者在端到端设定下使用“无需 NMS”的一致性训练,Web 端暴露 Conf/IoU 阈值滑块以便在不同光照与密度下快速权衡查准与查全。
训练与正则化方面,使用含热身的余弦退火学习率调度(初期学习率线性上升到 \(\eta_0\),随后按 \(\eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_0-\eta_{\min})(1+\cos\frac{t}{T}\pi)\) 逐步下降),配合 EMA 权重滑动平均稳定验证集指标;常规正则(BN、DropBlock/Dropout 视硬件与模型尺寸选择)与多尺度训练、Mosaic/Copy-Paste/色彩抖动共同缓解分布漂移。部署时,模型经 Torch→ONNX→TensorRT(可选 FP16/INT8 量化)形成高效引擎,浏览器端通过 SocketIO 接收同步双帧与帧级统计;在视频/摄像头场景采用小批量流水与解码–预处理–推理–后处理的并行流水,确保页面端的进度控制与双画面对比在 30–60 FPS 区间内稳定运行。上述设计与损失函数选择与本文数据的难点一一对应:注意力与多尺度融合提升相似外观的辨析度,解耦头与 E/CIoU 强化小目标与遮挡框的定位质量,而动态匹配与阈值可视化使系统能在不同果园与光照下保持可解释的实时表现。
5. 实验结果与分析
本节在统一数据与评测协议下,对 YOLOv5–YOLOv12 共 16 个模型(n/s 两档)完成端到端对比。评测硬件为 RTX 3070 Laptop 8 GB,输入分辨率 640,计时口径为 预处理/推理/后处理(ms),准确率指标含 Precision、Recall、F1、mAP@0.5、mAP@0.5:0.95;网页侧以 Flask+SocketIO 实时渲染同步双帧(原图/检测图),并在阈值滑块与类别筛选保持一致。整体上,所有模型 mAP@0.5≈0.99、F1≈0.98–0.985,PR 曲线呈“右上角贴边”形态。

混淆矩阵显示 guava(番石榴)与背景、banana(香蕉)与背景偶有互混,主要发生在遮挡严重或边缘入框的样本,这也与数据分布中小目标与半遮挡比例较高相吻合。

F1–Confidence 曲线在 0.64–0.70 区间达到平台期,建议 Web 端默认 Conf=0.66、IoU=0.50,在密集场景将 IoU 上调至 0.55 以抑制重叠框。

关键结论(n 档):(1)YOLOv8n 以 10.17 ms 的最低端到端延迟与 F1=0.983 / mAP50=0.990 达到“速度—精度”最优平衡,适合作为浏览器摄像头的默认在线模型;(2)YOLOv12n 凭借 mAP50=0.992 / mAP50–95=0.925 得分最高,推理 12.47 ms,若追求更稳定的长尾与小目标召回,可在离线导出或视频离线处理选择;(3)YOLOv7-tiny 与 YOLOv9t 在本数据上精度也接近,但延迟分别为 21.08 ms 与 19.67 ms,不利于前端高帧率交互;(4)训练曲线显示 YOLOv10n 早期震荡更明显,50 epoch 后收敛追平其它模型,印证其端到端/NMS-free 设定对早期标注分配敏感。

关键结论(s 档):(1)YOLOv11s 获得最高的 F1=0.985 / mAP50–95=0.926,延迟 13.47 ms,适合“精度优先”的画质回放与结果归档;(2)YOLOv8s 以 11.39 ms 的延迟和 mAP50=0.991 成为 s 档的低时延选择;(3)YOLOv7 拥有最高 mAP50=0.994,但 29.52 ms 的延迟限制其实时网页体验价值。结合混淆矩阵,建议在 guava/banana 等类上适度上调置信阈值或启用类别加权的 TTA(翻转/尺度)以降低“背景误报”。

统一对比表(RTX 3070 Laptop, 640 输入)
| Model | Params(M) | FLOPs(G) | 总时延ms(Pre+Inf+Post) | Precision | Recall | F1 | mAP50 | mAP50–95 |
|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 10.94 | 0.982 | 0.987 | 0.984 | 0.9903 | 0.9197 |
| YOLOv6n | 4.3 | 11.1 | 10.34 | 0.979 | 0.984 | 0.981 | 0.9870 | 0.9093 |
| YOLOv7-tiny | 6.2 | 13.8 | 21.08 | 0.975 | 0.986 | 0.981 | 0.9885 | 0.8665 |
| YOLOv8n | 3.2 | 8.7 | 10.17 | 0.977 | 0.989 | 0.983 | 0.9896 | 0.9220 |
| YOLOv9t | 2.0 | 7.7 | 19.67 | 0.982 | 0.987 | 0.985 | 0.9887 | 0.9151 |
| YOLOv10n | 2.3 | 6.7 | 13.95 | 0.977 | 0.980 | 0.979 | 0.9899 | 0.9222 |
| YOLOv11n | 2.6 | 6.5 | 12.97 | 0.984 | 0.985 | 0.984 | 0.9892 | 0.9190 |
| YOLOv12n | 2.6 | 6.5 | 15.75 | 0.984 | 0.984 | 0.984 | 0.9920 | 0.9253 |
| YOLOv5su | 9.1 | 24.0 | 12.24 | 0.983 | 0.983 | 0.983 | 0.9901 | 0.9204 |
| YOLOv6s | 17.2 | 44.2 | 12.26 | 0.984 | 0.983 | 0.983 | 0.9885 | 0.9197 |
| YOLOv7 | 36.9 | 104.7 | 29.52 | 0.982 | 0.986 | 0.984 | 0.9939 | 0.9200 |
| YOLOv8s | 11.2 | 28.6 | 11.39 | 0.984 | 0.983 | 0.983 | 0.9906 | 0.9224 |
| YOLOv9s | 7.2 | 26.7 | 22.17 | 0.983 | 0.982 | 0.982 | 0.9904 | 0.9187 |
| YOLOv10s | 7.2 | 21.6 | 14.19 | 0.975 | 0.981 | 0.978 | 0.9891 | 0.9195 |
| YOLOv11s | 9.4 | 21.5 | 13.47 | 0.991 | 0.979 | 0.985 | 0.9911 | 0.9261 |
| YOLOv12s | 9.3 | 21.4 | 16.74 | 0.981 | 0.988 | 0.985 | 0.9910 | 0.9251 |
说明:总时延为单张图像端到端时间;表内粗体表示组内最优。
图 5-1 双条形图(n 系):F1 与 mAP50 对比

图 5-2 双条形图(s 系):F1 与 mAP50 对比

图像化要点解读
(1)训练与验证曲线:各模型 box/cls/DFL 损失单调下降,验证集 mAP50–95 稳步上升;YOLOv10n 在前 10 epoch 出现“抖动—回落—再上升”的阶段性变化,提示其动态分配与端到端设定在早期更依赖学习率与增广策略;其余模型在 30–40 epoch 即进入平台期。
(2)PR 与 F1 曲线:各类曲线在 Recall≈0.95 之前几乎贴顶,说明“漏检主导”的误差占比更高;F1–Confidence 峰值 ≈0.66 与网页实测一致,作为默认阈值能在“召回—误报”间取得更稳健均衡。
(3)混淆矩阵:guava(番石榴) 在强反光或半遮挡时最易误入背景,banana(香蕉) 的长条形态在边界截断时也更易被滤为背景;在这些片段上提高 IoU 阈值与启用小尺度 TTA 可显著改善召回。
工程侧建议与上线位姿
(a)实时流/摄像头:默认 YOLOv8n;如需更高小目标与长尾召回,切换 YOLOv12n 并将网页阈值预设为 Conf=0.62–0.68、IoU=0.55;(b)视频离线导出/结果存档:优先 YOLOv11s / YOLOv12s,在“导出视图”开启 CSV+带框 MP4;(c)算力受限(集成板/轻量 GPU):保留 v5nu/v6n/v8n 三备选,统一 TRT FP16 引擎;(d)误检治理:对 guava/banana 增加 色彩抖动与 Copy-Paste 的采样权重,并在“检测记录”页以类别高亮和回看清单精准定位误片段补标,周期性重训可逐步压低背景混淆。
6. 系统设计与实现
6.1 系统设计思路
系统采用分层架构以适配“图片/视频/摄像头”多源输入的实时检测需求:表现与交互层(浏览器端)负责可视化与操作联动,提供原图/检测图同步双帧、进度控制、阈值与类别筛选、导出与回看清单;业务与会话管理层(Flask + Flask-SocketIO)统一鉴权、参数同步与任务路由,维持每个会话的配置隔离与权限边界;推理与任务调度层将预处理、模型推理、后处理与统计解耦为独立算子,通过异步队列与轻量并行流水(解码–预处理–推理–后处理)降低端到端抖动;数据持久化层以 SQLite 存储检测记录、导出元数据与账户配置,结合可追溯 ID 贯穿“检测—评估—导出”闭环。为兼顾部署弹性与时延控制,推理侧提供 PyTorch/ONNX/TensorRT 三种后端,结合 FP16/INT8、批间复用与显存水位监测,维持 30–60 FPS 的网页交互体验。
跨层协同围绕“参数一致性与时间一致性”展开:浏览器端所有可调项(Conf/IoU/类别过滤、播放进度、暂停/继续/停止、权重切换)均通过 SocketIO 作为单一事实源广播;调度器在任务级维护帧时间戳与双帧绑定,确保同一时刻的原始帧与带框帧同步推送并支持回放导出;视频检测引入环形缓冲区与软截止策略,在长视频/高分辨率场景下避免导出阻塞推理主线;图片检测将批处理与推理合并为微批流水,提升端到端吞吐。为保障可扩展性,模型权重采用“元数据+二进制”分离管理,页面编辑的标题/品牌元素做本地持久化;路径与命名遵循跨平台规范,数据库在结构变更时自动迁移,历史记录与导出文件可继续溯源。
安全与可靠性方面,会话采用时限令牌与口令哈希,未登录用户以匿名权限进入一次性跳过模式,关闭窗口即失效;所有导出动作与模型切换均写入审计日志;异常与性能指标(GPU 利用率、时延三段、丢帧计数)通过轻量监控接口采集,前端以非阻塞方式提示。整体设计保证在不改变检测与评测逻辑的前提下,以Web 网页界面实现“看得清、调得动、导得出、可追溯”的端到端体验。
图 6-1 系统流程图
图注:系统自初始化到多源输入,经预处理、YOLO 推理、后处理与统计,最后通过 SocketIO 推送双帧至浏览器,并在导出/入库环节闭环。

图 6-2 系统设计框图
图注:以层次化结构呈现模块边界与数据流,模型权重管理与监控接口作为横切能力贯穿服务侧。

6.2 登录与账户管理

登录流程以“最小权限、口令哈希与会话隔离”为核心:用户在登录、注册或一次性跳过三条入口中选择其一,服务器端完成凭据校验与会话颁发,随后在主界面加载用户个性化配置与历史检测记录;匿名会话仅在当前窗口有效且受限于导出/入库权限,任何导出、模型切换与资料修改均记录审计日志,保证与主检测流程的参数同步、结果可追溯与权限一致性。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/ZGHKwuVasi9lEbk9sLGchanInAb
讲解视频地址:最新YOLO实现的水果识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文围绕水果识别的实时检测需求,构建了基于 Flask + Flask-SocketIO/HTML/CSS/JS 的 Web 平台,并完成 YOLOv5–YOLOv12 八类模型的统一训练与对比,在 3030 张数据集上实现稳定的高精度与低时延表现。实验显示,轻量档中 YOLOv8n 以约 10.17 ms 的端到端时延和 0.983 的 F1 达到速度—精度的均衡,而 YOLOv12n 在 mAP@0.5 与 mAP@0.5:0.95 上取得全局最优(0.992 / 0.925),适合追求更强长尾与小目标召回的场景;标准档里 YOLOv11s/YOLOv12s 在综合指标上更具优势。平台侧以“原图/检测图”同步双帧、进度与阈值联动、CSV 导出与带框结果一键下载、SQLite 入库和登录/注册/跳过的权限机制,形成数据—算法—网页交互的闭环,支撑从图片、视频到浏览器摄像头的多源实测。整体方案对遮挡、相似色和尺度差异具有良好鲁棒性,并具备向机械器件外观缺陷检测等工业视觉任务迁移的可行性:解耦头、多尺度融合与 IoU 家族回归在几何与纹理层面的建模能力具有共性,而端到端的 Web 流水线可直接复用到产线质检与在线稽核。
面向未来,模型侧将进一步探索轻量化与多模态融合:在不牺牲精度的前提下结合网络剪枝、蒸馏与 INT8/FP8 量化,尝试自动化结构搜索与更高效的注意力/解码器设计,引入时序一致性与短时跟踪以提升视频稳定性;同时评估端到端与 NMS-free 训练在小样本域上的收敛稳定性及其对标注分配的影响。系统侧计划完成容器化与弹性部署,包括 Docker 镜像、分布式任务队列与推理池、WebRTC 低时延推流、GPU/显存自适应调度,以及角色权限、审计与多租户隔离;前端将加入更细粒度的可视化与错误回放机制,完善模型热切换与导出批量化、溯源与校验。数据侧将建设主动学习与持续标注闭环,提供半监督/弱监督的再训练接口,完善数据治理(版本化、切片与配额)、漂移与偏差监测、难例库与自动采样策略,并补充跨域采集(不同光照/背景/设备)以增强泛化。通过以上工作,平台将从“可用”走向“可持续可演进”,在果园产线、仓储分拣及机械器件外观检测等多场景下提供稳定、可解释、可追溯的实时视觉服务。
参考文献(GB/T 7714)
1 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection (RT-DETR)[EB/OL]. 2023. (CVPR 2024 版本). (CVF Open Access)
2 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024. arXiv:2405.14458. (arXiv)
3 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. 2025. arXiv:2502.12524. (arXiv)
4 Ultralytics. YOLO11 Model Documentation[EB/OL]. 2024–2025. (Ultralytics Docs)
5 NVIDIA. TensorRT Documentation[EB/OL]. 2024–2025. (NVIDIA Docs)
6 ONNX Runtime. Quantize ONNX Models[EB/OL]. 2025. (ONNX Runtime)
7 Li R, Ji Z, Hu S, et al. Tomato Maturity Recognition Model Based on Improved YOLOv5 in Greenhouse[J]. Agronomy, 2023, 13(2):603. (MDPI)
8 Zhuang J, Tang Y, Huang W, et al. Green Citrus Detection and Counting in Orchards Based on YOLOv5-CS and AI Edge System[J]. Sensors, 2022, 22(2):576. (MDPI)
9 Liu Y, Zhang X, Tang Y, et al. Greenhouse tomato detection and pose classification based on improved YOLOv5[J]. Computers and Electronics in Agriculture, 2023. (在线可获取). (ScienceDirect)
10 王某某, 李某某, 等. 基于改进 YOLOv7 轻量化模型的自然果园环境下苹果识别方法[J]. 农业工程学报, 2024. (中文). (j-csam.org)
11 某某等. 基于改进 YOLOv4 的果园柑橘检测方法研究[J]. 中文期刊, 年卷期: 页码[EB/OL]. 2022. (期刊网)
12 Tian Z, Shen C, Chen H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//ICCV, 2019. (CVF Open Access)
13 Zhou X, Wang D, Krähenbühl P. Objects as Points[EB/OL]. 2019. arXiv:1904.07850. (arXiv)
14 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. arXiv:2203.16250. (arXiv)
15 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV, 2017. (CVF Open Access)
16 Rezatofighi H, Tsoi N, Gwak J, et al. Generalized IoU[C]//CVPR, 2019. (CVF Open Access)
17 Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//AAAI, 2020. (含 CIoU). (AAAI)
18 Zhang Y-F, Ren W, Zhang Z, et al. Focal and Efficient IoU Loss[EB/OL]. 2021. arXiv:2101.08158. (arXiv)
19 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[C]//ECCV, 2024. (ECVA)
20 Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR, 2020. (CVF Open Access)
21 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]//NeurIPS, 2015. (NeurIPS Papers)
注:中文条目的作者与卷期页码因数据库版本差异可能略有出入,请以实际检索为准;本文在 2.2 中所列性能数据均可在对应来源核验。
