مجموعة بيانات SKU-110k
مجموعة بيانات SKU-110k هي عبارة عن مجموعة من صور أرفف متاجر مزدحمة، تم تصميمها لدعم الأبحاث في مهام اكتشاف الأجسام. طوّر إيران غولدمان وآخرون مجموعة البيانات هذه، وهي تحتوي على أكثر من 110,000 فئة فريدة من وحدات حفظ المخزون (SKU) ذات أجسام متراصة بكثافة، وغالبًا ما تبدو متشابهة أو حتى متطابقة، وموضوعة على مقربة من بعضها البعض.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

الميزات الرئيسية
- تحتوي SKU-110k على صور لأرفف متاجر من جميع أنحاء العالم، وتتميز بأجسام متراصة بكثافة مما يطرح تحديات أمام أحدث مكتشفات الأجسام.
- تتضمن مجموعة البيانات أكثر من 110,000 فئة SKU فريدة، مما يوفر مجموعة متنوعة من مظاهر الأجسام.
- تشمل التوضيحات مربعات الإحاطة (bounding boxes) للأجسام وتصنيفات فئات SKU.
هيكل مجموعة البيانات
تم تنظيم مجموعة بيانات SKU-110k في ثلاث مجموعات فرعية رئيسية:
- مجموعة التدريب: تحتوي هذه المجموعة الفرعية على 8,219 صورة وتوضيحات تُستخدم لتدريب نماذج اكتشاف الأجسام.
- مجموعة التحقق: تتكون هذه المجموعة الفرعية من 588 صورة وتوضيحات تُستخدم للتحقق من النموذج أثناء التدريب.
- مجموعة الاختبار: تتضمن هذه المجموعة الفرعية 2,936 صورة مصممة للتقييم النهائي لنماذج اكتشاف الأجسام المدربة.
التطبيقات
تُستخدم مجموعة بيانات SKU-110k على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في مهام اكتشاف الأجسام، خاصة في المشاهد المزدحمة مثل أرفف العرض في المتاجر. وتتضمن تطبيقاتها ما يلي:
- إدارة وأتمتة مخزون التجزئة
- التعرف على المنتجات في منصات التجارة الإلكترونية
- التحقق من الامتثال لمخطط العرض (Planogram)
- أنظمة الدفع الذاتي في المتاجر
- الالتقاط والفرز الآلي في المستودعات
إن مجموعة فئات SKU المتنوعة وترتيبات الأجسام المتراصة بكثافة تجعلها مورداً قيماً للباحثين والممارسين في مجال الرؤية الحاسوبية.
ملف YAML الخاص بمجموعة البيانات
يتم استخدام ملف YAML (Yet Another Markup Language) لتحديد إعدادات مجموعة البيانات. وهو يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، ومعلومات أخرى ذات صلة. في حالة مجموعة بيانات SKU-110K، يتم الاحتفاظ بملف SKU-110K.yaml على الرابط 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 labelالاستخدام
To train a YOLO26n model on the SKU-110K dataset for 100 epochs with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.
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)عينة البيانات والشروحات
تحتوي مجموعة بيانات SKU-110k على مجموعة متنوعة من صور أرفف المتاجر مع أجسام متراصة بكثافة، مما يوفر سياقاً غنياً لمهام اكتشاف الأجسام. فيما يلي بعض الأمثلة على البيانات من مجموعة البيانات، جنباً إلى جنب مع توضيحاتها المقابلة:

- صورة رف تجزئة متراص بكثافة: توضح هذه الصورة مثالاً للأجسام المزدحمة في إعداد رف التجزئة. يتم توضيح الأجسام بمربعات إحاطة وتصنيفات فئات SKU.
يعرض المثال تنوع وتعقيد البيانات في مجموعة بيانات SKU-110k ويسلط الضوء على أهمية البيانات عالية الجودة لمهام اكتشاف الأجسام. يطرح الترتيب الكثيف للمنتجات تحديات فريدة لخوارزميات الاكتشاف، مما يجعل مجموعة البيانات هذه قيّمة بشكل خاص لتطوير حلول رؤية حاسوبية قوية تركز على التجزئة.
الاقتباسات والشكر
إذا كنت تستخدم مجموعة بيانات 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}
}نود أن نعرب عن تقديرنا لإيران غولدمان وآخرين لإنشاء وصيانة مجموعة بيانات SKU-110k كمورد قيّم لمجتمع أبحاث الرؤية الحاسوبية. لمزيد من المعلومات حول مجموعة بيانات SKU-110k ومبتكريها، تفضل بزيارة مستودع GitHub الخاص بمجموعة بيانات SKU-110k.
الأسئلة الشائعة
ما هي مجموعة بيانات SKU-110k ولماذا تعتبر مهمة لاكتشاف الأجسام؟
تتكون مجموعة بيانات SKU-110k من صور أرفف متاجر مزدحمة مصممة للمساعدة في الأبحاث في مهام اكتشاف الأجسام. طورها إيران غولدمان وآخرون، وهي تشمل أكثر من 110,000 فئة SKU فريدة. تكمن أهميتها في قدرتها على تحدي أحدث مكتشفات الأجسام بفضل التنوع في مظاهر الأجسام وتقاربها، مما يجعلها مورداً لا يقدر بثمن للباحثين والممارسين في مجال الرؤية الحاسوبية. تعرف على المزيد حول هيكل مجموعة البيانات وتطبيقاتها في قسم مجموعة بيانات SKU-110k.
كيف يمكنني تدريب نموذج YOLO26 باستخدام مجموعة بيانات SKU-110k؟
تدريب نموذج YOLO26 على مجموعة بيانات SKU-110k عملية مباشرة. إليك مثال لتدريب نموذج YOLO26n لمدة 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)للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى صفحة التدريب الخاصة بالنموذج.
ما هي المجموعات الفرعية الرئيسية لمجموعة بيانات SKU-110k؟
تم تنظيم مجموعة بيانات SKU-110k في ثلاث مجموعات فرعية رئيسية:
- مجموعة التدريب: تحتوي على 8,219 صورة وتوضيحات تُستخدم لتدريب نماذج اكتشاف الأجسام.
- مجموعة التحقق: تتكون من 588 صورة وتوضيحات تُستخدم للتحقق من النموذج أثناء التدريب.
- مجموعة الاختبار: تتضمن 2,936 صورة مصممة للتقييم النهائي لنماذج اكتشاف الأجسام المدربة.
راجع قسم هيكل مجموعة البيانات لمزيد من التفاصيل.
كيف يمكنني تهيئة مجموعة بيانات SKU-110k للتدريب؟
يتم تحديد إعدادات مجموعة بيانات SKU-110k في ملف YAML، والذي يتضمن تفاصيل حول مسارات مجموعة البيانات والفئات ومعلومات أخرى ذات صلة. يتم الاحتفاظ بملف SKU-110K.yaml في SKU-110K.yaml. على سبيل المثال، يمكنك تدريب نموذج باستخدام هذا الإعداد كما هو موضح في قسم الاستخدام الخاص بنا.
ما هي السمات الرئيسية لمجموعة بيانات SKU-110k في سياق التعلم العميق؟
تتميز مجموعة بيانات SKU-110k بصور لأرفف متاجر من جميع أنحاء العالم، وتعرض أجساماً متراصة بكثافة تفرض تحديات كبيرة على مكتشفات الأجسام:
- أكثر من 110,000 فئة SKU فريدة
- تنوع مظاهر الأجسام
- تتضمن التوضيحات مربعات إحاطة وتصنيفات فئات SKU
تجعل هذه الميزات مجموعة بيانات SKU-110k قيّمة بشكل خاص لتدريب وتقييم نماذج التعلم العميق في مهام اكتشاف الأجسام. لمزيد من التفاصيل، انظر قسم السمات الرئيسية.
كيف يمكنني الاستشهاد بمجموعة بيانات SKU-110k في بحثي؟
إذا كنت تستخدم مجموعة بيانات 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}
}يمكن العثور على مزيد من المعلومات حول مجموعة البيانات في قسم الاستشهادات والشكر.