تدريب البيانات المخصصة
📚 يشرح هذا الدليل كيفية تدريب مجموعة البيانات المخصصة الخاصة بك باستخدام YOLOv5 🚀.
قبل البدء
استنساخ الريبو وتثبيت requirements.txt في ملف Python>=3.8.0 بيئة، بما في ذلك PyTorch>=1.8. يتم تنزيل النماذج ومجموعات البيانات تلقائيا من الأحدث YOLOv5 إطلاق سراح.
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
تدريب على البيانات المخصصة
يعد إنشاء نموذج مخصص لاكتشاف الكائنات الخاصة بك عملية تكرارية لجمع الصور وتنظيمها ، وتسمية الكائنات التي تهمك ، وتدريب نموذج ، ونشره في البرية لعمل تنبؤات ، ثم استخدام هذا النموذج المنشور لجمع أمثلة على حالات الحافة لتكرارها وتحسينها.
الترخيص
Ultralytics يقدم خيارين للترخيص:
- ال AGPL-3.0 الترخيص ، ترخيص مفتوح المصدر معتمد من OSI مثالي للطلاب والمتحمسين.
- ترخيص المؤسسة للشركات التي تسعى إلى دمج نماذج الذكاء الاصطناعي الخاصة بنا في منتجاتها وخدماتها.
لمزيد من التفاصيل انظر Ultralytics الترخيص.
YOLOv5 يجب تدريب النماذج على البيانات المصنفة من أجل تعلم فئات الكائنات في تلك البيانات. هناك خياران لإنشاء مجموعة البيانات الخاصة بك قبل بدء التدريب:
الخيار 1: إنشاء ملف Roboflow مجموعة البيانات
1.1 جمع الصور
سيتعلم نموذجك بالقدوة. التدريب على صور مشابهة لتلك التي ستراها في البرية له أهمية قصوى. من الناحية المثالية ، ستجمع مجموعة متنوعة من الصور من نفس التكوين (الكاميرا ، الزاوية ، الإضاءة ، إلخ) حيث ستقوم في النهاية بنشر مشروعك.
إذا لم يكن ذلك ممكنا ، فيمكنك البدء من مجموعة بيانات عامة لتدريب نموذجك الأولي ثم أخذ عينات من الصور من البرية أثناء الاستدلال لتحسين مجموعة البيانات الخاصة بك والنمذجة بشكل متكرر.
1.2 إنشاء تسميات
بمجرد جمع الصور ، ستحتاج إلى التعليق على الكائنات ذات الأهمية لإنشاء حقيقة أساسية لنموذجك للتعلم منها.
Roboflow Annotate هي أداة بسيطة قائمة على الويب لإدارة صورك وتصنيفها مع فريقك وتصديرها في YOLOv5تنسيق التعليق التوضيحي.
1.3 إعداد مجموعة البيانات ل YOLOv5
سواء كنت قم بتسمية صورك باستخدام Roboflow أم لا ، يمكنك استخدامه لتحويل مجموعة البيانات الخاصة بك إلى YOLO تنسيق ، إنشاء ملف YOLOv5 ملف تكوين YAML ، واستضافته لاستيراده إلى البرنامج النصي للتدريب الخاص بك.
إنشاء مجانا Roboflow حساب وقم بتحميل مجموعة البيانات الخاصة بك إلى ملف Public
مساحة العمل، وقم بتسمية أي صور غير مشروحة، ثم قم بإنشاء إصدار من مجموعة البيانات الخاصة بك وتصديره في YOLOv5 Pytorch
تنسيق.
ملاحظه: YOLOv5 يقوم بالتعزيز عبر الإنترنت أثناء التدريب ، لذلك لا نوصي بتطبيق أي خطوات زيادة في Roboflow للتدريب مع YOLOv5. لكننا نوصي بتطبيق خطوات المعالجة المسبقة التالية:
- التوجيه التلقائي - لتجريد اتجاه EXIF من صورك.
- تغيير الحجم (التمدد) - إلى حجم الإدخال المربع للطراز الخاص بك (640 × 640 هو YOLOv5 افتراضي).
سيمنحك إنشاء إصدار لقطة لمجموعة البيانات الخاصة بك ، بحيث يمكنك دائما الرجوع ومقارنة تدريب النموذج المستقبلي الخاص بك ، حتى إذا أضفت المزيد من الصور أو غيرت تكوينها لاحقا.
تصدير في YOLOv5 Pytorch
، ثم انسخ المقتطف إلى البرنامج النصي للتدريب أو دفتر الملاحظات لتنزيل مجموعة البيانات الخاصة بك.
الخيار 2: إنشاء مجموعة بيانات يدوية
2.1 إنشاء dataset.yaml
COCO128 هو مثال مجموعة بيانات تعليمية صغيرة تتكون من أول 128 صورة في كوكو train2017. These same 128 images are used for both training and validation to verify our training pipeline is capable of overfitting. data/coco128.yaml، الموضح أدناه، هو ملف تكوين مجموعة البيانات الذي يحدد 1) الدليل الجذر لمجموعة البيانات path
والمسارات النسبية إلى train
/ val
/ test
دلائل الصور (أو *.txt
الملفات ذات مسارات الصور) و 2) فئة names
قاموس:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
2.2 إنشاء تسميات
بعد استخدام أداة التعليقات التوضيحية لتسمية صورك، قم بتصدير التسميات إلى YOLO تنسيق، مع واحد *.txt
ملف لكل صورة (إذا لم تكن هناك كائنات في الصورة ، لا *.txt
الملف مطلوب). ال *.txt
مواصفات الملف هي:
- صف واحد لكل كائن
- كل صف هو
class x_center y_center width height
تنسيق. - يجب أن تكون إحداثيات المربع في تطبيع xywh التنسيق (من 0 إلى 1). إذا كانت المربعات بالبكسل، فاقسم
x_center
وwidth
حسب عرض الصورة، وy_center
وheight
حسب ارتفاع الصورة. - أرقام الفئات مفهرسة صفريا (ابدأ من 0).
يحتوي ملف التسمية المقابل للصورة أعلاه على 2 أشخاص (فئة 0
) وربطة عنق (فئة 27
):
2.3 تنظيم الدلائل
قم بتنظيم صور وملصقات القطار و val وفقا للمثال أدناه. YOLOv5 يفترض /coco128
داخل ملف /datasets
دليل بجانب ال /yolov5
دليل. YOLOv5 تحديد موقع التسميات تلقائيا لكل صورة عن طريق استبدال المثيل الأخير من /images/
في كل مسار صورة باستخدام /labels/
. على سبيل المثال:
3. حدد نموذجا
حدد نموذجا تم تدريبه مسبقا لبدء التدريب منه. هنا نختار YOLOv5s ، ثاني أصغر وأسرع طراز متاح. انظر جدول README الخاص بنا للحصول على مقارنة كاملة لجميع الموديلات.
4. القطار
قم بتدريب نموذج YOLOv5s على COCO128 من خلال تحديد مجموعة البيانات وحجم الدفعة وحجم الصورة وإما تم تدريبه مسبقا --weights yolov5s.pt
(مستحسن)، أو تمت تهيئته عشوائيا --weights '' --cfg yolov5s.yaml
(غير مستحسن). يتم تنزيل الأوزان المدربة مسبقا تلقائيا من أخير YOLOv5 أفرج.
بقشيش
💡 جمع --cache ram
أو --cache disk
لتسريع التدريب (يتطلب موارد كبيرة من ذاكرة الوصول العشوائي / القرص).
بقشيش
💡 تدرب دائمًا من مجموعة بيانات محلية. ستكون محركات الأقراص المثبتة أو المتصلة بالشبكة مثل Google Drive بطيئة للغاية.
يتم حفظ جميع نتائج التدريب في runs/train/
مع زيادة أدلة التشغيل ، أي runs/train/exp2
, runs/train/exp3
الخ. لمزيد من التفاصيل، راجع قسم التدريب في دفتر ملاحظاتنا التعليمي.
5. تصور
Comet التسجيل والتصور 🌟 جديد
Comet الآن متكامل تماما مع YOLOv5. تتبع مقاييس النموذج وتصورها في الوقت الفعلي ، واحفظ المعلمات الفائقة ومجموعات البيانات ونقاط فحص النموذج ، وتصور تنبؤات النموذج باستخدام Comet لوحات مخصصة! Comet يتأكد من أنك لن تفقد مسار عملك أبدا ويجعل من السهل مشاركة النتائج والتعاون عبر الفرق من جميع الأحجام!
البدء سهل:
pip install comet_ml # 1. install
export COMET_API_KEY=<Your API Key> # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt # 3. train
لمعرفة المزيد حول كل ما هو مدعوم Comet ميزات لهذا التكامل ، تحقق من Comet تعليمي. إذا كنت ترغب في معرفة المزيد عن Comet، توجه إلى موقعنا توثيق. ابدأ بتجربة Comet كولاب نوتر:
ClearML التسجيل والأتمتة 🌟 جديد
ClearML مدمج تماما في YOLOv5 لتتبع تجاربك وإدارة إصدارات مجموعة البيانات وحتى تنفيذ عمليات التدريب عن بعد. لتمكين ClearML:
pip install clearml
- ركض
clearml-init
للاتصال بملف ClearML ملقم
ستحصل على جميع الميزات الرائعة المتوقعة من مدير التجارب: التحديثات المباشرة وتحميل النموذج ومقارنة التجربة وما إلى ذلك ولكن ClearML يتتبع أيضا التغييرات غير الملتزم بها والحزم المثبتة على سبيل المثال. بفضل ذلك ClearML المهام (وهو ما نسميه التجارب) قابلة للتكرار أيضا على أجهزة مختلفة! مع سطر إضافي 1 فقط ، يمكننا جدولة ملف YOLOv5 مهمة تدريب على قائمة انتظار ليتم تنفيذها بواسطة أي عدد من ClearML الوكلاء (العمال).
يمكنك استخدام ClearML البيانات لإصدار مجموعة البيانات الخاصة بك ثم تمريرها إلى YOLOv5 ببساطة باستخدام المعرف الفريد الخاص به. سيساعدك هذا على تتبع بياناتك دون إضافة متاعب إضافية. استكشف ClearML البرنامج التعليمي للحصول على التفاصيل!
التسجيل المحلي
يتم تسجيل نتائج التدريب تلقائيا باستخدام تينسوربورد و سي اس في الحطابين إلى runs/train
، مع إنشاء دليل تجربة جديد لكل تدريب جديد ك runs/train/exp2
, runs/train/exp3
الخ.
This directory contains train and val statistics, mosaics, labels, predictions and augmented mosaics, as well as metrics and charts including precision-recall (PR) curves and confusion matrices.
ملف النتائج results.csv
is updated after each epoch, and then plotted as results.png
(أدناه) بعد اكتمال التدريب. يمكنك أيضا رسم أي results.csv
الملف يدويا:
from utils.plots import plot_results
plot_results("path/to/results.csv") # plot 'results.csv' as 'results.png'
الخطوات التالية
بمجرد تدريب نموذجك ، يمكنك استخدام أفضل نقطة تفتيش لديك best.pt
ل:
- ركض CLI أو Python الاستدلال على الصور ومقاطع الفيديو الجديدة
- Validate accuracy on train, val and test splits
- Export to TensorFlow, Keras, ONNX, TFlite, TF.js, CoreML and TensorRT formats
- تطوير المعلمات الفائقة لتحسين الأداء
- قم بتحسين نموذجك عن طريق أخذ عينات من صور العالم الحقيقي وإضافتها إلى مجموعة البيانات الخاصة بك
البيئات المدعومة
Ultralytics مجموعة من البيئات الجاهزة للاستخدام، كل منها مثبت مسبقًا مع التبعيات الأساسية مثل CUDA، CUDNN, Pythonو PyTorchلبدء مشاريعك.
- GPU دفاتر مجاناً:
- Google السحابة: دليل البدء السريع لـ GCP
- Amazon: دليل التشغيل السريع لخدمة AWS
- Azure: دليل التشغيل السريع AzureML
- عامل ميناء: دليل التشغيل السريع ل Docker
حالة المشروع
تشير هذه الشارة إلى أن جميع YOLOv5 اجتياز اختبارات التكامل المستمر (CI) لإجراءات GitHub بنجاح. تتحقق اختبارات CI هذه بدقة من وظائف وأداءYOLOv5 عبر جوانب رئيسية مختلفة: التدريب ، والتحقق من الصحة ، والاستدلال ، والتصدير ، والمعايير. إنها تضمن التشغيل المتسق والموثوق به على macOS و Windows و Ubuntu ، مع إجراء الاختبارات كل 24 ساعة وعند كل التزام جديد.
الأسئلة المتداولة
كيف يمكنني تدريب YOLOv5 على مجموعة البيانات المخصصة الخاصة بي؟
يتضمن تدريب YOLOv5 على مجموعة بيانات مخصصة عدة خطوات:
- إعداد مجموعة البيانات الخاصة بك: جمع الصور وتسميتها. استخدم أدوات مثل Roboflow لتنظيم البيانات وتصديرها بتنسيقYOLOv5 .
- بيئة الإعداد: استنساخ الريبو YOLOv5 وتثبيت التبعيات:
- إنشاء تكوين مجموعة البيانات: اكتب
dataset.yaml
ملف يحدد مسارات القطار/الفئة وأسماء الفئات. - تدريب النموذج:
ما الأدوات التي يمكنني استخدامها للتعليق على مجموعة البيانات YOLOv5 ؟
يمكنك استخدام Roboflow Annotate، وهي أداة بديهية قائمة على الويب لتسمية الصور. وهي تدعم التعاون الجماعي وتصدر بتنسيق YOLOv5 . بعد جمع الصور، استخدم Roboflow لإنشاء التعليقات التوضيحية وإدارتها بكفاءة. تشمل الخيارات الأخرى أدوات مثل LabelImg وCVAT للتعليقات التوضيحية المحلية.
لماذا يجب أن أستخدم Ultralytics HUB لتدريب نماذج YOLO الخاصة بي؟
Ultralytics يوفر HUB منصة شاملة للتدريب على نماذج YOLO ونشرها وإدارتها دون الحاجة إلى مهارات ترميز واسعة النطاق. تشمل فوائد استخدام Ultralytics HUB ما يلي:
- سهولة التدريب على النماذج: تبسيط عملية التدريب باستخدام بيئات مهيأة مسبقًا.
- إدارة البيانات: إدارة مجموعات البيانات والتحكم في الإصدار دون عناء.
- المراقبة في الوقت الحقيقي: يدمج أدوات مثل Comet لتتبع المقاييس في الوقت الفعلي وتصورها.
- التعاون: مثالي للمشاريع الجماعية ذات الموارد المشتركة والإدارة السهلة.
كيف يمكنني تحويل بياناتي المشروحة إلى تنسيق YOLOv5 ؟
لتحويل البيانات المشروحة إلى تنسيق YOLOv5 باستخدام Roboflow:
- تحميل مجموعة البيانات الخاصة بك إلى مساحة عمل Roboflow .
- قم بتسمية الصور إذا لم تكن موسومة بالفعل.
- توليد وتصدير مجموعة البيانات في
YOLOv5 Pytorch
التنسيق. تأكّد من تطبيق خطوات المعالجة المسبقة مثل التهيئة التلقائية وتغيير الحجم (التمدد) إلى حجم الإدخال المربع (على سبيل المثال، 640 × 640). - قم بتنزيل مجموعة البيانات ودمجها في النص البرمجي التدريبي YOLOv5 الخاص بك.
ما هي خيارات الترخيص لاستخدام YOLOv5 في التطبيقات التجارية؟
Ultralytics يقدم خيارين للترخيص:
- AGPL-3.0 الترخيص: رخصة مفتوحة المصدر مناسبة للاستخدام غير التجاري، مثالية للطلاب والمتحمسين.
- ترخيص المؤسسة: مخصص للشركات التي تسعى إلى دمج YOLOv5 في المنتجات والخدمات التجارية. للحصول على معلومات مفصلة، تفضل بزيارة صفحة الترخيص.
لمزيد من التفاصيل، راجع دليلنا على Ultralytics الترخيص.