نقدّم ميزة تقسيم الكائنات في Ultralytics YOLOv5 v7.0
اكتشف YOLOv5 v7.0، الإصدار الذي قدّم نماذج تجزئة المثيلات في YOLOv5، مع أمثلة للتدريب والتحقق والتنبؤ والتصدير.
Nuvola Ladi3 دقيقة قراءة
صدرت YOLOv5 v7.0، أحدث إصدار من بنية الذكاء الاصطناعي لدينا، ويسعدنا أن نقدم نماذجنا الجديدة لتقسيم المثيلات! (للمشاريع الجديدة اليوم، اطّلع على Ultralytics YOLO26، الذي يدعم تقسيم المثيلات أيضًا.)

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

فلنبدأ إذن بالاطلاع على ملاحظات إصدار YOLOv5 v7.0!
تحديثات مهمة في Ultralytics YOLOv5#
إليكم التحديثات التي طرأت على YOLOv5 منذ إصدارنا السابق YOLOv5 v6.2 في أغسطس 2022.
- نماذج التجزئة ⭐ جديد: أصبحت نماذج تجزئة YOLOv5-seg المدربة مسبقًا على COCO، والتي تضاهي أحدث ما توصلت إليه التقنية (SOTA)، متاحة للمرة الأولى (#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الآن الذاكرة المتاحة ويقارنها بالاستخدام المتوقع لذاكرة مجموعة البيانات. يقلل ذلك مخاطر التخزين المؤقت، ومن المفترض أن يساعد على زيادة اعتماد ميزة تخزين مجموعة البيانات مؤقتًا، التي يمكنها تسريع التدريب بدرجة كبيرة. (#10027 بواسطة @glenn-jocher) - تكامل تسجيل Comet والتمثيل المرئي: تتيح لك Comet، مجانًا إلى الأبد، حفظ نماذج YOLOv5 واستئناف التدريب وتمثيل التنبؤات مرئيًا وتصحيح أخطائها تفاعليًا. (#9232 بواسطة @DN6)
نقاط تحقق التجزئة الجديدة#
درّبنا نماذج التجزئة Ultralytics YOLOv5 على COCO لمدة 300 حقبة بحجم صور 640 باستخدام وحدات GPU من طراز A100. وصدّرنا جميع النماذج إلى ONNX FP32 لاختبارات سرعة CPU وإلى TensorRT FP16 لاختبارات سرعة GPU. وأجرينا جميع اختبارات السرعة على دفاتر ملاحظات Google Colab Pro لتسهيل إعادة إنتاج النتائج.
- دُرّبت جميع نقاط الحفظ حتى 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 ذي الذاكرة العالية. تشير القيم إلى سرعة الاستدلال فقط (تضيف NMS نحو 1 ms لكل صورة). أعد إنتاج النتائج باستخدام
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 segment/train.py --data coco.yaml.
وحدة GPU واحدة#
python segment/train.py --weights 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 --weights yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3التحقق من الصحة#
تحقّق من دقة YOLOv5s-seg على مجموعة بيانات COCO:
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validateالتنبؤ#
استخدم YOLOv5m-seg المدرّب مسبقًا للتنبؤ على bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpgmodel = 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 للاطلاع على برامج تعليمية سريعة للبدء.
بقلم
التعليقات
اطرح سؤالًا، أو شارك نتائجك، أو ساعد شخصًا آخر.










