Ultralytics YOLOv5 🚀 هو نموذج رؤية حاسوبية متطور وحديث (SOTA)، تم تطويره بواسطة Ultralytics. يعتمد YOLOv5 على إطار عمل PyTorch، ويشتهر بسهولة استخدامه وسرعته ودقته. يدمج رؤى من الأبحاث والتطويرات الواسعة مع أفضل الممارسات، مما يجعله خيارًا شائعًا لمجموعة متنوعة من مهام الذكاء الاصطناعي البصري.
عنوان المشروع: https://github.com/ultralytics/yolov5
يدعم YOLOv5 العديد من مهام رؤية الكمبيوتر:
تشمل الميزات الرئيسية الاستدلال في الوقت الفعلي، ودعم تقنيات التدريب المتعددة مثل تعزيز وقت الاختبار (TTA) وتجميع النماذج، والتوافق مع تنسيقات التصدير مثل TFLite و ONNX و CoreML و TensorRT.
يوفر YOLOv5 أحجام نماذج متعددة لتلبية الاحتياجات المختلفة:
النموذج | عدد المعلمات (M) | السرعة | الدقة | السيناريو المناسب |
---|---|---|---|---|
YOLOv5n | 1.9 | الأسرع | منخفضة | الأجهزة المحمولة، الحوسبة الطرفية |
YOLOv5s | 7.2 | سريع | متوسطة | تطبيقات عامة |
YOLOv5m | 21.2 | متوسطة | عالية | أداء متوازن |
YOLOv5l | 46.5 | أبطأ | عالية | متطلبات دقة عالية |
YOLOv5x | 86.7 | الأبطأ | الأعلى | متطلبات دقة قصوى |
الأداء على مجموعة بيانات COCO:
# استنساخ المستودع
git clone https://github.com/ultralytics/yolov5
cd yolov5
# تثبيت التبعيات
pip install -r requirements.txt
import torch
# تحميل نموذج YOLOv5
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# تحديد مصدر صورة الإدخال
img = "https://ultralytics.com/images/zidane.jpg"
# تنفيذ الاستدلال
results = model(img)
# معالجة النتائج
results.print() # طباعة النتائج إلى وحدة التحكم
results.show() # عرض النتائج في نافذة
results.save() # حفظ النتائج في runs/detect/exp
# الاستدلال باستخدام الكاميرا
python detect.py --weights yolov5s.pt --source 0
# الاستدلال على ملف صورة محلي
python detect.py --weights yolov5s.pt --source img.jpg
# الاستدلال على ملف فيديو
python detect.py --weights yolov5s.pt --source vid.mp4
# الاستدلال على دليل صور
python detect.py --weights yolov5s.pt --source path/to/images/
# الاستدلال على فيديو YouTube
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'
# تدريب YOLOv5s على مجموعة بيانات COCO، 300 حقبة
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# تدريب YOLOv5m
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# تدريب YOLOv5l
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# استخدام التدريب الموزع متعدد وحدات معالجة الرسومات
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 train.py --data coco.yaml --weights '' --cfg yolov5s.yaml --batch-size 64 --device 0,1,2,3
قدم YOLOv5 الإصدار 7.0 وظيفة تجزئة المثيل، وحقق أحدث أداء على مجموعة بيانات COCO.
النموذج | mAP^box | mAP^mask | عدد المعلمات (M) | السرعة (مللي ثانية) |
---|---|---|---|---|
YOLOv5n-seg | 27.6 | 23.4 | 2.0 | 59.2 |
YOLOv5s-seg | 37.6 | 32.0 | 7.6 | 63.7 |
YOLOv5m-seg | 45.0 | 37.1 | 22.0 | 89.5 |
YOLOv5l-seg | 49.0 | 39.9 | 47.8 | 168.4 |
YOLOv5x-seg | 50.7 | 41.4 | 88.8 | 265.7 |
# تدريب نموذج التجزئة
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640
# التحقق من صحة نموذج التجزئة
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640
# استخدام نموذج التجزئة للتنبؤ
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
أضاف YOLOv5 الإصدار 6.2 وظيفة تصنيف الصور، والنتائج بعد تدريب 90 حقبة على مجموعة بيانات ImageNet:
النموذج | دقة Top1 | دقة Top5 | عدد المعلمات (M) | السرعة (مللي ثانية) |
---|---|---|---|---|
YOLOv5s-cls | 71.5٪ | 90.2٪ | 5.5 | 1.7 |
YOLOv5m-cls | 75.9٪ | 92.9٪ | 13.0 | 2.8 |
YOLOv5l-cls | 78.0٪ | 94.0٪ | 27.4 | 4.9 |
YOLOv5x-cls | 79.0٪ | 94.4٪ | 55.4 | 8.7 |
# التدريب على مجموعة بيانات CIFAR-100
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128
# التحقق من صحة نموذج ImageNet
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224
# التنبؤ بتصنيف الصور
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
يدعم YOLOv5 تنسيقات نشر متعددة:
# التصدير إلى تنسيق ONNX
python export.py --weights yolov5s.pt --include onnx
# التصدير إلى تنسيق TensorRT
python export.py --weights yolov5s.pt --include engine
# التصدير إلى تنسيق CoreML (مناسب لنظام iOS)
python export.py --weights yolov5s.pt --include coreml
# التصدير إلى تنسيق TFLite (مناسب للأجهزة المحمولة)
python export.py --weights yolov5s.pt --include tflite
تحسين دقة التنبؤ من خلال الانعكاس وتوسيع النطاق:
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
الجمع بين نماذج متعددة للحصول على أداء أفضل:
python val.py --data coco.yaml --weights yolov5s.pt yolov5m.pt yolov5l.pt yolov5x.pt
البحث تلقائيًا عن أفضل المعلمات الفائقة للتدريب:
python train.py --data coco.yaml --evolve 300
يتكامل YOLOv5 بعمق مع العديد من منصات الذكاء الاصطناعي الرئيسية:
يعتبر YOLOv5 علامة فارقة مهمة في مجال اكتشاف الكائنات، وقد أصبح الإطار المفضل للبحث الأكاديمي والتطبيقات الصناعية بفضل أدائه الممتاز وسهولة استخدامه ووظائفه الغنية. سواء كنت مبتدئًا أو مطورًا محترفًا، يمكنك العثور على الحل المناسب في النظام البيئي لـ YOLOv5.