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

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

فريق Ultralytics

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

23 نوفمبر 2022

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

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

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

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

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

Ultralytics YOLOv5 v7.0 SOTA تقسيم الحالات في الوقت الفعلي

إذًا، لنبدأ مع ملاحظات إصدار 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 AutoCache: سيقوم الأمر python train.py --cache ram الآن بفحص الذاكرة المتاحة ومقارنتها بالاستخدام المتوقع لذاكرة الوصول العشوائي (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. يمكن إعادة إنتاجها عن طريق بايثون segment\/val.py --data coco.yaml --weights yolov5s-seg.pt
  • متوسط السرعة على 100 صورة استدلالية باستخدام مثيل Colab Pro A100 High-RAM. تشير القيم إلى سرعة الاستدلال فقط (تضيف NMS حوالي 1 مللي ثانية لكل صورة). يمكن إعادة إنتاج ذلك عن طريق: python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 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.

وحدة معالجة الرسومات (GPU) واحدة

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

DDP متعدد وحدات معالجة الرسوميات

python -m 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

Val

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

bash data/scripts/get_coco.sh --val --segments  # تنزيل تقسيم COCO val segments (780MB, 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

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt')  # load from PyTorch Hub (تحذير: الاستدلال غير مدعوم حتى الآن)

Ultralytics YOLOv5 v7.0 تقسيم الحالات


تصدير

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

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

Ultralytics YOLOv5 v7.0 تقسيم الحالات

هل لديك أي أسئلة؟ اسأل منتدى Ultralytics، أو أثر مشكلة، أو أرسل طلب سحب (PR) على المستودع. يمكنك أيضًا البدء باستخدام YOLOv5 segmentation Colab notebook للحصول على دروس تعليمية سريعة.

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

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

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