YOLOv5 ضد EfficientDet: مقارنة تقنية تفصيلية
في المشهد المتطور لـ رؤية الحاسوب، يُعد اختيار بنية الكشف عن الأجسام الصحيحة أمرًا محوريًا لنجاح المشروع. تستكشف هذه المقارنة نموذجين مؤثرين للغاية: Ultralytics YOLOv5، المعروف بتوازنه بين السرعة وسهولة الاستخدام، و EfficientDet من Google، المشهور بقابليته للتوسع وكفاءة المعلمات. من خلال فحص بنياتهما ومقاييس الأداء وقدرات النشر، يمكن للمطورين اتخاذ قرارات مستنيرة تناسب احتياجات التطبيق الخاصة بهم.
تحليل الأداء: السرعة مقابل الكفاءة
يكمن الاختلاف الأساسي بين هذين المعماريين في فلسفة التصميم الخاصة بهما فيما يتعلق بالموارد الحسابية مقابل زمن الوصول للاستدلال. تعمل EfficientDet على التحسين من أجل FLOPs النظرية (عمليات النقطة العائمة)، مما يجعلها جذابة للمعايير الأكاديمية. وعلى العكس من ذلك، تعطي YOLOv5 الأولوية لزمن الوصول المنخفض على الأجهزة العملية، وخاصةً وحدات معالجة الرسومات (GPUs)، مما يوفر سرعات استدلال في الوقت الفعلي ضرورية لبيئات الإنتاج.
يوضح الجدول أدناه هذه المفاضلة على مجموعة بيانات COCO val2017. في حين أن نماذج EfficientDet تحقق mAP عالية مع عدد أقل من المعلمات، فإن YOLOv5 يُظهر أوقات استدلال أسرع بشكل كبير على وحدات معالجة الرسومات NVIDIA T4 باستخدام TensorRT.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
كما هو موضح، يحقق YOLOv5n زمن انتقال سريع للغاية يبلغ 1.12 مللي ثانية على وحدة معالجة الرسومات، متجاوزًا بشكل كبير أصغر متغير EfficientDet. بالنسبة للتطبيقات التي تهم فيها المللي ثانية، مثل المركبات ذاتية القيادة أو خطوط التصنيع عالية السرعة، تعد ميزة السرعة هذه أمرًا بالغ الأهمية.
الاختلافات المعمارية
يساعد فهم التصميم الهيكلي لكل نموذج على توضيح خصائص أدائه.
Ultralytics YOLOv5
يستخدم YOLOv5 عمودًا فقريًا CSPDarknet مقترنًا برقبة PANet. تم تصميم هذه البنية لزيادة تدفق التدرج وكفاءة استخراج الميزات.
- العمود الفقري: يستخدم اتصالات Cross Stage Partial (CSP) لتقليل معلومات التدرج الزائدة، وتحسين القدرة على التعلم مع تقليل المعلمات.
- الرقبة: يتميز بشبكة تجميع المسار (PANet) لدمج الميزات متعددة المقاييس بشكل موثوق، مما يعزز الـ detection للكائنات بأحجام مختلفة.
- الرأس: يتوقع رأس الكشف القياسي المستند إلى المرساة YOLO الفئات ومربعات الإحاطة مباشرة.
EfficientDet
تم تصميم EfficientDet على EfficientNet backbone ويقدم شبكة Bi-directional Feature Pyramid Network (BiFPN) مرجحة.
- العمود الفقري: يستخدم EfficientNet، الذي يوسع العمق والعرض والدقة بشكل موحد باستخدام معامل مركب.
- الرقبة (BiFPN): طبقة تكامل ميزات معقدة تسمح بتدفق المعلومات من أعلى إلى أسفل ومن أسفل إلى أعلى، وتطبيق الأوزان على ميزات الإدخال المختلفة للتأكيد على أهميتها.
- التحجيم المركب: ابتكار رئيسي يتم فيه توسيع نطاق الشبكة الأساسية و BiFPN وشبكات التنبؤ بالمربع/الفئة معًا.
تعرف على المزيد حول EfficientDet
ميزة Ultralytics: النظام البيئي وسهولة الاستخدام
في حين أن المقاييس الأولية مهمة، إلا أن تجربة المطور غالبًا ما تملي نجاح المشروع. يتفوق Ultralytics YOLOv5 في توفير بيئة مصقولة تتمحور حول المستخدم وتقلل بشكل كبير من وقت التطوير.
سهولة الاستخدام والتكامل
تشتهر YOLOv5 بقابليتها للاستخدام "خارج الصندوق". يمكن تثبيت النموذج عبر أمر pip بسيط واستخدامه بأقل قدر من التعليمات البرمجية. في المقابل، تتطلب تطبيقات EfficientDet غالبًا إعدادًا أكثر تعقيدًا داخل نظام TensorFlow البيئي أو مستودعات بحثية محددة.
سير عمل مبسط
باستخدام Ultralytics، يمكنك الانتقال من مجموعة البيانات إلى النموذج المدرب في دقائق. يتيح التكامل مع أدوات مثل Ultralytics HUB إدارة النماذج وتصورها ونشرها بسلاسة دون الحاجة إلى الكثير من التعليمات البرمجية.
كفاءة التدريب والذاكرة
تم تحسين نماذج Ultralytics لتحقيق كفاءة في التدريب. تتقارب هذه النماذج بشكل أسرع وتتطلب ذاكرة CUDA أقل مقارنةً بالمعماريات المعقدة مثل مستويات التحجيم الأعلى لـ EfficientDet أو النماذج القائمة على المحولات. يسمح هذا الحاجز الأقل للمطورين بتدريب أحدث النماذج على أجهزة ذات مستوى استهلاكي أو مثيلات سحابية قياسية مثل Google Colab.
تعدد الاستخدامات والمهام المتعددة
على عكس تطبيق EfficientDet القياسي، وهو في الأساس كاشف كائنات، يدعم إطار Ultralytics مجموعة واسعة من المهام. يمكن للمطورين الاستفادة من نفس واجهة برمجة التطبيقات (API) لـ تقسيم المثيلات و تصنيف الصور، مما يوفر حلاً موحدًا لتحديات رؤية الكمبيوتر المتنوعة.
حالات الاستخدام المثالية
يعتمد الاختيار بين YOLOv5 و EfficientDet إلى حد كبير على قيود وأهداف النشر.
متى تختار Ultralytics YOLOv5
- تطبيقات في الوقت الفعلي: المشاريع التي تتطلب زمن وصول منخفض، مثل المراقبة بالفيديو، و الروبوتات، أو تحليلات الألعاب الرياضية الحية.
- النشر على الحافة: التشغيل على أجهزة مثل NVIDIA Jetson أو Raspberry Pi حيث يعد الاستخدام الفعال لوحدة معالجة الرسوميات GPU/NPU أمرًا أساسيًا.
- النماذج الأولية السريعة: عندما تعطى الأولوية لدورات التكرار السريعة وسهولة الاستخدام لإظهار القيمة بسرعة.
- أنظمة الإنتاج: لعمليات نشر قوية وقابلة للصيانة مدعومة من قبل مجتمع ضخم مفتوح المصدر.
متى تختار EfficientDet
- Research and Benchmarking: الدراسات الأكاديمية التي تركز على كفاءة FLOPs أو قوانين توسيع النطاق المعماري.
- المعالجة دون اتصال: السيناريوهات التي يكون فيها زمن الوصول العالي مقبولاً، والهدف هو استخلاص النسب المئوية النهائية من الدقة على الصور الثابتة.
- الاستدلال على وحدة المعالجة المركزية (CPU) منخفضة الطاقة: في بيئات وحدة المعالجة المركزية (CPU) فقط المحددة للغاية حيث يتم تحسين عمليات BiFPN بشكل كبير لمجموعة تعليمات الأجهزة المحددة.
أصول النموذج وتفاصيله
يوفر فهم سياق هذه النماذج نظرة ثاقبة لأهداف تصميمها.
Ultralytics YOLOv5
- المؤلف: جلين جوتشر
- المؤسسة:Ultralytics
- التاريخ: 2020-06-26
- GitHub:ultralytics/yolov5
- المستندات:توثيق YOLOv5
EfficientDet
- المؤلفون: مينغشينغ تان، رومينغ بانغ، كوك ف. لي
- المؤسسة: Google Research
- التاريخ: 2019-11-20
- Arxiv:EfficientDet: كشف الأجسام القابل للتطوير والفعال
- GitHub:google/automl/efficientdet
مثال على التعليمات البرمجية: البدء في استخدام YOLOv5
تجعل Ultralytics الاستدلال أمرًا مباشرًا بشكل لا يصدق. يوجد أدناه مثال صالح وقابل للتشغيل باستخدام واجهة برمجة تطبيقات python لـ detect الكائنات في صورة.
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL
img_url = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img_url)
# Display results
results.show()
# Print detection data (coordinates, confidence, class)
print(results.pandas().xyxy[0])
تتعامل هذه الشفرة البرمجية البسيطة مع تنزيل النموذج والمعالجة المسبقة للصورة وتشغيل التمرير الأمامي وفك تشفير الإخراج - وهي المهام التي تتطلب قدرًا أكبر من التعليمات البرمجية باستخدام تطبيقات EfficientDet الأولية.
الخلاصة
بينما ساهم EfficientDet بشكل كبير في البحث حول توسيع نطاق النموذج وكفاءة المعلمات، يظل Ultralytics YOLOv5 الخيار الأفضل للنشر العملي في العالم الحقيقي. إن توازنه الاستثنائي بين السرعة والدقة، بالإضافة إلى نظام بيئي مزدهر ويحظى بصيانة جيدة، يضمن قدرة المطورين على بناء وتدريب ونشر الحلول بفعالية.
بالنسبة لأولئك الذين يتطلعون إلى الاستفادة من أحدث ما توصلت إليه تكنولوجيا رؤية الكمبيوتر، واصلت Ultralytics الابتكار إلى ما بعد YOLOv5. تقدم نماذج مثل YOLOv8 و YOLO11 المتطورة مزيدًا من التحسينات في البنية، ودعم المزيد من المهام مثل pose estimation و oriented object detection، مع الحفاظ على سهولة الاستخدام المميزة التي تحدد تجربة Ultralytics.
استكشف نماذج أخرى
إذا كنت مهتمًا باستكشاف المزيد من المقارنات للعثور على النموذج المثالي الذي يلبي احتياجاتك، ففكر في هذه الموارد:
- YOLOv5 vs. YOLO11 - قارن بين الإصدار الكلاسيكي وأحدث ما توصلت إليه التكنولوجيا.
- EfficientDet vs. YOLOv8 - تعرف على كيفية مقارنة EfficientDet مع YOLOv8.
- YOLOv8 vs. YOLO11 - فهم التطورات في أحدث جيل.
- YOLO11 مقابل RT-DETR - قارن بين المحولات في الوقت الفعلي مع YOLO.