نظرة عامة على مجموعات بيانات تصنيف الصور
هيكلية مجموعة البيانات لمهام التصنيف 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 فئة من فئات الكائنات لمهام تصنيف الصور.
- كالتك 256: نسخة موسعة من Caltech 101 تحتوي على 256 فئة من الكائنات وصور أكثر تحدياً.
- CIFAR-10: مجموعة بيانات مكونة من 60 ألف صورة ملونة مقاس 32 × 32 في 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 لتصنيف الصور؟
يدعمYOLO Ultralytics YOLO التنزيل التلقائي للعديد من مجموعات البيانات لتصنيف الصور، بما في ذلك Caltech 101 وCaltech 256 وCIFAR-10 وCIFAR-100 وCIFAR-100 وFashion-MNIST و ImageNet و ImageNet-10 وEماجنيت و 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
لبدء عملية التدريب الخاصة بك. - سهولة الاستخدام: واجهة برمجة تطبيقات بسيطة وأوامر 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 باستخدام أي من النهجين. لمزيد من المعلومات، قم بزيارة قسم الاستخدام وصفحة التدريب لمهام التصنيف.