最新YOLO实现的零售柜商品识别实时检测平台(Flask+SocketIO+HTML_CSS_JS)

摘要

本文面向零售柜商品识别实时检测应用,构建一套端到端的YOLOv5–YOLOv12多模型平台,后端采用Flask + Flask-SocketIO实现低时延推理与事件驱动通信,前端以HTML/CSS/JS打造轻量交互;支持图片/视频/浏览器摄像头多源输入与即时双画面对比(原图/检测图),内置进度控制(视频同步双帧、播放/暂停/继续/停止)与Conf/IoU 调节、类别筛选。系统提供CSV 导出带框结果一键下载(图像与缓冲生成的 MP4)、检测记录跨页共享与SQLite 入库,并含登录/注册(可跳过)、口令哈希与会话保护;支持模型选择/权重上传,切换后自动刷新类别与配色。算法侧覆盖YOLOv5–YOLOv12(共 8 种)统一训练与评测流程,对比mAP、F1、PR 曲线、训练曲线等,并给出轻量化与部署建议以满足柜端实时性与准确性。平台强调可复现性:提供可配置的数据管线、日志与溯源标识、批量导出与检索视图,便于在不同品类密度、遮挡与反光条件下快速迁移。文末提供完整工程与数据集下载链接,助力读者一键搭建、二次开发与线上验证。

讲解视频地址基于深度学习的零售柜商品检测软件(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck55uaQ==
说明论文下载:https://mbd.pub/o/bread/YZWck5txZg==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmplwbQ==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5lxZQ==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5hsbA==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9sbQ==
安装与教程文档:https://deeppython.feishu.cn/wiki/O3kewDftxiGz93kfWq9cgp3Dndc

@

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


1. 网页功能与效果

(1)登录注册:提供登录、注册与一次性跳过三种入口,成功后会话在当前浏览器标签内生效并可随时注销或切换账号。口令采用哈希存储并结合最小权限会话控制,兼顾顺畅体验与基础安全。首次进入会自动载入个性化配置与最近记录。
在这里插入图片描述

(2)功能概况:系统覆盖图片、视频与浏览器摄像头三种输入,支持原图/检测图左右等宽、16:9 自适应双画面对比。内置 Conf/IoU 调节、类别筛选、CSV 导出与带框图片/视频一键下载,检测记录跨页共享便于追踪与复核。
在这里插入图片描述

(3)视频检测:提供同步双帧推送与进度条联动,支持播放、暂停、继续与停止控制,并可按时间点或帧号快速回看。实时推理结果与统计信息同屏呈现,缓冲片段可直接导出为 MP4 便于留档与复测。
在这里插入图片描述

(4)更换模型:在“模型”页上传权重即可切换当前模型,类别列表与配色随即同步刷新并写入本地配置。支持 YOLOv5–YOLOv12 统一评测接口,切换不影响当前会话与历史结果的检索与导出。
在这里插入图片描述

(5)概览界面:首页聚合最近任务、数据集摘要与性能概览,可一键跳转到图片/视频/摄像头检测或导出视图。侧栏提供最近记录与文件名高亮定位,顶部导航保持“概览 → 检测 → 模型 → 导出”的清晰动线,支持跨平台路径规范与数据库自动迁移以保障持续可用。

在这里插入图片描述


2. 绪论

2.1 研究背景与意义

伴随无人零售、智能盘点与自助结算的加速落地,零售柜(含冷柜/常温货架)场景的核心痛点在于密集小目标、强反光、包装相似与频繁上/下架引起的数据分布漂移,这要求检测系统在毫秒级延迟下保持稳定的SKU级识别精度与可追溯可视化能力1。SKU-110K 等公开数据集系统性刻画了“近邻同款、极度密集”的货架镜头,为算法研究与工业评测提供了标准化基线与难例分布1。零售结算侧,RPC 数据集统一了“单品/多品”影像和结算评估指标,使“检测—计数—结算”闭环评测成为可能2。同时,Products-10K、GroZi-120 等资源推动了从“商品识别”到“货架检测”的跨任务迁移与域适配研究,为平台在新店/新SKU上的泛化提供了数据基础3。在工程实现上,结合 Flask + SocketIO 的低时延推送与 YOLO 系列的高吞吐一阶段范式,可在浏览器端实现结果可视化、交互回放与在线参数调优,满足零售业务对实时、可解释与可追溯的一体化诉求5。(arXiv)

2.2 国内外研究现状

围绕零售柜商品检测的任务特性,研究普遍报告的挑战包括:SKU 间外观细粒度相似、目标尺寸跨度与密度大、强背光/玻璃反射导致的伪影、遮挡严重,以及持续上新带来的长尾与分布漂移,这些在 SKU-110K、RPC 的构建与基线对比中被系统化呈现1。针对上述挑战,学界与工业界在数据层采用合成/域增广、难例挖掘与持续评估,在系统层通过缓存队列与并行流水降低端到端时延,并在评测上引入与业务一致的 ACO/结算指标以补充 mAP/F1 等常规检测指标2。(arXiv)
在这里插入图片描述

在算法范式方面,Anchor-free 与解耦头结构在密集小目标与细粒度区分上显示出更强的定位/分类解耦能力,代表方法包括 FCOS 的逐像素回归和 CenterNet 的中心点建模17。损失函数层面,GIoU/DIoU/CIoU/EIoU 从重叠、中心距离与宽高一致性等几何因素约束边界框回归,可加速收敛并提升遮挡与小目标的定位稳定性66。与此同时,PP-YOLOE、YOLOX 等将 Anchor-free、任务对齐标注(TAL/SimOTA)与轻量骨干结合,在 COCO 上取得较优的 mAP-FPS 权衡,验证了该范式的工业可部署性19。(arXiv)

以 YOLO 家族为主线,v5 完成工程化与生态配套,成为工业实时检测事实标准之一;v7 在“可训练免费增益”上显著扩展实时段 AP 上限;v8 在骨干/头部与增广策略上做了系统性折中并统一多任务接口;v9 提出 PGI/GELAN 改善信息流与梯度可编程性;v10 引入一致双分配实现NMS-free端到端训练并在同等 AP 下显著降低延迟与参数/FLOPs;v11 面向训练流程与结构细节进一步优化部署效率;v12 强化注意力密集建模以追求上限但在 CPU 吞吐上需权衡57911。(Ultralytics Docs)

方法 范式/家族 数据集 关键技术 优势与局限 关键指标(示例) 适用场景/难点
YOLOv7 一阶段/Anchor-based COCO 可训练“免费增益”、E-ELAN 实时段 AP 高;大模型显存占用偏高 56.8% AP;E6 56 FPS(V100) 通用实时/需较强 GPU
PP-YOLOE-l 一阶段/Anchor-free COCO CSPRepResStage、ET-Head、TAL 友好部署、无特殊算子 51.4% mAP;78.1 FPS(V100) 轻量部署/跨硬件
RT-DETR-R50 Transformer/无 NMS COCO 混合编码器、最小不确定查询 端到端、延迟稳定 53.1% AP;108 FPS(T4) 实时+无 NMS 简化后处理
YOLOv10-S 一阶段/NMS-free COCO 一致双分配、整体效率设计 同等 AP 下较 RT-DETR-R18 1.8× 速度 与 v9-C 持平时 −46% 延迟 端到端/低延迟线上服务
YOLOX-L 一阶段/Anchor-free COCO 解耦头、SimOTA 部署生态丰富 50.0% AP(V100) 密集小目标/解耦收敛

表注:各行数据分别来自其论文或官方文档/页面,硬件与测试协议见原始来源。
YOLOv7 指标来自论文摘要与官方实现页面6;PP-YOLOE-l 指标来自论文报告19;RT-DETR-R50 的 AP 与 FPS 来自 CVPR 论文与官方实现说明12;YOLOv10 的速度/延迟对比来自论文与会议页面9;YOLOX-L 的 50.0% AP 来自论文摘要20。(arXiv)

与 YOLO 并行的 Transformer 检测器强调端到端、无 NMS 的统一建模,DETR 以集合预测范式通过匈牙利匹配保证预测唯一性,而 RT-DETR 在保持精度的同时显著提升了实时推理速度,提出“DETRs beat YOLOs on real-time detection”的证据链13。传统单/双阶段方法如 RetinaNet(Focal Loss)、SSD 与 EfficientDet(BiFPN+复合缩放)在长尾抑制、多尺度融合与能效方面仍具工程价值,尤其适合边缘端对功耗/显存敏感的场景1416。部署趋势上,服务端常以 ONNX Runtime + TensorRT 打通导出与加速,结合 FP16/INT8/FP8 与 QAT/PTQ 的精度-吞吐折中;浏览器侧 WebGPU 执行提供了“本地隐私 + 低延迟”的推理通道,利于前端可视交互与轻量算力利用2123。(arXiv)

2.3 要解决的问题及其方案

要解决的问题:(1)在密集遮挡与强反光条件下维持高精度并将端到端时延控制在毫秒级;(2)面对持续上新与跨店域偏移,保持模型的环境适应性与稳定泛化;(3)提供网页端即时可视化与交互闭环,涵盖图片/视频/摄像头输入、参数动态调节、双画面对比与结果追溯;(4)保证数据处理与持久化的效率与安全,支持 CSV 导出、带框结果一键下载与 SQLite 入库。

对应方案:(1)以 YOLOv12 为核心对比 YOLOv5–YOLOv11,结合 PGI/GELAN、一致双分配与 NMS-free 训练、解耦头与 G/CIoU/EIoU 等策略,面向密集小目标优化阈值、匹配与后处理;(2)依托 PyTorch 训练与迁移学习,配合图像合成/颜色抖动/Copy-Paste 等增广与持续评估,构建跨店铺域的滚动泛化流程;(3)基于 Flask + Flask-SocketIO + HTML/CSS/JS 实现图片/视频/摄像头三源输入同步双帧可视,支持 Conf/IoU 调节、类别筛选、进度/暂停/继续/停止、检测记录跨页共享、CSV/带框一键导出;(4)采用 ONNX/TensorRT 管线、剪枝/量化/蒸馏与缓存并行,完善账号/会话与审计日志,保障实时性与数据可追溯。

2.4 博文贡献与组织结构

贡献:(1)面向零售柜的系统性综述与工程趋势总结,凝练与业务指标一致的评测要点;(2)在 YOLOv5–YOLOv12 的统一实现中完成训练与推理对比,讨论 NMS-free 与注意力建模对密集小目标的增益;(3)设计美观友好的 Web 网页界面,支持模型热切换、双画面对比与“检测记录”跨页共享;(4)提供 mAP、F1、PR 与训练曲线的完整可视化分析;(5)随文给出可复现实验工程与数据配置,便于在 PyCharm 环境中快速上手。组织结构:第 1 章概述网页功能与效果;第 3 章说明数据集处理;第 4 章阐述模型原理与设计(默认以 YOLOv12 为主线);第 5 章给出实验结果与分析;第 6 章描述系统设计与实现;第 7 章总结与展望。


3. 数据集处理

本研究构建了一个覆盖零售柜(含冷柜)场景的综合检测数据集,共 5422 张图像,按分层抽样并固定随机种子 42 划分为训练集 3796 张、验证集 1084 张与测试集 542 张,比例约为 70%/20%/10%。标注采用 YOLO 格式(每行为 class cx cy w h,坐标与尺寸归一化到 [0,1]),并保留一定比例的空柜/弱目标帧作为负样本以抑制误检。为支持网页端中文显示与报表导出,我们整理了 48 个常见 SKU 的中英文对照字典(如 Complan Classic Creme–经典奶油Glucon D Regular 1.KG–常规Nutralite CHEESY GARLIC MAYO 30g–芝士蒜蛋黄酱小),其余类目暂沿用英文名;同时对同义项与大小写/空格差异进行归一化合并,保证训练与评测口径一致。基于数据概览可见类别直方图呈现明显长尾,x/y 热力图呈近圆环分布(顶置广角视角导致边缘密集),w/h 分布集中在 0.08–0.18 区间且宽高正相关,显示“小而密、遮挡与反光显著”的真实挑战;据此,我们在划分时对低频 SKU 设定最小样本阈值,确保验证/测试集中至少保留代表性样本以降低评估方差。

Chinese_name = {"Complan Classic Creme": "经典奶油",
                "Complan Kesar Badam": "藏红花杏仁",
                "Complan Nutrigro Badam Kheer": "杏仁布丁",
                "Complan Pista Badam": "开心果杏仁",
                "Complan Royal Chocolate": "皇家巧克力",
                "EY AAAM TULSI TURMERIC FACEWASH50G": "芒果洗面奶",
                "EY ADVANCED GOLDEN GLOW PEEL OFF M. 50G": "金色面膜50G",
                "EY ADVANCED GOLDEN GLOW PEEL OFF M. 90G": "金色面膜90G",
                "EY EXF WALNUT SCRUB AYR 200G": "核桃磨砂200G",
                "EY HALDICHANDAN FP HF POWDER 25G": "檀香粉25G",
                "EY HYD-EXF WALNT APR SCRUB AYR100G": "核桃杏仁磨砂100G",
                "EY HYDR - EXF WALNUT APRICOT SCRUB 50G": "核桃杏仁磨砂50G",
                "EY NAT GLOW ORANGE PEEL OFF AY 90G": "橙子面膜90G",
                "EY NATURALS NEEM FACE WASH AY 50G": "印楝洗面奶",
                "EY RJ CUCUMBER ALOEVERA FACEPAK50G": "黄瓜面膜",
                "EY TAN CHOCO CHERRY PACK 50G": "巧克力樱桃面膜",
                "EY_SCR_PURIFYING_EXFOLTNG_NEEM_PAPAYA_50G": "印楝木瓜面膜",
                "Everyuth Naturals Body Lotion Nourishing Cocoa 200ml": "可可乳液",
                "Everyuth Naturals Body Lotion Rejuvenating Flora 200ml": "植物乳液",
                "Everyuth Naturals Body Lotion Soothing Citrus 200ml": "柑橘乳液",
                "Everyuth Naturals Body Lotion Sun Care Berries SPF 15 200ml": "防晒浆果乳液",
                "Glucon D Nimbu Pani 1.KG": "柠檬水",
                "Glucon D Regular 1.KG": "常规",
                "Glucon D Regular 2.KG": "常规2KG",
                "Glucon D Tangy orange 1.KG": "浓橙",
                "Nutralite ACHARI MAYO 300g-275g-25g-": "泡菜蛋黄酱",
                "Nutralite ACHARI MAYO 30g": "泡菜蛋黄酱小",
                "Nutralite CHEESY GARLIC MAYO 300g-275g-25g-": "芝士蒜蛋黄酱",
                "Nutralite CHEESY GARLIC MAYO 30g": "芝士蒜蛋黄酱小",
                "Nutralite CHOCO SPREAD CALCIUM 275g": "巧克力涂酱",
                "Nutralite DOODHSHAKTHI PURE GHEE 1L": "纯酥油",
                "Nutralite TANDOORI MAYO 300g-275g-25g-": "炭烤蛋黄酱",
                "Nutralite TANDOORI MAYO 30g": "炭烤蛋黄酱小",
                "Nutralite VEG MAYO 300g-275g-25g-": "素蛋黄酱",
                "Nycil Prickly Heat Powder": "痱子粉",
                "SUGAR FREE GOLD 500 PELLET": "无糖金500粒",
                "SUGAR FREE GOLD POWDER 100GM": "无糖金粉100G",
                "SUGAR FREE GOLD SACHET 50 SUGAR FREE GOLD SACHET 50": "无糖金小包",
                "SUGAR FREE GOLD SACHET 50": "无糖金小包50",
                "SUGAR FREE GRN 300 PELLET": "无糖绿300粒",
                "SUGAR FREE NATURA 500 PELLET": "无糖自然500粒",
                "SUGAR FREE NATURA DIET SUGAR 80GM": "无糖自然瘦糖80G",
                "SUGAR FREE NATURA DIET SUGAR": "无糖自然瘦糖",
                "SUGAR FREE NATURA SACHET 50": "无糖自然小包",
                "SUGAR FREE NATURA SWEET DROPS": "无糖自然甜滴",
                "SUGAR FREE NATURAL DIET SUGAR 80GM": "无糖自然瘦糖80G",
                "SUGAR FREE NATURA_ POWDER_CONC_100G": "无糖自然粉100G",
                "SUGAR FREE_GRN_ POWDER_CONC_100G": "无糖绿粉100G",
                "SUGARLITE POUCH 500G": "糖精袋500G"}

        
在这里插入图片描述

针对上述难点,数据预处理与增强遵循“稳健性优先、与部署一致”的原则:基础增强采用颜色抖动(HSV/亮度对比度)、随机裁剪与仿射/透视扰动以缓解玻璃反射与视角变化;密集场景采用 Mosaic/Copy-Paste 适度叠加并对小目标设定最小像素阈值与标签裁剪修复,提升遮挡情况下的可见性与有效样本量;尺度侧引入多尺度训练(短边 640±128 的离散采样)以覆盖从近景单品到远景多品的尺度跨度;为应对长尾分布,训练阶段启用类感知采样与损失重加权,并在数据集元信息中记录拍摄批次与机位以便后续做跨域评测。清洗流程中进一步剔除了越界/零面积框与重叠度过高的重复框,并用一致的图像去畸变与遮挡掩膜修补策略处理极端反光帧;所有处理均在离线完成并写回标准 YOLO 标签,以保证与 YOLOv5–YOLOv12 训练/推理脚本无缝衔接。
在这里插入图片描述


4. 模型原理与设计

本系统默认以 YOLOv12 为主线实现,延续一阶段 Anchor-free 与解耦检测头范式,以“轻量骨干 + 多尺度特征融合 + 任务对齐分配 +(可选)NMS-free 推理”的整体思路服务零售柜小而密、强反光与遮挡频发的场景。骨干网络在 CSP/ELAN 系列的分层残差上引入轻量注意力与可并行的卷积块,兼顾吞吐与表达;颈部采用 FPN/PAN 的上下采样路径叠合跨层语义,使小目标获得更稳定的高分辨率特征;检测头采用分类/回归解耦与 IoU-aware 置信度建模,在同等计算预算下提升密集近邻商品的区分度。为减少后处理延迟,训练期启用了“一致双分配”与边界框质量感知的端到端学习,推理侧可在 NMS 与 NMS-free 两种路径之间按设备切换。网络整体架构图如下图所示(示意 YOLO 系列通用“骨干—颈部—解耦头”形态,便于理解各模块职能):
在这里插入图片描述

在结构与特征融合上,颈部对不同尺度的特征层进行加权聚合,形式化写作

\[F_\ell'=\operatorname{Norm}!\big(\alpha_\ell F_\ell+\beta_\ell,\mathrm{Up}(F_{\ell+1})+\gamma_\ell,\mathrm{Down}(F_{\ell-1})\big), \]

其中 \(F_\ell\) 表示第 \(\ell\) 层特征,\(\mathrm{Up}(\cdot)\)\(\mathrm{Down}(\cdot)\) 分别为可学习的上/下采样,\(\alpha_\ell,\beta_\ell,\gamma_\ell\) 为融合权重并经 \(\operatorname{Norm}(\cdot)\)(如 softmax 归一化)约束以稳定训练;该式保证来自高、低层的上下文在密集货架的小目标上得到兼顾。注意力模块采用轻量多头自注意力近似以增强遮挡与反光下的判别性,表示为

\[\mathrm{MHSA}(X)=\mathrm{Concat}(h_1,\dots,h_H)W^O,\quad h_i=\mathrm{softmax}!\left(\frac{Q_iK_i^\top}{\sqrt{d}}\right)V_i, \]

其中 \(X\in\mathbb{R}^{N\times d}\) 为输入序列,\(Q_i=XW_i^Q,,K_i=XW_i^K,,V_i=XW_i^V\)\(H\) 为头数、\(d\) 为单头维度、\(W^O\) 为输出映射;在实现上以深度可分离卷积和局部注意力替代全局计算,保持边缘设备的吞吐。

在损失与任务建模上,分类采用 Focal Loss 抑制易样本并聚焦难例,

\[\mathcal{L}*{\text{cls}}=-\alpha,(1-p_t)^\gamma\log p_t, \]

其中 \(p_t\) 为正类或负类的预测概率、\(\alpha\in(0,1)\) 为类不平衡系数、\(\gamma!\ge!0\) 为调焦因子;回归采用 EIoU/CIoU 族以显式约束中心、宽高与重叠:

\[\mathcal{L}*{\text{EIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,b^\ast)}{c^2}+\frac{(w-w^\ast)^2}{w_c^2}+\frac{(h-h^\ast)^2}{h_c^2}, \]

其中 \(\mathrm{IoU}\) 为预测框与标注框的交并比,\(b,b^\ast\) 为框中心,\(\rho(\cdot)\) 为欧氏距离,\(c\) 为最小包围框对角线长度,\(w,h\)\(w^\ast,h^\ast\) 为预测与标注宽高,\(w_c,h_c\) 为包围框宽高;该设计对“外观相似且相邻”的 SKU 能更快收敛到精确定位。为实现 NMS-free 的一致性学习,训练阶段引入“正负样本双分配”(如 OTA/TAL 的质量与几何双重度量)和 IoU-aware target,推理时由头部直接输出质量感知的 top-K 框,减少后处理瓶颈;当设备算力受限时仍可切换到 CIoU-NMSWBF 保守解。

在训练与正则化方面,采用余弦退火学习率

\[\eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_0-\eta_{\min})\big(1+\cos(\pi t/T)\big), \]

其中 \(\eta_0\)\(\eta_{\min}\) 分别是初始与最小学习率,\(t\) 为当前步、\(T\) 为总步数;配合 EMA 权重滑动BatchNorm/SyncBN标签平滑缓解小批量与跨机位域偏移对稳定性的影响。数据侧以多尺度训练(短边 640±128)、颜色/曝光扰动与 Mosaic/Copy-Paste 处理遮挡和强反光;推理侧对阈值 \((\text{conf},\text{iou})\)、类别筛选与输入尺寸自适应进行软约束,使网页端的图片/视频/摄像头三源输入在“延迟—精度”之间可交互调平。整体上,以上设计与本任务的小而密、类间细粒度相似、强反光/遮挡高度对齐,既保证了 A100/TensorRT 等服务器环境的高吞吐,也兼顾了边缘 CPU/Jetson 的可部署性。


5. 实验结果与分析

本节在统一的数据与评测口径下,对 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12nYOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s 两组模型进行系统对比。评测指标包含 Precision、Recall、F1、mAP50、mAP50-95 以及端到端延迟(前处理/推理/后处理分时),硬件为 NVIDIA GeForce RTX 3070 Laptop 8 GB。训练采用 120 epoch 余弦退火,输入 640,多尺度与常见增强(HSV、仿射、Mosaic/Copy-Paste)与上一章保持一致。总体上,两组模型均实现了接近 1.0 的 PR 上沿与稳定的收敛曲线,归一化混淆矩阵呈显著对角主线,说明跨 SKU 的误检已被有效抑制;F1–Confidence 曲线显示全类最佳阈值约 0.72–0.73,我们据此将网页端默认 conf≈0.72,在不损失召回的前提下提升整体 F1(见给定曲线图)。
在这里插入图片描述

从轻量 n 组看,YOLOv12n 在精度上最均衡(F1=0.9605,mAP50=0.9833,mAP50-95=0.9028),但推理时延中位(Inf=12.47 ms);YOLOv7-tiny 的 F1 与 mAP50 最高(F1=0.9769,mAP50=0.9857),代价是更高的推理与后处理耗时(Inf=14.74 ms,Post=4.06 ms);综合 准确率/吞吐 后,YOLOv8nYOLOv6n 在 10–10.5 ms 的端到端时延下(总延迟分别 10.17 ms10.34 ms)给出接近上限的精度(mAP50≈0.973/0.965),更适合前端实时交互。值得注意的是 YOLOv10nNMS-free 路线显著降低后处理耗时(Post=0.63 ms),端到端 13.95 ms,适合多路并行与延迟稳定性要求高的部署。
在这里插入图片描述

从标准 s 组看,YOLOv7 以更大模型与 FLOPs 获得全局最佳精度(F1=0.9878,mAP50=0.9938,mAP50-95=0.9351),但端到端时延 29.52 ms 并不利于极致实时;YOLOv12s/YOLOv11s 以更低的 FLOPs(≈21 G)在 13–17 ms 区间提供 mAP50≈0.989F1≈0.98 的高水位;若追求延迟最低且后处理更稳,YOLOv10s 的 Post=0.60 ms 更容易把端到端抖动压小。结合 mAP50-95 可见,新一代解耦与质量感知头(v11/12)在高 IoU 段更具优势,适合我们零售柜“细粒度 + 小而密”的场景。
在这里插入图片描述

从训练过程看,mAP50 曲线在 20–30 epoch 进入快收敛区,YOLOv12n/12s 的早期上升更陡,提示其在注意力与特征融合上更易于学习细节;PR 曲线对比显示 v11/v12 在高召回端(R→1)保持了更高的精度,阈值敏感性较低,利于网页端动态阈值调节。混淆矩阵中少量残余误差主要集中在包装相近 SKU,误检模式以“同品牌不同口味/克数”互混为主;针对这类误检,建议在数据侧补充跨角度与背光样本、在模型侧开启标签平滑与更高分辨率微调,并在系统侧引入“同货位时序一致性”约束以削弱偶发误检。
在这里插入图片描述

为了便于复现与部署选型,下面给出 n 组关键指标和端到端延迟的汇总表(总延迟=Pre+Inf+Post):

Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) Total(ms) F1 mAP50 mAP50-95
YOLOv5nu 2.6 7.7 1.90 7.73 1.31 10.94 0.9203 0.9598 0.8621
YOLOv6n 4.3 11.1 2.17 6.78 1.39 10.34 0.9301 0.9653 0.8812
YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 21.08 0.9769 0.9857 0.8828
YOLOv8n 3.2 8.7 1.95 6.83 1.39 10.17 0.9370 0.9726 0.8850
YOLOv9t 2.0 7.7 1.87 16.51 1.29 19.67 0.9371 0.9627 0.8767
YOLOv10n 2.3 6.7 2.08 11.24 0.63 13.95 0.8927 0.9499 0.8737
YOLOv11n 2.6 6.5 2.11 9.44 1.42 12.97 0.9319 0.9690 0.8776
YOLOv12n 2.6 6.5 1.91 12.47 1.37 15.75 0.9605 0.9833 0.9028

基于以上结果,我们在网页实时演示中给出两套推荐:若优先极致实时与低抖动,选择 YOLOv8n(≈10.17 ms,mAP50≈0.973)YOLOv6n;若业务对精度更敏感,且 GPU 资源允许,可选 YOLOv12n/YOLOv7-tiny;在 s 组中,追求上限可用 YOLOv7,而 YOLOv12s/YOLOv11s 则是精度与延迟的更佳折中。实测 YOLOv10n/10s 的 NMS-free 设计能将 Post 显著压缩,建议在多路相机与高并发任务时优先考虑。

图 1 n 组模型的 F1 与 mAP50 双条形图
(图注:蓝色为 F1,橙色为 mAP50;纵轴 0–1,横轴为模型。)

在这里插入图片描述

图 2 s 组模型的 F1 与 mAP50 双条形图
(图注:蓝色为 F1,橙色为 mAP50;纵轴 0–1,横轴为模型。)

在这里插入图片描述

小结与部署建议。 在给定 GPU 上,n 组中若以“网页端实时交互 + 稳定帧率”为目标,优先推荐 YOLOv8n/YOLOv6n;若目标是“高精度盘点/审计”,推荐 YOLOv12nYOLOv7-tinys 组中精度上限由 YOLOv7 领跑,但工程折中更建议 YOLOv12s/YOLOv11s。在多路并发或 CPU/GPU 混部场景,优先选择 YOLOv10n/10s 以获得稳定且极低的后处理时延,并结合本系统的 Conf/IoU 动态调节、类别筛选、双帧对比与 CSV 导出 完成现场优化与可追溯闭环。


6. 系统设计与实现

6.1 系统设计思路

本系统采用“四层分工、事件驱动”的分层架构:表现与交互层在浏览器端以 HTML/CSS/JS 实现图片/视频/摄像头三源输入与结果可视化,SocketIO 负责低时延双帧(原始帧与叠框帧)同步推送,前端参数组件(Conf/IoU、类别筛选、播放控制)以会话作用域生效;业务与会话管理层在服务端维护鉴权、速率限制、参数一致性与任务路由,将前端事件规范化为推理任务(含帧 ID、源 ID、阈值、类别掩码等)并回传统计与审计日志;推理与任务调度层负责多源输入的解码与缓存、预处理(尺寸自适应、归一化、去畸变)、YOLO 推理(PyTorch/ONNX/TensorRT 可插拔)、后处理(NMS 或 NMS-free、追踪/计数、度量计算)与结果装配;数据持久化层以 SQLite 记录会话、账户、权重与运行时配置、检测记录与导出元数据,支持按会话/时间/文件名检索与批量归档。

为保障实时性与一致性,系统在视频/摄像头任务中采用“同步双帧管道”:对同一帧生成 raw_frameoverlay_frame,以统一的 frame_id、时戳与来源进行绑定,并在一个 SocketIO 事件中成对发送,从而避免浏览器端错位渲染;参数侧采用“会话级快照”,当用户修改 Conf/IoU/筛选或切换权重时,业务层立即广播参数变更并打入任务队列的帧头,确保服务端与前端的推理配置一致。推理队列采用小粒度批处理与优先级调度(摄像头实时帧优先,其次是视频、最后是离线图片),GPU 端支持流并行与异步拷贝;在高并发时自动降采样与帧丢弃策略仅作用于非关键帧以保持交互流畅。

可扩展性方面,系统支持“权重热切换”:权重管理器校验新权重的架构/类别映射并在线加载至独立推理上下文,切换成功后以原子方式替换当前模型并同步刷新前端类别标签;统计与导出统一由“结果汇聚器”管理,支持 CSV 导出、带框图片/视频一键下载与 MP4 缓冲导出,且所有导出动作写入审计表以便溯源。数据库层提供轻量自动迁移以适配字段变更;日志/监控接口暴露队列长度、GPU/CPU 占用与端到端延迟分布,便于线上运维与性能回归。


图 6-1 系统流程图

在这里插入图片描述

图注:从会话建立到三源输入经过预处理、推理与后处理,结果以同步双帧推送到前端形成交互闭环;导出与模型切换通过业务层协调,所有动作写入持久化以便溯源。


图 6-2 系统设计框图

在这里插入图片描述

图注:图中分为四层:浏览器端负责渲染与交互;业务层承担会话与任务治理;推理层对多源帧完成预/后处理与推理;数据层提供配置、记录与审计的一致性支撑


6.2 登录与账户管理

在这里插入图片描述

用户可登录/注册/一次性跳过三种入口;成功进入后,系统按角色装载个性化配置(默认阈值、类别筛选、主题等)与最近检测记录,并以会话约束导出与权重管理权限;资料修改即时写回数据库并刷新会话,注销将清空服务端令牌并回到登录页,从而与主检测流程在权限与审计上形成闭环。


代码下载链接

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

在这里插入图片描述

在这里插入图片描述

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

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

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

完整安装运行教程:

        这个项目的运行需要用到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. 结论与未来工作

本文围绕“零售柜商品识别实时检测平台”完成了从数据到算法、从推理到 Web 交互的一体化实现与评测。基于 5422 张图像的数据集与统一训练配置,YOLOv5–YOLOv12 的多版本模型在 GPU 端均表现出稳定的 PR 上沿与对角主线混淆矩阵;其中轻量 n 组在 10–16 ms 量级的端到端延迟内取得 mAP50≈0.96–0.99、F1≈0.92–0.98 的水平,YOLOv12n在 mAP50-95 上更具优势,YOLOv7-tiny在 F1 与 mAP50 上更突出,而 YOLOv8n/YOLOv6n在实时性与精度间取得更均衡的折中;标准 s 组进一步推高上限,YOLOv7/YOLOv12s在 mAP50、F1 与收敛速度上表现最佳。工程侧,Flask + Flask-SocketIO 的“同步双帧”推送、模型热切换、参数会话化与 CSV/带框导出,使图片/视频/摄像头三源输入在浏览器中实现低延迟可视化与可追溯闭环;ONNX/TensorRT 可插拔推理与轻量化后处理(含 NMS-free 选项)在多路并发下有效降低抖动。整体而言,平台在“小而密、细粒度、强反光/遮挡”的零售柜场景中达成高精度、低延迟、可交互的目标,并具备良好的迁移与可复用性。

未来工作将围绕模型、系统与数据三条主线继续演进。模型侧将探索更强的结构化剪枝与蒸馏/量化(INT8/FP8/QAT)与细粒度类别的对比学习,以提升 mAP50-95 与边缘端吞吐;在保持实时性的前提下,引入多模态先验(包装文字/条码/货位 ID)与时序一致性约束,缓解同品牌不同口味的互混。系统侧计划完成Docker 化与多实例水平扩展,引入 分布式任务队列WebRTC 低时延推流,完善角色权限/审计i18n/多租户,并为前端提供阈值与输入分辨率的自适应调参;NMS-free 与跟踪计数将按场景自动切换,结合熔断与降采样策略进一步稳定端到端时延。数据侧将建设主动学习与持续标注流水线,做数据治理与漂移监测(类目变更、相机换型、光照季节性等),并打通“线上误检回灌—离线再训练—灰度发布”的闭环。随着以上工作推进,平台将更好地支撑无人零售的结算、盘点与损耗审计等关键业务场景,并为跨业态商品识别提供可复用的工程基座。


参考文献(GB/T 7714)

1 Goldman E, Herzig R, Eisenschtat A, et al. Precise Detection in Densely Packed Scenes[EB/OL]. 2019. (arXiv)
2 Wei X-S, Cui Q, Yang L, et al. RPC: A Large-Scale Retail Product Checkout Dataset[EB/OL]. 2019. (arXiv)
3 Bai Y, Chen Y, Yu W, et al. Products-10K: A Large-scale Product Recognition Dataset[EB/OL]. 2020. (10K Products)
4 GroZi-120 Database[EB/OL]. 2007. (中文可读页面)(Grozi)
5 Ultralytics. Comprehensive Guide to YOLOv5 [EB/OL]. 2025. (Ultralytics Docs)
6 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)
7 Ultralytics. Explore YOLOv8 Overview[EB/OL]. 2023–2025. (Ultralytics Docs)
8 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning What You Want to Learn Using PGI[C]//ECCV 2024. (ECVA)
9 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024. (arXiv)
10 Ultralytics. YOLO11 Overview[EB/OL]. 2025. (Ultralytics Docs)
11 Ultralytics. YOLO12: Attention-Centric Object Detection[EB/OL]. 2025. (Ultralytics Docs)
12 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection (RT-DETR)[C]//CVPR 2024. (CVF Open Access)
13 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[EB/OL]. 2020. (arXiv)
14 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[EB/OL]. 2017. (arXiv)
15 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. 2016. (arXiv)
16 Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[EB/OL]. 2019/2020. (arXiv)
17 Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. 2019. (arXiv)
18 Zhou X, Wang D, Krähenbühl P. Objects as Points (CenterNet)[EB/OL]. 2019. (arXiv)
19 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. (arXiv)
20 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021. (arXiv)
21 ONNX Runtime. Using WebGPU (Web Execution Provider)[EB/OL]. 2025. (ONNX Runtime)
22 NVIDIA. TensorRT Accuracy Considerations & Reduced Precision[EB/OL]. 2025. (NVIDIA Docs)
23 PyTorch. Quantization API(torch.ao.quantization)[EB/OL]. 2025. (PyTorch Documentation)
24 王振杰. 基于深度学习的货架商品目标检测[D]. 浙江工业大学, 2020. (中文)(Wanfang Data)
25 某高校硕士论文. 基于深度学习的货架商品识别方法及应用研究[D]. 2021. (中文)(zhangqiaokeyan.com)

注:表格与论述中的性能数值均来源于对应论文/官方文档;不同硬件与评测协议会导致绝对数值差异,请以原文为准。

posted @ 2026-04-22 14:38  逗逗班学Python  阅读(13)  评论(0)    收藏  举报