Link to this sectionمجموعة بيانات SKU-110K#
مجموعة بيانات SKU-110K هي مجموعة بيانات ذات فئة واحدة لـ اكتشاف الكائنات تتكون من 11,743 صورة لرفوف متاجر مزدحمة، مقسمة إلى 8,219 صورة للتدريب، و588 للتحقق، و2,936 للاختبار. يتم وضع تعليق توضيحي على كل منتج باستخدام مربع إحاطة واحد تحت فئة واحدة، object — يشير الاسم إلى أكثر من 110,000 وحدة حفظ مخزون (SKUs) فريدة تظهر في المشاهد، وليس إلى 110,000 فئة اكتشاف. تم إنشاؤها بواسطة Eran Goldman وآخرين لورقة CVPR 2019 بعنوان Precise Detection in Densely Packed Scenes، وتحتوي على أكثر من 1.7 مليون منتج معلق — بمتوسط 147 منتجاً تقريباً في الصورة الواحدة — مما يجعلها معياراً صعباً لنماذج رؤية الحاسوب في بيئات التجزئة المزدحمة.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionالميزات الرئيسية#
- اكتشاف فئة واحدة: يتم تصنيف كل منتج بمربع إحاطة واحد تحت فئة واحدة،
object(names: {0: object}) — لا تحتوي التعليقات التوضيحية على تصنيفات لكل وحدة حفظ مخزون (SKU). - كثافة كائنات فائقة: يبلغ متوسط عدد المنتجات المرصوصة بدقة في صور رفوف المتاجر من جميع أنحاء العالم حوالي 147 منتجاً لكل منها، مع وجود كائنات غالباً ما تبدو متشابهة أو حتى متطابقة موضوعة بالقرب من بعضها البعض.
- نطاق واسع: أكثر من 110,000 وحدة حفظ مخزون (SKU) فريدة وأكثر من 1.7 مليون مربع إحاطة معلق عبر 11,743 صورة تتحدى أحدث كاشفات الكائنات.
Link to this sectionهيكل مجموعة البيانات#
تم تقسيم مجموعة بيانات SKU-110K إلى ثلاث مجموعات فرعية، تشترك جميعها في فئة object الواحدة:
| التقسيم (Split) | الصور | الوصف |
|---|---|---|
| التدريب | 8,219 | صور وتعليقات توضيحية لتدريب النموذج |
| التحقق | 588 | صور مستبعدة لـ التقييم أثناء التدريب |
| الاختبار (Test) | 2,936 | صور للتقييم النهائي للنموذج المدرب |
Link to this sectionالتطبيقات#
تُستخدم مجموعة بيانات SKU-110K على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في مهام اكتشاف الكائنات، خاصة في المشاهد المزدحمة مثل شاشات عرض رفوف التجزئة. تشمل تطبيقاتها:
- إدارة وأتمتة مخزون التجزئة
- التعرف على المنتجات في منصات التجارة الإلكترونية
- التحقق من الامتثال لمخطط العرض (Planogram)
- أنظمة الدفع الذاتي في المتاجر
- الالتقاط والفرز الآلي في المستودعات
للتعليق على صور الرفوف الخاصة بك، وتدريب وإدارة مجموعات بيانات اكتشاف التجزئة في متصفحك، قم بتشغيل سير العمل الكامل مع Ultralytics Platform.
Link to this sectionYAML مجموعة البيانات#
يحدد ملف SKU-110K.yaml تكوين مجموعة البيانات — مسارات مجموعة البيانات، وأسماء الفئات، وغيرها من البيانات الوصفية. يتم الاحتفاظ به في مستودع Ultralytics على https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# SKU-110K retail items dataset https://github.com/eg4000/SKU110K_CVPR19 by Trax Retail
# Documentation: https://docs.ultralytics.com/datasets/detect/sku-110k
# Example usage: yolo train data=SKU-110K.yaml
# parent
# ├── ultralytics
# └── datasets
# └── SKU-110K ← downloads here (13.6 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: SKU-110K # dataset root dir
train: train.txt # train images (relative to 'path') 8219 images
val: val.txt # val images (relative to 'path') 588 images
test: test.txt # test images (optional) 2936 images
# Classes
names:
0: object
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import shutil
from pathlib import Path
import numpy as np
import polars as pl
from ultralytics.utils import TQDM
from ultralytics.utils.downloads import download
from ultralytics.utils.ops import xyxy2xywh
# Download
dir = Path(yaml["path"]) # dataset root dir
parent = Path(dir.parent) # download dir
urls = ["http://trax-geometry.s3.amazonaws.com/cvpr_challenge/SKU110K_fixed.tar.gz"]
download(urls, dir=parent)
# Rename directories
if dir.exists():
shutil.rmtree(dir)
(parent / "SKU110K_fixed").rename(dir) # rename dir
(dir / "labels").mkdir(parents=True, exist_ok=True) # create labels dir
# Convert labels
names = "image", "x1", "y1", "x2", "y2", "class", "image_width", "image_height" # column names
for d in "annotations_train.csv", "annotations_val.csv", "annotations_test.csv":
x = pl.read_csv(dir / "annotations" / d, has_header=False, new_columns=names, infer_schema_length=None).to_numpy() # annotations
images, unique_images = x[:, 0], np.unique(x[:, 0])
with open((dir / d).with_suffix(".txt").__str__().replace("annotations_", ""), "w", encoding="utf-8") as f:
f.writelines(f"./images/{s}\n" for s in unique_images)
for im in TQDM(unique_images, desc=f"Converting {dir / d}"):
cls = 0 # single-class dataset
with open((dir / "labels" / im).with_suffix(".txt"), "a", encoding="utf-8") as f:
for r in x[images == im]:
w, h = r[6], r[7] # image width, height
xywh = xyxy2xywh(np.array([[r[1] / w, r[2] / h, r[3] / w, r[4] / h]]))[0] # instance
f.write(f"{cls} {xywh[0]:.5f} {xywh[1]:.5f} {xywh[2]:.5f} {xywh[3]:.5f}\n") # write labelLink to this sectionالاستخدام#
يتم تنزيل SKU-110K تلقائياً في المرة الأولى التي تقوم فيها بالتدريب ويتطلب حوالي 13.6 جيجابايت من مساحة القرص الفارغة لصورها البالغ عددها 11,743 صورة. يقوم برنامج التنزيل أيضاً بجلب التعليقات التوضيحية الأصلية وتحويلها إلى تنسيق YOLO، وهو ما قد يستغرق بضع دقائق.
لتدريب نموذج YOLO26n على مجموعة بيانات SKU-110K لمدة 100 عصر بحجم صورة 640، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسائط المتاحة، راجع صفحة تدريب النموذج.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)Link to this sectionعينة من البيانات والتعليقات#
تلتقط صور SKU-110K المنتجات المزدحمة على رفوف المتاجر الحقيقية، حيث توجد العشرات من العناصر المتطابقة تقريباً جنباً إلى جنب. إليك صورة توضيحية مع تعليقاتها التوضيحية:

- صورة رف تجزئة مزدحم: توضح هذه الصورة مثالاً على الكائنات المزدحمة في إعداد رفوف التجزئة. يتم تحديد الكائنات بمربعات إحاطة تحت فئة
objectالواحدة.
يجعل الترتيب الكثيف للمنتجات من SKU-110K قيمة بشكل خاص لتطوير حلول رؤية حاسوبية قوية تركز على التجزئة، حيث أن العدد الكبير للكائنات في كل صورة يدفع الكاشفات إلى أبعد من المعايير المعتادة.
Link to this sectionالاقتباسات والشكر#
إذا كنت تستخدم مجموعة بيانات SKU-110K في عملك البحثي أو التطويري، يرجى الاستشهاد بالورقة التالية:
@inproceedings{goldman2019dense,
author = {Eran Goldman and Roei Herzig and Aviv Eisenschtat and Jacob Goldberger and Tal Hassner},
title = {Precise Detection in Densely Packed Scenes},
booktitle = {Proc. Conf. Comput. Vision Pattern Recognition (CVPR)},
year = {2019}
}نود أن نعرب عن تقديرنا لـ Eran Goldman وآخرين لإنشاء وصيانة مجموعة بيانات SKU-110K كمورد قيم لمجتمع أبحاث رؤية الحاسوب. لمزيد من المعلومات حول مجموعة بيانات SKU-110K ومنشئيها، تفضل بزيارة مستودع GitHub الخاص بمجموعة بيانات SKU-110K.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هي الاستخدامات الخاصة بمجموعة بيانات SKU-110K؟#
مجموعة بيانات SKU-110K هي مجموعة بيانات لاكتشاف الكائنات من فئة واحدة تتكون من 11,743 صورة لرفوف تجزئة مزدحمة، أنشأها Eran Goldman وآخرون لورقتهم البحثية في مؤتمر CVPR لعام 2019. يتم تصنيف كل منتج بمربع إحاطة object واحد، وتغطي الصور أكثر من 110,000 وحدة حفظ مخزون (SKU) فريدة، مما يجعلها معياراً قوياً لاكتشاف الكائنات في المشاهد المزدحمة ولبناء أنظمة رؤية الحاسوب الخاصة بالتجزئة.
Link to this sectionهل تحتوي مجموعة بيانات SKU-110K على 110,000 فئة؟#
لا. SKU-110K هي مجموعة بيانات من فئة واحدة: يتم التعليق على كل منتج بمربع إحاطة واحد تحت فئة object (names: {0: object}). يشير الرقم "110K" في الاسم إلى عدد وحدات حفظ المخزون (SKU) الفريدة المصورة عبر الصور، وليس إلى عدد فئات الاكتشاف.
Link to this sectionكم عدد الصور والفئات الموجودة في مجموعة بيانات SKU-110K؟#
تحتوي مجموعة بيانات SKU-110K على 11,743 صورة — 8,219 للتدريب، و588 للتحقق، و2,936 للاختبار — وفئة اكتشاف واحدة فقط، هي object. راجع قسم هيكل مجموعة البيانات وتكوين SKU-110K.yaml للحصول على التفاصيل.
Link to this sectionما هو حجم تنزيل مجموعة بيانات SKU-110K؟#
يبلغ حجم SKU-110K حوالي 13.6 جيجابايت ويتم تنزيلها تلقائياً في المرة الأولى التي تقوم فيها بالتدريب باستخدام data="SKU-110K.yaml" — لا يلزم إجراء تنزيل يدوي. لتصفح خيارات أصغر، راجع نظرة عامة على مجموعات بيانات الاكتشاف.
Link to this sectionكيف يمكنني تدريب نموذج YOLO26 باستخدام مجموعة بيانات SKU-110K؟#
تدريب نموذج YOLO26 على مجموعة بيانات SKU-110K عملية مباشرة. إليك مثال لتدريب نموذج YOLO26n لـ 100 دورة تدريبية (epoch) بحجم صورة 640:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)للحصول على قائمة شاملة بالوسائط المتاحة، راجع صفحة تدريب النموذج ونصائح تدريب النموذج.