YOLOv9 ضد YOLOX: مقارنة فنية شاملة
يعد اختيار بنية الكشف عن الكائنات الصحيحة قرارًا حاسمًا يؤثر على كفاءة ودقة وقابلية تطوير تطبيقات الرؤية الحاسوبية. يقدم هذا الدليل مقارنة فنية مفصلة بين YOLOv9، وهو نموذج حديث تم تقديمه في عام 2024، و YOLOX، وهو كاشف عالي الأداء وخالي من المرساة تم إصداره في عام 2021.
YOLOv9: التغلب على فقدان المعلومات في الشبكات العميقة
يمثل YOLOv9 قفزة كبيرة إلى الأمام في الكشف عن الأجسام في الوقت الفعلي، وهو مصمم لمعالجة التحدي الأساسي المتمثل في فقدان المعلومات أثناء مرور البيانات عبر الشبكات العصبية العميقة.
المؤلفون: تشين-ياو وانغ، هونغ-يوان مارك لياو
المنظمة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
التاريخ: 2024-02-21
Arxiv:arXiv:2402.13616
GitHub:WongKinYiu/yolov9
المستندات:docs.ultralytics.com/models/yolov9/
الهيكلة والابتكار
يكمن الابتكار الأساسي في YOLOv9 في عنصرين أساسيين: معلومات التدرج القابلة للبرمجة (PGI) و شبكة تجميع الطبقات الفعالة المعممة (GELAN).
- معلومات التدرج القابلة للبرمجة (PGI): في الشبكات العميقة، غالبًا ما تضيع بيانات الإدخال الحاسمة أثناء عملية استخلاص الميزات، وهي ظاهرة تعرف باسم عنق الزجاجة المعلوماتي. يوفر PGI إشارة إشراف مساعدة تضمن توليد تدرج موثوق، مما يسمح للنموذج بتعلم ميزات أكثر فعالية دون زيادة تكلفة الاستدلال.
- GELAN: يعمل هذا التصميم المعماري على تحسين استخدام المعلمات والكفاءة الحسابية. من خلال تعميم مفهوم شبكات تجميع الطبقات الفعالة (ELAN)، تسمح GELAN بالتجميع المرن للكتل الحسابية، مما يؤدي إلى نموذج خفيف الوزن وسريع.
تُمكِّن هذه الابتكارات YOLOv9 من تحقيق أداء من الدرجة الأولى على مجموعة بياناتCOCO متجاوزًا التكرارات السابقة من حيث الدقة وكفاءة المعلمات.
YOLOX: المعيار الخالي من الـ Anchor
تم تقديم YOLOX لسد الفجوة بين البحث الأكاديمي والتطبيق الصناعي، مما أدى إلى تعميم النهج الخالي من المرساة في سلسلة YOLO.
المؤلفون: تشنغ قه، سونغ تاو ليو، فنغ وانغ، تسه مينغ لي، و جيان صن
المنظمة: Megvii
التاريخ: 2021-07-18
Arxiv:arXiv:2107.08430
GitHub:Megvii-BaseDetection/YOLOX
المستندات:yolox.readthedocs.io
الميزات المعمارية الرئيسية
ينحرف YOLOX عن إصدارات YOLO السابقة عن طريق إزالة مربعات الارتكاز وتوظيف هيكل رأس مفصول.
- تصميم خالٍ من المرتكزات (Anchor-Free Design): تعتمد الكاشفات التقليدية على مربعات ارتكاز محددة مسبقًا، والتي تتطلب ضبطًا وتجميعًا تجريبيًا. يعامل YOLOX الكشف عن الكائنات كمشكلة تنبؤ نقطي، مما يبسط التصميم ويحسن التعميم عبر أشكال الكائنات المتنوعة.
- رأس غير مقترن: تتم معالجة مهام التصنيف والانحدار في فروع (رؤوس) منفصلة. يتيح هذا الفصل للنموذج التحسين لكل مهمة بشكل مستقل، مما يؤدي إلى تقارب أسرع ودقة أفضل.
- SimOTA: استراتيجية متقدمة لتعيين التسميات تقوم بتعيين عينات إيجابية ديناميكيًا لكائنات الحقيقة الأرضية، مما يعزز الأداء بشكل أكبر.
تحليل الأداء: المقاييس والمعايير
عند تحليل الأداء، يُظهر YOLOv9 ميزة واضحة تتفق مع كونه بنية أحدث. من خلال الاستفادة من PGI و GELAN، يحقق YOLOv9 دقة متوسطة أعلى (mAP) مع الحفاظ على الحمل الحسابي (FLOPs) أو تقليله مقارنةً بـ YOLOX.
يسلط الجدول أدناه الضوء على اختلافات الأداء. والجدير بالذكر أن YOLOv9-C يحقق معدل mAP أعلى بكثير (53.0٪) من YOLOX-L (49.7٪) مع أقل من نصف عدد المعلمات (25.3 مليون مقابل 54.2 مليون). هذه الكفاءة تجعل YOLOv9 خيارًا ممتازًا للتطبيقات المقيدة بموارد الأجهزة ولكنها تتطلب دقة عالية.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
السرعة والكفاءة
في حين أن YOLOX قدمت سرعات رائعة في عام 2021، إلا أن YOLOv9 تدفع المغلف إلى أبعد من ذلك. يقدم نموذج YOLOv9-T (Tiny) توازنًا استثنائيًا، حيث يقدم 38.3% mAP مع 2.0 مليون معلمة فقط، مما يجعله مناسبًا جدًا لتطبيقات الأجهزة المحمولة والمدمجة. في المقابل، يعتبر YOLOX-Nano أصغر حجمًا ولكنه يضحي بدقة كبيرة (25.8% mAP).
كفاءة التدريب
يستفيد YOLOv9 من وصفات التدريب الحديثة ومدرب Ultralytics المحسن، مما يؤدي غالبًا إلى تقارب أسرع واستخدام أقل للذاكرة أثناء التدريب مقارنة بالبنى القديمة.
حالات الاستخدام المثالية
يعتمد الاختيار بين هذه النماذج على متطلبات مشروعك المحددة.
متى تختار YOLOv9
يعتبر YOLOv9 الخيار الأمثل لمعظم تطبيقات رؤية الكمبيوتر الحديثة نظرًا لتفوقه في نسبة الدقة إلى الكفاءة.
- الذكاء الاصطناعي المتطور في الوقت الفعلي: النشر على أجهزة مثل NVIDIA Jetson حيث تهم FLOPs. تعمل بنية YOLOv9 خفيفة الوزن على زيادة الإنتاجية.
- فحص عالي الدقة: مراقبة الجودة الصناعية حيث يكون الكشف عن العيوب الصغيرة أمرًا بالغ الأهمية. يضمن mAP العالي لـ YOLOv9-E التقاط التفاصيل الدقيقة.
- الأنظمة الذاتية: تتطلب الروبوتات والطائرات بدون طيار زمن وصول منخفض. يضمن هيكل الرسم البياني المحسن لـ YOLOv9 استدلالًا سريعًا دون المساس بقدرات detect.
متى تفكر في YOLOX
تظل YOLOX منافسًا قويًا لسير العمل القديم المحدد أو المقارنات البحثية.
- البحث الأكاديمي: تصميمه المفصول والخالي من المرساة يجعله خط أساس كلاسيكي لدراسة أساسيات الكشف عن الكائنات.
- عمليات النشر القديمة: إذا كانت البنية التحتية الحالية مُحسَّنة بشكل كبير لهندسة YOLOX المحددة (على سبيل المثال، مكونات TensorRT الإضافية المخصصة المصممة خصيصًا لرؤوس YOLOX)، فقد يكون الحفاظ على النموذج القديم فعالاً من حيث التكلفة على المدى القصير.
ميزة Ultralytics
يوفر اعتماد YOLOv9 من خلال نظام Ultralytics البيئي مزايا واضحة على عمليات التنفيذ المستقلة. تم تصميم إطار عمل Ultralytics لتبسيط دورة حياة عمليات تعلم الآلة (MLOps) بأكملها.
- سهولة الاستخدام: يتيح لك Python API الخاص بـ Ultralytics تحميل النماذج وتدريبها ونشرها ببضعة أسطر فقط من التعليمات البرمجية.
- نظام بيئي مُدار بشكل جيد: تضمن التحديثات المنتظمة التوافق مع أحدث إصدارات PyTorch و ONNX و CUDA.
- تعدد الاستخدامات: في حين أن YOLOX هو في الأساس كاشف للأجسام، فإن إطار عمل Ultralytics يدعم مجموعة واسعة من المهام بما في ذلك pose estimation و segmentation و classification، مما يسمح لك بتبديل البنى أو المهام بسهولة داخل نفس قاعدة التعليمات البرمجية.
- كفاءة الذاكرة: تم تحسين نماذج Ultralytics لاستخدام الذاكرة، مما يمنع أخطاء نفاد الذاكرة (OOM) الشائعة عند تدريب النماذج المعقدة القائمة على المحولات أو أجهزة الكشف القديمة غير المحسنة.
مثال على التعليمات البرمجية: تشغيل YOLOv9
يعد تشغيل الاستدلال باستخدام YOLOv9 أمرًا مباشرًا باستخدام حزمة Ultralytics.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 compact model
model = YOLO("yolov9c.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
مرونة التصدير
يمكن تصدير نماذج YOLOv9 التي تم تدريبها باستخدام Ultralytics بسهولة إلى تنسيقات مثل TensorRT و OpenVINO و CoreML لتحقيق أقصى قدر من المرونة في النشر.
الخلاصة والتوصيات
في حين أن YOLOX لعب دورًا محوريًا في تطوير detect الخالية من anchor، فإن YOLOv9 يمثل الخيار الأفضل للتطوير الحالي. توفر بنيته المبتكرة PGI و GELAN دقة أعلى مع عدد أقل من المعلمات، مما يحل مشكلة عنق الزجاجة المعلوماتية التي حدت من الشبكات العميقة السابقة.
بالنسبة للمطورين الباحثين عن أحدث ما توصلت إليه التكنولوجيا في الأداء والميزات، نوصي أيضًا باستكشاف YOLO11، والذي يزيد من تحسين هذه المفاهيم لتحقيق سرعة وتنوع أكبر عبر مهام رؤية متعددة. ومع ذلك، للمقارنة المباشرة مع YOLOX، يوفر YOLOv9 مسار ترقية مقنعًا يقلل من النفقات الحسابية مع تعزيز موثوقية الاكتشاف.
استكشف نماذج أخرى
قم بتوسيع معلوماتك من خلال مقارنة النماذج الأخرى الأفضل في نظام Ultralytics: