YOLOv5 ضد YOLOv9: مقارنة فنية شاملة
لقد تميز تطور الكشف عن الكائنات في الوقت الفعلي بتقدم سريع في الدقة والكفاءة. من المعالم الهامة في هذه الرحلة Ultralytics YOLOv5، وهو نموذج وضع معيار الصناعة لسهولة الاستخدام والنشر، و YOLOv9، وهي بنية تركز على البحث وتدفع حدود نظرية التعلم العميق.
يقوم هذا التحليل الفني بمقارنة architectures ومقاييس الأداء وحالات الاستخدام المثالية لمساعدة المطورين والباحثين على اختيار الأداة المناسبة لمشاريع computer vision الخاصة بهم.
Ultralytics YOLOv5: معيار الصناعة للتنوع
منذ إصداره، أصبح YOLOv5 أحد نماذج الذكاء الاصطناعي البصري الأكثر شيوعًا على مستوى العالم. تم تطويره بواسطة Ultralytics، وهو يعطي الأولوية للتميز الهندسي وسهولة الاستخدام والأداء في العالم الحقيقي. إنه يوازن بين السرعة والدقة مع توفير تجربة مستخدم سلسة من خلال نظام بيئي قوي.
تفاصيل فنية:
- المؤلفون: Glenn Jocher
- المؤسسة:Ultralytics
- التاريخ: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- الوثائق:https://docs.ultralytics.com/models/yolov5/
الهندسة المعمارية والتصميم
يستخدم YOLOv5 عمودًا فقريًا CSPDarknet جنبًا إلى جنب مع عنق PANet لاستخراج الميزات وتجميعها بكفاءة. تم تحسين رأس الكشف المستند إلى المرساة الخاص به بدرجة كبيرة للسرعة، مما يجعله مناسبًا لمجموعة واسعة من الأجهزة. على عكس النماذج الأكاديمية البحتة، تم تصميم YOLOv5 مع وضع النشر في الاعتبار، حيث يقدم دعمًا أصليًا لأجهزة iOS و Android والأجهزة الطرفية.
نقاط القوة الرئيسية
- نظام بيئي مُدار بشكل جيد: يستفيد YOLOv5 من سنوات من التطوير النشط، مما يؤدي إلى وثائق شاملة ودعم المجتمع وعمليات تكامل مع أدوات مثل Ultralytics HUB.
- كفاءة التدريب: تشتهر بأوقات التدريب السريعة ومتطلبات الذاكرة المنخفضة مقارنة بالبنى القائمة على المحولات، مما يجعلها في متناول الجميع على وحدات معالجة الرسوميات (GPUs) الاستهلاكية القياسية.
- Versatility: بالإضافة إلى الـ detect، يدعم YOLOv5 أصلاً كلاً من instance segmentation و image classification، مما يسمح للمطورين بمعالجة مهام رؤية متعددة باستخدام إطار عمل واحد.
- جاهز للنشر: مع إمكانات التصدير المضمنة إلى ONNX و TensorRT و CoreML و TFLite، يتم تبسيط الانتقال من البحث إلى الإنتاج.
YOLOv9: ابتكار معماري لتحقيق أقصى قدر من الدقة
يركز YOLOv9، الذي تم إصداره في عام 2024، على حل مشكلات فقدان المعلومات في الشبكات العميقة. يقدم مفاهيم جديدة لتحسين كيفية انتشار البيانات عبر النموذج، وتحقيق أحدث النتائج على المعايير مثل COCO.
تفاصيل فنية:
- المؤلفون: Chien-Yao Wang و Hong-Yuan Mark Liao
- المؤسسة:معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- التاريخ: 2024-02-21
- Arxiv:https://arxiv.org/abs/2402.13616
- GitHub:https://github.com/WongKinYiu/yolov9
- الوثائق:https://docs.ultralytics.com/models/yolov9/
الهندسة المعمارية والابتكارات
يقدم YOLOv9 تطورين معماريين أساسيين:
- معلومات التدرج القابلة للبرمجة (PGI): تقنية مصممة للتخفيف من مشكلة عنق الزجاجة المعلوماتي، وضمان توفر معلومات الإدخال الكاملة لحساب دالة الخسارة.
- شبكة تجميع الطبقات الفعالة المعممة (GELAN): بنية شبكة خفيفة الوزن تعمل على تحسين كفاءة المعلمات، مما يسمح للنموذج بتحقيق دقة أعلى مع عدد أقل من المعلمات مقارنة ببعض سابقاتها.
نقاط القوة الرئيسية
- دقة عالية: يضع YOLOv9 معايير رائعة لدقة الكشف عن الكائنات، خاصة في تكويناته الأكبر (YOLOv9-E).
- كفاءة المعلمات: تضمن بنية GELAN استخدام النموذج للمعلمات بشكل فعال، مما يوفر نسبة قوية بين الدقة والوزن.
- تطور نظري: يعالج المشكلات الأساسية في التعلم العميق فيما يتعلق بالحفاظ على المعلومات في الطبقات العميقة.
مقارنة الأداء
عند مقارنة هذين النموذجين، تكمن المفاضلة عادةً بين السرعة و الدقة المطلقة. يحقق YOLOv9 درجات mAPval أعلى على مجموعة بيانات COCO، مما يدل على فعالية PGI و GELAN. ومع ذلك، تظل Ultralytics YOLOv5 منافسًا قويًا في سرعة الاستدلال، خاصةً على وحدات المعالجة المركزية CPUs والأجهزة الطرفية، حيث تتألق بنيتها المحسّنة.
موازنة الأداء
بينما يتصدر YOLOv9 مخططات الدقة، غالبًا ما يوفر YOLOv5 توازنًا عمليًا أكثر للتطبيقات في الوقت الفعلي، حيث يوفر سرعات استدلال أسرع بشكل ملحوظ (بالمللي ثانية) على الأجهزة القياسية مع الحفاظ على قدرات detect قوية.
| النموذج | الحجم (بالبكسل) | 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
التدريب والموارد
بالنسبة للمطورين، غالبًا ما تكون كفاءة التدريب بنفس أهمية سرعة الاستدلال. تشتهر Ultralytics YOLOv5 ببساطتها في "التدريب والانطلاق". وعادةً ما تتطلب ذاكرة أقل أثناء التدريب مقارنةً بالبنى الأحدث والأكثر تعقيدًا، وخاصةً النماذج القائمة على المحولات (مثل RT-DETR). يسمح هذا الحاجز الأقل للدخول للمستخدمين بتدريب نماذج مخصصة على إعدادات أجهزة متواضعة.
يمكن أن يكون YOLOv9، على الرغم من كفاءته في المعلمات، أكثر كثافة في استخدام الموارد للتدريب نظرًا لتعقيد الفروع المساعدة المستخدمة لـ PGI، والتي تتم إزالتها أثناء الاستدلال ولكنها تضيف overhead أثناء التدريب.
مثال على التعليمات البرمجية: واجهة موحدة
تتمثل إحدى المزايا الرئيسية لنظام Ultralytics البيئي في Python API الموحد. يمكنك التبديل بين YOLOv5 و YOLOv9 بسطر واحد من التعليمات البرمجية، مما يجعل من السهل للغاية قياس أداء كليهما على مجموعة البيانات المحددة الخاصة بك.
from ultralytics import YOLO
# Load an Ultralytics YOLOv5 model (pre-trained on COCO)
model_v5 = YOLO("yolov5su.pt")
# Train the model on your custom data
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a YOLOv9 model for comparison
model_v9 = YOLO("yolov9c.pt")
# Train YOLOv9 using the exact same API
results_v9 = model_v9.train(data="coco8.yaml", epochs=100, imgsz=640)
حالات الاستخدام المثالية
يعتمد الاختيار بين هذه النماذج على أولويات مشروعك:
متى تختار Ultralytics YOLOv5
- النشر الطرفي: مناسب تمامًا لـ Raspberry Pi وتطبيقات الأجهزة المحمولة والأنظمة المدمجة حيث يكون لكل مللي ثانية من الكمون أهمية.
- النماذج الأولية السريعة: تتيح سهولة الاستخدام والبرامج التعليمية الشاملة و دعم المجتمع دورات تطوير سريعة بشكل لا يصدق.
- متطلبات المهام المتعددة: إذا كان مشروعك يتطلب segmentation أو classify جنبًا إلى جنب مع الـ detection، فإن YOLOv5 يوفر حلاً موحدًا.
- قيود الموارد: ستستفيد المشاريع ذات ذاكرة GPU المحدودة للتدريب من كفاءة YOLOv5.
متى تختار YOLOv9
- أقصى دقة: أمر بالغ الأهمية لتطبيقات مثل التصوير الطبي أو الفحص الصناعي عالي الدقة حيث يكون فقدان الاكتشاف مكلفًا.
- البحث الأكاديمي: ممتاز للباحثين الذين يستكشفون أحدث التقنيات في تدفق معلومات التدرج وتصميم بنية الشبكة.
- أجهزة قوية: يُفضل استخدامها عندما تتوفر موارد حسابية وافرة للتدريب والاستدلال للاستفادة من إمكاناتها الكاملة.
الخلاصة
يمثل كلا النموذجين التميز في مجال رؤية الحاسوب. يظل Ultralytics YOLOv5 الخيار العملي لمعظم المطورين، حيث يقدم مزيجًا لا يضاهى من السرعة والموثوقية ودعم النظام البيئي. إنه حصان عمل مجرب ومختبر للنشر في العالم الحقيقي. من ناحية أخرى، يقدم YOLOv9 لمحة عن مستقبل الكفاءة المعمارية، مما يوفر دقة عالية المستوى لأولئك الذين يحتاجون إليها.
بالنسبة لأولئك الذين يبحثون عن أحدث ما توصلت إليه الأداء وتعدد الاستخدامات، نوصي أيضًا باستكشاف YOLO11، الذي يعتمد على نقاط قوة YOLOv5 و YOLOv8 لتقديم أحدث النتائج عبر جميع المقاييس.
استكشف نماذج أخرى
إذا كنت مهتمًا باستكشاف المزيد، فراجع هذه النماذج ذات الصلة في نظام Ultralytics:
- YOLO11: أحدث نموذج SOTA يقدم أداءً وتنوعًا فائقين.
- YOLOv8: نموذج قوي بدون نقاط ارتكاز يدعم الـ detection والـ segmentation والوضعية والـ OBB.
- RT-DETR: كاشف قائم على المحولات في الوقت الفعلي لتطبيقات عالية الدقة.