💡本文主要内容: 详细介绍了基于YOLOv11的智能零售柜商品识别系统,包括算法原理、Pytorch源码、训练数据集、Flask可视化Web界面。系统支持图片、视频、摄像头实时检测,支持置信度、IoU阈值调节,检测结果可视化等功能。

01 数据集介绍

图片

数据集介绍

本项目采用标准VOC格式数据集,包含113类零售商品,共5422张图片,全部带有标注。数据按照7:2:1比例划分为训练集(3796张)、验证集(1084张)、测试集(542张)。

图片

细节图


02 基于YOLOv11的商品检测

修改retail_data.yaml

path: VOC/yolo
train: images/train
val: images/val
nc: 113
names: ['3+2-2', 'aerbeisi', 'aoliao', 'baicha', 'baishikele-2', 'binghongcha', 'bingtangxueli', 'chacui', 'chapai2', 'daofandian1', 
'daofandian3', 'dongpeng', 'fenda', 'guolicheng', 'haitai', 'hanluku', 'heweidao2', 'hongniu', 'hongshaoniurou', 'jianlibao', 'kafei', 
'kaomo_jiaoyan', 'kaomo_xiangcon', 'kele', 'kele-b-2', 'laomian', 'lingdukele', 'liziyuan', 'lujikafei', 'maidong', 'meiniye', 'mengniuzaocan', 
'nfc', 'niunai', 'qingdaowangzi-1', 'qinningshui', 'rancha-1', 'rousongbing', 'suanlafen', 'taipingshuda', 'tangdaren2', 'ufo', 'wanglaoji', 
'wangzainiunai', 'weitanai', 'weitanaiditang', 'weitaningmeng-bottle', 'wuhounaicha', 'xianglaniurou', 'xianguolao', 'xuebi-b', 'yezhi', 'yida', 
'yitengyuan', 'yousuanru', 'yuanqishui', 'zhaizhai', 'background']

开启训练

from ultralytics import YOLO
if __name__ == "__main__":
    # 加载预训练模型
    model = YOLO('models/yolo11n.pt')
    # 开始训练
    model.train(
        data='retail_data.yaml',
        epochs=100,
        imgsz=640,
        batch=16,
        device='0',
        optimizer='SGD',
        project='retail_results',
        name='exp',
    )

03 训练结果分析

3.1 混淆矩阵

模型在113类商品上的预测分布。对角线上的深蓝色块占主导,表明大多数类别的预测准确率接近100%。几乎没有明显的误分类现象,大部分类别间互相区分良好。

图片

3.2 F1分数与置信度曲线

曲线显示F1分数随置信度阈值的变化趋势。在置信度为0.539左右时,F1分数达到最高点0.92,说明此时模型在精度和召回率之间取得了最佳平衡。置信度过低时,F1分数较低,说明误报较多;置信度过高时,F1分数也下降,说明漏检增多。

图片

3.3 精度-置信度曲线

曲线反映了随着置信度阈值的提高,模型预测精度的变化。当置信度为1.0时,精度达到完美值1.0,说明高置信度下模型几乎不会误报。随着置信度提升,精度稳步上升,在较高置信度时达到接近1.0的精度。

图片

3.4 精度-召回率曲线

曲线展示了模型在不同召回率下的精度表现。当前模型mAP@0.5=0.962,这是非常高的精度指标。曲线大部分区域保持在高位,说明模型在不同阈值下都能保持高精度和高召回率。曲线下的面积(mAP值)反映了模型在不同召回率下的平均精度表现。

图片

3.5 召回率-置信度曲线

曲线反映了随着置信度阈值的提高,模型检出所有真实商品的比例变化。在置信度为0时,召回率达到0.99,接近完美。随着置信度提升,召回率逐渐下降,说明模型变得更"保守",漏检增多。

图片


04 Flask Web界面与系统设计

4.1 Flask简介

Flask 是一个用 Python 编写的轻量级 Web 应用框架,具有简单易用、扩展性强等特点。它非常适合快速开发和部署基于 Web 的人工智能应用。通过 Flask,可以将深度学习模型与前端界面无缝集成,实现模型的在线推理和结果可视化。

4.2 依赖安装

pip install -r requirement.txt

4.3 系统功能与运行方式

python app.py

图片

图片检测

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐