انتقل إلى المحتوى

تدريب البيانات المخصصة

📚 يشرح هذا الدليل كيفية تدريب مجموعة البيانات المخصصة الخاصة بك باستخدام 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 التعلم النشط

يعد إنشاء نموذج مخصص لاكتشاف الكائنات الخاصة بك عملية تكرارية لجمع الصور وتنظيمها ، وتسمية الكائنات التي تهمك ، وتدريب نموذج ، ونشره في البرية لعمل تنبؤات ، ثم استخدام هذا النموذج المنشور لجمع أمثلة على حالات الحافة لتكرارها وتحسينها.

الترخيص

Ultralytics يقدم خيارين للترخيص:

لمزيد من التفاصيل انظر Ultralytics الترخيص.

YOLOv5 يجب تدريب النماذج على البيانات المصنفة من أجل تعلم فئات الكائنات في تلك البيانات. هناك خياران لإنشاء مجموعة البيانات الخاصة بك قبل بدء التدريب:

الخيار 1: إنشاء ملف Roboflow مجموعة البيانات

1.1 جمع الصور

سيتعلم نموذجك بالقدوة. التدريب على صور مشابهة لتلك التي ستراها في البرية له أهمية قصوى. من الناحية المثالية ، ستجمع مجموعة متنوعة من الصور من نفس التكوين (الكاميرا ، الزاوية ، الإضاءة ، إلخ) حيث ستقوم في النهاية بنشر مشروعك.

إذا لم يكن ذلك ممكنا ، فيمكنك البدء من مجموعة بيانات عامة لتدريب نموذجك الأولي ثم أخذ عينات من الصور من البرية أثناء الاستدلال لتحسين مجموعة البيانات الخاصة بك والنمذجة بشكل متكرر.

1.2 إنشاء تسميات

بمجرد جمع الصور ، ستحتاج إلى التعليق على الكائنات ذات الأهمية لإنشاء حقيقة أساسية لنموذجك للتعلم منها.

YOLOv5 الدقة

Roboflow Annotate هي أداة بسيطة قائمة على الويب لإدارة صورك وتصنيفها مع فريقك وتصديرها في YOLOv5تنسيق التعليق التوضيحي.

1.3 إعداد مجموعة البيانات ل YOLOv5

سواء كنت قم بتسمية صورك باستخدام Roboflow أم لا ، يمكنك استخدامه لتحويل مجموعة البيانات الخاصة بك إلى YOLO تنسيق ، إنشاء ملف YOLOv5 ملف تكوين YAML ، واستضافته لاستيراده إلى البرنامج النصي للتدريب الخاص بك.

إنشاء مجانا Roboflow حساب وقم بتحميل مجموعة البيانات الخاصة بك إلى ملف Public مساحة العمل، وقم بتسمية أي صور غير مشروحة، ثم قم بإنشاء إصدار من مجموعة البيانات الخاصة بك وتصديره في YOLOv5 Pytorch تنسيق.

ملاحظه: YOLOv5 يقوم بالتعزيز عبر الإنترنت أثناء التدريب ، لذلك لا نوصي بتطبيق أي خطوات زيادة في Roboflow للتدريب مع YOLOv5. لكننا نوصي بتطبيق خطوات المعالجة المسبقة التالية:

خطوات المعالجة المسبقة الموصى بها

  • التوجيه التلقائي - لتجريد اتجاه EXIF من صورك.
  • تغيير الحجم (التمدد) - إلى حجم الإدخال المربع للطراز الخاص بك (640 × 640 هو YOLOv5 افتراضي).

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

تصدير في YOLOv5 تنسيق

تصدير في YOLOv5 Pytorch ، ثم انسخ المقتطف إلى البرنامج النصي للتدريب أو دفتر الملاحظات لتنزيل مجموعة البيانات الخاصة بك.

Roboflow مقتطف تنزيل مجموعة البيانات

الخيار 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).

Roboflow التعليقات التوضيحيه

يحتوي ملف التسمية المقابل للصورة أعلاه على 2 أشخاص (فئة 0) وربطة عنق (فئة 27):

Roboflow المعالجة المسبقة لمجموعة البيانات

2.3 تنظيم الدلائل

قم بتنظيم صور وملصقات القطار و val وفقا للمثال أدناه. YOLOv5 يفترض /coco128 داخل ملف /datasets دليل بجانب ال /yolov5 دليل. YOLOv5 تحديد موقع التسميات تلقائيا لكل صورة عن طريق استبدال المثيل الأخير من /images/ في كل مسار صورة باستخدام /labels/. على سبيل المثال:

../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

YOLOv5 هيكل مجموعة البيانات

3. حدد نموذجا

حدد نموذجا تم تدريبه مسبقا لبدء التدريب منه. هنا نختار YOLOv5s ، ثاني أصغر وأسرع طراز متاح. انظر جدول README الخاص بنا للحصول على مقارنة كاملة لجميع الموديلات.

YOLOv5 نماذج

4. القطار

قم بتدريب نموذج YOLOv5s على COCO128 من خلال تحديد مجموعة البيانات وحجم الدفعة وحجم الصورة وإما تم تدريبه مسبقا --weights yolov5s.pt (مستحسن)، أو تمت تهيئته عشوائيا --weights '' --cfg yolov5s.yaml (غير مستحسن). يتم تنزيل الأوزان المدربة مسبقا تلقائيا من أخير YOLOv5 أفرج.

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

بقشيش

💡 جمع --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 كولاب نوتر: فتح في كولاب

YOLO واجهة المستخدم

ClearML التسجيل والأتمتة 🌟 جديد

ClearML مدمج تماما في YOLOv5 لتتبع تجاربك وإدارة إصدارات مجموعة البيانات وحتى تنفيذ عمليات التدريب عن بعد. لتمكين ClearML:

  • pip install clearml
  • ركض clearml-init للاتصال بملف ClearML ملقم

ستحصل على جميع الميزات الرائعة المتوقعة من مدير التجارب: التحديثات المباشرة وتحميل النموذج ومقارنة التجربة وما إلى ذلك ولكن ClearML يتتبع أيضا التغييرات غير الملتزم بها والحزم المثبتة على سبيل المثال. بفضل ذلك ClearML المهام (وهو ما نسميه التجارب) قابلة للتكرار أيضا على أجهزة مختلفة! مع سطر إضافي 1 فقط ، يمكننا جدولة ملف YOLOv5 مهمة تدريب على قائمة انتظار ليتم تنفيذها بواسطة أي عدد من ClearML الوكلاء (العمال).

يمكنك استخدام ClearML البيانات لإصدار مجموعة البيانات الخاصة بك ثم تمريرها إلى YOLOv5 ببساطة باستخدام المعرف الفريد الخاص به. سيساعدك هذا على تتبع بياناتك دون إضافة متاعب إضافية. استكشف ClearML البرنامج التعليمي للحصول على التفاصيل!

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'

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لبدء مشاريعك.

حالة المشروع

YOLOv5 سي آي

تشير هذه الشارة إلى أن جميع YOLOv5 اجتياز اختبارات التكامل المستمر (CI) لإجراءات GitHub بنجاح. تتحقق اختبارات CI هذه بدقة من وظائف وأداءYOLOv5 عبر جوانب رئيسية مختلفة: التدريب ، والتحقق من الصحة ، والاستدلال ، والتصدير ، والمعايير. إنها تضمن التشغيل المتسق والموثوق به على macOS و Windows و Ubuntu ، مع إجراء الاختبارات كل 24 ساعة وعند كل التزام جديد.

الأسئلة المتداولة

كيف يمكنني تدريب YOLOv5 على مجموعة البيانات المخصصة الخاصة بي؟

يتضمن تدريب YOLOv5 على مجموعة بيانات مخصصة عدة خطوات:

  1. إعداد مجموعة البيانات الخاصة بك: جمع الصور وتسميتها. استخدم أدوات مثل Roboflow لتنظيم البيانات وتصديرها بتنسيقYOLOv5 .
  2. بيئة الإعداد: استنساخ الريبو YOLOv5 وتثبيت التبعيات:
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    
  3. إنشاء تكوين مجموعة البيانات: اكتب dataset.yaml ملف يحدد مسارات القطار/الفئة وأسماء الفئات.
  4. تدريب النموذج:
    python train.py --img 640 --epochs 3 --data dataset.yaml --weights yolov5s.pt
    

ما الأدوات التي يمكنني استخدامها للتعليق على مجموعة البيانات YOLOv5 ؟

يمكنك استخدام Roboflow Annotate، وهي أداة بديهية قائمة على الويب لتسمية الصور. وهي تدعم التعاون الجماعي وتصدر بتنسيق YOLOv5 . بعد جمع الصور، استخدم Roboflow لإنشاء التعليقات التوضيحية وإدارتها بكفاءة. تشمل الخيارات الأخرى أدوات مثل LabelImg وCVAT للتعليقات التوضيحية المحلية.

لماذا يجب أن أستخدم Ultralytics HUB لتدريب نماذج YOLO الخاصة بي؟

Ultralytics يوفر HUB منصة شاملة للتدريب على نماذج YOLO ونشرها وإدارتها دون الحاجة إلى مهارات ترميز واسعة النطاق. تشمل فوائد استخدام Ultralytics HUB ما يلي:

  • سهولة التدريب على النماذج: تبسيط عملية التدريب باستخدام بيئات مهيأة مسبقًا.
  • إدارة البيانات: إدارة مجموعات البيانات والتحكم في الإصدار دون عناء.
  • المراقبة في الوقت الحقيقي: يدمج أدوات مثل Comet لتتبع المقاييس في الوقت الفعلي وتصورها.
  • التعاون: مثالي للمشاريع الجماعية ذات الموارد المشتركة والإدارة السهلة.

كيف يمكنني تحويل بياناتي المشروحة إلى تنسيق YOLOv5 ؟

لتحويل البيانات المشروحة إلى تنسيق YOLOv5 باستخدام Roboflow:

  1. تحميل مجموعة البيانات الخاصة بك إلى مساحة عمل Roboflow .
  2. قم بتسمية الصور إذا لم تكن موسومة بالفعل.
  3. توليد وتصدير مجموعة البيانات في YOLOv5 Pytorch التنسيق. تأكّد من تطبيق خطوات المعالجة المسبقة مثل التهيئة التلقائية وتغيير الحجم (التمدد) إلى حجم الإدخال المربع (على سبيل المثال، 640 × 640).
  4. قم بتنزيل مجموعة البيانات ودمجها في النص البرمجي التدريبي YOLOv5 الخاص بك.

ما هي خيارات الترخيص لاستخدام YOLOv5 في التطبيقات التجارية؟

Ultralytics يقدم خيارين للترخيص:

  • AGPL-3.0 الترخيص: رخصة مفتوحة المصدر مناسبة للاستخدام غير التجاري، مثالية للطلاب والمتحمسين.
  • ترخيص المؤسسة: مخصص للشركات التي تسعى إلى دمج YOLOv5 في المنتجات والخدمات التجارية. للحصول على معلومات مفصلة، تفضل بزيارة صفحة الترخيص.

لمزيد من التفاصيل، راجع دليلنا على Ultralytics الترخيص.

📅 Created 11 months ago ✏️ Updated 16 days ago

التعليقات