مجموعة بيانات SKU-110k
يمكن تهيئة الوسيط SKU-110k هي مجموعة بيانات من صور أرفف متاجر مزدحمة، صُممت لدعم الأبحاث في مهام اكتشاف الكائنات مهام. تم تطوير مجموعة البيانات بواسطة Eran Goldman وآخرون، وتحتوي على أكثر من 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 (لغة ترميز أخرى) لتعريف تكوين مجموعة البيانات. وهو يحتوي على معلومات حول مسارات مجموعة البيانات، والفئات، ومعلومات أخرى ذات صلة. في حالة مجموعة بيانات 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الاستخدام
لتدريب نموذج YOLO26n على مجموعة بيانات SKU-110K لمدة 100 دورات (epochs) بحجم صورة 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.
يعرض المثال تنوع وتعقيد البيانات في مجموعة بيانات 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}
}نود أن نشكر Eran Goldman وآخرين لإنشاء وصيانة مجموعة بيانات SKU-110k كمورد قيم لمجتمع أبحاث الرؤية الحاسوبية. لمزيد من المعلومات حول مجموعة بيانات SKU-110k ومبتكريها، قم بزيارة مستودع GitHub الخاص بمجموعة بيانات SKU-110k.
الأسئلة الشائعة
ما هي مجموعة بيانات SKU-110k ولماذا هي مهمة للكشف عن الكائنات؟
تتكون مجموعة بيانات SKU-110k من صور أرفف متاجر مزدحمة مصممة للمساعدة في الأبحاث في مهام الكشف عن الكائنات. تم تطويرها بواسطة Eran Goldman وآخرين، وتتضمن أكثر من 110,000 فئة SKU فريدة. تكمن أهميتها في قدرتها على تحدي أحدث كاشفات الكائنات بفضل تنوع مظهر الكائنات وقربها من بعضها، مما يجعلها مورداً لا يقدر بثمن للباحثين والممارسين في مجال الرؤية الحاسوبية. تعرف على المزيد حول هيكل مجموعة البيانات وتطبيقاتها في مجموعة بيانات SKU-110k.
كيف أقوم بتدريب نموذج 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)للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى النموذج التدريب.
ما هي المجموعات الفرعية الرئيسية لمجموعة بيانات 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}
}يمكن العثور على مزيد من المعلومات حول مجموعة البيانات في الاقتباسات والشكر.