YOLOv8 مقابل EfficientDet: نظرة متعمقة في Architectures الخاصة بالكشف عن الكائنات
في المشهد المتطور بسرعة لرؤية الحاسوب، يعد اختيار نموذج اكتشاف الكائنات الصحيح أمرًا بالغ الأهمية لبناء تطبيقات ذكاء اصطناعي ناجحة. هناك بنيتان بارزتان حددتا أحدث التقنيات في أوقاتهما وهما YOLOv8 من Ultralytics و EfficientDet من Google Research. تستكشف هذه المقارنة الفروق الفنية الدقيقة ومقاييس الأداء وحالات الاستخدام المثالية لكلا النموذجين، مما يساعد المطورين والباحثين على اتخاذ قرارات مستنيرة لمشاريعهم.
بينما قدم EfficientDet مفاهيم رائدة في توسيع نطاق النموذج وكفاءته عند إصداره، يمثل Ultralytics YOLOv8 تطورًا أكثر حداثة، حيث يعطي الأولوية لسرعة الاستدلال في الوقت الفعلي وسهولة الاستخدام وقدرات النشر العملي.
مقارنة أداء مباشرة: السرعة والدقة والكفاءة
تسلط المقارنة بين YOLOv8 و EfficientDet الضوء على تحول أساسي في فلسفة التصميم. يركز EfficientDet بشكل كبير على تقليل FLOPs (عمليات النقطة العائمة) وعدد المعلمات، مما يجعله نظريًا عالي الكفاءة. في المقابل، تم تصميم YOLOv8 لزيادة الإنتاجية إلى أقصى حد على الأجهزة الحديثة، والاستفادة من توازي وحدة معالجة الرسومات GPU لتقديم سرعات استدلال فائقة دون المساس بالدقة.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
النقاط الرئيسية المستخلصة من المعايير
- هيمنة زمن الوصول لوحدة معالجة الرسوميات (GPU): نماذج YOLOv8 أسرع بشكل ملحوظ على أجهزة وحدة معالجة الرسوميات (GPU). على سبيل المثال، يحقق YOLOv8x قيمة mAP أعلى (53.9) من EfficientDet-d7 (53.7) مع تشغيله أسرع بحوالي 9 مرات على وحدة معالجة الرسوميات T4 (14.37 مللي ثانية مقابل 128.07 مللي ثانية). هذا يجعل YOLOv8 الخيار المفضل لتطبيقات الاستدلال في الوقت الفعلي.
- الدقة مقابل المعلمات: في حين أن EfficientDet مشهور بكفاءة المعلمات الخاصة به، فإن YOLOv8 يوفر دقة تنافسية مع نماذج يسهل تحسينها. يتفوق YOLOv8m على EfficientDet-d4 في الدقة (50.2 مقابل 49.7 mAP) مع سرعات استدلال فائقة للغاية، على الرغم من الاختلافات في FLOPs.
- الكفاءة المعمارية (Architectural Efficiency): لا يترجم العدد الأقل من FLOPs في EfficientDet دائمًا إلى زمن انتقال أقل، خاصةً على وحدات معالجة الرسوميات (GPUs) حيث تكون تكاليف الوصول إلى الذاكرة والتوازي أكثر أهمية من عدد العمليات الأولية. تم تصميم بنية YOLOv8 لزيادة الاستفادة من الأجهزة إلى أقصى حد.
تحسين الأجهزة
قم دائمًا بقياس النماذج المعيارية على الأجهزة المستهدفة. تُعد FLOPs النظرية وكيلًا مفيدًا للتعقيد ولكنها غالبًا ما تفشل في التنبؤ بزمن الاستجابة الفعلي على وحدات معالجة الرسومات أو وحدات المعالجة العصبية حيث يلعب عرض النطاق الترددي للذاكرة وقدرات التوازي دورًا أكبر. استخدم وضع معيارYOLO لاختبار الأداء على الإعداد الخاص بك.
نظرة عامة على Ultralytics YOLOv8
YOLOv8 هو أحدث تكرار رئيسي في سلسلة YOLO (You Only Look Once) التي أصدرتها Ultralytics، وهو مصمم ليكون إطارًا موحدًا لـ object detection و instance segmentation و image classification.
- المؤلفون: Glenn Jocher و Ayush Chaurasia و Jing Qiu
- المؤسسة:Ultralytics
- التاريخ: 10 يناير 2023
- GitHub:ultralytics/ultralytics
يقدم YOLOv8 تحسينات معمارية رئيسية، بما في ذلك رأس detect خالي من الـ anchor، مما يبسط عملية التدريب ويحسن التعميم عبر مختلف أشكال الكائنات. كما يستخدم شبكة backbone جديدة وشبكة تجميع المسار (PAN-FPN) المصممة لتكامل الميزات بشكل أكثر ثراءً.
نقاط القوة في YOLOv8
- أداء متطور: يوفر توازنًا استثنائيًا بين السرعة والدقة، ويضع معايير قياسية على مجموعة بيانات COCO.
- نظام بيئي سهل الاستخدام للمطورين: في
ultralyticsتوفر حزمة python واجهة برمجة تطبيقات مبسطة توحد التدريب والتحقق والنشر. - تنوع الاستخدامات: يدعم مهام متعددة (الكشف، والتقسيم، والوضعية، و OBB، والتصنيف) داخل مستودع واحد.
- كفاءة التدريب: من خلال الاستفادة من تقنيات مثل زيادة بيانات Mosaic، تتقارب نماذج YOLOv8 بشكل أسرع وغالبًا ما تتطلب بيانات تدريب أقل للوصول إلى دقة عالية.
نظرة عامة على Google EfficientDet
EfficientDet، الذي طوره فريق Google Brain، عبارة عن مجموعة من نماذج الكشف عن الأجسام التي قدمت مفهوم التحجيم المركب للكشف عن الأجسام. يقوم بتوسيع الدقة والعمق والعرض للشبكة في وقت واحد لتحقيق الأداء الأمثل.
- المؤلفون: مينغشينغ تان، رومينغ بانغ، وكوك ف. لي
- المؤسسة:Google Research
- التاريخ: 20 نوفمبر 2019
- ArXiv:EfficientDet: كشف الأجسام القابل للتطوير والفعال
تم تصميم EfficientDet على EfficientNet backbone ويقدم BiFPN (شبكة Bi-directional Feature Pyramid Network)، والتي تتيح دمج الميزات متعددة المقاييس بسهولة وسرعة.
تعرف على المزيد حول EfficientDet
نقاط القوة في EfficientDet
- كفاءة المعلمات: تحقق دقة عالية مع عدد قليل نسبيًا من المعلمات وعمليات الفاصلة العائمة في الثانية (FLOPs).
- قابلية التوسع: في
d0إلىd7توفر طريقة القياس طريقة منهجية للموازنة بين الموارد والدقة. - BiFPN: تعمل شبكة الهرم المميز المبتكرة على دمج الميزات بكفاءة بدقة مختلفة.
مقارنة معمارية
تحدد الاختلافات المعمارية بين YOLOv8 و EfficientDet خصائص الأداء الخاصة بهما ومدى ملاءمتهما للمهام المختلفة.
العمود الفقري ودمج الميزات
- YOLOv8 يستخدم هيكلًا أساسيًا مُعدَّلًا من CSPDarknet مع وحدة C2f، والتي تحل محل وحدة C3 من YOLOv5. يحسن هذا التصميم تدفق التدرج وهو مُحسَّن للغاية للتوازي في وحدة معالجة الرسوميات (GPU).
- EfficientDet تستخدم العمود الفقري EfficientNet جنبًا إلى جنب مع BiFPN. تستخدم BiFPN أوزانًا قابلة للتعلم لدمج الميزات من مستويات مختلفة، وهو أمر فعال من الناحية النظرية ولكنه يتضمن أنماط وصول معقدة وغير منتظمة للذاكرة يمكن أن تبطئ الاستدلال على وحدات معالجة الرسومات GPUs.
رأس الكشف
- YOLOv8 يستخدم بنية رأس منفصل، يفصل بين مهام الموضوعية والتصنيف والانحدار. والأهم من ذلك، أنه خالٍ من المرساة، ويتوقع مراكز الكائنات مباشرةً. هذا يلغي الحاجة إلى الضبط اليدوي لمربع المرساة ويقلل من عدد المعلمات الفائقة.
- EfficientDet تستخدم نهجًا قائمًا على المرساة. في حين أن الطرق القائمة على المرساة فعالة، إلا أنها تتطلب غالبًا معايرة دقيقة لأحجام المرساة ونسب العرض إلى الارتفاع لمجموعات البيانات المحددة، مما يزيد من التعقيد في خط أنابيب التدريب.
سهولة الاستخدام والنظام البيئي
أحد أهم العوامل المميزة هو النظام البيئي المحيط بالنماذج. ركزت Ultralytics بشكل كبير على إضفاء الطابع الديمقراطي على الذكاء الاصطناعي، مما يضمن إمكانية الوصول إلى YOLOv8 للمبتدئين والخبراء على حد سواء.
تجربة Ultralytics
تسمح واجهة برمجة تطبيقاتUltralytics Python للمستخدمين بتحميل النماذج وتدريبها ونشرها ببضعة أسطر من التعليمات البرمجية. يتضمن النظام البيئي تكاملًا سلسًا مع أدوات مثل Weights & Biases لتتبع التجارب و Roboflow لإدارة مجموعة البيانات.
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
في المقابل، يوجد EfficientDet عادةً في المستودعات الموجهة نحو البحث (مثل تطبيق TensorFlow الأصلي). على الرغم من قوتها، غالبًا ما تتطلب هذه التطبيقات مزيدًا من التعليمات البرمجية القياسية وملفات التكوين المعقدة ومعرفة أعمق بالإطار الأساسي (TensorFlow/Keras) للتدريب على مجموعات البيانات المخصصة.
إمكانيات التصدير
تدعم نماذج Ultralytics التصدير بنقرة واحدة إلى العديد من التنسيقات بما في ذلك ONNX و TensorRT و CoreML و TFLite. هذه المرونة ضرورية لنشر النماذج في بيئات متنوعة، من الخوادم السحابية إلى أجهزة Raspberry Pi الطرفية.
حالات الاستخدام المثالية
متى تختار YOLOv8
YOLOv8 هو الخيار الموصى به للغالبية العظمى من تطبيقات رؤية الكمبيوتر اليوم نظرًا لتوازنه بين السرعة والدقة.
- تطبيقات في الوقت الفعلي: القيادة الذاتية، والمراقبة بالفيديو، والروبوتات حيث يكون زمن الوصول المنخفض أمرًا بالغ الأهمية.
- النشر على الحافة: التشغيل على NVIDIA Jetson أو الأجهزة المحمولة أو وحدات الحوسبة الطرفية حيث الكفاءة والسرعة لهما أهمية قصوى.
- النماذج الأولية السريعة: عندما تحتاج إلى الانتقال من مجموعة البيانات إلى النموذج المنشور بسرعة باستخدام إطار عمل موثوق به وموثق جيدًا.
- متطلبات المهام المتعددة: إذا كان مشروعك يتضمن segmentation أو تقدير الوضع، فإن YOLOv8 يتعامل مع هذه الأمور بشكل أصلي.
متى تختار EfficientDet
تظل EfficientDet ذات صلة في السيناريوهات المتخصصة، لا سيما في البحث الأكاديمي أو بيئات CPU المقيدة للغاية.
- بحث نظري: دراسة بنى الشبكات الفعالة وقوانين القياس.
- وحدات معالجة مركزية منخفضة الطاقة محددة: في بعض الحالات، قد يترجم العدد المنخفض من FLOP إلى عمر بطارية أفضل على وحدات المعالجة المركزية المقيدة بالموارد للغاية، على الرغم من أنه يُنصح بإجراء اختبارات معيارية.
الخلاصة
بينما كان EfficientDet إنجازًا بارزًا في تصميم الشبكات العصبية الفعالة، فإن YOLOv8 و YOLO11 الأحدث يقدمان حزمة فائقة لتطوير الذكاء الاصطناعي الحديث. توفر بنية YOLOv8 الخالية من المرساة والتصميم المحسن لوحدة معالجة الرسوميات GPU و نظام Ultralytics البيئي القوي ميزة كبيرة من حيث سرعة التطوير وزمن انتقال الاستدلال ومرونة النشر.
بالنسبة للمطورين الذين يتطلعون إلى بناء حلول رؤية حاسوبية متطورة سريعة ودقيقة، فإن نماذج Ultralytics YOLO هي الخيار الأمثل.
استكشف نماذج أخرى
إذا كنت مهتمًا بمقارنة هذه الهياكل مع نماذج أخرى، فراجع هذه الصفحات:
- YOLOv8 مقابل YOLOv7
- EfficientDet مقابل YOLOv7
- YOLOv8 ضد YOLOv5
- RT-DETR مقابل YOLOv8
- YOLO11 ضد EfficientDet