نظرة عامة على مجموعات بيانات تصنيف الصور

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

بالنسبة لمهام تصنيف YOLO من Ultralytics، يجب تنظيم مجموعة البيانات في هيكل محدد من المجلدات المقسمة تحت دليل root لتسهيل عمليات التدريب والاختبار والتحقق الاختياري بشكل صحيح. يتضمن هذا الهيكل أدلة منفصلة لمراحل التدريب (train) والاختبار (test)، مع دليل اختياري للتحقق (val).

يجب أن يحتوي كل من هذه الأدلة على دليل فرعي لكل فئة في مجموعة البيانات. تتم تسمية الأدلة الفرعية باسم الفئة المقابلة وتحتوي على جميع الصور الخاصة بتلك الفئة. تأكد من تسمية كل ملف صورة بشكل فريد وتخزينه بتنسيق شائع مثل JPEG أو PNG.

مثال على هيكل المجلد

ضع في اعتبارك مجموعة بيانات CIFAR-10 كمثال. يجب أن يبدو هيكل المجلد كما يلي:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

يضمن هذا النهج المنظم أن يتمكن النموذج من التعلم بفعالية من الفئات المنظمة جيداً خلال مرحلة التدريب وتقييم الأداء بدقة خلال مراحل الاختبار والتحقق.

الاستخدام

مثال
from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
تلميحة

معظم أسماء مجموعات البيانات المدمجة (على سبيل المثال cifar10 أو imagenette أو mnist160) ستقوم تلقائياً بتنزيل البيانات وتخزينها مؤقتاً في المرة الأولى التي تشير فيها إليها. وجه data إلى مسار مجلد فقط عندما تقوم بإعداد مجموعة بيانات مخصصة.

مجموعات البيانات المدعومة

تدعم Ultralytics مجموعات البيانات التالية مع التنزيل التلقائي:

  • Caltech 101: مجموعة بيانات تحتوي على صور لـ 101 فئة من الكائنات لمهام تصنيف الصور.
  • Caltech 256: نسخة موسعة من Caltech 101 مع 256 فئة من الكائنات وصور أكثر تحدياً.
  • CIFAR-10: مجموعة بيانات مكونة من 60 ألف صورة ملونة بحجم 32x32 في 10 فئات، مع 6 آلاف صورة لكل فئة.
  • CIFAR-100: نسخة موسعة من CIFAR-10 مع 100 فئة من الكائنات و600 صورة لكل فئة.
  • Fashion-MNIST: مجموعة بيانات تتكون من 70,000 صورة بتدرج رمادي لـ 10 فئات أزياء لمهام تصنيف الصور.
  • ImageNet: مجموعة بيانات واسعة النطاق لمهام اكتشاف الكائنات وتصنيف الصور تضم أكثر من 14 مليون صورة و20,000 فئة.
  • ImageNet-10: مجموعة فرعية أصغر من ImageNet تحتوي على 10 فئات لتسهيل التجارب والاختبارات السريعة.
  • Imagenette: مجموعة فرعية أصغر من ImageNet تحتوي على 10 فئات يسهل تمييزها لغرض التدريب والاختبار بشكل أسرع.
  • Imagewoof: مجموعة فرعية أكثر تحدياً من ImageNet تحتوي على 10 فئات من سلالات الكلاب لمهام تصنيف الصور.
  • MNIST: مجموعة بيانات مكونة من 70,000 صورة بتدرج رمادي لأرقام مكتوبة بخط اليد لمهام تصنيف الصور.
  • MNIST160: أول 8 صور من كل فئة في MNIST من مجموعة بيانات MNIST. تحتوي مجموعة البيانات على 160 صورة إجمالاً.

إضافة مجموعة بياناتك الخاصة

إذا كان لديك مجموعة بيانات خاصة بك وترغب في استخدامها لتدريب نماذج التصنيف باستخدام Ultralytics YOLO، فتأكد من أنها تتبع التنسيق المحدد أعلاه تحت "هيكل مجموعة البيانات" ثم قم بتوجيه وسيطة data الخاصة بك إلى دليل مجموعة البيانات عند تهيئة نص التدريب البرمجي الخاص بك.

الأسئلة الشائعة

كيف أقوم بهيكلة مجموعة البيانات الخاصة بي لمهام تصنيف YOLO؟

لهيكلة مجموعة البيانات الخاصة بك لمهام تصنيف Ultralytics YOLO، يجب عليك اتباع تنسيق محدد من المجلدات المقسمة. قم بتنظيم مجموعة البيانات الخاصة بك في أدلة منفصلة لـ train و test واختيارياً val. يجب أن يحتوي كل من هذه الأدلة على أدلة فرعية مسماة باسم كل فئة، مع وجود الصور المقابلة بداخلها. هذا يسهل عمليات التدريب والتقييم السلسة. كمثال، انظر إلى تنسيق مجموعة بيانات CIFAR-10:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

لمزيد من التفاصيل، قم بزيارة قسم هيكل مجموعة البيانات لمهام تصنيف YOLO.

ما هي مجموعات البيانات التي يدعمها Ultralytics YOLO لتصنيف الصور؟

يدعم Ultralytics YOLO التنزيل التلقائي للعديد من مجموعات البيانات لتصنيف الصور، بما في ذلك Caltech 101 و Caltech 256 و CIFAR-10 و CIFAR-100 و Fashion-MNIST و ImageNet و ImageNet-10 و Imagenette و Imagewoof و MNIST. تم تنظيم مجموعات البيانات هذه بطريقة تجعل من السهل استخدامها مع YOLO. توفر صفحة كل مجموعة بيانات مزيداً من التفاصيل حول هيكلها وتطبيقاتها.

كيف يمكنني إضافة مجموعة البيانات الخاصة بي لتصنيف الصور في YOLO؟

لاستخدام مجموعة البيانات الخاصة بك مع Ultralytics YOLO، تأكد من أنها تتبع تنسيق الدليل المحدد المطلوب لمهمة التصنيف، مع أدلة منفصلة لـ train و test واختيارياً val، وأدلة فرعية لكل فئة تحتوي على الصور الخاصة بها. بمجرد تنظيم مجموعة البيانات الخاصة بك بشكل صحيح، قم بتوجيه وسيطة data إلى الدليل الجذر لمجموعة البيانات الخاصة بك عند تهيئة نص التدريب البرمجي. إليك مثال باستخدام Python:

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

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

لماذا يجب أن أستخدم Ultralytics YOLO لتصنيف الصور؟

يوفر Ultralytics YOLO العديد من المزايا لتصنيف الصور، بما في ذلك:

  • نماذج مدربة مسبقاً: قم بتحميل نماذج مدربة مسبقاً مثل yolo26n-cls.pt لبدء عملية التدريب الخاصة بك بسرعة.
  • سهولة الاستخدام: واجهة برمجة تطبيقات (API) بسيطة وأوامر CLI للتدريب والتقييم.
  • أداء عالٍ: دقة وسرعة متطورة، مثالية للتطبيقات في الوقت الفعلي.
  • دعم مجموعات بيانات متعددة: تكامل سلس مع العديد من مجموعات البيانات الشائعة مثل CIFAR-10 و ImageNet والمزيد.
  • المجتمع والدعم: الوصول إلى وثائق شاملة ومجتمع نشط لاستكشاف الأخطاء وإصلاحها والتحسينات.

للحصول على رؤى إضافية وتطبيقات واقعية، يمكنك استكشاف Ultralytics YOLO.

كيف يمكنني تدريب نموذج باستخدام Ultralytics YOLO؟

يمكن تدريب نموذج باستخدام Ultralytics YOLO بسهولة في كل من Python و CLI. إليك مثال:

مثال
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

توضح هذه الأمثلة العملية المباشرة لتدريب نموذج YOLO باستخدام أي من الطريقتين. لمزيد من المعلومات، قم بزيارة قسم الاستخدام وصفحة التدريب لمهام التصنيف.

التعليقات