تخطي إلى المحتوى

مجموعة بيانات SKU-110k

تعد مجموعة البيانات SKU-110k عبارة عن مجموعة من صور أرفف البيع بالتجزئة المعبأة بكثافة، وهي مصممة لدعم البحث في مهام اكتشاف الكائنات. تحتوي مجموعة البيانات، التي طورها إران جولدمان وآخرون، على أكثر من 110,000 فئة فريدة من وحدات حفظ المخزون (SKU) مع كائنات معبأة بكثافة، غالبًا ما تبدو متشابهة أو حتى متطابقة، وموضوعة على مقربة.



شاهد: كيفية تدريب YOLOv10 على مجموعة بيانات SKU-110k باستخدام Ultralytics | مجموعة بيانات البيع بالتجزئة

نموذج صورة من مجموعة البيانات

الميزات الرئيسية

  • تحتوي SKU-110k على صور لأرفف المتاجر من جميع أنحاء العالم، وتتميز بكائنات مكتظة تشكل تحديات لأحدث كاشفات الكائنات.
  • تتضمن مجموعة البيانات أكثر من 110,000 فئة SKU فريدة، مما يوفر مجموعة متنوعة من مظاهر الكائنات.
  • تتضمن التعليقات التوضيحية مربعات إحاطة للكائنات وتصنيفات فئة SKU.

هيكل مجموعة البيانات

يتم تنظيم مجموعة بيانات SKU-110k في ثلاث مجموعات فرعية رئيسية:

  1. مجموعة التدريب: تحتوي هذه المجموعة الفرعية على 8,219 صورة وشروح توضيحية تُستخدم لتدريب نماذج الكشف عن الكائنات.
  2. مجموعة التحقق: تتكون هذه المجموعة الفرعية من 588 صورة وشروح توضيحية تستخدم للتحقق من صحة النموذج أثناء التدريب.
  3. مجموعة الاختبار: تتضمن هذه المجموعة الفرعية 2,936 صورة مصممة للتقييم النهائي لنماذج اكتشاف الأجسام المدربة.

التطبيقات

تستخدم مجموعة بيانات SKU-110k على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في مهام الكشف عن الكائنات، خاصة في المشاهد المكتظة مثل عروض أرفف البيع بالتجزئة. تشمل تطبيقاته:

  • إدارة وأتمتة مخزون البيع بالتجزئة
  • التعرف على المنتج في منصات التجارة الإلكترونية
  • التحقق من توافق مخطط العرض
  • أنظمة الدفع الذاتي في المتاجر.
  • التقاط وفرز الروبوتات في المستودعات

إن المجموعة المتنوعة من فئات 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/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 pandas as pd
  from tqdm 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 = pd.read_csv(dir / "annotations" / d, names=names).values  # 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

الاستخدام

لتدريب نموذج YOLO11n على مجموعة بيانات SKU-110K لعدد 100 حقبة بحجم صورة 640، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالحجج المتاحة، راجع صفحة تدريب النموذج.

مثال على التدريب

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolo11n.pt 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 الخاص بنا.

كيف يمكنني تدريب نموذج YOLO11 باستخدام مجموعة بيانات SKU-110k؟

يعد تدريب نموذج YOLO11 على مجموعة بيانات SKU-110k أمرًا مباشرًا. إليك مثال لتدريب نموذج YOLO11n لعدد 100 حقبة بحجم صورة 640:

مثال على التدريب

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolo11n.pt epochs=100 imgsz=640

للحصول على قائمة شاملة بالحجج المتاحة، راجع صفحة التدريب الخاصة بالنموذج.

ما هي المجموعات الفرعية الرئيسية لمجموعة بيانات SKU-110k؟

يتم تنظيم مجموعة بيانات SKU-110k في ثلاث مجموعات فرعية رئيسية:

  1. مجموعة التدريب: تحتوي على 8,219 صورة وشروح توضيحية تُستخدم لتدريب نماذج الكشف عن الكائنات.
  2. مجموعة التحقق: تتكون من 588 صورة وشروح توضيحية تستخدم للتحقق من صحة النموذج أثناء التدريب.
  3. مجموعة الاختبار: تتضمن 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}
}

يمكن العثور على مزيد من المعلومات حول مجموعة البيانات في قسم الاقتباسات والإقرارات.



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 4 أشهر

تعليقات