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

اكتشف كيف تتعاون Ultralytics مع Comet لتحسين نموذج Ultralytics YOLOv5: التتبع في الوقت الحقيقي، والتعاون المبسّط، وقابلية التكرار المحسّنة.
نحن في Ultralytics نتشارك تجاريًا مع شركات ناشئة أخرى لمساعدتنا في تمويل البحث والتطوير لأدواتنا الرائعة مفتوحة المصدر، مثل YOLOv5، لإبقائها مجانية للجميع. قد تحتوي هذه المقالة على روابط تابعة لهؤلاء الشركاء.
يقوم أحدث شركائنا، Comet، ببناء أدوات تساعد علماء البيانات والمهندسين وقادة الفرق على تسريع وتحسين نماذج التعلم الآلي والتعلم العميق.
Comet أداة قوية لتتبع نماذجك ومجموعات بياناتك ومقاييسك. حتى أنها تسجل متغيرات النظام والبيئة لضمان إمكانية التكرار والتصحيح السلس لكل عملية تشغيل. الأمر يشبه وجود مساعد افتراضي يعرف بطريقة سحرية الملاحظات التي يجب الاحتفاظ بها. تعقب مقاييس النموذج وتصورها في الوقت الفعلي، واحفظ المعلمات الفائقة ومجموعات البيانات ونقاط التحقق من النموذج، وتصور تنبؤات نموذجك باستخدام لوحات Comet المخصصة!
وعلاوة على ذلك، يضمن لك Comet ألا تفقد متابعة عملك أبدًا ويجعل من السهل مشاركة النتائج والتعاون بين الفرق من جميع الأحجام!
YOLOv5 هو نقطة انطلاق رائعة لرحلتك في مجال الرؤية الحاسوبية. لتحسين أداء النموذج الخاص بك وجعله جاهزًا للإنتاج، ستحتاج إلى تسجيل النتائج في أداة تتبع التجارب مثل Comet.
يوفر تكامل Comet و YOLOv5 3 ميزات رئيسية:
سيغطي هذا الدليل كيفية استخدام YOLOv5 مع المذنب.
هل أنت مستعد لتتبع تجاربك في الوقت الفعلي؟ لنبدأ!
Pip install comet_ml
هناك طريقتان لتهيئة المذنب مع YOLOv5.
يمكنك إما تعيين بيانات الاعتماد الخاصة بك من خلال متغيرات البيئة أو إنشاء ملف .comet.config في دليل العمل الخاص بك وتعيين بيانات الاعتماد الخاصة بك هناك.
تصدير COMET_API_KEY = تصدير COMET_PROJECT_NAME= # سيكون هذا افتراضيًا إلى 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# قم بتدريب YOLOv5s على COCO128 لمدة 5 إبيوشسبايثون train.py --img 640 - الدفعة 16 -الدفعات 16 -البؤر الزمنية 5 -بيانات coco128.yaml --الأوزان yolov5s.pt
هذا كل شيء!
سيقوم المذنب تلقائيًا بتسجيل المعلمات الفائقة، ووسائط سطر الأوامر، والتدريب، ومقاييس التحقق من الصحة. يمكنك تصور وتحليل عمليات التشغيل الخاصة بك في واجهة مستخدم Comet.
اطّلع على مثال على عملية تشغيل مكتملة هنا.
أو الأفضل من ذلك، جربها بنفسك في دفتر ملاحظات كولاب هذا.
بشكل افتراضي، يقوم المذنب بتسجيل العناصر التالية:
يمكن تهيئة المذنب لتسجيل بيانات إضافية من خلال إشارات سطر الأوامر التي يتم تمريرها إلى البرنامج النصي للتدريب أو متغيرات البيئة.
تصدير 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، يمكنك القيام بذلك باستخدام علامة upload_dataset.
يتم تنظيم مجموعة البيانات بالطريقة الموضحة في وثائق YOLOv5. يجب أن يتبع ملف yaml لتكوين مجموعة البيانات نفس تنسيق ملف coco128.yaml.
python Train.py \ \ -img 640 \ - دفعة 16 \ - دُفعات 16 \ - دقات 5 \ - بيانات coco128.yaml \ - أوزان yolov5s.pt \ - تحميل_dataset
يمكنك العثور على مجموعة البيانات التي تم تحميلها في علامة التبويب القطع الأثرية في مساحة عمل المذنب
يمكنك معاينة البيانات مباشرةً في واجهة مستخدم Comet UI.
يتم إصدار القطع الأثرية وتدعم أيضًا إضافة بيانات وصفية حول مجموعة البيانات. سيقوم المذنب بتسجيل البيانات الوصفية تلقائيًا من ملف yaml الخاص بمجموعة البيانات.
إذا كنت تريد استخدام مجموعة بيانات من Comet Artifacts، عيّن متغير المسار في ملف yaml الخاص بمجموعة البيانات للإشارة إلى عنوان URL لمورد Artifact التالي.
# محتويات ملف artifact.yaml المسار: "comet:////:"
ثم مرر هذا الملف إلى البرنامج النصي للتدريب بالطريقة التالية:
python train.py \ \ -img 640 \ - دفعة 16 \ - دُفعات 16 \ - دقات 5 \ - بيانات artifact.yaml \ - أوزان yolov5s.pt
تسمح لك القطع الأثرية أيضًا بتتبع تسلسل البيانات أثناء تدفقها عبر سير عمل التجارب الخاصة بك. يمكنك هنا رؤية رسم بياني يوضح لك جميع التجارب التي استخدمت مجموعة البيانات التي تم تحميلها.
إذا انقطع تشغيل التدريب لأي سبب من الأسباب، مثل انقطاع الاتصال بالإنترنت، يمكنك استئناف التشغيل باستخدام علامة استئناف ومسار تشغيل المذنب.
يحتوي مسار التشغيل على التنسيق التالي 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 الخاصة بك وتصورها وتحسينها - بدءًا من عمليات التدريب وحتى مراقبة الإنتاج.
وبالطبع، انضم إلى مجتمع Ultralytics - وهو مكان لطرح الأسئلة ومشاركة النصائح حول تدريب YOLOv5 والتحقق من صحته ونشره.