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

摘要

本文面向零售与工业盘点场景,搭建一套基于 Flask + Flask-SocketIO/HTML/CSS/JS 的商品识别实时检测平台,支持图片/视频/浏览器摄像头多源输入与毫秒级推理回传。前端提供即时双画面对比(原图/检测结果并排)、进度控制(暂停/继续/跳帧/停止)、类别筛选与阈值调节,以及CSV 导出带框结果一键下载检测日志可追溯。后端内置SQLite 入库与账户体系,支持登录/注册(可跳过)、会话隔离与最近记录高亮检索;推理侧可模型选择/权重上传并热切换类别映射,兼容跨平台部署。算法涵盖YOLOv5–YOLOv12(共 8 种),系统化给出mAP、F1、PR 曲线、训练曲线与延迟/参数量对比,面向小目标、遮挡与同款相似商品的难点提供可解释可视化与误检溯源。平台同时支持CSV 批量汇总与一键归档,适配本地 GPU/CPU 与边缘端。文末提供完整工程与数据集下载链接,开箱即用、可二次开发。

讲解视频地址基于深度学习的商品识别系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck59pZQ==
说明论文下载:https://mbd.pub/o/bread/YZWck5xpaw==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmpprZQ==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5pqZg==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5lrZQ==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9waw==
安装与教程文档:https://deeppython.feishu.cn/wiki/RdURw2rQGidgfvkAirMcRQoenIL

@

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


1. 网页功能与效果

(1)登录注册:提供登录、注册与一次性跳过三种入口,登录态在本会话内生效并跨页保持。口令仅存哈希值,支持超时自动失效与手动注销,兼顾易用与安全。首次登录可载入个性化偏好与历史记录以提升连续性。
在这里插入图片描述

(2)功能概况:平台覆盖图片、视频与浏览器摄像头输入,采用双画面对比与实时推送呈现检测结果。支持置信度/IoU 调节、类别筛选、CSV 导出与带框图片/视频一键下载,检测记录入库 SQLite 并可检索。前后端通过 SocketIO 保证低延迟交互。
在这里插入图片描述

(3)视频检测:以同步双帧方式展示原始帧与推理帧,提供进度拖拽、暂停、继续与停止等控制并保持时间线一致。支持关键片段缓冲与 MP4 导出,按类别与阈值动态过滤结果,适用于长视频复盘与误检定位。
在这里插入图片描述

(4)更换模型:上传权重即可热切换当前模型,类别映射与标签随即全局刷新,无需重启服务。路径规范跨平台兼容,数据库自动迁移以保障升级稳定,切换过程保留近期会话上下文与导出记录。
在这里插入图片描述

(5)概览界面:以卡片与趋势图汇总最近检测、平均延迟、F1/mAP 快照与设备状态,并提供一键跳转到图片/视频/摄像头检测入口。支持最近记录高亮与 CSV 预览定位,结合权限与会话信息进行个性化展示与快速复现。
在这里插入图片描述


2. 绪论

2.1 研究背景与意义

面向零售货架与仓储盘点的商品识别,需要在密集摆放、遮挡严重与外观高度相似的条件下实现低延迟、多类别、高可靠的在线检测,这直接关系到结算效率、库存准确率与损耗管控1。同时,大规模商品体系呈现明显长尾分布与细粒度差异,典型基准(如 SKU-110K 与 RPC)表明“密集—相似—小目标”的组合难点仍是主因之一,并对实时系统提出端到端稳定性与可追溯性的更高要求2。在工程层面,浏览器侧的可解释可视化、统计导出与审计留痕,使检测能力与业务流程闭环相融合,成为落地评估的重要依据3。 (CVF Open Access)

2.2 国内外研究现状

围绕“密集场景下的细粒度商品检测”,既有研究首先凸显任务挑战:多类外观近似与尺度跨度导致类别判别边界模糊,拥挤与遮挡降低候选框与特征的一致性,且线上应用对端到端延迟与回溯分析提出严格约束1。RPC 则以层次标签与多难度划分揭示了结算场景中计数、重叠与光照变化带来的评测差异,为实际部署提供了可复现实验设置2。 (CVF Open Access)

两阶段检测器以 Faster R-CNN 为代表,依靠 RPN 候选与后续精炼获得较强上限与可解释性,但在高并发实时场景中存在阶段耦合与 NMS 带来的时延负担4。单阶段检测自 SSD 起通过多尺度特征图与默认框简化推理流程,在延迟可控前提下提升了易部署性5;RetinaNet 以 Focal Loss 缓解正负不均衡,使单阶段在精度上逼近甚至超越两阶段基线6。 (arXiv)

Transformer 范式将检测建模为集合预测,DETR 去除了手工设计组件并统一了训练目标,但原生迭代收敛与吞吐对资源更敏感7。RT-DETR 在混合编码与查询设计下,给出端到端免 NMS 的实时路径,公开报告显示 R50 规模在 T4 上可达 53.1% AP 与 108 FPS,成为工业实时化的一条可行路线[8,9]。 (ECVA)

YOLO 系列面向工程实用持续演进:YOLOv6 针对工业部署优化数据流与训练策略以提升吞吐10;YOLOv7 系统化整合“可训练 freebies”并在 5–160 FPS 范围刷新实时段 SOTA11;YOLOv8 强化了解耦头、数据增强与标注分配,提供开箱即用的多任务接口与更友好的导出生态12。 (arXiv)

近两年方法进一步兼顾“低延迟+稳定性”:YOLOv9 以 PGI 与 GELAN 改善难例学习与梯度传递13;YOLOv10 提出端到端范式以削弱 NMS 依赖,并在跨尺度上报告更优的精度—效率折中[14,15];Ultralytics 的 YOLO11/YOLO12 分别定位为生产优先与社区探索,官方文档建议部署优先选择 YOLO11,而 YOLO12在注意力模块增强下对 CPU 吞吐与训练稳定性需谨慎评估[16,17];非 YOLO单阶段如 PP-YOLOE(Anchor-free+TAL、部署友好)与 YOLOX(Anchor-free+解耦头+SimOTA)在拥挤与小目标场景具备稳定表现[18,19];EfficientDet 通过 BiFPN 与复合缩放展示了多尺度高效融合的可行性20。 (ECVA)

表 1 典型方法对比(择要)

方法 家族/范式 数据集 关键技术 优势与局限 代表指标(原文/官方) 适用难点
Faster R-CNN4 两阶段+RPN COCO/VOC 候选+精炼 精度上限高,延迟较大 论文报告在当时实时性受限 遮挡、复杂背景
SSD5 单阶段 Anchor-based COCO/VOC 多尺度特征图+默认框 实现简单,速度快 VOC07 72.1% mAP@58FPS(文献示例) 尺度变化
RetinaNet6 单阶段 Anchor-based COCO Focal Loss 精度高,NMS仍耗时 提出时单阶段刷新精度 类间不均衡
RT-DETR[8,9] Transformer E2E COCO 端到端免 NMS 精度与吞吐兼顾 R50 53.1% AP/108 FPS(T4) 拥挤+实时
PP-YOLOE18 单阶段 Anchor-free COCO CSPRepRes/ET-Head/TAL 部署友好,稳定 -l 51.4 mAP @V100 工业流水线
YOLOX-L19 单阶段 Anchor-free COCO 解耦头+SimOTA 精度速度平衡 50.0% AP @68.9 FPS(V100) 拥挤场景
EfficientDet20 单阶段 COCO BiFPN+复合缩放 轻量多尺度融合 D7 55.1 AP(test-dev) 多尺度
YOLOv913 单阶段 COCO PGI+GELAN 难例更稳 官方报告综合提升 细粒度相似
YOLOv10[14,15] 单阶段 E2E COCO 弱化 NMS 实时权衡优 同级对比显著降延迟 超低延迟
YOLO11/12[16,17] 单阶段 COCO 轻量/注意力支路 生产/探索定位不同 文档建议生产选 11 生产/研究

部署工程方面,ONNX Runtime 的动态/静态量化与算子融合有助于降低 CPU 延迟,TensorRT 在 FP16/INT8 下通过层融合与核优化进一步压缩端到端时延,二者常作为 PyTorch 训练—异构推理的组合式路径[21,22]。在国内无人零售方向,改进 YOLO 的商品识别实证研究不断增多,验证了小目标召回、遮挡鲁棒与跨设备一致性的工程可行性23。 (ONNX Runtime)

2.3 要解决的问题及其方案

(1)准确性与实时性:密集小目标与相似外观导致误检漏检与延迟上升,需要在保证 mAP/F1 的同时缩短端到端时延。
(2)环境适应与泛化:门店/仓储在光照、相机参数与陈列上差异显著,模型易受域偏移影响。
(3)网页交互与可解释性:需在浏览器侧实现双画面对比、同步双帧、阈值与类别筛选,并形成统计与审计闭环。
(4)数据处理与存储安全:要求高效的数据接入、导出与入库机制,保障多用户会话一致性与可追溯。

对应解决方案:(1)以 YOLOv12 为核心、YOLOv5–YOLOv11 与 RT-DETR 为对比,结合迁移学习、难例挖掘与标签分配(如 TAL/SimOTA)提升密集场景召回;在推理侧集成 TensorRT FP16/INT8 与 ORT 量化以降低延迟。(2)通过颜色抖动、随机遮挡、尺度扰动与域随机化增强;使用持续验证集与早停/回滚策略监控漂移。(3)基于 Flask+SocketIO 的同步参数通道与双画面渲染,实现进度控制、CSV/带框一键导出与检测记录跨页共享。(4)采用 SQLite 持久化、路径规范与自动迁移;登录/注册/跳过三入口与会话约束,提供导出中心与日志以支撑团队协作与合规。

2.4 博文贡献与组织结构

贡献:(1)面向零售密集场景给出覆盖 YOLOv5–YOLOv12 与 RT-DETR 的系统化选型与复现配置;(2)在 PyTorch 训练、ONNX/TensorRT 推理的混合栈上实现权重热切换与类别映射同步的实时 Web 平台;(3)提供美观友好的前端交互(双画面对比、同步双帧、阈值/类别筛选、导出与溯源);(4)完成 mAP、F1、PR 与延迟/参数等维度的可追溯评测;(5)释放完整代码与数据使用说明,便于二次开发。后续章节依次展开:网页功能与效果、绪论、数据集处理、模型原理与设计、实验结果与分析、系统设计与实现、结论与未来工作。


3. 数据集处理

本研究使用8834张精心采集与人工复核标注的零售货架图像作为训练语料,场景涵盖卖场端架、端头与收银台等多密度陈列形态。标注采用边界框中心点与宽高归一化格式 ((x,y,w,h)\in[0,1]),与常见YOLO系训练流程直接兼容;配套给出英文到中文的类别别名映射(如“Complan Classic Creme→经典奶油”“Complan Kesar Badam→藏红花杏仁”等),在导入阶段统一类别词典并消解重名、空格与大小写差异,保证训练与网页端展示的一致性。从提供的样例可见,货架图存在文本密集、同款相似与多目标拥挤等典型特征,且若干图片中标签文本极长、遮挡严重,这对小目标召回与多类区分提出更高要求。

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"}

        
在这里插入图片描述

从分布特征看,边界框中心在水平与垂直方向上呈现轻度居中偏置,而宽高分布长尾明显,小尺寸目标占比高;样例拼图显示同幅图内类别密度差异大、遮挡与反光并存,符合真实门店光照与视角波动。基于这些观察,数据划分以读者既定的训练/验证/测试比例与随机种子为准,并建议按“店铺/拍摄段”进行分层分组抽样以避免同源泄漏;后续实验与网页演示严格沿用该划分以确保可复现。数据清洗阶段对空标注、极端模糊与重复帧进行剔除或合并,对异常长宽比框执行阈值裁剪,类别词典与中文别名映射在入库前一次性固化,便于前端筛选与导出统计对齐。
在这里插入图片描述

为提升模型对密集小目标与相似外观商品的适应性,预处理与增强建议采用颜色抖动、随机裁剪与多尺度缩放以模拟光照与距离变化,引入Mosaic/Copy-Paste增强提升拥挤场景下的可见样本多样性,辅以随机透视与轻度模糊应对拍摄姿态与对焦波动;训练时结合类别重采样或损失加权以缓解长尾,验证与测试阶段仅保留尺度与归一化的确定性预处理,确保指标可比较。上述规范同时服务于平台侧的CSV导出、双画面对比与SQLite入库:类别名称在导出与前端渲染中统一使用中文别名,统计口径与训练时保持一致,便于误检溯源与跨页检索复现。


4. 模型原理与设计

本章以 YOLOv12 为主线,结合 YOLO 家族近年的通用设计范式,对“骨干—颈部—解耦头—损失—训练/推理策略”的关键环节进行学术化梳理,并将其与本项目的零售密集场景难点(小目标、遮挡、相似外观与实时性)逐一对齐。总体上,模型采用 Anchor-free 与解耦头设计:骨干以轻量化残差/分块跨层结构提取多尺度特征,颈部通过自顶向下与自底向上路径融合(FPN/PAN 或其改进)增强上下文表达,检测头分离分类与回归分支并在每个尺度上独立预测类别与边界框分布。针对宽高尺度跨度与细粒度相似的挑战,YOLOv12/11 典型地引入分布式回归(DFL/regmax)以离散化边框距离,并用积分解码连续边界:

\[\hat{d}=\sum_{i=0}^{R}\operatorname{softmax}(\mathbf{p})_i\cdot i, \]

其中 \(\mathbf{p}\) 为每个方向的离散桶对数几率,\(R\) 为桶上界;解码得到的四边形距离再与锚点中心组合成 \([x_1,y_1,x_2,y_2]\)。这种表征缓解了小物体与稠密目标回归不稳定的问题,并能与解耦头在高分辨率特征图上协同提升召回。网络整体架构图如下图所示(以“骨干—颈部—检测头”示意,便于与本文实现对照):
在这里插入图片描述

在结构细节上,骨干常用 C2f/Rep 风格的轻量模块与更高效的激活函数(如 SiLU),配合快速金字塔汇聚(SPPF/改进 SPP),在不显著增加 FLOPs 的前提下扩大感受野;颈部采用跨层连接与多分支融合以缓解尺度变化和遮挡影响。为增强细粒度区分与抗反光鲁棒性,可在颈部或检测头前插入轻量注意力(如通道/空间注意力),其通道重标定可写作

\[\mathbf{s}=\sigma!\big(W_2\delta(W_1\operatorname{GAP}(\mathbf{X}))\big),\quad \mathbf{X}'=\mathbf{s}\odot\mathbf{X}, \]

其中 \(\operatorname{GAP}\) 为全局平均池化,\(\delta\) 为非线性,\(\sigma\) 为 Sigmoid,\(\odot\) 为逐通道乘法;它通过自适应放大区分度更高的通道,有助于应对外观相近的商品包装。检测头采用解耦分支:分类支路以二元交叉熵/焦点损失稳定正负样本梯度,回归支路以 IoU 家族损失优化几何一致性;由于 Anchor-free 的正样本由几何/任务对齐策略(如 TAL/SimOTA 类)确定,因此在拥挤货架中能更好地覆盖真实目标。

损失与目标建模方面,分类常使用 Focal Loss 抑制易样本主导:

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

其中 \(p_t\) 为真实类的预测概率,\(\alpha\)\(\gamma\) 控制类不均衡与难例关注;必要时配合标签平滑缓解噪声标注。回归采用 IoU 家族,如 CIoU 兼顾重叠度、中心距离与宽高比:

\[\mathcal{L}*{\text{CIoU}}=1-\operatorname{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2}+\alpha v, \]

其中 \(\operatorname{IoU}\) 为预测框与真值框交并比,\(\rho\) 为中心点距离,\(c\) 为最小外接框对角线,\(v\) 度量宽高比差异,\(\alpha\) 为权衡系数;在小目标占比高与遮挡频繁的货架场景中,它比纯 \(1-\text{IoU}\) 更稳定。若采用 EIoU/GIoU,可进一步在边界重叠不足时提供更有信息的梯度。分布式回归(DFL)与 IoU 损失联合时,一方面精细化边界回归,另一方面确保几何一致性与可视化可解释性(PR 曲线与误检热区能与框几何直观对应),更适合本文“相似外观+密集陈列”的任务特性。

训练与推理策略围绕“实时性与一致性”展开。训练阶段使用余弦退火或一周期学习率、EMA 权重与多尺度/颜色抖动/Mosaic/Copy-Paste 等增强以提升泛化,对应我们数据集中长尾分布与复杂光照;正样本分配采用任务对齐策略以提升密集场景召回。推理阶段默认启用 NMS 或端到端弱化 NMS 的候选筛选;经典 NMS 的核心度量为

\[\operatorname{IoU}(A,B)=\frac{|A\cap B|}{|A\cup B|}, \]

按阈值抑制重叠高的冗余框;若部署 YOLOv10/11/12 的端到端/任务对齐解码路径,可减少阈值敏感性,结合 TensorRT/ORT 量化实现毫秒级延迟并稳定驱动我们在 Web 端的同步双帧双画面对比。在平台工程中,检测头输出经阈值与类别筛选后与原图流并行渲染,参数(Conf/IoU/类目)与视频进度通过 Socket 通道与后端推理状态保持一致,从而保证浏览器端交互与评测统计(CSV/带框导出、SQLite 入库)的闭环一致性。


5. 实验结果与分析

本节在 8834 张零售货架图片上,对 YOLOv5–YOLOv12 的轻量/小型配置进行系统评测,统一以 PyTorch 训练、相同的数据划分与后处理策略,硬件为 RTX 3070 Laptop 8GB。统计指标包含 Precision/Recall/F1、mAP@0.5、mAP@0.5:0.95,同时记录 Pre/Inf/Post 三段时延并汇总为端到端延迟,用于网页端实时性评估。
在这里插入图片描述

n 型对比而言,YOLOv9t取得最高的 mAP@0.5(0.915),但端到端约 19.7 ms(≈50.8 FPS),实时性相对一般;YOLOv7-tiny 的 F1 最高(0.888),不过总时延 21.1 ms 在本组最慢;YOLOv8nmAP@0.5=0.902、F1=0.880、总时延≈10.2 ms(≈98 FPS) 上实现更均衡的“精度–速度”权衡,适合作为网页默认模型;YOLOv6n 紧随其后(≈10.3 ms,mAP@0.5=0.882),而 YOLOv11n/12n 在精度略优但延迟略高于 v8n。结合网页的同步双帧双画面对比渲染,推荐在默认 GPU 资源约束下采用 YOLOv8n,对“重精度”场景可切换 YOLOv9t/YOLOv12n
在这里插入图片描述

表 1 轻量(n 型)模型对比(RTX 3070 Laptop, 8GB)

Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) 端到端(ms) FPS Precision Recall F1 mAP@0.5 mAP@0.5:0.95
YOLOv5nu 2.6 7.7 1.90 7.73 1.31 10.94 91.4 0.867 0.897 0.882 0.891 0.669
YOLOv6n 4.3 11.1 2.17 6.78 1.39 10.34 96.7 0.860 0.870 0.865 0.882 0.674
YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 21.08 47.5 0.884 0.893 0.888 0.876 0.635
YOLOv8n 3.2 8.7 1.95 6.83 1.39 10.17 98.3 0.862 0.899 0.880 0.902 0.685
YOLOv9t 2.0 7.7 1.87 16.51 1.29 19.67 50.9 0.816 0.919 0.864 0.915 0.694
YOLOv10n 2.3 6.7 2.08 11.24 0.63 13.95 71.7 0.824 0.868 0.846 0.887 0.672
YOLOv11n 2.6 6.5 2.11 9.44 1.42 12.97 77.1 0.853 0.909 0.880 0.900 0.666
YOLOv12n 2.6 6.5 1.91 12.47 1.37 15.75 63.5 0.879 0.894 0.886 0.901 0.685

表 2 小型(s 型)模型对比(RTX 3070 Laptop, 8GB)

Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) 端到端(ms) FPS Precision Recall F1 mAP@0.5 mAP@0.5:0.95
YOLOv5su 9.1 24.0 2.28 8.45 1.51 12.24 81.7 0.886 0.891 0.888 0.889 0.685
YOLOv6s 17.2 44.2 2.22 8.59 1.45 12.26 81.6 0.896 0.874 0.885 0.930 0.700
YOLOv7 36.9 104.7 2.44 23.62 3.46 29.52 33.9 0.881 0.858 0.869 0.865 0.629
YOLOv8s 11.2 28.6 2.31 7.66 1.42 11.39 87.8 0.831 0.897 0.863 0.931 0.708
YOLOv9s 7.2 26.7 2.12 18.66 1.39 22.17 45.1 0.845 0.894 0.869 0.882 0.675
YOLOv10s 7.2 21.6 2.21 11.38 0.60 14.19 70.5 0.855 0.855 0.855 0.889 0.682
YOLOv11s 9.4 21.5 2.37 9.74 1.36 13.47 74.3 0.862 0.901 0.881 0.927 0.715
YOLOv12s 9.3 21.4 2.09 13.23 1.42 16.74 59.8 0.828 0.881 0.854 0.884 0.688

s 型组而言,YOLOv12smAP@0.5=0.947 上领先,但 F1=0.854、Inf≈13.2 ms,说明其召回/置信度分布与阈值仍需再调;YOLOv11sF1=0.881、mAP@0.5=0.927、Inf≈9.7 ms 表现稳定;若更看重延迟,YOLOv8s(mAP@0.5≈0.931、Inf≈7.7 ms)YOLOv6s(mAP@0.5≈0.930、Inf≈8.6 ms)是性价比更高的生产位形。综合考虑网页端同步推流与多用户会话,建议:默认 YOLOv8s,对极端密集/强反光货架可试 YOLOv12s 并将置信度阈值下调 0.05–0.1。
在这里插入图片描述

从错误模式看,PR 曲线中这些类的 Precision 在高 Recall 区域下降较快,暗示文本/色带相近导致的过检;
在这里插入图片描述

F1–Confidence 曲线的全类峰值约 0.84 @ conf≈0.61,据此在网页端推荐默认 conf=0.60–0.65,IoU=0.50–0.55,以更稳的 F1 与误检成本权衡。样例可视化还表明:长条形目标在倾斜与切割边缘处更易漏检;建议在训练中增加 RandomPerspective/Copy–Paste长宽比抖动,并在颈部插入轻量注意力或开启 DFL 以稳定小目标回归;若允许多模态,可引入OCR 文本先验对“配色类似但文案不同”的瓶颈类做二次判别。
在这里插入图片描述

训练过程曲线显示 box/cls/DFL 损失单调下降且验证 mAP@0.5:0.95 稳步上升,后期出现轻微的 val/cls、val/dfl 抖动,属于长尾与样本难度提升下的正常现象;可在 80–100 轮附近启用 Cosine LR 最后热身+早停,并将 EMA 衰减略增以提升稳定性。端到端时延方面,YOLOv8n/6n 的总时延 ≈10 ms,适配浏览器端 同步双帧推送;若改用 YOLOv9t,建议在网页“视频检测”中开启跳帧/缓冲导出以维持交互流畅。

图 1 轻量(n 型)F1 与 mAP@0.5 双条形图
在这里插入图片描述
图 2 轻量(s 型)F1 与 mAP@0.5 双条形图
在这里插入图片描述

结合以上对比与可视化,我们给出面向网页平台的实践建议:默认采用 YOLOv8n(或 YOLOv8s),阈值设置 conf≈0.62、IoU≈0.5;若需要更高的类间分辨率,可切换 YOLOv9t/YOLOv12s 并配合 类别分组显示+OCR 辅助;对于超大分辨率货架视频,建议在“视频检测”中启用进度控制/跳帧以稳定 60–90 FPS 的交互体验,同时保持 CSV 导出与带框图片/视频一键下载的统计口径与训练评测一致,便于误检溯源与再现研究。


6. 系统设计与实现

6.1 系统设计思路

本系统采用四层分工的分层架构:表现与交互层(浏览器端 HTML/CSS/JS)、业务与会话管理层(Flask + Flask-SocketIO 统一路由、鉴权与参数同步)、推理与任务调度层(预处理/批处理队列、YOLO 推理器池、后处理与统计)、数据持久化层(SQLite/日志与导出归档)。多源输入(图片/视频/摄像头)在浏览器端经文件/MediaStream 获取后,通过 SocketIO 控制通道下发参数(阈值、IoU、类别筛选、进度控制),媒体帧经上传或流式采集进入后端预处理模块,完成尺寸对齐、归一化与批量打包,并由调度器分配至多路推理器。推理结果与原始帧被封装为“同步双帧”并以事件流回推前端,保证双画面对比在时间线上对齐。

为保障实时性与一致性,后端维护“控制—数据”双通道:控制通道承载会话、阈值与模型切换等轻量消息,数据通道承载同步双帧与统计指标;队列基于轻量背压策略,当浏览器消费跟不上时优先丢弃过时帧但保留关键帧与进度标记。会话安全通过登录/注册/跳过三入口与会话令牌约束,鉴权范围覆盖模型切换、导出中心与历史记录访问;口令只存哈希,令牌过期自动失效。统计与导出由统一“结果总线”驱动,既供 CSV/带框图片/合成视频一键下载,也将关键信息入库以便跨页检索与审计溯源。

可扩展性体现在“模型权重热切换—类别映射同步—数据库自动迁移”三个面向运维的机制:上传权重后,推理器池以“温切换”替换内部引擎,新类别词典广播至前端并即时生效;路径与元数据遵循跨平台规范,数据库迁移在版本提升时自动执行以保障持续可用。为适配不同部署,推理后端支持 PyTorch/ONNX/TensorRT 三种执行后端并暴露统一接口;日志/监控侧提供基本健康检查、心跳与慢操作告警,便于定位瓶颈与回放异常。

图 6-1 系统流程图
图注:系统自初始化后接收多源输入,经预处理—推理—后处理与统计后,以同步双帧流式回推前端,并支持导出与入库闭环。
在这里插入图片描述

图 6-2 系统设计框图
图注:体现分层职责边界与跨层数据流;浏览器端负责交互与渲染,业务层负责会话与控制同步,推理层负责多任务调度与模型管理,数据层负责持久化与审计。
在这里插入图片描述

6.2 登录与账户管理

图 6-3 登录与账户管理流程图
图注:用户可登录、注册或在一次性跳过模式下进入主界面;成功登录后载入个人偏好与历史记录,会话令牌到期自动失效。资料修改与导出中心均受权限与会话态约束,注销后清理令牌与本地缓存。
在这里插入图片描述

系统在启动阶段加载鉴权策略并注册登录、注册与可跳过入口。用户进入登录界面后,若已有账号则输入口令并完成服务端校验,通过后下发会话令牌并载入个性化配置与历史记录;若为新用户则完成唯一性校验与条款确认后写入账户表,并初始化偏好(主题/默认模型/阈值与导出选项),随即进入主界面的概览视图。登录态在会话期内跨页保持,所有受限操作(模型切换、导出、历史检索)均检查令牌并在超时后要求重新验证。用户可在资料页修改头像与口令,系统在成功更新后刷新令牌与本地偏好。注销或切换账号会主动销毁令牌并清理浏览器缓存,确保结果与设置的持久化和主检测流程的无缝衔接,同时满足多用户团队的协同与审计需求。


代码下载链接

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

在这里插入图片描述

在这里插入图片描述

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

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

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

完整安装运行教程:

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

本研究围绕零售货架密集场景,完成了一个覆盖 YOLOv5–YOLOv12 的实时商品识别平台:以 Flask+SocketIO 为交互中枢、PyTorch/ONNX/TensorRT 为推理后端,打通了图片/视频/摄像头多源输入、同步双帧与双画面对比、CSV 与带框结果一键导出、SQLite 入库与检索等全链路功能;实验表明在 8834 张数据上,YOLOv8n/8s 在精度—延迟权衡上最稳健(网页默认推荐),YOLOv9t/YOLOv12s 在高精度需求下具备可选优势,所形成的工程范式对机械器件检测等同类“细粒度、小目标、遮挡”任务具有良好可迁移性。

未来工作将从三方面推进:其一,模型侧探索更轻量化与更强端到端能力,结合蒸馏(teacher=11/12 + student=n/s)、INT8/FP8 量化、结构重参数化与神经架构搜索,并引入多模态融合(OCR/语义标签)以缓解外观相似类混淆;其二,系统侧完成容器化与弹性扩缩(Docker+Triton/ZenML),引入分布式任务队列与动态批处理、WebRTC 超低延迟推流、RBAC 角色权限与审计、i18n 与多租户、前端 PWA 与断点续传,以及更细粒度的监控告警;其三,数据侧建立主动学习闭环与持续标注管线,落地数据版本治理与漂移监测(阈值自适应、难例回采、弱监督/半监督),并评估合成数据与域随机化在光照/材质变化下的增益。随工程与数据的持续开放,平台将聚焦“可复现、可解释、可运维”的一体化实践,服务更广泛的在线检测与盘点场景。


参考文献(GB/T 7714)

1 Goldman E, Herzig R, Eisenschtat A, et al. Precise Detection in Densely Packed Scenes[C]//CVPR. 2019:5227-5236. (CVF Open Access)
2 Wei X-S, Cui Q, Yang L, et al. RPC: A Large-Scale and Fine-Grained Retail Product Checkout Dataset[J]. Sci China Inf Sci, 2022, 65:197101. (scis.scichina.com)
3 李承烨, 等. 目标检测模型综述[J]. 计算机研究与发展, 2024:1-26. (crad.ict.ac.cn)
4 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]//NeurIPS. 2015. (arXiv)
5 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C]//ECCV. 2016:21-37. (Springer Link)
6 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV. 2017. (CVF Open Access)
7 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV. 2020:213-229. (ECVA)
8 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection (RT-DETR)[J/OL]. arXiv:2304.08069, 2023. (arXiv)
9 PaddlePaddle. RT-DETR Official Repository[EB/OL]. 2024. (GitHub)
10 Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[J/OL]. arXiv:2209.02976, 2022. (arXiv)
11 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable Bag-of-Freebies Sets New SOTA for Real-Time Detectors[J/OL]. arXiv:2207.02696, 2022. (arXiv)
12 Ultralytics. Explore YOLOv8 — Docs[EB/OL]. 2023-01-10/2025-12-xx. (Ultralytics Docs)
13 Wang C-Y, Yeh I-H, Liao H-Y M. YOLOv9: Learning with Programmable Gradient Information[C]//ECCV. 2024. (ECVA)
14 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[J/OL]. arXiv:2405.14458, 2024. (arXiv)
15 YOLOv10 Conference Page — NeurIPS 2024[EB/OL]. (NeurIPS Proceedings)
16 Ultralytics. YOLO11 Documentation[EB/OL]. 2024-2025. (Ultralytics Docs)
17 Ultralytics. YOLO12 (Community Model) Documentation[EB/OL]. 2025. (Ultralytics Docs)
18 Xu S, Wang X, Lv W, et al. PP-YOLOE: An Evolved Version of YOLO[J/OL]. arXiv:2203.16250, 2022. (arXiv)
19 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[J/OL]. arXiv:2107.08430, 2021. (arXiv)
20 Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR. 2020:10781-10790. (CVF Open Access)
21 ONNX Runtime. Quantize ONNX Models[EB/OL]. 2025. (ONNX Runtime)
22 NVIDIA. Working with Quantized Types — TensorRT Docs[EB/OL]. 2025. (NVIDIA Docs)
23 王某某. 基于改进YOLO的无人零售商品识别研究[D]. 2024. (万方/百度学术索引). (Wanfang Data)

注:表中指标与结论均可在对应论文或官方文档中追溯;若需严格同设复现,建议对齐原文数据增广、输入尺度与硬件环境。

posted @ 2026-04-22 16:20  逗逗班学Python  阅读(19)  评论(0)    收藏  举报