تخطي إلى المحتوى

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

📚 يشرح هذا الدليل كيفية تدريب مجموعة البيانات المخصصة الخاصة بك باستخدام YOLOv5 🚀.

قبل أن تبدأ

استنساخ الريبو وتثبيت المتطلبات.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 خيارين للترخيص:

  • رخصةAGPL-3.0 ، وهي رخصة مفتوحة المصدر معتمدة من OSI، وهي رخصة مفتوحة المصدر مثالية للطلاب والمتحمسين.
  • ترخيص المؤسسات للشركات التي تسعى إلى دمج نماذج الذكاء الاصطناعي الخاصة بنا في منتجاتها وخدماتها.

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

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

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

1.1 جمع الصور

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

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

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

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

YOLOv5 الدقة

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

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

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

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

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

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

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

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

التصدير بتنسيق YOLOv5

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

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

الخيار 2: إنشاء مجموعة بيانات يدوية

2.1 إنشاء dataset.yaml

COCO128 هو مثال لمجموعة بيانات تعليمية صغيرة مكونة من أول 128 صورة في كوكو تدريب 2017. تُستخدم هذه الصور ال 128 نفسها في كلٍ من التدريب والتحقق من الصحة للتحقق من أن خط أنابيب التدريب لدينا قادر على الإفراط في التركيب. data/coco128.yaml.comالموضح أدناه، هو ملف تكوين مجموعة البيانات الذي يحدد 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 التعليقات التوضيحية

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

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

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

نظّم صور القطار والصور والتسميات وفقاً للمثال أدناه. 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 إلخ. لمزيد من التفاصيل، راجع قسم التدريب في دفترنا التعليمي. افتح في كولاب فتح في Kaggle

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 Colab Notebook: افتح في كولاب

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

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

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

  • pip install clearml
  • تشغيل clearml-init للاتصال بخادم ClearML

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

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

ClearML واجهة مستخدم إدارة التجارب

التسجيل المحلي

يتم تسجيل نتائج التدريب تلقائيًا مع تينسوربورد و CSV المسجلات إلى runs/trainمع إنشاء دليل تجارب جديد لكل تدريب جديد على النحو التالي runs/train/exp2, runs/train/exp3إلخ.

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

نتائج التسجيل المحلي

ملف النتائج results.csv يتم تحديثها بعد كل الحقبة الزمنيةثم رسمت على الصورة results.png (أدناه) بعد اكتمال التدريب. يمكنك أيضًا رسم أي results.csv الملف يدويًا:

from utils.plots import plot_results

plot_results("path/to/results.csv")  # plot 'results.csv' as 'results.png'

النتائج.png

الخطوات التالية

بمجرد أن يتم تدريب النموذج الخاص بك يمكنك استخدام أفضل نقطة تفتيش لديك best.pt لـ

  • تشغيل CLI أو Python الاستدلال على الصور ومقاطع الفيديو الجديدة
  • التحقق من الدقة في تقسيمات التدريب والتقييم والاختبار
  • التصدير إلى TensorFlowو Keras و ONNX و TFlite و TF.js و CoreML و TensorRT
  • تطوير المعلمات الفائقة لتحسين الأداء
  • حسّن نموذجك من خلال أخذ عينات من صور العالم الحقيقي وإضافتها إلى مجموعة بياناتك

البيئات المدعومة

Ultralytics مجموعة من البيئات الجاهزة للاستخدام، كل منها مثبت مسبقًا مع التبعيات الأساسية مثل CUDA، CUDNN, Pythonو PyTorchلبدء مشاريعك.

حالة المشروع

YOLOv5 CI

تشير هذه الشارة إلى اجتياز جميع اختبارات التكامل المستمر (CI) لإجراءات GitHub YOLOv5 بنجاح. تتحقق اختبارات التكامل المستمر هذه بدقة من وظائف وأداء 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 الترخيص.

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 1 شهر

التعليقات