超市空货架目标检测数据集:1,500张图像 | 目标检测
源码数据分享
通过网盘分享的文件:超市空货架检测数据集
链接: https://pan.baidu.com/s/1cdVT3wRJpNHhMUrArKpjBw?pwd=uuum
提取码: uuum
一、引言:货架缺货------零售业的隐形利润杀手
在零售行业的运营管理中,有一个被广泛引用却始终难以根除的痛点------"货架缺货"(On-Shelf Availability, OSA)。根据哈佛商学院的经典研究,全球零售业的平均缺货率约为8.3%,而在促销期间,这一数字更是飙升至15%以上。这意味着,在顾客走进超市准备购买某件商品时,有近十分之一的概率面对的是空空如也的货架。
缺货带来的损失远不止单次销售的机会成本。更深层次的影响包括:
顾客流失:研究表明,当顾客连续2-3次在目标门店找不到所需商品时,有超过30%的人会转投竞争对手。这种客户流失是隐性的、累积的,却对门店长期营收造成不可逆的损害。
品牌信任弱化:频繁缺货会让顾客对门店的"可靠性"产生质疑,降低门店的品牌忠诚度。在一项针对2000名消费者的调研中,72%的受访者表示"商品齐全"是选择购物渠道的首要考虑因素。
运营效率低下:缺货导致的补货紧急响应、顾客投诉处理、库存盘点复查等工作,消耗了大量人力资源,而这些本可以通过预防性管理避免。

传统应对缺货的方式主要依赖人工巡检,但人工巡检存在根本性缺陷:一个大型超市可能有数千个货架面(Shelf Facings),即使每个货架面只停留3秒,完成一次全面巡检也需要超过2小时。而在此期间,新的缺货可能已经发生。更不用说夜间营业、高峰时段等人力紧张的情况。
基于计算机视觉的货架状态检测技术,为解决这一难题提供了全新思路。通过在门店部署摄像头系统,配合深度学习模型对货架图像进行实时分析,可以实现缺货状态的自动识别与即时预警,将"事后补货"升级为"实时响应"。而实现这一目标的核心基础设施,正是一个高质量的空货架检测数据集。
本文将全面介绍一套专为超市空货架检测构建的数据集,从业务需求分析、数据构建方法论、模型训练到系统落地,为读者提供一份完整的技术实战指南。
二、空货架检测的业务场景深度分析
2.1 空货架的形态学分类
在真实超市场景中,"空货架"并非简单的"有商品"或"无商品"二元状态,而是存在多种典型形态:
完全空置型:整个货架格(Shelf Segment)上没有任何商品,仅有价格标签和层板。这是最容易被识别的类型,但也意味着缺货已经持续了较长时间。
散落残余型:货架上仅剩1-2件商品,大量陈列位空闲。这种"部分缺货"状态在视觉上更难检测,因为需要区分"正常低库存"和"即将缺货"。
标签残留型:商品已被完全拿空,但价格标签和商品定位卡仍在。这种情况在实际门店中非常普遍,是补货不及时的最直观证据。
前移遮挡型:后排商品已空,但前排商品被前移至货架前沿,从正面看似乎"商品充足",实际上库存已经告急。这类缺货最具欺骗性,需要侧视或深度感知才能准确识别。
堆叠错位型:相邻商品被挪动填补空位,从视觉上掩盖了缺货事实。这类缺货在促销期间尤为常见。
2.2 检测难点分析
空货架检测并非一个简单的目标检测问题,其技术难点在于:
背景复杂性:货架本身的结构(层板、背板、支架、标签)构成了复杂的视觉背景,空位区域与背景的对比度可能很低。
目标定义模糊:与检测"人"或"车"等明确目标不同,"空"是一个否定性概念------它不是"某种东西",而是"某种东西的缺失"。这要求模型学习"缺什么"而非"有什么",在认知层面更具挑战性。
尺度与位置多样性:空位可能出现在货架的任何位置,大小从一小格到整层货架不等,缺乏固定的尺度和位置先验。
光照不均匀:超市内不同区域的光照条件差异较大,货架底部可能被上层遮挡形成阴影,影响检测效果。
商品多样性干扰:不同商品的包装颜色、形状、大小差异巨大,模型需要从极其多样的商品背景中识别出"无商品"的状态。
三、数据集核心架构
3.1 基本信息概览
| 参数项 | 具体说明 |
|---|---|
| 数据规模 | 1500张高质量标注图像 |
| 标注类型 | 目标检测(Bounding Box) |
| 标注格式 | YOLO标准格式(归一化坐标) |
| 类别数量 | 1类(nc=1) |
| 类别名称 | 空 |
| 数据路径 | database/超市空货架检测数据集 |
| 数据划分 | 训练集/验证集/测试集 |
3.2 单类别设计哲学
本数据集采用单类别检测方案,仅定义"空"一个类别。这一设计看似简单,实则蕴含深意:
业务聚焦:空货架检测的核心业务需求是"找出缺货位置",而非"识别商品类型"。单类别设计直接服务于这一核心需求,避免引入不必要的类别复杂度。
标注高效:标注员只需标记"空位"区域,无需同时判断商品类别,大幅提升标注效率和一致性。
模型简化:单类别检测是最简单的检测任务,模型参数量更少,训练更快,部署更容易,适合在门店的边缘计算设备上运行。
扩展灵活:单类别检测可以作为更复杂系统的基础模块。例如,先用空货架检测定位缺货区域,再用分类模型识别该位置应有的商品类型,形成"检测+分类"的两阶段方案。
3.3 "空"类别的定义标准
| 类别ID | 类别名称 | 说明 |
|---|---|---|
| 0 | 空 | 货架上无商品的区域 |
具体的标注判定标准:
- 完全空置的货架格:必须标注
- 仅有价格标签但无商品:必须标注(标签本身不视为商品)
- 商品被拿空后的陈列位:必须标注
- 商品稀少但仍有库存:不标注(仍属于"有商品"状态)
- 非商品陈列区域(如广告位):不标注
3.4 数据组织结构
plaintext
database/超市空货架检测数据集/
├── train/
│ └── images/
├── valid/
│ └── images/
├── test/
│ └── images/
说明:
- train:训练集,用于模型学习空货架特征
- valid:验证集,用于模型调参与性能优化
- test:测试集,用于评估模型泛化能力
结构标准化设计,可直接适配YOLOv5、YOLOv8等主流框架,实现开箱即用。
四、数据采集与标注全流程
4.1 采集策略
数据的多样性和真实性是决定模型实用价值的关键。本数据集在采集阶段覆盖了以下维度:
货架类型维度:
- 标准层板货架:最常见的货架类型,层板间距固定
- 端架(End Cap):货架端部的促销陈列位
- 挂钩货架:用于悬挂小件商品的货架
- 冷柜货架:冷藏/冷冻区域的货架
商品类别维度:
- 食品类:零食、饮料、调味品等
- 日用品类:洗护用品、纸品、清洁用品等
- 生鲜类:水果、蔬菜、肉类等
光照条件维度:
- 标准室内照明:日光灯/LED均匀照明
- 冷柜弱光:冷藏区域光线较暗
- 货架底部阴影:上层商品遮挡导致的阴影区域
- 入口自然光:靠近入口处受室外光线影响
拍摄角度维度:
- 正视:摄像头正对货架,最常见的监控角度
- 侧视:从侧方拍摄,可见部分货架深度
- 斜视:45度角拍摄,兼顾正面和侧面信息
4.2 标注规范
标注流程严格遵循以下规范:
边界框精度要求:
- 标注框应紧密贴合空位的边界
- 纵向边界对齐层板上下沿
- 横向边界对齐商品分隔线或空位的自然边界
- 不应包含相邻的非空区域
一致性标准:
- 同一空位在不同图像中的标注方式应保持一致
- 多人标注时需进行一致性校验
- 边界模糊的空位采用"宁可多标不少标"的原则
质量控制流程:
- 初标:标注员按照规范进行初版标注
- 交叉审核:不同标注员互换检查
- 抽检复验:随机抽取10%样本进行终审
- 一致性统计:确保标注一致性达到90%以上

4.3 标注格式
YOLO标准格式:
txt
class_id x_center y_center width height
示例:
txt
0 0.35 0.42 0.12 0.08
0 0.62 0.75 0.15 0.10
参数说明:
- class_id固定为0(空)
- 坐标为归一化值(0~1)
- 每个空位独立标注一个边界框
- 一张图像中可能有多个空位标注
五、基于YOLOv8的模型训练实战
5.1 数据配置文件
yaml
path: database/超市空货架检测数据集
train: train/images
val: valid/images
nc: 1
names: ['空']
5.2 训练命令
bash
yolo detect train \
data=data.yaml \
model=yolov8n.pt \
epochs=100 \
imgsz=640 \
batch=16 \
optimizer=SGD \
lr0=0.01
5.3 参数选择策略
| 参数 | 推荐值 | 选择依据 |
|---|---|---|
| model | yolov8n | 单类别检测任务较简单,n版即可满足需求 |
| epochs | 80~120 | 单类别收敛较快,无需过多轮次 |
| imgsz | 640 | 标准尺寸,如需检测小面积空位可提升至768 |
| batch | 16 | 适中批次大小 |
| optimizer | SGD / AdamW | 均可,SGD泛化性略好 |
| lr0 | 0.01 (SGD) / 0.001 (AdamW) | 配合优化器选择 |
5.4 数据增强策略
针对货架场景的特点,推荐以下增强配置:
python
augmentation:
hsv_h: 0.01 # 色调微扰
hsv_s: 0.5 # 饱和度扰动,模拟不同光照
hsv_v: 0.3 # 明度扰动
degrees: 0.0 # 旋转关闭,货架应保持水平
translate: 0.1 # 平移
scale: 0.3 # 缩放,增强尺度鲁棒性
fliplr: 0.0 # 水平翻转关闭,货架方向有固定含义
mosaic: 1.0 # 马赛克增强
特别注意:
- 旋转应关闭:货架在现实中始终是水平方向的,旋转增强会产生不真实的样本
- 水平翻转应关闭:货架的左右方向有固定含义(如左端是低价位,右端是高价位)
- 色彩扰动可适当增强:模拟不同门店的光照差异
六、核心难点与优化方案
6.1 小目标检测优化
空货架检测中,部分空位可能非常小(仅占图像的1-2%),属于典型的小目标检测问题。优化策略:
输入端优化:
- 提高输入分辨率至768或1024
- 使用SAHI(Slicing Aided Hyper Inference)切片推理策略
特征融合优化:
- 增加P2层检测头,专门检测极小目标
- 使用BiFPN替代标准FPN,增强多尺度特征融合
损失函数优化:
- 对小目标赋予更高的损失权重
- 使用Normalized Wasserstein Distance替代IoU作为小目标的评估指标
6.2 背景干扰抑制
货架结构的复杂性(层板、支架、标签、价格卡)会形成大量视觉干扰,可能导致误检。优化策略:
训练端:
- 增加负样本(有商品的货架区域)的训练权重
- 使用困难负样本挖掘(Hard Negative Mining)
推理端:
- 利用货架的先验结构信息:空位通常出现在层板之间,且宽度与相邻商品一致
- 增加后处理规则:过滤与货架结构不一致的检测框
6.3 遮挡与光照不均处理
遮挡处理:
- 货架底部的空位可能被上层商品遮挡,正面视角难以检测
- 解决方案:在关键区域部署侧视或俯视摄像头,补充正面视角的盲区
光照不均处理:
- 货架顶部光照充足,底部可能严重阴影
- 解决方案:训练时增加阴影区域的增强(降低亮度),推理时使用CLAHE等自适应直方图均衡化预处理
6.4 部署优化方案
边缘端部署:
- 使用YOLOv8n模型,INT8量化后模型大小约3MB
- 在RK3588等嵌入式平台上可达30+fps
- 适合门店本地部署,低延迟实时检测
云端部署:
- 使用YOLOv8s模型,FP16精度
- 服务器端批量推理,支持多门店集中管理
- 适合连锁零售企业统一管理
七、应用场景与系统集成
7.1 超市巡检机器人
巡检机器人是空货架检测的典型载体:
- 机器人沿预设路径在门店内巡航
- 搭载摄像头实时拍摄货架图像
- 边缘端模型实时推理,检测空货架
- 检测结果上传云端,生成补货工单
- 补货人员根据工单精准补货

7.2 智能监控系统
固定摄像头方案适合7×24小时实时监控:
- 在关键货架区域安装固定摄像头
- 视频流接入推理服务器
- 实时检测空货架并触发预警
- 与补货系统联动,自动生成补货通知
7.3 库存管理系统联动
空货架检测与库存管理系统的深度集成:
- 检测到空货架后,自动查询对应SKU的库存数据
- 如果仓库有库存,自动生成补货工单
- 如果仓库无库存,自动触发采购流程
- 全流程闭环,从检测到补货无需人工干预
7.4 门店运营分析
基于空货架检测数据的深度分析:
- 缺货频率统计:各区域、各品类、各时段的缺货频率
- 缺货时长分析:从缺货发生到补货完成的平均时长
- 缺货影响评估:结合销售数据估算缺货造成的销售损失
- 陈列策略优化:根据缺货模式优化商品陈列布局
八、数据集核心优势总结
8.1 聚焦核心业务问题
仅针对"空货架"这一关键场景进行建模,避免类别冗余,提高模型训练效率。单类别设计的模型可以在更少的参数量和更短的训练时间内达到更高的精度,非常适合在资源受限的门店环境中部署。
8.2 真实场景数据
数据来源于真实门店环境,涵盖多种货架类型、商品类别、光照条件和拍摄角度。真实数据训练的模型在实际部署中的表现远优于合成数据训练的模型,因为真实场景中的阴影、反光、遮挡等干扰因素是难以完全模拟的。
8.3 标准化数据结构
无需额外预处理,直接适配主流检测框架,降低开发成本。从数据下载到模型训练,中间无需任何格式转换或数据清洗步骤。
8.4 高质量标注
多轮人工审核,确保标签准确可靠。标注边界框精确贴合空位边界,训练效果稳定。标注一致性高,减少了因标注噪声导致的训练不稳定问题。
8.5 易于落地部署
单类别检测任务简单高效,适合快速工程化应用。在INT8量化后,模型可在嵌入式设备上实时运行,满足门店低功耗、低延迟的部署需求。
九、可扩展方向与未来展望
9.1 检测+分类联动
在检测到空位后,进一步识别该位置应有何种商品:
- 第一阶段:空货架检测(本数据集)
- 第二阶段:商品分类识别(识别空位对应的商品类别)
- 第三阶段:库存查询与补货决策
9.2 缺货程度量化
从二值检测(空/不空)升级为连续估计(缺货比例):
- 使用回归方法估计每个货架面的商品填充率
- 当填充率低于设定阈值时触发补货提醒
- 可以更早发现"即将缺货"的状态
9.3 3D货架感知
从2D图像检测升级为3D空间感知:
- 使用深度相机获取货架的3D点云
- 结合RGB图像和深度信息进行更精确的缺货检测
- 可以识别"前排有商品但后排已空"的隐蔽缺货
9.4 多门店数据联邦学习
在连锁零售场景中,各门店的数据可能存在隐私保护要求:
- 使用联邦学习框架,各门店在本地训练模型
- 仅共享模型梯度,不共享原始数据
- 实现跨门店的模型协同优化
十、总结
本超市空货架检测数据集以1500张高质量标注图像为核心,采用单类别设计聚焦"缺货"这一核心业务问题,为智能零售系统提供了可靠的数据基础。从空货架的形态学分析、数据集构建、模型训练到系统集成,本文呈现了一条从数据到应用的完整技术链路。
在实际部署中,空货架检测系统的价值不仅在于技术实现,更在于商业回报。当缺货能够被实时识别并及时补货时,门店的运营效率与销售转化率都会显著提升。据行业数据估算,将缺货率从8%降低至4%,可以带来2-5%的销售额增长,这对于年营收数十亿的大型零售企业而言,意味着数千万乃至上亿的增量收入。
数据驱动的智能化正在重塑零售行业的每一个环节,而空货架检测,正是这场变革中最贴近货架、最贴近消费者、也最贴近利润的一个起点。