EfficientDet مقابل YOLOv5: مقارنة فنية تفصيلية
لقد تطور مشهد اكتشاف الأجسام بسرعة، مدفوعًا بالحاجة المستمرة إلى موازنة الدقة مع الكفاءة الحسابية. من التصميمات التي أثرت بشكل كبير في هذا المجال EfficientDet، الذي طوره فريق Google Brain، و YOLOv5، الذي أنشأته Ultralytics. في حين أن كلا النموذجين يهدفان إلى اكتشاف الأجسام داخل الصور بكفاءة، إلا أنهما يتعاملان مع المشكلة بفلسفات تصميم واستراتيجيات معمارية مختلفة اختلافًا جوهريًا.
يقدم هذا الدليل مقارنة فنية متعمقة لمساعدة المطورين والباحثين والمهندسين على اختيار الأداة المناسبة لتطبيقات الرؤية الحاسوبية الخاصة بهم.
EfficientDet: قابل للتطوير وفعال
ظهر EfficientDet، الذي تم إصداره في أواخر عام 2019، من هدف البحث المتمثل في تحسين الدقة والكفاءة في وقت واحد. قدم مفهوم "التحجيم المركب" للكشف عن الكائنات، وهي طريقة تعمل على توسيع نطاق الدقة والعمق والعرض للشبكة الخلفية بشكل موحد.
- المؤلفون: مينغشينغ تان، رومينغ بانغ، وكوك ف. لي
- المؤسسة:Google Brain
- التاريخ: 20 نوفمبر 2019
- Arxiv:EfficientDet: كشف الأجسام القابل للتطوير والفعال
أبرز ملامح الهيكلة
تم تصميم EfficientDet على EfficientNet backbone ويقدم شبكة دمج ميزات جديدة تسمى BiFPN (شبكة Bi-directional Feature Pyramid Network). على عكس شبكات Feature Pyramid Networks (FPN) التقليدية التي تحد من تدفق المعلومات بطريقة من أعلى إلى أسفل، يسمح BiFPN بتدفق معلومات معقد وثنائي الاتجاه بين طبقات الدقة المختلفة.
يستخدم النموذج أيضًا التحجيم المركب، والذي يسمح للمستخدمين بالاختيار من بين مجموعة من النماذج (D0 إلى D7) اعتمادًا على قيود الموارد لديهم. يضمن هذا أنه إذا كان لديك المزيد من الحسابات المتاحة، فيمكنك زيادة حجم النموذج خطيًا للحصول على دقة أفضل.
نقاط القوة والضعف
تكمن القوة الأساسية لـ EfficientDet في كفاءتها النظرية. إنها تحقق درجات mAP عالية مع FLOPs منخفضة بشكل ملحوظ (عمليات النقطة العائمة). وهذا يجعلها مرشحًا مثيرًا للاهتمام للبحث الأكاديمي حيث تعد كفاءة المعلمات مقياسًا رئيسيًا.
ومع ذلك، يعاني EfficientDet من عيب عملي: زمن انتقال الاستدلال. الاتصالات المعقدة في BiFPN والاستخدام المكثف للالتواءات المنفصلة ذات العمق - على الرغم من أنها فعالة رياضيًا - غالبًا ما لا يتم تحسينها بالكامل على أجهزة GPU مقارنة بالالتواءات القياسية. وبالتالي، على الرغم من انخفاض FLOPs، يمكن أن يعمل EfficientDet بشكل أبطأ على وحدات معالجة الرسومات من النماذج ذات التكاليف الحسابية النظرية الأعلى.
تعرف على المزيد حول EfficientDet
Ultralytics YOLOv5: الأداء الحقيقي وسهولة الاستخدام
مثّل Ultralytics YOLOv5 نقلة نوعية عند إصداره في عام 2020. على عكس سابقاته، كان أول نموذج YOLO يتم تنفيذه أصلاً في PyTorch، مما جعله في متناول نظام بيئي ضخم من المطورين. لقد أعطى الأولوية لـ "سهولة النشر" جنبًا إلى جنب مع الأداء الخام.
- المؤلف: جلين جوتشر
- المؤسسة:Ultralytics
- التاريخ: 26 يونيو 2020
- GitHub:ultralytics/yolov5
أبرز ملامح الهيكلة
يستخدم YOLOv5 عمودًا فقريًا CSPDarknet، مما يحسن تدفق التدرج ويقلل من الحساب. لقد كان رائدًا في استخدام Mosaic Augmentation أثناء التدريب - وهي تقنية تجمع أربع صور معًا - مما يحسن قدرة النموذج على اكتشاف الكائنات الصغيرة ويقلل الحاجة إلى أحجام الدُفعات الصغيرة الكبيرة.
تم تصميم البنية لتحقيق السرعة. من خلال استخدام الالتواءات القياسية وهيكل الرأس المبسط، تزيد YOLOv5 من إمكانات المعالجة المتوازية لوحدات معالجة الرسومات الحديثة إلى أقصى حد، مما يؤدي إلى زمن انتقال الاستدلال منخفض للغاية.
ميزة النظام البيئي لـ Ultralytics
تتمثل إحدى أهم مزايا YOLOv5 في النظام البيئي المحيط. توفر Ultralytics سير عمل سلسًا يتضمن إنشاء الارتكاز التلقائي، و تطوير المعلمات الفائقة، ودعم التصدير الأصلي إلى ONNX و TensorRT و CoreML و TFLite. يقلل هذا النهج "المتضمن للبطاريات" بشكل كبير من الوقت من المفهوم إلى الإنتاج.
نقاط القوة والضعف
تتفوق YOLOv5 في الاستدلال في الوقت الفعلي و سهولة الاستخدام. تسمح واجهة برمجة التطبيقات البسيطة والوثائق القوية للمطورين بتدريب نماذج مخصصة على بياناتهم الخاصة في دقائق. إنها توازن بين السرعة والدقة بطريقة مثالية لـ الذكاء الاصطناعي الطرفي وعمليات النشر السحابية. في حين أن النماذج الأحدث مثل YOLO11 قد تجاوزتها منذ ذلك الحين في الدقة، تظل YOLOv5 قوة عمل موثوقة ومعيارية في الصناعة.
مقاييس الأداء: السرعة مقابل الدقة
يقارن الجدول التالي أداء EfficientDet و YOLOv5 على مجموعة بيانات COCO val2017. الاستنتاج الرئيسي هو التمييز بين التكلفة النظرية (FLOPs) والسرعة الفعلية (وقت الاستجابة).
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 | 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 |
كما هو موضح، يهيمن YOLOv5 في زمن انتقال GPU. على سبيل المثال، YOLOv5s (37.4 mAP) يعمل بسرعة 1.92 مللي ثانية على وحدة معالجة الرسومات T4 GPU، بينما EfficientDet-d0 (34.6 mAP) يستغرق 3.92 مللي ثانية—مما يجعل YOLOv5 تقريباً أسرع بمرتين مع تقديم دقة أعلى. YOLOv5l (49.0 mAP) قريبًا أسرع بـ 5 مرات مقارنة بـ EfficientDet-d4 (49.7 mAP).
على العكس من ذلك، يتألق EfficientDet في البيئات التي تعتمد على وحدة المعالجة المركزية (CPU) فقط حيث غالبًا ما تترجم العمليات منخفضة الفلوبس بشكل أفضل إلى الأداء، كما هو موضح في سرعات وحدة المعالجة المركزية ONNX لمتغيرات D0 الأصغر.
حالات الاستخدام المثالية
يعتمد الاختيار بين هذه النماذج على قيودك المحددة:
متى تختار EfficientDet
- قياس الأداء الأكاديمي: عندما يكون الهدف الأساسي هو إظهار كفاءة المعلمات أو قوانين توسيع النطاق المعماري.
- قيود صارمة على وحدة المعالجة المركزية CPU: إذا كان النشر يقتصر بشكل صارم على أجهزة وحدة المعالجة المركزية CPU القديمة حيث تكون عمليات الفاصلة العائمة في الثانية FLOPs هي عنق الزجاجة المطلق، فإن أصغر متغيرات EfficientDet (D0-D1) تقدم أداءً تنافسيًا.
- بحث: لدراسة اختلافات شبكة الهرم المميزة مثل BiFPN.
متى تختار Ultralytics YOLOv5
- تطبيقات في الوقت الفعلي: ضرورية لـ المركبات ذاتية القيادة، و الروبوتات، والمراقبة بالفيديو حيث يكون زمن الوصول المنخفض أمرًا غير قابل للتفاوض.
- نشر الإنتاج: النظام البيئي الذي تتم صيانته جيدًا والتصدير السهل إلى محركات مثل TensorRT و OpenVINO يجعل YOLOv5 متفوقًا للمنتجات التجارية.
- كفاءة التدريب: عادةً ما يتم تدريب نماذج YOLOv5 بشكل أسرع وتتطلب ذاكرة أقل من البنى المعقدة مثل EfficientDet أو النماذج القائمة على المحولات، مما يقلل من تكاليف الحوسبة السحابية.
- Versatility: بالإضافة إلى المربعات المحيطة البسيطة، يتيح إطار عمل Ultralytics انتقالاً سلساً إلى مهام الـ segmentation والـ classification.
مثال على التعليمات البرمجية: بساطة Ultralytics
إحدى الميزات المميزة لنماذج Ultralytics هي سهولة الاستخدام. في حين أن تنفيذ EfficientDet غالبًا ما يتطلب تكوينات TensorFlow معقدة أو استنساخات مستودعات محددة، يمكن تحميل YOLOv5 وتشغيله ببضعة أسطر فقط من تعليمات Python البرمجية عبر PyTorch Hub.
import torch
# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img)
# Display results
results.print() # Print predictions to console
results.show() # Show image with bounding boxes
الخلاصة والنظرة المستقبلية
في حين أن EfficientDet يمثل علامة فارقة مهمة في رؤية الكمبيوتر من خلال إثبات قيمة القياس المركب ودمج الميزات بكفاءة، فقد أحدثت YOLOv5 ثورة في الصناعة من خلال جعل الكشف عن الكائنات عالي الأداء في متناول الجميع وسريعًا وقابلاً للنشر.
بالنسبة للمطورين الذين يبدأون مشروعًا جديدًا اليوم، نوصي بالنظر إلى أحدث التطورات في سلالة Ultralytics. يعتمد YOLO11 على الأساس القوي لـ YOLOv5، ويقدم:
- حتى دقة و سرعة أعلى.
- دعم أصلي لـ تقدير الوضعية، و تقسيم المثيلات، و obb.
- حزمة python موحدة
ultralyticsالذي يبسط دورة حياة MLOps بأكملها.
لمزيد من القراءة حول كيفية مقارنة نماذج Ultralytics بالبنى الأخرى، استكشف مقارناتنا مع YOLOv8 و RT-DETR.