مجموعة بيانات SKU-110k
مجموعة بيانات SKU-110k عبارة عن مجموعة من صور أرفف البيع بالتجزئة المعبأة بكثافة ، وهي مصممة لدعم البحث في مهام اكتشاف الكائنات. تحتوي مجموعة البيانات ، التي طورها Eran Goldman et al. ، على أكثر من 110,000 فئة فريدة من فئات وحدات حفظ المتاجر (SKU) مع كائنات معبأة بكثافة ، وغالبا ما تبدو متشابهة أو حتى متطابقة ، موضوعة على مقربة.
الميزات الرئيسية
- يحتوي SKU-110k على صور لأرفف المتاجر من جميع أنحاء العالم ، والتي تتميز بأشياء مكتظة تشكل تحديات لأجهزة الكشف عن الأشياء الحديثة.
- تتضمن مجموعة البيانات أكثر من 110000 فئة SKU فريدة ، مما يوفر مجموعة متنوعة من مظاهر الكائنات.
- تتضمن التعليقات التوضيحية مربعات محيطة للكائنات وتسميات فئات SKU.
هيكل مجموعة البيانات
تم تنظيم مجموعة بيانات SKU-110k في ثلاث مجموعات فرعية رئيسية:
- مجموعة التدريب: تحتوي هذه المجموعة الفرعية على صور وتعليقات توضيحية مستخدمة لتدريب نماذج اكتشاف الكائنات.
- مجموعة التحقق من الصحة: تتكون هذه المجموعة الفرعية من الصور والتعليقات التوضيحية المستخدمة للتحقق من صحة النموذج أثناء التدريب.
- مجموعة الاختبار: تم تصميم هذه المجموعة الفرعية للتقييم النهائي لنماذج اكتشاف الكائنات المدربة.
التطبيقات
تستخدم مجموعة بيانات SKU-110k على نطاق واسع لتدريب وتقييم نماذج التعلم العميق في مهام اكتشاف الأشياء ، خاصة في المشاهد المزدحمة مثل شاشات عرض أرفف البيع بالتجزئة. مجموعة البيانات المتنوعة من فئات SKU وترتيبات الكائنات المعبأة بكثافة تجعلها موردا قيما للباحثين والممارسين في مجال رؤية الكمبيوتر.
مجموعة البيانات YAML
يتم استخدام ملف YAML (لغة ترميز أخرى) لتحديد تكوين مجموعة البيانات. يحتوي على معلومات حول مسارات مجموعة البيانات والفئات والمعلومات الأخرى ذات الصلة. بالنسبة لمجموعة بيانات 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 YOLO 🚀, AGPL-3.0 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: ../datasets/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') 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') 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
استخدام
لتدريب أ YOLOv8n على مجموعة بيانات SKU-110K ل 100 حقبة بحجم صورة 640 ، يمكنك استخدام مقتطفات التعليمات البرمجية التالية. للحصول على قائمة شاملة بالوسيطات المتاحة، ارجع إلى صفحة نموذج التدريب .
مثال القطار
عينة من البيانات والتعليقات التوضيحية
تحتوي مجموعة بيانات SKU-110k على مجموعة متنوعة من صور أرفف البيع بالتجزئة مع كائنات مكتظة ، مما يوفر سياقا غنيا لمهام اكتشاف الكائنات. في ما يلي بعض الأمثلة على البيانات من مجموعة البيانات، إلى جانب التعليقات التوضيحية المقابلة لها:
- صورة رف البيع بالتجزئة المعبأ بكثافة: توضح هذه الصورة مثالا على العناصر المعبأة بكثافة في إعداد رف البيع بالتجزئة. يتم إضافة تعليقات توضيحية إلى الكائنات باستخدام المربعات المحيطة وتسميات فئة SKU.
يعرض المثال تنوع وتعقيد البيانات في مجموعة بيانات SKU-110k ويسلط الضوء على أهمية البيانات عالية الجودة لمهام اكتشاف الكائنات.
الاستشهادات والشكر
إذا كنت تستخدم مجموعة بيانات SKU-110k في أعمال البحث أو التطوير الخاصة بك ، فيرجى الاستشهاد بالورقة التالية:
نود أن نعرب عن تقديرنا ل Eran Goldman et al. لإنشاء وصيانة مجموعة بيانات SKU-110k كمورد قيم لمجتمع أبحاث رؤية الكمبيوتر. لمزيد من المعلومات حول مجموعة بيانات SKU-110k ومنشئيها، تفضل بزيارة مستودع GitHub لمجموعة بيانات SKU-110k.