YOLOv7 ضد EfficientDet: مقارنة فنية لبنى كشف الأجسام في الوقت الفعلي
لا يزال الكشف عن الكائنات حجر الزاوية في رؤية الكمبيوتر، مما يدفع الابتكارات في مجالات تتراوح من القيادة الذاتية إلى التصوير الطبي. يعد اختيار البنية المناسبة أمرًا بالغ الأهمية لتحقيق التوازن بين الدقة والسرعة والموارد الحسابية. يقدم هذا التحليل نظرة متعمقة على YOLOv7 و EfficientDet، وهما نموذجان مؤثران شكلا مشهد الكشف في الوقت الفعلي.
التصميم المعماري والفلسفة
يكمن الاختلاف الأساسي بين هذين الهيكلين في أهداف التحسين الخاصة بهما. يعطي EfficientDet، الذي تم تطويره بواسطة فريق Google Brain، الأولوية لكفاءة المعلمات وعمليات الفاصلة العائمة (FLOPs). إنه يستفيد من بنية قابلة للتطوير تسمح للمستخدمين بتبادل الموارد مقابل الدقة خطيًا. في المقابل، يركز YOLOv7، الذي تم إنشاؤه بواسطة مؤلفي YOLOv4 (Chien-Yao Wang et al.)، على زيادة سرعة الاستدلال على أجهزة GPU مع الحفاظ على أحدث دقة.
EfficientDet: التحجيم المركب و BiFPN
تم تصميم EfficientDet على EfficientNet backbone، والذي يستخدم طريقة توسيع مركبة لتوسيع دقة الشبكة وعمقها وعرضها بشكل موحد. الابتكار الرئيسي في EfficientDet هو شبكة Bi-directional Feature Pyramid Network (BiFPN). على عكس FPNs التقليدية، يسمح BiFPN بدمج الميزات متعددة المقاييس بسهولة وسرعة من خلال تقديم أوزان قابلة للتعلم لتعلم أهمية ميزات الإدخال المختلفة. هذا التصميم يجعل EfficientDet فعالاً للغاية لتطبيقات الحوسبة المتطورة حيث تكون الذاكرة و FLOPs محدودة للغاية.
تعرف على المزيد حول EfficientDet
YOLOv7: E-ELAN وإعادة تحديد معلمات النموذج
يقدم YOLOv7 شبكة تجميع الطبقات الفعالة الممتدة (E-ELAN). تتحكم هذه البنية في أقصر وأطول مسارات التدرج لتحسين قدرة الشبكة على التعلم دون تدمير مسار التدرج الأصلي. بالإضافة إلى ذلك، يستخدم YOLOv7 إعادة تحديد معلمات النموذج، وهي تقنية يتم فيها تبسيط هيكل التدريب المعقد إلى هيكل استدلال مبسط. ينتج عن هذا نموذج قوي أثناء التدريب ولكنه سريع للغاية أثناء النشر على وحدات معالجة الرسوميات.
تحليل الأداء: المقاييس والمعايير
عند مقارنة الأداء، غالبًا ما يعتمد الاختيار على أجهزة النشر. يتألق EfficientDet في البيئات منخفضة الطاقة (وحدات المعالجة المركزية CPUs)، في حين أن YOLOv7 مصمم للاستدلال عالي الإنتاجية لوحدة معالجة الرسومات GPU.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
النقاط الرئيسية
- الكمون مقابل الكفاءة: في حين أن EfficientDet-d0 يستخدم عددًا أقل بكثير من المعلمات (3.9 مليون)، فإن YOLOv7l يوفر mAP أعلى بكثير (51.4٪) مع كمون منخفض للغاية على وحدات معالجة الرسومات (6.84 مللي ثانية). وهذا يدل على الاستخدام الفائق لقوة المعالجة المتوازية في YOLOv7.
- قابلية التوسع: يوفر EfficientDet مسار تحجيم دقيق من d0 إلى d7، مما يسمح للمطورين بضبط حجم النموذج بدقة لتلبية قيود محددة CPU .
- دقة متطورة: في الطرف العلوي، يحقق EfficientDet-d7 دقة ممتازة (53.7% mAP)، ولكن على حساب زمن انتقال عالٍ (~128 مللي ثانية). يحقق YOLOv7x دقة مماثلة (53.1% mAP) في أقل من عُشر وقت الاستدلال (11.57 مللي ثانية) على وحدة معالجة الرسومات T4.
اعتبارات متعلقة بالأجهزة
إذا كان هدف النشر الخاص بك هو وحدة معالجة مركزية عامة أو معالج محمول، فإن FLOPs الأقل لنماذج EfficientDet (خاصةً d0-d2) غالبًا ما يؤدي إلى تحسين عمر البطارية وإدارة الحرارة. بالنسبة لوحدات معالجة الرسومات الطرفية (مثل NVIDIA Jetson) أو خوادم الاستدلال السحابية، توفر YOLOv7 معدلات إطارات أعلى بشكل ملحوظ لتحليلات الفيديو في الوقت الفعلي.
منهجيات التدريب والتحسين
تعكس استراتيجيات التدريب لهذه النماذج أهدافها المعمارية.
YOLOv7 يستخدم نهج "حقيبة المكافآت المجانية"، ويتضمن طرقًا تزيد من تكلفة التدريب ولكنها تحسن الدقة دون التأثير على سرعة الاستدلال. تشمل التقنيات الرئيسية ما يلي:
- الإشراف العميق من الخشن إلى الدقيق: يتم استخدام رأس إضافي للإشراف على الطبقات الوسطى من الشبكة، مع استراتيجيات تعيين التسميات التي توجه الرأس الإضافي بشكل مختلف عن الرأس الرئيسي.
- تعيين تسمية ديناميكية: يقوم النموذج بتكييف تعيين كائنات ground truth للمرتكزات أثناء التدريب، مما يحسن التقارب.
EfficientDet تعتمد بشكل كبير على AutoML للعثور على العمود الفقري الأمثل وهندسة شبكة الميزات. يتضمن تدريبها عادةً ما يلي:
- العمق العشوائي: إسقاط الطبقات عشوائيًا أثناء التدريب لتحسين التعميم.
- تفعيل Swish: دالة سلسة وغير رتيبة تتفوق باستمرار على ReLU في الشبكات العميقة.
ميزة Ultralytics
في حين أن كلاً من YOLOv7 و EfficientDet قويان، إلا أن مشهد رؤية الكمبيوتر يتطور بسرعة. يقدم نظام Ultralytics البيئي بدائل حديثة مثل YOLO11 التي تجمع أفضل سمات الهياكل السابقة مع تحسين تجربة المطور.
سهولة الاستخدام والنظام البيئي
يتمثل أحد التحديات الرئيسية في المستودعات الموجهة نحو البحث (مثل قاعدة بيانات EfficientDet الأصلية) في تعقيد التكامل. تحل Ultralytics هذه المشكلة من خلال حزمة Python موحدة. يمكن للمطورين تدريب النماذج والتحقق من صحتها ونشرها ببضعة أسطر فقط من التعليمات البرمجية، مدعومة بـ وثائق شاملة ودعم مجتمعي نشط.
تعدد الاستخدامات وتوازن الأداء
لا تقتصر نماذج Ultralytics على المربعات المحيطة. إنها تدعم في الأصل تقسيم المثيل، و تقدير الوضعية، و التصنيف، و detect الكائنات الموجهة (OBB). من حيث الأداء، غالبًا ما تحقق إصدارات YOLO الحديثة (مثل YOLOv8 و YOLO11) دقة أعلى لكل معلمة من EfficientDet واستدلال أسرع من YOLOv7، مما يحقق توازنًا مثاليًا للنشر في العالم الحقيقي.
الذاكرة وكفاءة التدريب
تشتهر نماذج Ultralytics YOLO بكفاءتها في استخدام الذاكرة. تتطلب عادةً ذاكرة CUDA أقل أثناء التدريب مقارنةً بأجهزة الكشف القائمة على المحولات أو البنى القابلة للتطوير الأقدم. يتيح ذلك للباحثين تدريب أحدث النماذج على الأجهزة الاستهلاكية. علاوة على ذلك، يتم تبسيط التعلم بالنقل من خلال الأوزان المدربة مسبقًا عالية الجودة المتاحة للتنزيل الفوري.
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with high speed
predictions = model("https://ultralytics.com/images/bus.jpg")
مواصفات النموذج
YOLOv7
- المؤلفون: Chien-Yao Wang و Alexey Bochkovskiy و Hong-Yuan Mark Liao
- المنظمة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- تاريخ الإصدار: 6 يوليو 2022
- ورقة بحثية:YOLOv7: مجموعة أدوات التدريب المجانية تحدد أحدث التقنيات في مجال كاشفات الكائنات في الوقت الفعلي
- المصدر:مستودع GitHub
EfficientDet
- المؤلفون: مينغشينغ تان، رومينغ بانغ، وكوك ف. لي
- المؤسسة: Google Research, Brain Team
- تاريخ الإصدار: 20 نوفمبر 2019
- ورقة بحثية:EfficientDet: كشف الكائنات القابل للتطوير والفعال
- المصدر:مستودع GitHub
حالات الاستخدام في العالم الحقيقي
متى تختار EfficientDet
تظل EfficientDet مرشحًا قويًا للأنظمة المدمجة حيث يكون تسريع GPU غير متاح.
- تطبيقات الهاتف المحمول: تطبيقات Android/iOS التي تقوم باكتشاف الكائنات على وحدة المعالجة المركزية (CPU).
- مستشعرات إنترنت الأشياء عن بعد: الأجهزة التي تعمل بالبطاريات والتي تراقب التغيرات البيئية حيث يهم كل ملي واط من الحساب.
متى تختار YOLOv7
يتفوق YOLOv7 في الإعدادات الصناعية عالية الأداء.
- القيادة الذاتية: الكشف عن المشاة والمركبات بمعدلات إطارات عالية لضمان السلامة.
- المدن الذكية: تحليل تدفقات الفيديو المتعددة في وقت واحد من أجل إدارة حركة المرور على الخوادم الطرفية.
الخلاصة
يمثل كلا التصميمين المعماريين علامات بارزة في رؤية الحاسوب. أظهر EfficientDet قوة توسيع النطاق المركب لتحقيق كفاءة المعلمات، بينما دفع YOLOv7 حدود الممكن مع تحسين زمن انتقال GPU.
ومع ذلك، بالنسبة للمطورين الذين يبحثون عن الحل الأكثر حداثة وقابلية للصيانة وتعدد الاستخدامات، يوصى باستخدام عائلة نماذج Ultralytics YOLO11. إنه يوفر مقايضات فائقة بين الدقة والسرعة، وسير عمل أبسط، ونظام بيئي قوي يبسط الرحلة من تنظيم مجموعة البيانات إلى deployment.
استكشف نماذج أخرى
إذا كنت مهتمًا بمقارنة هياكل الكشف عن الكائنات الأخرى، ففكر في هذه الموارد:
- YOLOv7 ضد YOLOv8
- EfficientDet ضد YOLOv8
- YOLOv5 ضد YOLOv7
- RT-DETR مقابل EfficientDet
- YOLO11 مقابل YOLOv10