تقديم تجزئة المثيل في Ultralytics YOLOv5 v7.0

فريق Ultralytics

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

23 نوفمبر 2022

اكتشف YOLOv5 الإصدار 7.0 من YOLOv5 مع نماذج تجزئة المثيل الجديدة، متفوقًا على معايير SOTA لأعلى دقة وسرعة في الذكاء الاصطناعي. انضم إلى مجتمعنا.

لقد تم إصدار YOLOv5 v7.0، وهو أحدث إصدار من بنية الذكاء الاصطناعي لدينا، ويسعدنا أن نقدم نماذج تقسيم النماذج الجديدة!

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

لذا، مع التحسينات والإصلاحات والترقيات المهمة، قمنا بذلك بالضبط. مع الحفاظ على نفس تدفقات العمل البسيطة مثل نماذج اكتشاف الأجسام YOLOv5 الحالية، أصبح الآن أسهل من أي وقت مضى تدريب نماذجك والتحقق من صحتها ونشرها باستخدام YOLOv5 v7.0. علاوة على ذلك، فقد تجاوزنا جميع معايير SOTA، مما يجعل YOLOv5 الأسرع والأكثر دقة في العالم.

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

تقنية Ultralytics YOLOv5 الإصدار 7.0 تقسيم المثيل في الوقت الحقيقي

لذا، لنبدأ بملاحظات الإصدار YOLOv5 v7.0 من YOLOv5 v7.0!

تحديثات مهمة لـ YOLOv5

إليك ما تم تحديثه في YOLOv5 منذ إصدارنا الأخير من YOLOv5 v6.2 في أغسطس 2022.

  • نماذج التجزئة ⭐ جديد: نماذج التجزئة SOTA YOLOv5-seg COCO التي تم تدريبها مسبقًا متاحة الآن لأول مرة(#9052 بواسطة @glenn-jocher وAyushExel وLaughing-q)
  • تصدير PaddlePaddle: تصدير أي نموذج من نماذج YOLOv5 (cls، seg، det) إلى تنسيق Paddle باستخدام python export.py -include paddle #9459 بواسطة @glenn-jocher)
  • ذاكرة التخزين المؤقت التلقائي YOLOv5: سيؤدي استخدام python train.py -ذاكرة التخزين المؤقت ram الآن إلى مسح الذاكرة المتاحة ومقارنتها باستخدام مجموعة البيانات المتوقعة لذاكرة الوصول العشوائي. هذا يقلل من المخاطر في التخزين المؤقت ومن المفترض أن يساعد في تحسين اعتماد ميزة التخزين المؤقت لمجموعة البيانات، والتي يمكن أن تسرع التدريب بشكل كبير.(#10027 من @glenn-jocher)
  • تكامل التسجيل والتصور في Comet: مجانًا إلى الأبد، يتيح لك Comet حفظ نماذج YOLOv5 واستئناف التدريب والتصور التفاعلي للتنبؤات وتصحيحها.(#9232 بواسطةDN6)

نقاط التحقق من التقسيم الجديدة

قمنا بتدريب نماذج تجزئة YOLOv5 على COCO لـ 300 حلقة تدريبية بحجم 640 صورة باستخدام وحدات معالجة الرسومات A100. قمنا بتصدير جميع النماذج إلى ONNX FP32 لاختبارات سرعة وحدة المعالجة المركزية وإلى TensorRT FP16 لاختبارات سرعة وحدة معالجة الرسومات. أجرينا جميع اختبارات السرعة على أجهزة Google Colab Pro الدفترية لسهولة التكرار.

  • تم تدريب جميع نقاط التدقيق على 300 حقبة باستخدام مُحسِّن SGD مع lr0=0.01 وweight_decay=5e-5 بحجم الصورة 640 وجميع الإعدادات الافتراضية. يتم تسجيل جميع عمليات التشغيل هنا.
  • قيم الدقة هي لنموذج واحد بمقياس واحد على مجموعة بيانات COCO. إعادة إنتاجها بواسطة python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • متوسط السرعة على 100 صورة استدلالية باستخدام مثيل Colab Pro A100 عالي ذاكرة الوصول العشوائي. تشير القيم إلى سرعة الاستدلال فقط (يضيف NMS حوالي 1 مللي ثانية لكل صورة). إعادة الإنتاج عن طريق python segment/val.py --data coco.yaml -weights yolov5s-seg.pt - الدفعة 1
  • تم التصدير إلى ONNX عند FP32 و TensorRT عند FP16 باستخدام export.py. إعادة الإنتاج عن طريق python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

أمثلة على استخدام التقسيم الجديد

القطار

يدعم التدريب على تجزئة YOLOv5 التنزيل التلقائي لمجموعة بيانات تجزئة COCO128-seg باستخدام وسيطة --data coco128-seg.yaml والتنزيل اليدوي لمجموعة بيانات COCO-segments باستخدام bash data/scripts/get_coco.sh --train --val --segments ثم python train.py --data coco.yaml.

وحدة معالجة مركزية واحدة

python segment/train.py - model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

DDP متعدد وحدات معالجة DDP

python -m torch.torch.distributed.run -nproc_per_node 4 --master_port 1 - segment/train.py -model yolov5s-seg.pt --data coco128-seg.yaml -epochs 5 -img 640 --device 0,1,2,3

فال

التحقق من صحة دقة YOLOv5m-seg على مجموعة بيانات ImageNet-1k:

bash data/scripts/get_coco.sh --val --segments # تنزيل مقاطع COCO val مقسمة (780 ميغابايت، 5000 صورة) python segment/val.py --weights yolov5s-seg.pt - data coco.yaml --img 640 # تحقق من صحة

التنبؤ

استخدم YOLOv5m-seg المُدرب مسبقًا للتنبؤ بـ Bus.jpg:

python segment/predict.py --weights yolov5m-seg.pt - data data/images/bus.jpg

الطراز = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # تحميل من مركز PyTorch (تحذير: الاستدلال غير مدعوم بعد)

تقسيم المثيل Ultralytics YOLOv5 v7.0 تجزئة المثيل


التصدير

تصدير نموذج YOLOv5-seg إلى ONNX و TensorRT:

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

تقسيم المثيل Ultralytics YOLOv5 v7.0 تجزئة المثيل

هل لديك أي أسئلة؟ اسأل منتدى Ultralytics، أو قم بطرح مشكلة، أو أرسل تقرير علاقات عامة على الريبو. يمكنك أيضًا البدء في استخدام دفتر ملاحظات تجزئة YOLOv5 Colab الخاص بنا للحصول على دروس البدء السريع.

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

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

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