Ultralytics YOLO27:
Get Started

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

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

بالنسبة إلى مهام تصنيف YOLO من Ultralytics، يجب تنظيم مجموعة البيانات ضمن بنية محددة لأدلة التقسيم تحت دليل root. وتتضمن هذه البنية دليل train ودليل val (كما يُقبل valid وvalidation)، مع دليل test اختياري. إذا لم يوجد دليل للتحقق، فسيُستخدم دليل test للتحقق بدلًا منه. وإذا لم يتضمن الجذر دليل train إطلاقًا، لكنه يحتوي على مجلد لكل فئة، فستقسّم Ultralytics الصور تلقائيًا بنسبة 80/20 إلى دليل <root>_split جديد يتضمن دليلين فرعيين هما train وval.

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

مثال على بنية المجلدات#

لنأخذ مجموعة بيانات CIFAR-10 مثالًا. ينبغي أن تبدو بنية المجلدات كما يلي:

cifar10/
|
|-- 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

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n-cls.pt")  # ⁨تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)⁩

# ⁨تدريب النموذج⁩
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,000 صورة بتدرج الرمادي لعشر فئات من الأزياء، لمهام تصنيف الصور.
  • ImageNet: معيار ImageNet-1k (ILSVRC-2012) لتصنيف الصور، ويضم 1,000 فئة و1.28 مليون صورة تدريب و50,000 صورة تحقق.
  • ImageNet-10: مجموعة فرعية أصغر من ImageNet تضم 10 فئات لتسريع التجارب والاختبارات.
  • Imagenette: مجموعة فرعية أصغر من ImageNet تضم 10 فئات يسهل التمييز بينها، لتسريع التدريب والاختبار.
  • Imagewoof: مجموعة فرعية أكثر صعوبة من ImageNet، تضم 10 فئات من سلالات الكلاب لمهام تصنيف الصور.
  • MNIST: مجموعة بيانات تضم 70,000 صورة بتدرج الرمادي لأرقام مكتوبة بخط اليد، لمهام تصنيف الصور.
  • MNIST160: أول 8 صور لكل رقم (0-9) من مجموعتي التدريب والاختبار في MNIST. تضم مجموعة البيانات 160 صورة إجمالًا.

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

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

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

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

    cifar10/
    |-- 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
    
    # ⁨تحميل نموذج⁩
    model = YOLO("yolo26n-cls.pt")  # ⁨تحميل نموذج مدرّب مسبقًا (موصى به للتدريب)⁩
    
    # ⁨تدريب النموذج⁩
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

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

  • يوفر Ultralytics YOLO عدة فوائد لتصنيف الصور، منها:

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

    للاطلاع على مزيد من الرؤى والتطبيقات العملية، يمكنك استكشاف Ultralytics YOLO.

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

    مثال
    from ultralytics import YOLO
    
    # ⁨تحميل نموذج⁩
    model = YOLO("yolo26n-cls.pt")  # ⁨حمّل نموذجًا مدرّبًا مسبقًا⁩
    
    # ⁨تدريب النموذج⁩
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

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

التعليقات