كيفية استخدام برنامج Ultralytics YOLOv5 مع المذنب

فريق Ultralytics

5 دقائق للقراءة

11 أكتوبر 2022

اكتشف كيف تتعاون Ultralytics مع Comet لتحسين نموذج Ultralytics YOLOv5: التتبع في الوقت الحقيقي، والتعاون المبسّط، وقابلية التكرار المحسّنة.

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

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

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

وعلاوة على ذلك، يضمن لك Comet ألا تفقد متابعة عملك أبدًا ويجعل من السهل مشاركة النتائج والتعاون بين الفرق من جميع الأحجام!

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

يوفر تكامل Comet و YOLOv5 3 ميزات رئيسية:

  • ميزات التسجيل التلقائي والتسجيل المخصص
  • حفظ مجموعات البيانات والنماذج كقطع أثرية لتصحيح الأخطاء وقابلية التكرار
  • تنظيم العرض الخاص بك باستخدام لوحات Comet المخصصة


سيغطي هذا الدليل كيفية استخدام YOLOv5 مع المذنب.

هل أنت مستعد لتتبع تجاربك في الوقت الفعلي؟ لنبدأ!

الشروع في العمل

1. تثبيت المذنب

Pip install comet_ml

2. تكوين بيانات اعتماد المذنب

هناك طريقتان لتهيئة المذنب مع YOLOv5.

يمكنك إما تعيين بيانات الاعتماد الخاصة بك من خلال متغيرات البيئة أو إنشاء ملف .comet.config في دليل العمل الخاص بك وتعيين بيانات الاعتماد الخاصة بك هناك.


متغيرات البيئة

تصدير COMET_API_KEY = تصدير COMET_PROJECT_NAME= # سيكون هذا افتراضيًا إلى 'yolov5'


ملف تكوين المذنب

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. تشغيل البرنامج النصي للتدريب

# قم بتدريب YOLOv5s على COCO128 لمدة 5 إبيوشسبايثون train.py --img 640 - الدفعة 16 -الدفعات 16 -البؤر الزمنية 5 -بيانات coco128.yaml --الأوزان yolov5s.pt

هذا كل شيء!

سيقوم المذنب تلقائيًا بتسجيل المعلمات الفائقة، ووسائط سطر الأوامر، والتدريب، ومقاييس التحقق من الصحة. يمكنك تصور وتحليل عمليات التشغيل الخاصة بك في واجهة مستخدم Comet.

تجارب مع YOLOv5 في لوحة معلومات المذنب

جرّبها بنفسك!

اطّلع على مثال على عملية تشغيل مكتملة هنا.

أو الأفضل من ذلك، جربها بنفسك في دفتر ملاحظات كولاب هذا.

تسجيل الدخول تلقائياً

بشكل افتراضي، يقوم المذنب بتسجيل العناصر التالية:

المقاييس

  • خسارة الصندوق وخسارة الكائن وخسارة الكائن وخسارة التصنيف لبيانات التدريب والتحقق من الصحة
  • mAP_0.5، mAP_0.5:0.95 لبيانات التحقق من الصحة
  • الدقة والاسترجاع لبيانات التحقق من الصحة

المعلمات

  • المعلمات الفائقة للنموذج
  • تمرير جميع المعلمات من خلال خيارات سطر الأوامر

التصورات

  • مصفوفة الارتباك لتوقعات النموذج على بيانات التحقق من الصحة
  • مخططات منحنيات العلاقات العامة ومنحنيات F1 في جميع الفئات
  • الرسم البياني الارتباطي لتسميات الفئات

تكوين تسجيل كوميت كوميت

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

تصدير COMET_MODE= على الإنترنت # تعيين ما إذا كان سيتم تشغيل المذنب في وضع "متصل" أو "غير متصل". الإعداد الافتراضي إلى متصل-تصدير COMET_MODEL_NAME= # تعيين اسم النموذج المحفوظ. الإعداد الافتراضي إلى yolov5export COMET_LOG_CONFUSION_CONFUSION_MATRIX=false # تعيين لتعطيل تسجيل مصفوفة تشويش المذنب. الإعداد الافتراضي إلى trueexport COMET_MAX_IMAGE_UPLOADS= # يتحكم في عدد إجمالي تنبؤات الصور المراد تسجيلها في Comet. الإعداد الافتراضي إلى 100.تصدير COMET_LOG_LOG_per_CLASS_METRICS=صحيح # تعيين لتسجيل مقاييس التقييم لكل فئة مكتشفة في نهاية التدريب. الإعداد الافتراضي إلى falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # قم بتعيين هذا إذا كنت ترغب في استئناف التدريب من نقطة تفتيش مختلفة. الإعداد الافتراضي إلى 'last.pt'تصدير COMET_LOG_LOG_BATCH_LECH_LEVEL_METRICS=صحيح # قم بتعيين هذا إذا كنت ترغب في تسجيل مقاييس التدريب على مستوى الدُفعات. الإعداد الافتراضي إلى خطأ.تصدير COMET_LOG_LOG_PREDICTIONS=صحيح # قم بتعيين هذا إلى خطأ لتعطيل تسجيل تنبؤات النموذج

تسجيل نقاط التفتيش باستخدام المذنب

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

python train.py \

--img 640 \

- الدفعة 16 \

--epochs 5 \

- بيانات coco128.yaml \

--weights yolov5s.pt \

- فترة الحفظ 1

تنبؤات نموذج التسجيل

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

ملاحظة: سيقوم مُحمّل بيانات التحقق من صحة YOLOv5 بتحميل بيانات التحقق من صحة YOLOv5 افتراضيًا على حجم دفعة 32، لذا سيتعين عليك ضبط تردد التسجيل وفقًا لذلك.

فيما يلي مثال على مشروع باستخدام اللوحة.

python train.py \ \ -img 640 \ - دفعة 16 \ -epochs 5 \ - بيانات coco128.yaml \ - الأوزان yolov5s.pt \ --bbox_interval 2

التحكم في عدد صور التنبؤ المسجلة للمذنب

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

env COMET_MAX_IMAGE_IMAGE_UPLOADS=200python Train.py \ \ \ img 640 \ \-دفعة 16 \ \ \ epochs 5 \ \ \ \ \ \ data coco128.yaml \ \ \ weights yolov5s.pt \ \ \ -bbox_interval 1

تسجيل المقاييس على مستوى الفئة

استخدم متغير البيئة COMET_LOG_PER_CLASS_METRICS لتسجيل mAP، والدقة، والاسترجاع، و f1 لكل فئة.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \ \ \ img 640 \ \ \-دفعة 16 \ \ \ epochs 5 \ \ \ \ data coco128.yaml \ \ \ weights yolov5s.pt

تحميل قاعدة بيانات إلى Comet Artifacts

إذا كنت ترغب في تخزين بياناتك باستخدام Comet Artifacts، يمكنك القيام بذلك باستخدام علامة upload_dataset.

يتم تنظيم مجموعة البيانات بالطريقة الموضحة في وثائق YOLOv5. يجب أن يتبع ملف yaml لتكوين مجموعة البيانات نفس تنسيق ملف coco128.yaml.

python Train.py \ \ -img 640 \ - دفعة 16 \ - دُفعات 16 \ - دقات 5 \ - بيانات coco128.yaml \ - أوزان yolov5s.pt \ - تحميل_dataset

يمكنك العثور على مجموعة البيانات التي تم تحميلها في علامة التبويب القطع الأثرية في مساحة عمل المذنب

علامة تبويب القطع الأثرية للمذنب، YOLOv5

يمكنك معاينة البيانات مباشرةً في واجهة مستخدم Comet UI.

معاينة البيانات في كوميت، YOLOv5

يتم إصدار القطع الأثرية وتدعم أيضًا إضافة بيانات وصفية حول مجموعة البيانات. سيقوم المذنب بتسجيل البيانات الوصفية تلقائيًا من ملف yaml الخاص بمجموعة البيانات.

البيانات الوصفية للسجل من ملف YAML في Comet، YOLOv5

استخدام قطعة أثرية محفوظة

إذا كنت تريد استخدام مجموعة بيانات من Comet Artifacts، عيّن متغير المسار في ملف yaml الخاص بمجموعة البيانات للإشارة إلى عنوان URL لمورد Artifact التالي.

# محتويات ملف artifact.yaml المسار: "comet:////:"

ثم مرر هذا الملف إلى البرنامج النصي للتدريب بالطريقة التالية:

python train.py \ \ -img 640 \ - دفعة 16 \ - دُفعات 16 \ - دقات 5 \ - بيانات artifact.yaml \ - أوزان yolov5s.pt

تسمح لك القطع الأثرية أيضًا بتتبع تسلسل البيانات أثناء تدفقها عبر سير عمل التجارب الخاصة بك. يمكنك هنا رؤية رسم بياني يوضح لك جميع التجارب التي استخدمت مجموعة البيانات التي تم تحميلها.

سير عمل تجارب المذنبات، YOLOv5

استئناف التدريب على الجري

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

يحتوي مسار التشغيل على التنسيق التالي comet:////.

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

python train.py \ \ - استئناف "comet://"

البحث عن المعلمة الفائقة باستخدام مُحسِّن المذنب

تم دمج YOLOv5 أيضًا مع مُحسِّن Comet، مما يجعل من السهل تصور عمليات مسح المعلمات الفائقة في واجهة مستخدم Comet.

تكوين مسح المحسِّن

لتهيئة مُحسِّن المذنب، سيتعين عليك إنشاء ملف JSON يحتوي على معلومات حول المسح.

تم توفير ملف مثال على ذلك في:

utils/loggers/comet/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

يقبل النص البرمجي hpo.py نفس الوسيطات التي يقبلها برنامج train.py. إذا كنت ترغب في تمرير وسيطات إضافية إلى المسح الخاص بك، ما عليك سوى إضافتها بعد البرنامج النصي.

\ python utils/loggers/comet/hpo.py \-comet_optimizer_config "utils/loggers/comet/comet/optimizer_config.json" \-حفظ-فترة-حفظ-فترة 1 \-بوكس-ينتيرفال 1

تشغيل المسح بالتوازي

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

يوفر Comet العديد من الطرق لتصور نتائج المسح الخاص بك. ألقِ نظرة على مشروع مسح مكتمل هنا:

تصور نتائج المسح في Comet, YOLOv5

ابق على اتصال

ابدأ في استخدام تكاملنا مع Comet لإدارة نماذج YOLOv5 الخاصة بك وتصورها وتحسينها - بدءًا من عمليات التدريب وحتى مراقبة الإنتاج.

وبالطبع، انضم إلى مجتمع Ultralytics - وهو مكان لطرح الأسئلة ومشاركة النصائح حول تدريب YOLOv5 والتحقق من صحته ونشره.

دعونا نبني المستقبل
للذكاء الاصطناعي معاً!

ابدأ رحلتك مع مستقبل التعلم الآلي

ابدأ مجاناً
تم نسخ الرابط إلى الحافظة