摘要:本文面向零售盘点、仓储分拣与收银辅助等场景,设计并实现一套基于深度学习的商品识别(目标检测)桌面系统。工程提供数据与代码可下载,前端采用 PySide6/Qt 构建“左侧输入与阈值、中部可视化、右侧详情、底部记录与进度”的交互界面,支持图片/视频/本地摄像头多源输入与互斥切换,并以进度显示/处理进度条与耗时统计反馈推理状态。系统内置登录/注册(可跳过)机制,账户与检测记录通过SQLite 本地入库进行统一管理,兼顾可追溯性与基础安全(口令校验、会话生效范围清晰、一次性跳过入口)。在模型侧,提供模型选择/权重加载(.pt 热切换)能力,切换后类别信息与配色同步刷新,便于多场景快速复用;算法覆盖 YOLOv5–YOLOv12 共 8 种模型,统一在同一数据集与评测协议下对比 mAP、F1、PR 以及训练曲线等指标,支撑精度、速度与部署成本的权衡选型。结果侧支持检测框叠加显示(类别名+置信度),一键导出CSV 导出与带框结果文件(单帧 PNG / 多帧 AVI),并采用时间戳命名与统一归档,方便批量复查与审计。文末提供完整工程与数据集链接。

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

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


1. 系统功能与效果

(1)登录注册:系统启动后提供登录与注册入口,并允许用户选择跳过以快速进入主流程;登录成功后会话在本次使用周期内生效,用于关联个人配置与历史记录。进入系统后,用户通常沿着“概况页—图片检测—模型选择—结果导出/保存”的动线完成一次完整检测闭环,最近记录可被快速定位并支持按关键字段高亮检索。账户与记录统一落在本地存储中,口令校验与会话边界清晰,既保证便捷性也满足基本安全与可追溯需求。
在这里插入图片描述

(2)功能概况:概况页以简洁信息卡片呈现当前工作状态,包括已选模型、当前阈值、最近一次检测用时与导出次数等,帮助用户在进入检测前快速确认配置是否正确。底部区域汇总检测记录并与各检测页面共享,用户可直接回看最近一次结果、定位到对应文件名并跳转复查。整体交互强调少点击与可见即所得,使“导入—推理—复核—导出”的路径保持连贯。
在这里插入图片描述

(3)选择模型:系统支持从本地选择权重文件切换当前检测模型,切换后类别信息与可视化配色会同步刷新,避免不同权重下标签不一致造成的误判。模型与阈值等配置支持本地持久化,用户下次打开仍能保持常用设置,从而减少重复配置成本。该设计更贴合零售商品场景中“频繁换品类、按场景选模型”的使用习惯,提升模型迭代与部署验证效率。
在这里插入图片描述

(4)图片检测:图片检测支持单张或批量导入后即时推理,主显示区以叠加框呈现检测结果,包含类别名与置信度信息,便于快速判读。用户可在界面内调节置信度与IoU阈值以平衡误检与漏检,并支持对某一目标进行选择高亮以辅助复核与统计。检测结果会同步写入底部记录区,便于跨页回看与后续导出对齐。
在这里插入图片描述在这里插入图片描述

(5)文件保存:系统提供统一的结果保存流程,支持将检测记录导出为CSV,并将带框可视化结果一键保存为图片文件,便于归档与复查。导出文件采用时间戳与一致的命名规则组织,配合按文件名检索可快速定位到某次检测批次,满足批量管理与溯源需求。保存动作与界面记录联动,用户可从记录中直接回跳到对应结果,实现“保存—定位—复核”的闭环体验。
在这里插入图片描述


2. 绪论

2.1 研究背景及意义

在智慧零售与仓储数字化的落地过程中,“商品识别”通常不仅意味着分类,还需要在货架巡检、收银台结算与分拣复核等环节完成对商品实例的定位、计数与追溯,因此目标检测成为系统级能力的关键组成部分1。在真实门店环境中,商品包装高度相似、反光与阴影频繁出现、遮挡与堆叠普遍存在,同时还伴随新商品持续上架带来的类别动态扩张,这使得商品识别系统必须同时兼顾鲁棒性、可扩展性与实时性[11]。

数据与评测基准直接决定算法与系统方案的可信度与可复现性,通用检测领域以 COCO 等大规模数据集为代表建立了稳定的评测指标与对比框架[16]。面向零售场景的专用数据集进一步把“细粒度 SKU、密集目标、小目标占比高、跨域光照与背景变化”等痛点显式化,例如 D2S 以自动结算与库存场景为导向提供高分辨率、像素级实例标注并强调复杂背景与多光照鲁棒性[13]。

在结算台场景下,RPC 数据集以 200 个 SKU、单品样例与结算图像并存、并提供从购物清单到框标注的弱到强监督形式,为“低标注成本、在线增量更新、跨域合成与迁移”等研究方向提供了统一载体[12]。在货架密集陈列场景下,SKU110K 等基准揭示了常规检测器在极端密集分布下训练与收敛的困难,并推动了“检测与细粒度分类解耦、数据增强与训练策略重构”的工程化路线[11]。国内也有研究围绕无人超市商品识别对 YOLO 系列进行轻量化与注意力改进,并在自建数据上报告了识别精度与速度的提升,体现了该方向的工程价值与可应用性[14]。 (arXiv)

2.2 国内外研究现状

从任务形态看,商品识别主要覆盖两类高频场景:其一是货架巡检与陈列审计,目标密集且尺度差异极大,常出现“单图上百个目标、单目标面积占比极低”的极端分布[11];其二是收银台自动结算,类别细粒度、更新频繁且遮挡与杂乱背景常态化,对跨域泛化与在线维护提出更高要求[12]。因此,现有研究普遍把难点归纳为类间外观相似、密集遮挡与小目标、强反光与光照漂移、长尾类别分布以及实时推理与可部署性之间的权衡[12]。

针对密集与小目标问题,SKU 基准研究显示“直接在密集场景上训练”并不总是最优,采用小规模“正常密度”样本配合数据增强训练通用检测器,反而在 SKU110K 测试集上取得 68.5% mAP 的强基线,并显著超过当时基于密集训练的结果[11]。这类工作也提出了“先检测后细粒度分类”的解耦思路,用通用检测器解决定位与召回,再以更强的分类器处理包装细粒度差异,从系统角度降低端到端检测器对海量 SKU 全覆盖标注的依赖[11]。在结算台方向,RPC 提供了样例图与结算图的域差异设定,并给出了跨域检测基线在不同杂乱度下的平均表现(56.68% ACO 指标),客观反映出“域迁移与弱监督利用”仍存在明显提升空间[12]。

从检测范式演进看,两阶段方法通过候选区域机制在精度上长期占优,但推理链路相对复杂,代表性的 Faster R-CNN 以 RPN 生成候选框并端到端联合训练,成为许多行业任务的强基线2。单阶段方法追求端到端的速度优势,SSD 通过多尺度特征图直接回归框与类别,在 VOC2007 上报告 72.1% mAP 且在 Titan X 上可达 58 FPS,展示了早期实时检测的可行路径3。为缓解密集正负样本不均衡,RetinaNet 引入 Focal Loss 抑制易分类样本对梯度的主导作用,从而提升稠密检测精度并成为后续大量方法的训练“标配”组件[4]。在多尺度特征融合与轻量化方面,EfficientDet 以 BiFPN 和复合缩放策略形成可伸缩系列模型,并在 COCO test-dev 上给出 EfficientDet-D7 的 52.2 AP 与 52M 参数量,体现了精度与效率可系统化协同优化的思路[5]。 (Hugging Face)

Transformer 范式则试图进一步简化后处理与启发式设计,DETR 以集合预测与二分匹配损失绕开锚框与 NMS 依赖,并在 COCO 验证集上给出可与强 Faster R-CNN 基线竞争的 42 AP 结果,但也暴露出小目标性能与训练收敛成本上的挑战[6]。为把端到端优势带回实时场景,RT-DETR 通过高效混合编码器与不确定性最小查询选择实现速度与精度的兼顾,并报告 RT-DETR-R50 在 COCO 上 53.1% AP 且在 T4 上达到 108 FPS,为“免 NMS 的实时部署”提供了更直接的工程路径[7]。在 YOLO 系列的持续演进中,YOLOX 将检测器切换为 anchor-free 并采用解耦头与 SimOTA 分配策略,报告 YOLOX-L 在 COCO 上 50.0% AP 且在 V100 上达到 68.9 FPS,体现了单阶段方法在训练细节与标签分配层面的收益空间[8]。

围绕系统部署趋势,研究重心逐步从“单一指标最优”转向“可维护、可迁移、可追溯”的闭环能力,尤其在零售场景中要同时满足多源输入接入、实时可视化、人机协同复核与结果批量导出等需求[12]。在模型侧,PP-YOLOE 等工作强调端到端工程优化与推理加速,并在 COCO 上报告了精度与速度的综合表现以及 TensorRT 等部署形态的可行性[9]。近期的 YOLOv10 强调端到端实时检测并以降低推理延迟为核心目标,报告在 COCO 上达到 44.3% AP 且相较同规模方案减少 4.63ms 延迟,适合对时延敏感的在线识别任务[10]。更进一步,YOLOv12 把注意力机制作为实时检测的核心设计点,在 COCO 上报告 YOLOv12-N 的 40.6 mAP 与 T4 上 1.64ms 延迟,并给出更大模型在精度上的上界,为“精度上限与端侧时延”之间的系统选型提供了新的参考坐标[15]。 (NeurIPS Papers)

方法与数据集对比(面向商品识别场景的典型参考)

方法名称 范式/家族 典型数据集 关键改进技术 优势与局限性 关键性能指标(示例) 适用场景/对应难点
Faster R-CNN2 两阶段/Anchor-based COCO RPN + RoI 分类回归 精度强但链路较重 经典强基线(常用于行业迁移) 适合高精度复核与离线评测
SSD3 单阶段/Anchor-based VOC 多尺度特征直接回归 速度快但对小目标较敏感 72.1% mAP@VOC07,58 FPS 适合轻量实时与入门基线
RetinaNet[4] 单阶段/Anchor-based COCO Focal Loss 解决样本不均衡 稠密检测更稳但仍依赖 NMS 被广泛复用的训练组件 适合密集货架的训练配方
EfficientDet[5] 单阶段/Anchor-based COCO BiFPN + 复合缩放 精度/效率可伸缩但调参复杂 D7:52.2 AP,52M 参数 适合多算力档位的统一选型
DETR[6] Transformer/端到端 COCO 集合预测 + 匈牙利匹配 简化后处理但小目标与训练成本突出 42 AP(COCO val) 适合端到端研究与可解释分析
RT-DETR[7] Transformer/端到端实时 COCO 高效混合编码器 + 查询选择 免 NMS 且兼顾实时 53.1% AP,108 FPS(T4) 适合在线结算与低时延场景
YOLOX[8] YOLO/Anchor-free COCO 解耦头 + SimOTA 单阶段训练细节收益显著 50.0% AP,68.9 FPS(V100) 适合工程落地与实时巡检
SKU 基准强基线[11] 货架密集检测/基准工作 SKU110K 正常密度训练 + 增强策略 对极密集分布更友好 68.5% mAP(SKU110K-Test) 对应密集、遮挡、小目标难点
RPC 数据集与基线[12] 结算台/跨域设定 RPC 弱到强监督 + 合成/迁移思路 域差异显著、增量更新难 56.68% ACO(平均) 对应细粒度 SKU 与跨域泛化
YOLOv10[10] YOLO/端到端实时 COCO 以时延为核心的端到端设计 强调低延迟,适合在线 44.3% AP,减少 4.63ms 对应低时延与吞吐需求
YOLOv12[15] YOLO/注意力中心 COCO 注意力主线 + 实时优化 精度上限与时延更可控 N:40.6 mAP,1.64ms(T4) 对应端侧实时与复杂光照

2.3 要解决的问题及其方案

围绕“基于深度学习的商品识别系统”,本文需要把目标检测算法与桌面端交互体验在同一工程中闭环落地,并在可复现评测的基础上实现可部署、可维护与可追溯。为此,系统层面主要需要解决以下问题:
(1)检测与识别的准确性与实时性难以兼得,尤其在密集货架与结算台遮挡场景中既要高召回又要低时延。
(2)模型对环境变化的适应性与泛化能力不足,光照漂移、反光材质与跨域背景会显著拉低稳定性。
(3)桌面端交互的直观性与功能完整性需要统一设计,既要支持多源输入与实时调参,也要让复核与导出流程低成本完成。
(4)数据处理效率与存储安全性需要工程化保障,检测记录、导出结果与账号信息应具备本地可追溯与权限边界。

针对上述问题,本文给出与系统特点相匹配的解决方案:
(1)以 YOLO 系列模型作为核心检测器,结合迁移学习与数据增强训练策略,并对 YOLOv5 至 YOLOv12 的多模型进行统一评测对比,以确定精度与时延的最优折中。
(2)围绕零售场景难点配置分辨率、阈值、NMS 与增广策略,并通过跨域数据组织与样本结构设计提升在光照、遮挡与密集分布下的稳健性。
(3)采用 PyTorch 推理后端与 PySide6/Qt 桌面端完成端到端集成,支持图像、视频与本地摄像头输入,并提供权重热切换与参数同步,以保证交互调参与推理结果一致。
(4)以缓存队列与时间戳命名机制组织导出与归档,同时以本地数据库持久化账户与检测记录,实现结果可追溯、可检索与安全存储。

2.4 博文贡献与组织结构

本文的主要贡献体现在以下方面:
(1)给出面向商品识别任务的综合文献综述,围绕密集小目标、细粒度 SKU 与跨域结算等难点归纳可落地的算法范式与工程策略。
(2)完成 YOLOv5 至 YOLOv12 的模型选择与训练推理链路打通,并提供统一的指标体系用于精度、速度与稳定性的横向对比。
(3)实现美观友好的 PySide6/Qt 桌面端交互,把多源输入、阈值调节、目标高亮与批量导出等流程固化为可复用的产品化体验。
(4)给出算法效果对比分析,结合 PR、mAP、F1 与典型误检漏检现象讨论结构选择与任务难点的耦合关系。
(5)提供可复现实验与工程复用的资源组织方式,使数据、权重与评测流程能够形成可追溯的闭环。

全文组织结构如下:第 3 章介绍数据集处理与标注规范;第 4 章给出以 YOLO 系列为主线的模型原理与关键设计;第 5 章提供多模型训练与推理结果对比并进行误差分析;第 6 章从分层架构角度阐述 Qt 桌面系统的设计与实现;第 7 章总结全文并讨论未来的轻量化、多模态与持续学习方向。


3. 数据集处理

本系统使用一套来自真实零售环境的商品图像数据集,共 8834 张图片,覆盖货架陈列与近景拍摄等多种视角与背景,用于训练能够在复杂光照、遮挡与密集摆放条件下稳定工作的商品检测模型。数据集按训练/验证/测试划分为 7690/140/1004(约 87.0%/1.6%/11.4%),以保证训练收敛、调参验证与泛化评估相互独立;标注采用目标检测框形式,类别以 SKU 级名称组织,并在工程侧维护一份中英文映射表(如 Complan、Everyuth、Glucon D、Nutralite、SUGAR FREE 等系列),用于界面展示与导出报表的可读性统一,从而避免训练标签与业务呈现之间出现“同物异名”或命名风格不一致的问题。标签及其对应中文名如下:

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

在这里插入图片描述

从标注分布看,该数据集具有典型的零售场景特征:同一画面中常出现多个商品目标且相互遮挡,既包含占画面较大的近景单品,也包含大量尺寸较小的货架远景目标;这会同时放大“小目标召回”和“密集目标的框分离”两类难点。结合标注统计可视化可以观察到框中心点在图像中部区域更为集中,宽高分布呈明显的长尾与偏小趋势,说明模型需要依赖更强的多尺度特征表达与合理的训练增强来提升对小目标与边缘目标的稳定性,同时也提示在评测阶段要重点关注误检(相似包装)与漏检(遮挡/反光)的成因。
在这里插入图片描述

在处理流程上,数据在进入训练前统一进行尺寸与格式规范化,并在训练阶段采用与零售成像条件匹配的增强策略来覆盖域变化:一方面通过颜色与亮度相关扰动来模拟门店灯光、阴影与反光引起的外观漂移,另一方面通过几何扰动与拼接类增强提升密集场景下的上下文鲁棒性与小目标可见性;对于可能存在的噪声标注与异常样本,则通过框范围合法性校验、空标注过滤与类别一致性检查进行清洗,确保同一类别在不同图片中的命名与索引保持一致。划分过程保持可复现性(固定随机性来源),并尽量降低潜在数据泄漏风险,使得后续对 YOLOv5–YOLOv12 的横向对比能够在同一数据协议下公平反映精度与速度差异。


4. 模型原理与设计

本文以 YOLOv12 作为默认主线模型来阐述商品识别的检测原理与工程化设计思路,其核心目标是在零售场景的密集陈列、小目标占比高、反光与遮挡频繁、类间外观相似等条件下,尽可能同时满足“高召回、低误检、可实时部署”的综合诉求。整体流程遵循单阶段目标检测的通用范式:输入图像经过统一尺寸的预处理与归一化后,网络在多尺度特征上同时预测类别与边界框,并在后处理阶段完成置信度阈值筛选与去重,从而输出结构化结果(类别名、置信度、边界框坐标)以支撑桌面端可视化叠加、目标高亮与导出闭环。与更偏研究型的端到端集合预测检测器相比,该范式在工程部署上更容易与 GUI 的帧流、进度条与交互参数同步机制对齐,便于在图片、视频与摄像头三类输入中保持一致的推理体验。

在网络结构层面,YOLOv12 的关键特征在于“注意力中心化”的设计路线:通过更高效的注意力单元来扩大感受野与建模全局依赖,同时以工程友好的方式控制计算与访存开销。其基本骨架仍可抽象为 Backbone–Neck–Head 三段式:Backbone 负责提取多层语义特征,Neck 通过金字塔式融合把高层语义与低层细节对齐以应对尺度变化,Head 则以解耦思路分别处理分类与回归分支以降低任务冲突。注意力机制可用标准形式表述为
A t t e n t i o n ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attention}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^{\top}}{\sqrt{d}}\right)V, Attention(Q,K,V)=softmax!(d QK)V,
其中 ( Q = X W Q ,   K = X W K ,   V = X W V Q=XW_Q,\ K=XW_K,\ V=XW_V Q=XWQ, K=XWK, V=XWV),(X) 为输入特征,( W Q , W K , W V ) W_Q,W_K,W_V) WQ,WK,WV) 为线性映射参数,(d) 为特征维度用于缩放稳定数值;在商品识别中,这类全局/区域依赖建模有助于在包装纹理相似或局部被遮挡时,利用上下文与结构线索减少误检。为适配实时性要求,YOLOv12 进一步强调在注意力模块中降低复杂度并缓解访存瓶颈,同时在特征聚合上引入更利于优化的残差式层聚合结构,以提高深层模型在密集目标场景中的可训练性与稳定收敛。网络整体架构图如下图所示:

在这里插入图片描述

在损失函数与任务建模上,商品识别通常同时受到“定位精度”和“分类区分度”的约束,尤其是细粒度 SKU 的类间差异往往集中在局部文字、配色或小面积图案上,因此回归分支既要对小目标边界敏感,也要对反光导致的边缘模糊保持鲁棒。边界框回归的核心度量通常基于 IoU:
I o U ( B , B g t ) = ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ , \mathrm{IoU}(B,B^{gt})=\frac{|B\cap B^{gt}|}{|B\cup B^{gt}|}, IoU(B,Bgt)=BBgtBBgt,
其中 (B) 为预测框,(B^{gt}) 为真实框;在此基础上,工程中常用的改进形式如 CIoU 会在 IoU 之外显式引入中心点距离与长宽比一致性:
L C I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + α v , L_{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(\mathbf{b},\mathbf{b}^{gt})}{c^2}+\alpha v, LCIoU=1IoU+c2ρ2(b,bgt)+αv,
其中 ( b , b g t \mathbf{b},\mathbf{b}^{gt} b,bgt) 为预测框与真实框中心点,( ρ ( ⋅ ) \rho(\cdot) ρ()) 表示欧氏距离,( c c c) 为最小外接框对角线长度,( v v v) 刻画长宽比差异,( α \alpha α) 为权重系数;这类项对“遮挡导致的偏移框”“细长包装的比例误差”更敏感,能更贴合货架场景的定位需求。整体训练目标可概括为多任务加权和
L = λ b o x L b o x + λ o b j L o b j + λ c l s L c l s , L=\lambda_{box}L_{box}+\lambda_{obj}L_{obj}+\lambda_{cls}L_{cls}, L=λboxLbox+λobjLobj+λclsLcls,
其中 ( L b o x L_{box} Lbox) 为回归损失、( L o b j L_{obj} Lobj) 为目标性(置信度)相关损失、( L c l s L_{cls} Lcls) 为分类损失,( λ \lambda λ) 为对应权重;当类别长尾显著时,分类项往往还需要结合更稳健的样本权重或难例机制来抑制易分类样本的主导效应,以避免“常见商品过拟合、冷门商品召回不足”。

训练与正则化策略需要与零售场景的分布特性一一对应:一方面,通过多尺度训练与强增强覆盖“远景小目标、近景大目标”的尺度跨度,并用颜色抖动、亮度对比度扰动等方式逼近门店灯光与反光材质带来的外观漂移;另一方面,采用更平滑的学习率策略与适度正则化(如 BN 统计稳定、权重衰减与必要的随机失活)来缓解注意力模块引入后可能出现的训练震荡,使模型在小验证集条件下仍能保持可控的泛化表现。推理阶段的置信度阈值与 NMS(或等价去重策略)直接决定密集货架下的“漏检/重复框”权衡:阈值过高会牺牲被遮挡小目标的召回,阈值过低则会放大相似包装带来的误检与重复框;因此本文系统把 Conf/IoU 作为可交互参数并与可视化高亮、CSV 统计同步联动,使用户能够在不同门店与不同货架密度下快速找到更符合业务目标的工作点。


5. 实验结果与分析

本章实验目标是:在同一零售商品检测数据集与统一评测协议下,对 YOLOv5–YOLOv12 的多版本模型进行横向比较,明确“精度(Precision/Recall、F1、mAP50、mAP50-95)—实时性(Pre/Inf/Post)—规模(Params、FLOPs)”之间的权衡关系,并据此给出桌面端部署的推荐选型。实验运行平台为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB 显存),其中预处理、推理与后处理耗时分别统计为 PreTime/InfTime/PostTime,以便更贴近 Qt 桌面端的端到端体验。

规模 Model Params(M) FLOPs(G) Pre(ms) Inf(ms) Post(ms) Total(ms) FPS(≈) Precision Recall F1 mAP50 mAP50-95
n 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
n 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
n YOLOv7-tiny 6.2 13.8 2.28 14.74 4.06 21.08 47.4 0.884 0.893 0.888 0.876 0.635
n 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
n YOLOv9t 2.0 7.7 1.87 16.51 1.29 19.67 50.8 0.816 0.919 0.864 0.915 0.694
n 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
n 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
n 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
s 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
s 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
s 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
s 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
s 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
s 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
s YOLOv11s 9.4 21.5 2.37 9.74 1.36 13.47 74.2 0.862 0.901 0.881 0.927 0.715
s YOLOv12s 9.3 21.4 2.09 13.23 1.42 16.74 59.7 0.828 0.881 0.854 0.884 0.688

在这里插入图片描述

从 n 规模对比看,整体 mAP50 均在 0.876–0.915 区间,说明在该商品数据集上各代 YOLO 的“可用性门槛”已相对稳定,但差异主要体现在召回倾向、推理时延与高 IoU 阈值下的定位质量(mAP50-95)。YOLOv9t 给出了最高的 mAP50=0.915 与 mAP50-95=0.694,同时 Recall=0.919 也最突出,但 Precision=0.816 明显偏低,意味着在“包装相似、反光遮挡、密集陈列”条件下更容易把相似 SKU 误报出来,这类模型更适合作为“高召回候选器”,再结合更严格的 Conf 阈值或二阶段复核来压制误检。若以桌面端实时体验为优先,YOLOv8n 的端到端 TotalTime≈10.17ms(≈98 FPS)且 mAP50=0.902、mAP50-95≈0.685,属于较均衡的速度与精度折中;YOLOv10n 的 PostTime 极低(0.63ms)在交互式批处理导出时更友好,但其总体精度与 F1 并未占优,更适合对后处理开销敏感的场景做进一步阈值与 NMS 策略优化。下图给出 n 系列在 F1 与 mAP50 维度的直观对比,可用于系统默认模型的“速度模式/精度模式”分档选择。

在这里插入图片描述

从训练过程与收敛形态看,以一次代表性训练为例,训练侧 box/cls/dfl 损失整体单调下降且在中后期趋于平稳,Precision 与 Recall 在前若干 epoch 快速拉升后进入平台区,mAP50 与 mAP50-95 也在约 0.88 与 0.68 附近逐步收敛,这与表中多个模型的最终指标量级一致。需要注意的是,验证侧 cls/dfl 损失存在一定上行与波动,这在细粒度 SKU 任务中并不罕见:一方面类别数多、长尾明显会放大验证集的小样本波动,另一方面不同包装版本之间的外观相似会造成“分类边界更难学但检测指标仍可维持”的现象;因此在工程上更建议以 mAP、PR 与混淆矩阵作为主判据,同时把 Conf/IoU 作为可交互参数交由业务侧选择合适工作点。
在这里插入图片描述

结合给出的 F1-Confidence 曲线,全类最优 F1 出现在置信度约 0.614(F1≈0.84),这也解释了为何桌面端把 Conf 滑块作为核心交互:当货架更密集或反光更强时,提高 Conf 往往能显著降低误检,但会牺牲被遮挡小目标的召回,反之亦然。

在这里插入图片描述

进一步对 s 规模对比可以看到,“更高的参数量与 FLOPs”并不必然带来更高的精度上限:YOLOv7(36.9M、104.7G)在该数据上 mAP50-95 仅 0.629 且端到端时延接近 30ms,说明在既定训练配方与输入分辨率下,其结构与优化路径并不占优;相对地,YOLOv11s 取得最高的 mAP50-95=0.715,同时保持 TotalTime≈13.47ms(≈74 FPS),更适合作为“精度优先但仍可实时”的部署选项,而 YOLOv8s 在 TotalTime≈11.39ms(≈88 FPS)条件下给出 mAP50≈0.931,适合作为“速度与高 mAP50”的平衡方案。结合归一化混淆矩阵与 PR 曲线的形态,误差主要集中在同品牌多口味/多规格的细粒度区分上,典型表现是相近包装文字与配色导致的互相混淆;对此,后续可以优先从三条路径提升:补齐长尾 SKU 的样本量并做“相似对”难例挖掘、提高训练分辨率或引入更强的多尺度策略以改善小目标细节、以及在系统侧利用“目标高亮复核+低置信度提醒”把不可避免的相似误差转化为可控的人机协同流程。


6. 系统设计与实现

6.1 系统设计思路

本系统采用分层架构组织桌面端商品识别流程,将“表现与交互层(Qt 客户端)—业务与会话管理层—推理与任务调度层—数据持久化层”解耦为清晰的职责边界,以降低多源输入、实时推理与结果归档之间的耦合度。Qt 客户端以“左侧源与阈值控制—中央检测画面—右侧目标详情—底部记录与进度条”的稳定布局承载交互闭环,使用户在同一工作流内完成输入源选择、Conf/IoU 调参、目标高亮与导出复查;业务与会话管理层负责会话状态、互斥的源切换策略、参数同步与统计聚合,确保不同输入形态下的行为一致性;推理与任务调度层将媒体接入、预处理、YOLO 推理与后处理串联成可调度的流水线;数据持久化层则统一管理账户信息、历史记录、导出索引与日志,从而支撑可追溯性与稳定运行。

在跨层协同上,系统把图片、视频与摄像头统一抽象为“帧流”,由事件驱动机制将新帧投递至推理队列,队列内完成缩放到 (640\times640)、归一化与张量转换等预处理后进入 YOLO 推理,再经由 Conf/IoU 过滤、NMS 去重与坐标还原形成结构化检测结果。该结果被同步分发至前端可视化与统计模块:一方面在主显示区叠加检测框、类别与置信度并支持目标选择与高亮,另一方面在底部记录区追加条目并更新进度条与用时信息,使用户能够在“可视反馈—参数调整—再推理”的闭环中快速收敛到合适的工作点;对视频与摄像头场景,帧序列还会被缓存以支持导出为带框 AVI,从而兼顾实时浏览与离线复核。

为保障实时性与一致性,系统对输入源采用互斥调度,避免视频解码与摄像头采集并发导致的资源争抢,并在参数层维持 Conf/IoU、类别映射与配色表的原子更新,确保界面显示与推理逻辑同源。可扩展性方面,模型权重管理被设计为独立能力:用户可在运行中选择本地权重文件实现热切换,系统同步刷新类别信息、颜色方案与推理实例,并对主题与配置进行本地化持久保存;同时,导出编排统一采用时间戳命名与集中归档策略,配合数据库索引实现“可检索、可复查、可回放”的工程闭环。

在这里插入图片描述

图6-1 系统流程图
图注:系统自初始化到多源输入,完成预处理、YOLO 推理与界面联动,并在交互控制中形成闭环;突出 Conf/IoU 滑块、目标高亮选择、CSV/PNG/AVI 导出与时间戳命名。

在这里插入图片描述

图6-2 系统设计框图
图注:该框图强调分层边界与数据流向:Qt 客户端承载交互与可视化,业务层负责编排与参数一致性,推理层实现媒体帧流与 YOLO 推理流水线,数据层提供账户/记录/导出归档的本地持久化能力。

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

在这里插入图片描述

图6-3 登录与账户管理流程图
图注:流程覆盖注册写入本地数据库、登录口令校验、个性化配置加载与进入主界面,并与注销/切换账号及资料修改形成闭环,支撑桌面端的多用户隔离与历史记录可追溯。

在账户流程设计上,系统从启动时的登录入口切入,通过“是否已有账号”的分支将注册与登录统一纳入同一条主链路:注册阶段完成用户名、邮箱与口令的合法性校验并写入本地数据库形成账户记录;登录阶段对输入口令进行校验,失败则回到凭据输入以减少无效会话的扩散,成功后载入用户侧个性化配置(如主题偏好、默认模型与最近记录)并进入主界面,使后续的多源检测与导出编排天然具备“用户隔离、设置继承、结果可追溯”的工程价值;同时,资料修改与注销/切换账号被设计为与主检测流程弱耦合的能力,既便于多用户共用同一设备,也能确保历史记录与模型选择等关键状态在会话边界内可控生效。


7. 项目链接

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

在这里插入图片描述

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


参考文献(GB/T 7714)

1 Redmon J, Divvala S, Girshick R, Farhadi A. You Only Look Once: Unified, Real-Time Object Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2016.
2 Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]//Advances in Neural Information Processing Systems (NeurIPS). 2015.
3 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2016.
[4] Lin T Y, Goyal P, Girshick R, He K, Dollár P. Focal Loss for Dense Object Detection[C]//Proceedings of the IEEE International Conference on Computer Vision (ICCV). 2017.
[5] Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2020.
[6] Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2020.
[7] Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[J/OL]. arXiv:2304.08069, 2024.
[8] Ge Z, Liu S, Wang F, Li Z, Sun J. YOLOX: Exceeding YOLO Series in 2021[J/OL]. arXiv:2107.08430, 2021.
[9] Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[J/OL]. arXiv:2203.16250, 2022.
[10] Wang A, et al. YOLOv10: Real-Time End-to-End Object Detection[C]//Advances in Neural Information Processing Systems (NeurIPS). 2024.
[11] Varadarajan S, Kant S, Srivastava M M. Benchmark for Generic Product Detection: A strong baseline for Dense Object Detection[J/OL]. arXiv:1912.09476, 2019.
[12] Wei X S, Cui Q, Yang L, et al. RPC: a large-scale and fine-grained retail product checkout dataset[J]. Science China Information Sciences, 2022, 65(9): 197101.
[13] Follmann P, Böttger T, Härtinger P, et al. MVTec D2S: Densely Segmented Supermarket Dataset[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018.
[14] 刘思阳, 张全. 基于YOLO算法的无人超市商品图像识别研究[J]. 智能物联技术, 2023.
[15] Tian Y, Ye Q, et al. YOLOv12: Attention-Centric Real-Time Object Detectors[J/OL]. arXiv:2502.12524, 2025.
[16] Lin T Y, Maire M, Belongie S, et al. Microsoft COCO: Common Objects in Context[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2014.
[17] Zheng Z, Wang P, Liu W, Li J, Ye R, Ren D. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression[C]//Proceedings of the AAAI Conference on Artificial Intelligence (AAAI). 2020.

Logo

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

更多推荐