Yolo فيجن شنتشن
شنتشن
انضم الآن

تقديم تجزئة المثيل في 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 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 لاختبارات سرعة CPU وإلى TensorRT FP16 لاختبارات سرعة GPU . أجرينا جميع اختبارات السرعة على أجهزة Google Colab Pro الدفترية لسهولة التكرار.

  • تم تدريب جميع نقاط التدقيق على 300 حقبة زمنية باستخدام مُحسِّن SGD مع lr0=0.01 وweight_decay=5e-5 بحجم الصورة 640 وجميع الإعدادات الافتراضية. يتم تسجيل جميع عمليات التشغيل هنا.
  • قيم الدقة هي لنموذج واحد بمقياس واحد على مجموعة بيانات COCO . إعادة الإنتاج عن طريق python segment.py --data cocoyaml --weights yolov5s-seg.pt
  • متوسط السرعة على 100 صورة استدلالية باستخدام مثيل Colab Pro A100 عالي ذاكرة الوصول العشوائي. تشير القيم إلى سرعة الاستدلال فقطNMS يضيفNMS حوالي 1 مللي ثانية لكل صورة). إعادة الإنتاج عن طريق python segment.py --data cocoyaml -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 باستخدام وسيطة --data coco128-segyaml والتنزيل اليدوي لمجموعة بيانات COCO باستخدام bash data/scripts/get_coco.sh --train --val --segments ثم python train.py --data cocoyaml.

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

python segment.py - model yolov5s-seg.pt --data coco128-segyaml --epochs 5 --img 640

DDP متعدد GPU معالجة DDP

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

Val

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

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

توقع

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

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

الطراز = torch.hub.load(ultralyticsyolov5', '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 الخاص بنا للحصول على دروس البدء السريع.

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

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

ابدأ مجانًا