اكتشف كيف يتعاون موقع Ultralytics مع Comet لتحسين نموذج Ultralytics YOLOv5 : التتبع في الوقت الحقيقي، والتعاون المبسّط، وتعزيز قابلية التكرار.
في Ultralytics نحن نتشارك تجاريا مع الشركات الناشئة الأخرى لمساعدتنا في تمويل البحث والتطوير لأدواتنا الرائعة مفتوحة المصدر ، مثل YOLOv5، لإبقائها مجانية للجميع. قد تحتوي هذه المقالة على روابط تابعة لهؤلاء الشركاء.
أحدث شريك لنا ، Comet، يبني الأدوات التي تساعد علماء البيانات والمهندسين وقادة الفرق على تسريع وتحسين نماذج التعلم الآلي والتعلم العميق.
Comet هي أداة قوية لتتبع النماذج ومجموعات البيانات والمقاييس الخاصة بك. حتى أنه يسجل متغيرات النظام والبيئة لضمان قابلية التكرار وتصحيح الأخطاء السلس لكل تشغيل. إنه مثل وجود مساعد افتراضي يعرف بطريقة سحرية الملاحظات التي يجب الاحتفاظ بها. تتبع مقاييس النموذج وتصورها في الوقت الفعلي ، واحفظ المعلمات الفائقة ومجموعات البيانات ونقاط فحص النموذج ، وتصور تنبؤات النموذج باستخدام Comet لوحات مخصصة!
مزيد Comet يضمن لك عدم فقدان مسار عملك ويجعل من السهل مشاركة النتائج والتعاون عبر الفرق من جميع الأحجام!
YOLOv5 هي نقطة انطلاق رائعة لرحلة رؤية الكمبيوتر الخاص بك. لتحسين أداء نموذجك وجعله جاهزا للإنتاج ، ستحتاج إلى تسجيل النتائج في أداة تتبع التجربة مثل Comet.
ال Comet و YOLOv5 يقدم التكامل 3 ميزات رئيسية:
سيغطي هذا الدليل كيفية الاستخدام YOLOv5 مع Comet.
إذن ، هل أنت مستعد لتتبع تجاربك في الوقت الفعلي؟ هيا بنا نبدأ!
تثبيت النقطة comet_مل
هناك طريقتان للتكوين Comet مع 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 - عصور 5 - بيانات coco128.yaml - الأوزان yolov5s.pt
هذا هو!
Comet سيقوم تلقائيا بتسجيل المعلمات الفائقة ووسيطات سطر الأوامر والتدريب ومقاييس التحقق من الصحة. يمكنك تصور وتحليل عمليات التشغيل الخاصة بك في Comet واجهة المستخدم.
تحقق من مثال على التشغيل المكتمل هنا.
أو الأفضل من ذلك ، جربه بنفسك في دفتر Colab هذا.
بشكل افتراضي ، Comet سيتم تسجيل العناصر التالية:
Comet يمكن تكوينه لتسجيل بيانات إضافية من خلال علامات سطر الأوامر التي تم تمريرها إلى البرنامج النصي للتدريب أو متغيرات البيئة.
تصدير COMET_MODE=online # تعيين ما إذا كنت تريد التشغيل أم لا Comet في وضع "متصل" أو "غير متصل". الإعدادات الافتراضية للتصدير عبر الإنترنت COMET_MODEL_NAME= #Set اسم النموذج المحفوظ. الإعدادات الافتراضية ل yolov5export COMET_LOG_CONFUSION_MATRIX=false # تعيين لتعطيل تسجيل أ Comet مصفوفة الارتباك. الإعدادات الافتراضية ل trueexport COMET_MAX_IMAGE_UPLOADS= # يتحكم في عدد إجمالي تنبؤات الصور لتسجيل الدخول إليها Comet. الإعدادات الافتراضية إلى 100.export COMET_LOG_PER_CLASS_METRICS=true # تعيين لتسجيل مقاييس التقييم لكل فئة تم اكتشافها في نهاية التدريب. الإعدادات الافتراضية ل falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # قم بتعيين هذا إذا كنت ترغب في استئناف التدريب من نقطة تفتيش مختلفة. الإعدادات الافتراضية ل 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # قم بتعيين هذا إذا كنت ترغب في تسجيل مقاييس التدريب على مستوى الدفعة. الإعدادات الافتراضية ل false.export COMET_LOG_PREDICTIONS=true # اضبط هذا على false لتعطيل تنبؤات نموذج التسجيل
نماذج تسجيل الدخول إلى Comet يتم تعطيله افتراضيا. لتمكينه، قم بتمرير وسيطة فترة الحفظ إلى البرنامج النصي للتدريب. سيؤدي هذا إلى حفظ نقاط التفتيش التي تم تسجيلها إلى Comet استنادا إلى قيمة الفاصل الزمني التي توفرها فترة الحفظ.
python train.py \
--IMG 640 \
- الدفعة 16 \
--عهود 5 \
- بيانات coco128.yaml \
--الأوزان yolov5s.pt \
--فترة الحفظ 1
بشكل افتراضي، سيتم تسجيل تنبؤات النموذج (الصور وتسميات الحقيقة الأرضية والمربعات المحيطة) إلى Comet. يمكنك التحكم في تكرار التنبؤات المسجلة والصور المقترنة عن طريق تمرير وسيطة سطر الأوامر bbox_interval. يمكن تصور التنبؤات باستخدام Cometلوحة مخصصة للكشف عن الكائنات. يتوافق هذا التردد مع كل دفعة Nth من البيانات لكل حقبة. في المثال أدناه ، نقوم بتسجيل كل دفعة 2nd من البيانات لكل حقبة.
ملاحظة: YOLOv5 سيتم تعيين أداة تحميل بيانات التحقق افتراضيا على حجم دفعة 32 ، لذلك سيتعين عليك تعيين تكرار التسجيل وفقا لذلك.
فيما يلي مثال على مشروع يستخدم الفريق.
python train.py \--img 640 \--دفعة 16 \--الحقب 5 \--البيانات coco128.yaml \--الأوزان yolov5s.pt \--bbox_interval 2
عند تسجيل التنبؤات من YOLOv5, Comet سيتم تسجيل الصور المرتبطة بكل مجموعة من التنبؤات. بشكل افتراضي، يتم تسجيل 100 صورة تحقق كحد أقصى. يمكنك زيادة أو تقليل هذا الرقم باستخدام COMETمتغير البيئة _MAX_IMAGE_UPLOADS.
الحياه الفطريه COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--دفعة 16 \---عهود 5 \--بيانات coco128.yaml \--الأوزان yolov5s.pt \--bbox_interval 1
استخدم الزر COMETمتغير بيئة _LOG_PER_CLASS_METRICS لتسجيل mAP والدقة والاستدعاء و f1 لكل فئة.
الحياه الفطريه COMET_LOG_PER_CLASS_METRICS= صحيح python train.py \--img 640 \--دفعة 16 \--عهود 5 \--بيانات coco128.yaml \--أوزان yolov5s.pt
إذا كنت ترغب في تخزين بياناتك باستخدام Comet القطع الأثرية ، يمكنك القيام بذلك باستخدام العلم upload_dataset.
يتم تنظيم مجموعة البيانات بالطريقة الموضحة في YOLOv5 الوثائق. يجب أن يتبع ملف yaml لتكوين مجموعة البيانات نفس تنسيق ملف coco128.yaml.
python train.py \--img 640 \--دفعة 16 \--عهود 5 \--بيانات coco128.yaml \--أوزان yolov5s.pt \--upload_dataset
يمكنك العثور على مجموعة البيانات التي تم تحميلها في علامة التبويب "القطع الأثرية" في Comet مساحه عمل
يمكنك معاينة البيانات مباشرة في Comet واجهة المستخدم.
يتم إصدار القطع الأثرية وتدعم أيضا إضافة بيانات وصفية حول مجموعة البيانات. Comet سيقوم تلقائيا بتسجيل البيانات الوصفية من ملف YAML لمجموعة البيانات الخاصة بك.
إذا كنت تريد استخدام مجموعة بيانات من Comet العناصر ، قم بتعيين متغير المسار في ملف yaml لمجموعة البيانات للإشارة إلى عنوان URL لمورد Artifact التالي.
# محتويات مسار ملف artifact.yaml: "comet:///:"
ثم قم بتمرير هذا الملف إلى البرنامج النصي للتدريب الخاص بك بالطريقة التالية:
python train.py \--img 640 \--دفعة 16 \--الحقب 5 \--البيانات artifact.yaml \--الأوزان yolov5s.pt
تسمح لك القطع الأثرية أيضا بتتبع نسب البيانات أثناء تدفقها عبر سير عمل التجريب. يمكنك هنا رؤية رسم بياني يوضح لك جميع التجارب التي استخدمت مجموعة البيانات التي تم تحميلها.
إذا تمت مقاطعة تشغيل التدريب الخاص بك لأي سبب من الأسباب ، على سبيل المثال انقطاع الاتصال بالإنترنت ، فيمكنك استئناف التشغيل باستخدام علامة الاستئناف و Comet تشغيل المسار.
يحتوي مسار التشغيل على التنسيق التالي comet:////.
سيؤدي ذلك إلى استعادة التشغيل إلى حالته قبل المقاطعة ، والتي تتضمن استعادة النموذج من نقطة تفتيش ، واستعادة جميع المعلمات الفائقة ووسيطات التدريب ، والتنزيل Comet مجموعة البيانات العناصر إذا تم استخدامها في التشغيل الأصلي. سيستمر التشغيل المستأنف في تسجيل الدخول إلى التجربة الموجودة في Comet واجهة المستخدم.
python train.py \--استئناف "comet://"
YOLOv5 يتكامل أيضا مع Cometمحسن ، مما يجعل من السهل تصور عمليات مسح المعلمات الفائقة في Comet واجهة المستخدم.
لتكوين Comet محسن ، سيكون عليك إنشاء ملف JSON بمعلومات حول المسح.
تم توفير ملف مثال في:
المرافق / الحطابين /comet/optimizer_config.json python المرافق / الحطابين /comet/hpo.py \--comet_optimizer_config "الأدوات / الحطابين /comet/optimizer_config.json"
يقبل البرنامج النصي hpo.py نفس الوسيطات مثل train.py. إذا كنت ترغب في تمرير وسيطات إضافية إلى عملية المسح الخاصة بك ، فما عليك سوى إضافتها بعد البرنامج النصي.
python المرافق / الحطابين /comet/hpo.py \--comet_optimizer_config "الأدوات / الحطابين /comet/optimizer_config.json" \--فترة الحفظ 1 \--bbox_interval 1
comet محسن -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"
Comet يوفر العديد من الطرق لتصور نتائج عملية المسح الخاصة بك. ألق نظرة على مشروع مع عملية مسح مكتملة هنا:
ابدأ في استخدام التكامل مع Comet لإدارة وتصور وتحسين YOLOv5 النماذج - من عمليات التدريب إلى مراقبة الإنتاج.
وبالطبع ، انضم إلى Ultralytics المجتمع - مكان لطرح الأسئلة ومشاركة النصائح حول YOLOv5 التدريب والتحقق من الصحة والنشر.