news 2026/6/26 4:08:49

如何用YOLO11做零售货架识别?附完整过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用YOLO11做零售货架识别?附完整过程

如何用YOLO11做零售货架识别?附完整过程

在智能零售和自动化库存管理日益普及的今天,准确、高效地识别货架商品成为提升运营效率的关键。YOLO11作为Ultralytics最新推出的高性能目标检测模型,在速度与精度之间实现了前所未有的平衡,特别适合用于复杂场景下的实时视觉分析任务。

本文将围绕如何使用YOLO11完成零售货架商品识别展开,涵盖环境准备、数据处理、模型训练、推理部署到结果可视化的完整流程,并结合实际操作步骤提供可运行代码与工程建议,帮助开发者快速落地该技术方案。


1. 背景与需求分析

1.1 零售货架识别的核心挑战

零售货架图像通常具有以下特点:

  • 密集排列:商品种类多、摆放紧凑,存在大量遮挡和重叠。
  • 光照不均:不同区域亮度差异大,反光或阴影影响识别效果。
  • 类别繁多:需区分多个品牌、包装形式相近的商品(如饮料瓶)。
  • 小目标问题:远距离拍摄时部分商品尺寸极小。

传统方法难以应对上述复杂性,而基于深度学习的目标检测模型(如YOLO系列)凭借强大的特征提取能力,已成为主流解决方案。

1.2 为何选择YOLO11?

YOLO11是Ultralytics在YOLOv8/v9/v10基础上进一步优化的新一代架构,具备以下优势:

  • 更高的mAP与更低参数量:相比YOLOv8m减少22%参数的同时提升COCO上mAP表现。
  • 更强的小目标检测能力:改进的Neck结构(如PAN-FPN增强版)提升了多尺度融合性能。
  • 支持多种任务:除目标检测外,还支持实例分割、姿态估计等扩展功能。
  • 边缘设备友好:轻量化设计便于部署至NVIDIA Jetson、树莓派等终端设备。

这些特性使其非常适合应用于零售货架监控系统中。


2. 环境搭建与镜像使用

2.1 使用预置YOLO11镜像快速启动

为简化开发流程,推荐使用官方提供的YOLO11完整可运行环境镜像,已集成以下组件:

  • Python 3.10
  • PyTorch 2.3 + CUDA 12.1
  • Ultralytics 8.3.9
  • JupyterLab、OpenCV、NumPy、Pandas等常用库
启动方式:
  1. 在平台创建实例并选择YOLO11镜像;
  2. 实例启动后可通过两种方式访问:
    • JupyterLab界面:点击“应用服务”按钮进入Web IDE;
    • SSH连接:通过终端SSH登录进行命令行操作。

图:JupyterLab开发环境界面

图:SSH远程连接配置方式

2.2 进入项目目录并验证环境

cd ultralytics-8.3.9/ python -c "import ultralytics; print(ultralytics.__version__)"

确保输出版本为8.3.9或以上,表示环境正常。


3. 数据准备与标注规范

3.1 数据采集建议

针对零售货架场景,建议按如下标准采集图像:

  • 分辨率不低于 1920×1080;
  • 拍摄角度尽量垂直于货架平面,避免严重透视畸变;
  • 覆盖白天/夜晚、高光/暗光等多种光照条件;
  • 包含空缺货位、部分遮挡、堆叠摆放等真实情况。

建议收集至少500~1000张图像以保证模型泛化能力。

3.2 标注工具与格式

使用主流标注工具(如LabelImg、CVAT、Roboflow)对商品进行边界框标注,保存为YOLO格式的TXT文件,每行格式如下:

<class_id> <x_center> <y_center> <width> <height>

所有值归一化到 [0,1] 区间。

示例目录结构:
shelf_dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ └── data.yaml

3.3 编写配置文件data.yaml

train: ./shelf_dataset/images/train val: ./shelf_dataset/images/val nc: 5 names: ['cola', 'water', 'chips', 'milk', 'bread']

其中nc表示类别数量,names为类别名称列表,请根据实际商品调整。


4. 模型训练全过程

4.1 训练脚本调用

进入主目录后执行训练命令:

python train.py \ --data data.yaml \ --model yolo11m.pt \ --imgsz 640 \ --epochs 100 \ --batch 16 \ --name yolo11_shelf_detect
参数说明:
参数含义
--data数据集配置文件路径
--model使用的预训练模型(支持yolo11n/s/m/l/x)
--imgsz输入图像尺寸(建议640)
--epochs训练轮数
--batch批次大小(根据GPU显存调整)
--name实验名称,日志保存子目录

推荐首次训练使用yolo11m,兼顾性能与资源消耗。

4.2 训练过程监控

训练期间可在runs/detect/yolo11_shelf_detect/目录查看:

  • results.png:损失函数、mAP@0.5等指标变化曲线;
  • confusion_matrix.png:分类混淆矩阵;
  • val_batch*.jpg:验证集预测效果图。

图:训练过程中生成的检测效果可视化样本

4.3 提前停止与模型选择

若发现验证集mAP连续10轮未上升,可提前终止训练。最终保留best.pt模型权重,它在验证集上表现最优。


5. 推理与货架识别应用

5.1 单张图像推理

使用训练好的模型进行预测:

from ultralytics import YOLO # 加载模型 model = YOLO('runs/detect/yolo11_shelf_detect/weights/best.pt') # 推理 results = model.predict( source='test_images/shelf_001.jpg', imgsz=640, conf=0.5, save=True ) # 输出结果 for r in results: boxes = r.boxes for box in boxes: cls = int(box.cls[0]) conf = float(box.conf[0]) print(f"Detected: {model.names[cls]} with confidence {conf:.2f}")

设置save=True可自动保存带标注框的结果图至runs/detect/predict/

5.2 视频流实时检测

适用于摄像头接入的货架监控系统:

results = model.predict( source=0, # 0表示默认摄像头 imgsz=640, stream=True, # 启用流式处理 device='cuda' # 使用GPU加速 ) for frame_result in results: annotated_frame = frame_result.plot() cv2.imshow("Shelf Detection", annotated_frame) if cv2.waitKey(1) & 0xFF == ord('q'): break

注意:部署至边缘设备时建议降低分辨率(如416×416)以提高帧率。

5.3 批量处理与库存统计

结合Pandas实现自动化库存分析:

import pandas as pd results = model.predict(source='shelf_images/', save=False) inventory = {} for r in results: for c in r.boxes.cls: class_name = model.names[int(c)] inventory[class_name] = inventory.get(class_name, 0) + 1 df = pd.DataFrame(list(inventory.items()), columns=['Product', 'Count']) print(df)

输出示例如下:

ProductCount
cola48
water32
chips21
milk15
bread9

可用于生成每日补货建议报表。


6. 性能优化与工程建议

6.1 模型轻量化部署

对于边缘设备部署,建议采取以下措施:

  • 使用export导出ONNX或TensorRT格式:
yolo export model=best.pt format=onnx imgsz=640
  • 采用 TensorRT 加速推理,提升3~5倍吞吐量;
  • 对模型进行量化(FP16或INT8),减小体积并加快响应。

6.2 提升小目标检测能力

针对远处小商品识别不准的问题:

  • 增加马赛克增强(Mosaic)比例;
  • 使用高分辨率输入(如768×768);
  • 引入注意力机制模块(如CBAM)微调Backbone。

6.3 自动化Pipeline构建

建议构建端到端识别流水线:

graph LR A[图像采集] --> B[预处理] B --> C[YOLO11推理] C --> D[结果解析] D --> E[库存统计] E --> F[告警/报表生成]

可集成至企业ERP或WMS系统,实现无人值守盘点。


7. 总结

本文详细介绍了如何利用YOLO11实现零售货架商品识别的全流程,包括:

  • 利用预置镜像快速搭建开发环境;
  • 构建符合YOLO格式的数据集与配置文件;
  • 完整执行模型训练、验证与测试;
  • 实现图像、视频及批量推理;
  • 输出结构化库存数据用于业务决策;
  • 给出了性能优化与工程落地建议。

YOLO11凭借其卓越的速度-精度权衡,已成为当前最适合零售视觉分析的模型之一。通过合理配置训练策略与部署方案,可在真实场景中达到>90% mAP@0.5的识别准确率,显著提升门店运营效率。

未来还可拓展至缺货检测、价格标签识别、顾客行为分析等高级应用,构建完整的智慧零售AI系统。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 13:34:51

5秒克隆声线!IndexTTS 2.0一键生成带情绪的有声小说

5秒克隆声线&#xff01;IndexTTS 2.0一键生成带情绪的有声小说 你是否曾幻想过&#xff0c;仅凭一段5秒的录音&#xff0c;就能让AI用你的声音演绎整部小说&#xff1f;主角的低沉独白、反派的阴冷冷笑、少女的啜泣抽噎——这些原本需要专业配音演员才能完成的声音表现&#…

作者头像 李华
网站建设 2026/6/18 9:17:09

Qwen2.5-0.5B节约成本:闲置GPU资源利用实战

Qwen2.5-0.5B节约成本&#xff1a;闲置GPU资源利用实战 1. 引言&#xff1a;低成本大模型推理的现实需求 在当前大语言模型快速发展的背景下&#xff0c;企业与开发者对模型推理服务的需求日益增长。然而&#xff0c;高性能GPU资源价格昂贵&#xff0c;长期满载运行带来显著的…

作者头像 李华
网站建设 2026/6/20 0:16:06

如何定制Web界面?DeepSeek-R1前端修改教程

如何定制Web界面&#xff1f;DeepSeek-R1前端修改教程 1. 背景与目标 1.1 本地化大模型的前端需求 随着轻量化大模型技术的发展&#xff0c;越来越多开发者希望在本地设备上部署具备推理能力的语言模型。DeepSeek-R1-Distill-Qwen-1.5B 是基于蒸馏技术压缩后的高效版本&…

作者头像 李华
网站建设 2026/6/19 3:22:45

Jittor深度学习框架完整指南:掌握即时编译的高性能计算

Jittor深度学习框架完整指南&#xff1a;掌握即时编译的高性能计算 【免费下载链接】jittor Jittor is a high-performance deep learning framework based on JIT compiling and meta-operators. 项目地址: https://gitcode.com/gh_mirrors/ji/jittor Jittor&#xff0…

作者头像 李华
网站建设 2026/6/23 21:30:33

MAA助手完整部署手册:从零开始构建明日方舟自动化游戏助手

MAA助手完整部署手册&#xff1a;从零开始构建明日方舟自动化游戏助手 【免费下载链接】MaaAssistantArknights 一款明日方舟游戏小助手 项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights MAA助手作为专为《明日方舟》设计的智能游戏辅助工具&a…

作者头像 李华
网站建设 2026/6/26 0:35:18

cv_resnet18_ocr-detection推理时间优化:RTX3090实测指南

cv_resnet18_ocr-detection推理时间优化&#xff1a;RTX3090实测指南 1. 背景与问题提出 在OCR&#xff08;光学字符识别&#xff09;应用场景中&#xff0c;模型的推理速度直接影响系统的实时性和用户体验。cv_resnet18_ocr-detection 是一个基于ResNet-18骨干网络构建的文字…

作者头像 李华