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

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

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

فلنبدأ إذن مع ملاحظات إصدار YOLOv5 v7.0!
أهم تحديثات Ultralytics 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 --cache ram الآن على فحص الذاكرة المتاحة ومقارنتها بالاستخدام المتوقع لذاكرة RAM لمجموعة البيانات. ويقلل ذلك من مخاطر التخزين المؤقت، ومن المفترض أن يساعد في زيادة اعتماد ميزة التخزين المؤقت لمجموعة البيانات، التي يمكن أن تسرّع التدريب بدرجة كبيرة. (#10027 بواسطة @glenn-jocher)
- تكامل التسجيل والتصور في Comet: تتيح لك Comet، المجانية دائمًا، حفظ نماذج YOLOv5 واستئناف التدريب وتصور التنبؤات وتصحيح أخطائها تفاعليًا. (#9232 بواسطة @DN6)
نقاط تحقق جديدة للتجزئة#
درّبنا نماذج تجزئة Ultralytics YOLOv5 على COCO لمدة 300 حقبة وبحجم صورة 640 باستخدام وحدات GPU من نوع A100. وصدّرنا جميع النماذج إلى ONNX بدقة FP32 لاختبارات سرعة CPU، وإلى TensorRT بدقة FP16 لاختبارات سرعة GPU. وأجرينا جميع اختبارات السرعة على دفاتر Colab Pro من Google لضمان سهولة إعادة الإنتاج.
- دُرّبت جميع نقاط التحقق لمدة 300 حقبة باستخدام مُحسِّن SGD مع lr0=0.01 وweight_decay=5e-5، وبحجم صورة 640 وجميع الإعدادات الافتراضية. وسُجّلت جميع عمليات التشغيل في سجلات تدريب Weights & Biases.
- قيم الدقة مخصصة لنموذج واحد وبمقياس واحد على مجموعة بيانات COCO. أعد الإنتاج باستخدام python 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
أمثلة جديدة على استخدام التجزئة#
التدريب#
يدعم تدريب تجزئة Ultralytics 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 متعدد وحدات GPU#
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
التحقق#
تحقّق من دقة YOLOv5m-seg على مجموعة بيانات COCO:
bash data/scripts/get_coco.sh --val --segments # تنزيل تقسيم مقاطع COCO للتحقق (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') # التحميل من PyTorch Hub (تحذير: الاستدلال غير مدعوم بعد)

التصدير#
صدّر نموذج YOLOv5s-seg إلى ONNX وTensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

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









