Ultralytics YOLO27:

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

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

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

يجب أن يحتوي كل دليل من هذه الأدلة على دليل فرعي واحد لكل فئة في مجموعة البيانات. وتُسمّى الأدلة الفرعية بأسماء الفئات المقابلة، وتحتوي على جميع الصور الخاصة بتلك الفئة. تأكد من تسمية كل ملف صورة باسم فريد وتخزينه بتنسيق شائع مثل 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/ (optional)
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/
|   |-- 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 مجموعات البيانات التالية مع التنزيل التلقائي. تتم استضافة معظم مجموعات البيانات هذه أيضاً على منصة Ultralytics، حيث يمكنك تصفح الصور والتعليقات التوضيحية، وعرض إحصاءات مجموعة البيانات، واستنساخها للتدريب السحابي.

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

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

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

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

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

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

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

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

  • لاستخدام مجموعة البيانات الخاصة بك مع Ultralytics YOLO، تأكد من أنها تتبع تنسيق الدليل المحدد المطلوب لمهمة التصنيف، مع أدلة منفصلة train و val (واختيارياً test)، وأدلة فرعية لكل فئة تحتوي على الصور الخاصة بها. بمجرد هيكلة مجموعة البيانات الخاصة بك بشكل صحيح، قم بتوجيه وسيطة 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 العديد من المزايا لتصنيف الصور، ومنها:

    • النماذج المدربة مسبقًا: حمّل نماذج مدربة مسبقًا مثل yolo26n-cls.pt لبدء عملية التدريب بسرعة.
    • سهولة الاستخدام: أوامر بسيطة عبر API وCLI للتدريب والتقييم.
    • أداء عالٍ: دقة وسرعة بمستوى متقدم، ما يجعلها مثالية للتطبيقات الآنية.
    • دعم مجموعات بيانات متعددة: تكامل سلس مع مختلف مجموعات البيانات الشائعة مثل CIFAR-10 و[ImageNet](https://ultralytics-translation-1.invalid وغيرها.
    • المجتمع والدعم: إمكانية الوصول إلى وثائق شاملة ومجتمع نشط لاستكشاف الأخطاء وإصلاحها وإجراء التحسينات.

    للاطلاع على رؤى إضافية وتطبيقات واقعية، يمكنك استكشاف 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 باستخدام أي من النهجين بطريقة مباشرة. لمزيد من المعلومات، راجع قسم الاستخدام وصفحة التدريب لمهام التصنيف.

التعليقات