YOLOv5 YOLOv9: تطور الكشف عن الكائنات في الوقت الفعلي
تطورت تقنية الكشف عن الأجسام في الوقت الفعلي بشكل كبير خلال السنوات القليلة الماضية. في حين أن YOLOv5 وضع معيارًا للاستخدام والاعتماد الصناعي في عام 2020، فإن YOLOv9 مفاهيم معمارية جديدة في عام 2024 لتوسيع حدود الدقة والكفاءة. يقدم هذا الدليل مقارنة تقنية مفصلة لمساعدة المطورين على اختيار الأداة المناسبة لمشاريع الرؤية الحاسوبية الخاصة بهم.
أصول النموذج والمواصفات الفنية
فهم مصدر هذه النماذج يساعد في وضع فلسفة تصميمها وحالات الاستخدام المقصودة في سياقها الصحيح.
YOLOv5: المعيار الصناعي
أطلقه في يونيو 2020 كل من جلين جوشر و Ultralytics، YOLOv5 لسهولة الاستخدام وقابلية التصدير والسرعة. وأصبح أول YOLO يتم تنفيذه أصلاً في PyTorch، مما جعله متاحًا لمجتمع ضخم من Python .
- المؤلف: جلين جوتشر
- المؤسسة:Ultralytics
- التاريخ: 2020-06-26
- الاسترداد:GitHub
- التركيز: سهولة الاستخدام، مسارات تصدير قوية (ONNX، CoreML، TFLite)، والتدريب السريع.
YOLOv9: ابتكار معماري
صدر YOLOv9 في فبراير 2024 عن Chien-Yao Wang و Hong-Yuan Mark Liao من Academia Sinica، YOLOv9 على حل مشكلة "اختناق المعلومات" في الشبكات العميقة.
- المؤلفون: Chien-Yao Wang و Hong-Yuan Mark Liao
- المؤسسة: معهد علوم المعلومات، أكاديميا سينيكا
- التاريخ: 2024-02-21
- الاسترداد:GitHub
- الورقة:arXiv:2402.13616
- التركيز: كفاءة المعلمات والإشراف العميق باستخدام معلومات التدرج القابلة للبرمجة (PGI).
الاختلافات المعمارية
يكمن الاختلاف الأساسي في كيفية تعامل هذه النماذج مع استخراج الميزات وتدفق التدرج.
YOLOv5 يستخدم شبكة CSPNet (شبكة جزئية متعددة المراحل) كعمود فقري. يقسم هذا التصميم تدفق التدرج لتقليل الحساب مع الحفاظ على الدقة، وهو ما كان ثوريًا لإنشاء نماذج مدمجة مناسبة للأنظمة المدمجة. تم تحسين رأس الكشف القائم على المرساة بشكل كبير للمهام العامة، مما يوفر توازنًا يظل تنافسيًا للعديد من التطبيقات القديمة.
YOLOv9 يقدم اثنين من الابتكارات الرئيسية: GELAN (شبكة تجميع الطبقات الفعالة المعممة) و PGI (معلومات التدرج القابلة للبرمجة). يعمل GELAN على تحسين استخدام المعلمات، مما يسمح للنموذج بأن يكون أخف وزناً مع تعلم ميزات أكثر تعقيداً. يعالج PGI فقدان المعلومات أثناء انتشار البيانات عبر الطبقات العميقة من خلال توفير فرع إشراف مساعد، مما يضمن توليد تدرج موثوق به حتى في البنى العميقة للغاية.
هل تعلم؟
بينما YOLOv9 ابتكارًا معماريًا، فإن Ultralytics YOLOv5 لا يزال لا مثيل له في مجال النشر. فهو يدعم بشكل أساسي التصدير إلى تنسيقات مثل TensorRT Edge TPU مما يبسط المسار من التدريب إلى الإنتاج.
تحليل الأداء
عند مقارنة المقاييس، يحقق YOLOv9 قيمة mAPval أعلى لعدد معين من المعلمات، لا سيما في المتغيرات الأكبر حجمًا للنموذج. ومع ذلك، YOLOv5 منافسًا قويًا للغاية في سرعة الاستدلال على وحدات المعالجة المركزية والأجهزة القديمة بفضل بنيته الأبسط.
مقاييس الأداء المعيارية
يوضح الجدول أدناه المفاضلات. يحقق YOLOv9c 53.0٪ mAP متجاوزًا YOLOv5x (50.7٪) مع استخدام معلمات أقل بكثير (25.3 مليون مقابل 97.2 مليون). وهذا يوضح كفاءة بنية GELAN. على العكس من ذلك، توفر YOLOv5 الأصغر YOLOv5 (Nano و Small) زمن انتقال منخفض للغاية، مما يجعلها قابلة للتطبيق على الأجهزة ذات الطاقة المنخفضة للغاية.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 86.7 | 205.7 |
| 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 |
ملاحظة: يعكس الجدول مقاييس COCO القياسية. تشير القيم المكتوبة بالخط العريض إلى أفضل أداء في تلك الفئة المحددة.
سهولة الاستخدام والنظام البيئي
وهنا يصبح التمييز أكثر عملية بالنسبة للمطورين.
Ultralytics (YOLOv5)
YOLOv5 تصميم YOLOv5 لتجربة المطورين. يوفر Ultralytics سير عمل سلسًا:
- واجهة برمجة تطبيقات بسيطة: قم بتحميل النماذج وتدريبها باستخدام بضع أسطر من Python.
- أدوات متكاملة: التكامل التلقائي مع أدوات تتبع التجارب مثل Comet ClearML.
- النشر: تصدير بنقرة واحدة إلى ONNXو CoreML و TFLite و OpenVINO.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model
model = YOLO("yolov5su.pt")
# Train on custom data
model.train(data="coco8.yaml", epochs=100)
# Export to ONNX for deployment
model.export(format="onnx")
YOLOv9
على الرغم من دقته العالية، إلا أن YOLOv9 الأصلي يركز على الأبحاث. ومع ذلك، YOLOv9 الآن مدعومًا بالكامل ضمن Ultralytics مما يوفر نفس سهولة الاستخدام لهذه البنية الأحدث. وهذا يعني أنك لست مضطرًا للتضحية بسهولة الاستخدام للوصول إلى أحدث التحسينات المعمارية؛ يمكنك ببساطة تبديل سلسلة اسم النموذج.
كفاءة التدريب والذاكرة
تتمثل إحدى المزايا الهامة Ultralytics ، بما في ذلك YOLOv5 YOLOv9 المدمج، في كفاءة الذاكرة.
- GPU : تم تحسين حلقات Ultralytics لتقليل استخدام CUDA إلى الحد الأدنى. وهذا يتيح للمستخدمين تدريب أحجام دفعات أكبر على أجهزة من فئة المستهلكين (مثل NVIDIA 3060/4090) مقارنة بالنماذج القائمة على المحولات التي غالبًا ما تستهلك الكثير من الذاكرة.
- التقارب: YOLOv5 بقدرته على "التدريب الفوري"، حيث يتطلب الحد الأدنى من ضبط المعلمات الفائقة. كما يُظهر YOLOv9 بفضل فرعه الإضافي PGI، تقاربًا مستقرًا، على الرغم من أن بنيته أكثر تعقيدًا.
تطبيقات عملية في أرض الواقع
يعتمد اختيار النموذج المناسب على قيود النشر الخاصة بك.
حالات الاستخدام المثالية لـ YOLOv5
- Edge AI على الأجهزة القديمة: إذا كنت تقوم بالنشر على طرازات Raspberry Pi القديمة أو الأجهزة المحمولة حيث كل مللي ثانية من زمن استنتاج الاستدلال مهمة، فإن YOLOv5n (Nano) لا يهزم.
- النماذج الأولية السريعة: بالنسبة للمسابقات البرمجية أو الشركات الناشئة التي تحتاج إلى إثبات صحة المفهوم (PoC) في غضون ساعات، YOLOv5 الوثائق الشاملة والبرامج التعليمية المجتمعية الخاصة بـ YOLOv5 عملية التطوير.
- تطبيقات الهاتف المحمول: دعمها الأصلي لـ iOS CoreML و Android TFLite أداة أساسية لمطوري الأجهزة المحمولة.
حالات الاستخدام المثالية لـ YOLOv9
- الفحص عالي الدقة: في مراقبة جودة التصنيع حيث يعد اكتشاف العيوب الدقيقة أمرًا بالغ الأهمية، فإن ميزة استخراج الميزات الفائقة لـ GELAN تجعل YOLOv9 أفضل.
- التصوير الطبي: بالنسبة لمهام مثل الكشف عن الأورام، حيث الدقة أهم من السرعة الخام، يوفر YOLOv9e mAP اللازم mAP .
- المشاهد المعقدة: تستفيد البيئات ذات الانسداد العالي أو الفوضى من التدرجات القابلة للبرمجة التي تساعد النموذج على الاحتفاظ بالمعلومات الهامة من خلال الطبقات العميقة.
المستقبل: لقاء YOLO26
في حين أن YOLOv5 أداة موثوقة وفعالة، YOLOv9 دقة عالية، إلا أن هذا المجال قد تطور مرة أخرى. بالنسبة للمشاريع الجديدة التي ستبدأ في عام 2026، يمثل Ultralytics قمة الأداء والكفاءة.
لماذا الترقية إلى YOLO26؟
- نهاية إلى نهاية أصلاً: على عكس YOLOv5 v9 اللذين يتطلبان NMS فإن YOLO26 NMS يحتاج NMS، مما يبسط عمليات النشر.
- MuSGD Optimizer: مستوحى من تدريب LLM، يضمن هذا المحسن تدريبًا أسرع وأكثر استقرارًا.
- تعدد الاستخدامات: يدعم الكشف والتجزئة والوضع و OBB والتصنيف بشكل فوري.
بالنسبة للمستخدمين الذين يستخدمون YOLOv5 حاليًا، يوفر الترحيل إلى YOLO26 زيادة كبيرة في السرعة ( CPU أسرع بنسبة تصل إلى 43٪ CPU ) وتحسينًا في اكتشاف الأجسام الصغيرة عبر ProgLoss + STAL، مما يجعله المسار الموصى به للمضي قدمًا في عمليات النشر على الحافة والسحابة.
الخلاصة
كلتا البنيتين لها مكانها. YOLOv5 لا تزال ملكة البساطة والتوافق الواسع مع الأجهزة، وهي مثالية للمطورين الذين يحتاجون إلى حل "يعمل ببساطة". YOLOv9 لمحة عن مستقبل التعلم العميق الفعال بفضل تدرجاته القابلة للبرمجة، مما يوفر دقة متطورة.
ومع ذلك، فإن استخدام Ultralytics يضمن عدم تقييدك. يمكنك تدريب YOLOv5 و YOLOv9 و YOLO26 المتطور باستخدام نفس واجهة برمجة التطبيقات (API) بالضبط، مما يتيح لك قياس أدائها على بياناتك الخاصة واختيار الأفضل لتطبيقك المحدد.
ملخص المقارنة
| ميزة | YOLOv5 | YOLOv9 |
|---|---|---|
| التركيز الأساسي | السرعة وسهولة الاستخدام والنشر | الدقة وكفاءة المعلمات |
| البنية | الشبكة الأساسية CSPNet، القائمة على المراسي | GELAN Backbone، PGI، Anchor-Based |
| النظام البيئي | Ultralytics الأصلي | مدمج في Ultralytics |
| الأفضل لـ | الهواتف المحمولة، الحافة، الأنظمة القديمة | أبحاث عالية الدقة، مشاهد معقدة |
| الاستدلال | سريع للغاية (GPU) | دقة عالية / أبطأ |
استكشف النماذج الأخرى في Ultralytics :
- YOLO11 - السلف القوي لـ YOLO26.
- YOLOv8 - إطار عمل موحد للكشف والتجزئة والوضع.
- RT-DETR - الكشف في الوقت الحقيقي باستخدام محول.