نظرة عامة على مجموعات بيانات تصنيف الصور
هيكل مجموعة البيانات لمهام تصنيف YOLO
ل تستخدم Ultralytics مهام تصنيف YOLO، يجب تنظيم مجموعة البيانات في هيكل دليل مقسم معين ضمن 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("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
مجموعات البيانات المدعومة
تدعم Ultralytics مجموعات البيانات التالية مع التنزيل التلقائي:
- Caltech 101: مجموعة بيانات تحتوي على صور لـ 101 فئة من فئات الكائنات لمهام تصنيف الصور.
- Caltech 256: نسخة موسعة من Caltech 101 مع 256 فئة كائن وصور أكثر تحديًا.
- CIFAR-10: مجموعة بيانات تتكون من 60 ألف صورة ملونة بحجم 32 × 32 في 10 فئات، مع 6 آلاف صورة لكل فئة.
- CIFAR-100: نسخة موسعة من CIFAR-10 مع 100 فئة كائن و 600 صورة لكل فئة.
- Fashion-MNIST: مجموعة بيانات تتكون من 70,000 صورة ذات تدرج رمادي لـ 10 فئات أزياء لمهام تصنيف الصور.
- ImageNet: مجموعة بيانات واسعة النطاق لاكتشاف الكائنات وتصنيف الصور مع أكثر من 14 مليون صورة و 20000 فئة.
- 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("yolo11n-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 العديد من المزايا لتصنيف الصور، بما في ذلك:
- نماذج مُدرَّبة مسبقًا: قم بتحميل النماذج المدربة مسبقًا مثل
yolo11n-cls.pt
لبدء عملية التدريب الخاصة بك. - سهولة الاستخدام: أوامر API و CLI بسيطة للتدريب والتقييم.
- أداء عالٍ: دقة وسرعة فائقة، مثالية للتطبيقات في الوقت الفعلي.
- دعم مجموعات بيانات متعددة: تكامل سلس مع العديد من مجموعات البيانات الشائعة مثل CIFAR-10 و ImageNet والمزيد.
- المجتمع والدعم: الوصول إلى وثائق شاملة ومجتمع نشط لاستكشاف الأخطاء وإصلاحها والتحسينات.
للحصول على رؤى إضافية وتطبيقات واقعية، يمكنك استكشاف Ultralytics YOLO.
كيف يمكنني تدريب نموذج باستخدام Ultralytics YOLO؟
يمكن تدريب نموذج باستخدام Ultralytics YOLO بسهولة في كل من python و CLI. إليك مثال:
مثال
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model
# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
توضح هذه الأمثلة العملية المباشرة لتدريب نموذج YOLO باستخدام أي من الطريقتين. لمزيد من المعلومات، قم بزيارة قسم الاستخدام وصفحة التدريب لمهام التصنيف.