Home
Login

YOLOv5، نموذج الكشف عن الكائنات في الوقت الفعلي الأكثر تطوراً والقائم على PyTorch، يدعم مهام الكشف عن الكائنات وتقسيم الصور وتصنيف الصور.

AGPL-3.0Python 54.3kultralyticsyolov5 Last Updated: 2025-06-21

نظرة عامة على مشروع YOLOv5

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:

  • YOLOv5s: mAP@0.5:0.95 = 37.4٪، السرعة 6.4 مللي ثانية (V100)
  • YOLOv5m: mAP@0.5:0.95 = 45.4٪، السرعة 8.2 مللي ثانية (V100)
  • YOLOv5l: mAP@0.5:0.95 = 49.0٪، السرعة 10.1 مللي ثانية (V100)
  • YOLOv5x: mAP@0.5:0.95 = 50.7٪، السرعة 12.1 مللي ثانية (V100)

التثبيت والبدء السريع

متطلبات البيئة

  • Python >= 3.8.0
  • PyTorch >= 1.8

خطوات التثبيت

# استنساخ المستودع
git clone https://github.com/ultralytics/yolov5
cd yolov5

# تثبيت التبعيات
pip install -r requirements.txt

استخدام PyTorch Hub للاستدلال

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

وظائف متقدمة

تعزيز وقت الاختبار (TTA)

تحسين دقة التنبؤ من خلال الانعكاس وتوسيع النطاق:

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 بعمق مع العديد من منصات الذكاء الاصطناعي الرئيسية:

  • Weights & Biases: تتبع التجارب وتصورها
  • Comet ML: إدارة التجارب ومراقبتها
  • Roboflow: ترميز البيانات وإدارتها
  • Intel OpenVINO: تحسين النموذج ونشره
  • Neural Magic: تخفيف النموذج وتسريعه
  • Ultralytics HUB: منصة تدريب ونشر شاملة

المجتمع والدعم

ملخص

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

Star History Chart