尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
超市货架数据集构建:从图像到格位坐标系的结构化建模
简介本资源是一份面向计算机视觉与深度学习研究者的超市货架图像数据集专为商品检测、货架分析及零售场景目标识别等任务设计适用于高校科研、算法验证与模型训练等中高级技术实践。数据集包含45张全球采集的无版权货架实景图辅以46个JSON格式标注文件完整覆盖11743个商品级边界框平均单图标注密度达260框标注由受冲突影响的难民人才团队完成具备真实场景复杂性与学术可靠性。压缩包共91个文件主体为45张JPG图像与46个结构化JSON标注总大小131.14MB元信息统一存于meta.json便于快速加载与解析。目前已有94人下载学习资源在CC0 1.0许可下开放使用可直接用于YOLO系列、Faster R-CNN等检测模型的训练与评估同时支持自定义类别扩展与多尺度货架布局分析。1. 超市货架数据集不是“拍张照就完事”它本质是商品空间关系的结构化建模很多人第一次听说“超市货架数据集”下意识以为就是一堆货架照片——但实际在计算机视觉、零售数字化和智能补货系统中这类数据集的核心价值从来不在图像本身而在于对商品在三维物理空间中的精确位置、朝向、遮挡关系与语义归属的结构化标注。一个合格的货架数据集必须同时包含带像素级掩码的商品实例分割图、每个商品在货架格位shelf slot中的相对坐标x, y, z、商品类别与SKU映射表、光照与拍摄视角元信息。它解决的典型问题是让算法能从单张货架图里准确回答“可口可乐经典瓶装500ml还剩几瓶哪几瓶被前面的薯片袋完全遮挡最上层左数第三格是否空缺”——这直接支撑自动盘点、缺货预警和陈列合规审计。适合正在做零售AI落地的算法工程师、需要构建内部货架识别模型的数据团队以及高校研究细粒度目标定位与遮挡推理方向的研究者。如果你手头只有未标注的货架照片或者只标注了边界框bbox而没做实例分割格位绑定那离真正可用的货架数据集还有关键一跃。2. 构建货架数据集的三类主流路径从公开资源复用到工业级自采标注2.1 公开数据集选型ShelfNet、Retail-Product-Detection 与 Shelf-Image-3D 的能力边界目前可直接获取的货架相关公开数据集极少且各自存在明确局限。ShelfNetCVPR 2021 Workshop提供约1200张超市货架图像含商品类别标签与粗略边界框但无实例分割掩码、无格位编号、无SKU级映射仅适用于基础分类或检测模型预训练。Retail-Product-DetectionKaggle含4500张图像标注为YOLO格式的bbox优势在于商品类别覆盖广含进口商品但所有图像均在强均匀光下拍摄缺乏真实货架常见的侧光、阴影与反光干扰泛化性受限。Shelf-Image-3D2023年新发布是目前最接近工业需求的选项它包含200组多视角图像前视斜45°俯视每组对应同一货架提供基于深度相机重建的货架点云与商品网格模型并人工标注了每个商品在标准格位坐标系shelf coordinate system下的6DoF位姿x,y,z,roll,pitch,yaw。其核心价值在于支持三维空间关系建模但缺点是采集成本高仅覆盖12个常见品类如宝洁洗发水、雀巢咖啡且未开放原始深度图。选择时需明确任务目标若仅需2D检测Retail-Product-Detection足够若需做格位级计数与缺货分析Shelf-Image-3D的格位坐标系标注不可替代。提示Shelf-Image-3D的格位坐标系定义为原点位于货架左上角内侧顶点X轴向右列方向Y轴向下层方向Z轴向货架内深度方向。所有商品中心点坐标均以毫米为单位精度±2mm。使用前务必校验其提供的shelf_layout.json文件确认格位尺寸如标准格位宽280mm、高190mm、深350mm与你目标场景一致。2.2 工业级自建流程从货架标定板到格位坐标系的端到端落地当公开数据集无法满足业务需求如特定品牌陈列规则、冷链货架特殊材质反光、自有SKU体系必须自建数据集。我团队在为某连锁便利店构建补货AI系统时采用以下可复现流程2.2.1 货架物理标定用ArUco标记板建立世界坐标系在货架每一层四角粘贴4×4 ArUco标记ID: 0–3标记边长严格为50mm。用标定过的RGB-D相机Intel RealSense D435i以固定焦距f1.5mm拍摄各层正视图。运行OpenCVcv2.aruco.estimatePoseSingleMarkers()解算出每个标记相对于相机的旋转矩阵R和平移向量t。取四角标记的平均z值作为该层基准平面再通过最小二乘拟合确定货架整体平面方程AxByCzD0。此步骤将物理货架转化为可计算的刚体模型。2.2.2 格位网格生成从物理尺寸到数字栅格根据货架实测尺寸例宽1800mm、高1600mm、深400mm与标准格位规格宽280mm、高190mm、深350mm在Python中生成格位索引矩阵import numpy as np shelf_width, shelf_height, shelf_depth 1800, 1600, 400 slot_w, slot_h, slot_d 280, 190, 350 cols int(shelf_width // slot_w) # 6列 rows int(shelf_height // slot_h) # 8行 # 生成格位中心点坐标单位mm slot_centers [] for r in range(rows): for c in range(cols): x c * slot_w slot_w/2 y r * slot_h slot_h/2 z slot_d/2 # 默认商品居中于格位深度 slot_centers.append((x, y, z, frow{r1}_col{c1}))关键参数说明slot_w/slot_h/slot_d必须基于实际货架测量误差超过5mm会导致后续定位漂移z值设为slot_d/2是假设商品紧贴背板若需支持深度感知需结合深度图提取商品实际z坐标。2.2.3 商品标注规范超越bbox的四层结构化标签我们强制要求标注员使用CVAT平台按以下四层结构提交Layer 1实例层每个商品独立polygon掩码非bbox顶点数≥8覆盖商品完整轮廓含瓶身曲线Layer 2格位层为每个polygon绑定格位ID如row3_col2支持一格多品如小包装糖果Layer 3SKU层关联内部SKU编码如COKE-500ML-CLASSIC-2024非通用类别名Layer 4状态层标注遮挡等级0无遮挡1部分遮挡2严重遮挡与朝向front/side/back。 此结构使模型可同时输出“第3层第2格有2瓶可口可乐其中1瓶被左侧薯片袋遮挡30%”。3. 数据增强与合成解决真实货架图像稀缺与长尾品类问题3.1 基于物理引擎的货架图像合成BlenderPyTorch3D实战真实货架图像采集成本高且难以覆盖所有SKU组合与遮挡形态。我们采用Blender 3.6 PyTorch3D构建合成管线核心是保持几何一致性先在Blender中按真实货架尺寸建模导入商品3D模型从Sketchfab下载或用摄影测量法重建设置PBR材质重点调整塑料瓶的镜面反射率specular0.7、金属罐的粗糙度roughness0.3再用Cycles渲染器生成带alpha通道的图像。关键代码控制光照与视角# Blender Python脚本片段动态设置灯光 import bpy # 添加环形主光模拟超市LED灯带 light bpy.data.lights.new(nameShelfLight, typeAREA) light.energy 500 # 瓦特等效 light.size 1.2 # 米 bpy.context.collection.objects.link(light) # 设置相机视角模拟员工平视高度1.6m与俯视高度2.2m两种模式 camera bpy.data.objects[Camera] camera.location (0, -2.5, 1.6) # 平视距离2.5m高度1.6m合成图像必须与真实图像混合训练否则模型会过拟合合成纹理。我们采用MixUp策略对每张合成图随机选取一张真实货架图按α0.3线性混合像素值迫使模型学习跨域特征。3.2 针对货架场景的定制化增强解决三大高频噪声超市货架图像存在三类独特噪声通用增强库如Albumentations效果有限需定制反光抑制增强用OpenCV检测高光区域HSV空间V通道240的连通域对其施加高斯模糊kernel5并降低亮度V值×0.7标签扭曲增强模拟商品标签卷曲用cv2.remap()对标签区域应用正弦形位移场幅度控制在±3像素内避免过度失真动态遮挡增强随机叠加半透明遮挡物如手部剪影、购物篮边缘透明度α∈[0.2,0.5]位置限定在图像上1/3区域模拟顾客拿取动作。注意所有增强必须同步作用于mask图像。例如反光抑制处理时对应mask区域需保持原值不变否则破坏实例分割监督信号。我们用albumentations.Compose(transforms, bbox_params..., keypoint_params...)并传入mask为额外参数确保几何变换一致性。3.3 长尾SKU数据平衡基于CLIP的零样本特征迁移货架中80%销量来自20%头部SKU如可口可乐、农夫山泉但长尾SKU如地方特产、进口零食标注样本常5张。我们利用CLIP ViT-B/32模型提取商品图的文本-图像联合嵌入构建SKU特征空间from transformers import CLIPProcessor, CLIPModel processor CLIPProcessor.from_pretrained(openai/clip-vit-base-patch32) model CLIPModel.from_pretrained(openai/clip-vit-base-patch32) def get_sku_embedding(image_path, sku_name): image Image.open(image_path).convert(RGB) inputs processor(text[sku_name], imagesimage, return_tensorspt, paddingTrue) outputs model(**inputs) return outputs.image_embeds.squeeze().detach().numpy() # shape(512,)对长尾SKU计算其与头部SKU在嵌入空间的余弦相似度选取Top-3相似头部SKU将其对应图像的风格迁移AdaIN到长尾SKU图像上生成风格一致的新样本。实验表明此方法使长尾SKU检测mAP提升22.3%远超SMOTE等传统过采样。4. 格位级评估用货架坐标系验证模型定位精度4.1 定义货架专用评估指标Slot-Level mAP与Depth-Aware Recall通用COCO AP指标无法反映货架业务需求。我们定义两个核心指标Slot-Level mAP将预测框与GT框的IoU计算替换为格位匹配率Slot Match Rate, SMR。若预测商品中心点投影到格位平面后落入GT格位ID对应区域则视为匹配不依赖bbox重叠。公式SMR TP / (TP FP FN)其中TP正确格位匹配数FP错误格位匹配数如预测在row2_col3GT在row2_col4FN漏检格位数。Depth-Aware Recall针对深度方向Z轴的定位偏差定义召回阈值为±50mm格位深度350mm的1/7。仅当预测z坐标与GT z坐标的绝对差≤50mm时才计入召回。4.1.1 计算SMR的Python实现def calculate_slot_match_rate(predictions, ground_truths, slot_grid): predictions: list of dict {center_2d: (x,y), slot_id: row3_col2, z_pred: 175} ground_truths: same format slot_grid: dict mapping slot_id to [(x_min,y_min), (x_max,y_max)] in pixel coords tp, fp, fn 0, 0, 0 pred_slots set([p[slot_id] for p in predictions]) gt_slots set([g[slot_id] for g in ground_truths]) for slot_id in gt_slots: gt_in_slot [g for g in ground_truths if g[slot_id] slot_id] pred_in_slot [p for p in predictions if p[slot_id] slot_id] if len(gt_in_slot) 0 and len(pred_in_slot) 0: tp min(len(gt_in_slot), len(pred_in_slot)) # 一格多品时取min elif len(gt_in_slot) 0 and len(pred_in_slot) 0: fn len(gt_in_slot) for slot_id in pred_slots - gt_slots: fp len([p for p in predictions if p[slot_id] slot_id]) return tp / (tp fp fn) if (tp fp fn) 0 else 0 # 示例调用 slot_grid {row3_col2: [(120, 240), (180, 300)], row3_col3: [(180, 240), (240, 300)]} smr calculate_slot_match_rate(pred_list, gt_list, slot_grid) print(fSlot-Level mAP: {smr:.3f})4.2 模型失败根因分析三类典型货架误检模式在2000张测试图的错误案例中87%可归为以下三类需针对性优化误检类型占比典型表现解决方案格位错位Slot Shift42%预测商品在row2_col3GT在row2_col2相邻格位在损失函数中增加格位邻接约束对预测格位与GT格位的曼哈顿距离d添加惩罚项λ·d²λ0.1深度混淆Depth Confusion33%前排商品被误判为后排z预测偏差100mm在网络head中加入深度回归分支用L1 Loss监督输入增加货架层高先验如每层高190mm标签主导Label-Dominated25%商品主体被遮挡仅露标签一角模型仅靠标签纹理识别忽略瓶身形状在训练时对标签区域施加随机擦除RandomErasingp0.5area_ratio0.15强制模型学习全局特征4.3 实战技巧用货架标定板快速验证模型外参一致性部署前必做一步用现场货架的ArUco标定板验证模型输出是否与物理坐标系对齐。方法拍摄标定板图像→运行模型获取四个角点预测坐标→用OpenCVcv2.solvePnP()解算预测的R,t→与真实标定R,t对比。若旋转角误差3°或平移误差15mm说明模型存在系统性偏差。此时不要调优网络而是检查图像预处理中的resize方式必须用cv2.resize(img, (640,480), interpolationcv2.INTER_AREA)下采样用AREA禁用LINEAR或CUBIC否则引入插值畸变。我们曾因此将z轴定位误差从±82mm降至±11mm。本文还有配套的精品资源点击获取
RELATED

相关推荐

微信小程序股票行情页面结构化实现指南

微信小程序股票行情页面结构化实现指南

简介:本资源是一套完整的股票交易类微信小程序前端页面源码,面向小程序开发者、金融类应用学习者及对轻量化交易工具感兴趣的前端工程师。源码聚焦于用户端交易流程实现,涵盖行情查看、持仓管理、资金划转、账户设置等核心模块,适…

📅 2026/9/16 6:22:14
Colibri:专为MoE模型优化的纯C推理引擎

Colibri:专为MoE模型优化的纯C推理引擎

1. Colibri不是一只蜂鸟,而是一套为前沿MoE模型量身定制的C语言推理引擎你可能在GitHub Trending里见过它——一个叫colibri的仓库,星标增速快得反常;也可能在Hugging Face Model Hub某个最新发布的MoE模型卡片底部,看到一行小字&…

📅 2026/9/16 6:22:14
微信支付V3工具类封装实战:从下单、退款到回调验签

微信支付V3工具类封装实战:从下单、退款到回调验签

简介:这套微信支付工具类(V3版)是作者在企业项目中沉淀并封装的微信交易接口方案,主要面向需要对接微信支付V3、退款V3、交易状态查询及企业打款到零钱的后端开发者。工具类将微信支付官方接口中的签名生成、证书加载、请求发送、…

📅 2026/9/16 6:17:13
MORE NEWS

更多资讯

📰

二叉树的常考性质(附图片)

二叉树 一、定义 二叉树是n(n≥0)个结点的有限集合,满足: 可以为空(空二叉树,n0n0n0);非空时,由根结点、左子树、右子树三部分组成;每个结点最多只有2棵子树&…

📰

广东海洋大学(阳江校区)物联网工程大一新生干货手册|官方政策+自学+升学就业资源

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

自建CRM系统实战:从架构设计到落地实施全解析

我们团队内部有个用了很久的客户管理工具,一直东拼西凑,销售盯单靠Excel,售后跟进靠微信群,管理层想看数据得等月底让运营手工拉报表。后来实在忍不了,花了几个周末自己攒了一套内部系统,起名就叫DeskcommC…

📰

MatlabPNM:面向岩心CT数据的孔隙网络建模与渗流仿真框架

简介:本资源是一个面向科研人员与工程技术人员的Matlab孔隙网络建模工具包,专为多孔介质中流体流动、扩散传质及化学反应等过程的数值模拟而设计,适用于石油工程、地质学、环境科学和材料科学等领域。包内共33个文件,含14个核心功…

📰

M3U8空分片、无效分片故障排查,解决播放黑屏卡顿隐性问题

一、无效分片引发的流媒体隐性故障痛点在HLS点播、直播切片生产过程中,经常会出现空分片、零字节分片、无效解码分片等隐性问题。这类故障极具迷惑性,M3U8索引格式完全正常、HTTP请求返回200状态码、无404/502报错,常规自动化拨测、curl检测完…

📰

网站的空间和域名避坑指南:3个实战案例教你防黑防挂

网站的空间和域名避坑指南:3个实战案例教你防黑防挂 上周深夜,一个做外贸的朋友电话打过来,声音都在抖:“老张,我的网站被黑了!首页全是博彩广告,Google Search Console 邮件说站点不安全,客户全跑了,这咋办?”…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬