PP-YOLOE+ ضد YOLOv9: مقارنة فنية
يتطلب اختيار البنية المثالية لمشاريع الرؤية الحاسوبية التنقل في مشهد من النماذج سريعة التطور. تقدم هذه الصفحة مقارنة فنية مفصلة بين PP-YOLOE+ من Baidu و YOLOv9، وهما كاشفا عناصر متطوران أحاديان المرحلة. نحلل ابتكاراتهم المعمارية ومقاييس الأداء وتكامل النظام البيئي لمساعدتك في اتخاذ قرار مستنير. في حين أن كلا النموذجين يظهران قدرات عالية، إلا أنهما يمثلان فلسفات تصميم متميزة وتبعيات إطار العمل.
PP-YOLOE+: دقة عالية ضمن نظام PaddlePaddle البيئي
PP-YOLOE+ هو إصدار متطور من PP-YOLOE، تم تطويره بواسطة Baidu كجزء من مجموعة PaddleDetection. تم تصميمه لتوفير مقايضة متوازنة بين الدقة وسرعة الاستدلال، وهو مُحسَّن خصيصًا لإطار عمل التعلم العميق PaddlePaddle.
المؤلفون: مؤلفو PaddlePaddle
المنظمة:Baidu
التاريخ: 2022-04-02
Arxiv:https://arxiv.org/abs/2203.16250
GitHub:https://github.com/PaddlePaddle/PaddleDetection/
المستندات:PaddleDetection PP-YOLOE+ README
البنية والميزات الرئيسية
يعمل PP-YOLOE+ ككاشف من مرحلة واحدة وخالي من المرساة. وهو يعتمد على العمود الفقري CSPRepResNet ويستخدم استراتيجية Task Alignment Learning (TAL) لتحسين التوافق بين مهام التصنيف والموقع. إحدى الميزات الرئيسية هي Efficient Task-aligned Head (ET-Head)، والتي تقلل من النفقات الحسابية مع الحفاظ على الدقة. يستخدم النموذج دالة Varifocal Loss للتعامل مع عدم توازن الفئات أثناء التدريب.
نقاط القوة والضعف
تكمن القوة الأساسية لـ PP-YOLOE+ في تحسينها لحزمة الأجهزة والبرامج من Baidu. وهي توفر نماذج قابلة للتطوير (s, m, l, x) تعمل بشكل جيد في معايير الكشف عن الكائنات القياسية.
ومع ذلك، فإن اعتماده الشديد على نظام PaddlePaddle البيئي يمثل عقبة كبيرة أمام مجتمع الذكاء الاصطناعي الأوسع، الذي يفضل إلى حد كبير PyTorch. قد تكون عملية ترحيل سير عمل PyTorch الحالية إلى PaddlePaddle كثيفة الاستخدام للموارد. بالإضافة إلى ذلك، بالمقارنة مع البنى الأحدث، يتطلب PP-YOLOE+ المزيد من المعلمات لتحقيق دقة مماثلة، مما يؤثر على التخزين والذاكرة على الأجهزة ذات الموارد المحدودة.
YOLOv9: معلومات التدرج القابلة للبرمجة للتعلم المحسن
يقدم Ultralytics YOLOv9 نقلة نوعية في الكشف عن الكائنات في الوقت الفعلي من خلال معالجة مشكلة "عنق الزجاجة المعلوماتي" المتأصلة في الشبكات العصبية العميقة.
المؤلفون: تشين-ياو وانغ وهونغ-يوان مارك لياو
المنظمة:معهد علوم المعلومات، أكاديميا سينيكا، تايوان
التاريخ: 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).
- PGI: مع تعمق الشبكات، غالبًا ما تضيع معلومات بيانات الإدخال أثناء عملية التغذية الأمامية. يوفر PGI فرع إشراف إضافي يضمن توليد تدرج موثوق به، مما يسمح للنموذج "بتذكر" الميزات الحاسمة لمهام تتبع الكائنات واكتشافها دون إضافة تكلفة الاستدلال.
- GELAN: يعمل هذا التصميم المعماري على تحسين كفاءة المعلمات، مما يسمح للنموذج بتحقيق دقة أعلى مع عدد أقل من الموارد الحسابية (FLOPs) مقارنة بالخلفيات التقليدية التي تستخدم الالتواء العميق.
هل تعلم؟
تحل تقنية PGI في YOLOv9 مشكلة Information Bottleneck التي كانت تتطلب سابقًا طرق إشراف عميقة مرهقة. ينتج عن هذا نماذج أخف وزناً وأكثر دقة، مما يحسن بشكل كبير توازن الأداء.
نقاط القوة والضعف
تتفوق YOLOv9 في كفاءة التدريب واستخدام المعلمات. إنها تحقق نتائج متطورة على مجموعة بيانات COCO، متجاوزة التكرارات السابقة في الدقة مع الحفاظ على سرعات في الوقت الفعلي. يعني تكاملها في نظام Ultralytics البيئي أنها تستفيد من نظام بيئي جيد الصيانة، بما في ذلك النشر البسيط عبر أوضاع التصدير إلى تنسيقات مثل ONNX و TensorRT.
أحد الاعتبارات المحتملة هو أن أكبر المتغيرات (YOLOv9-E) تتطلب موارد GPU كبيرة للتدريب. ومع ذلك، تظل بصمة ذاكرة الاستدلال تنافسية، وتتجنب التكاليف المرتفعة المرتبطة بالنماذج القائمة على المحولات.
تحليل الأداء المقارن
في مقارنة مباشرة، يُظهر YOLOv9 كفاءة فائقة. على سبيل المثال، يحقق نموذج YOLOv9-C درجة mAP أعلى (53.0%) من PP-YOLOE+l (52.9%) مع استخدام ما يقرب من نصف المعلمات (25.3 مليون مقابل 52.2 مليون). هذا التخفيض الكبير في حجم النموذج دون المساس بالدقة يسلط الضوء على فعالية بنية GELAN.
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
| 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 |
يوضح الجدول أنه بالنسبة لأهداف الدقة المماثلة، تتطلب YOLOv9 باستمرار موارد حسابية أقل. يدفع نموذج YOLOv9-E المغلف إلى أبعد من ذلك، حيث يحقق 55.6% mAP، وهي ميزة واضحة على أكبر متغير PP-YOLOE+.
ميزة Ultralytics
في حين أن PP-YOLOE+ هو كاشف قادر، فإن اختيار YOLOv9 من خلال إطار عمل Ultralytics يوفر مزايا واضحة فيما يتعلق بسهولة الاستخدام و تعدد الاستخدامات.
تجربة مستخدم مبسطة
تعطي Ultralytics الأولوية لتجربة سهلة الاستخدام للمطورين. بخلاف ملفات التهيئة المعقدة التي تتطلبها غالبًا PaddleDetection، يمكن تحميل نماذج Ultralytics وتدريبها ونشرها ببضعة أسطر فقط من أكواد Python. هذا يقلل بشكل كبير من حاجز الدخول للمهندسين والباحثين.
تعدد الاستخدامات والنظام البيئي
تدعم Ultralytics مجموعة واسعة من المهام تتجاوز الاكتشاف البسيط، بما في ذلك تقسيم الحالات، و تقدير الوضعيات، و اكتشاف الصناديق المحيطة الموجهة (OBB). يتيح هذا التنوع للمطورين معالجة تحديات متنوعة باستخدام واجهة برمجة تطبيقات (API) موحدة واحدة. علاوة على ذلك، يضمن المجتمع النشط والتحديثات المتكررة حصول المستخدمين على أحدث التحسينات و عمليات التكامل مع أدوات مثل TensorBoard و MLflow.
مثال على التعليمات البرمجية: استخدام YOLOv9
يوضح المثال التالي مدى سهولة تشغيل الاستدلال باستخدام YOLOv9 باستخدام Ultralytics Python API. تتناقض هذه البساطة مع الإعداد الأكثر تفصيلاً المطلوب غالبًا لـ PP-YOLOE+.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Display results
results[0].show()
حالات الاستخدام المثالية
- PP-YOLOE+: الأنسب للفرق المدمجة بالفعل بعمق في نظام Baidu/PaddlePaddle البيئي، أو للتطبيقات الصناعية القديمة المحددة في المناطق التي يكون فيها دعم أجهزة PaddlePaddle هو المهيمن.
- YOLOv9: مثالي للتطبيقات التي تتطلب أعلى نسبة دقة إلى كفاءة، مثل المركبات ذاتية القيادة، وتحليلات الفيديو في الوقت الفعلي، والنشر على الحافة حيث تكون متطلبات الذاكرة والتخزين من القيود.
الخلاصة والتوصيات
بالنسبة لمعظم المطورين والمؤسسات، يمثل YOLOv9 الخيار الأفضل نظرًا لبنيته الحديثة (GELAN/PGI)، وكفاءته الفائقة في استخدام المعلمات، والدعم القوي لنظام Ultralytics البيئي. إنه يوفر حلاً جاهزًا للمستقبل مع أوزان مُدرَّبة مسبقًا متاحة بسهولة وقدرات تصدير سلسة.
إذا كنت تبحث عن مزيد من التنوع والسرعة، فنوصي أيضًا باستكشاف YOLO11، وهو أحدث تكرار في سلسلة YOLO. يعمل YOLO11 على تحسين التوازن بين الأداء وزمن الوصول بشكل أكبر، مما يوفر إمكانات حديثة للكشف و segmentation وتصنيف المهام في حزمة مدمجة.
بالنسبة لأولئك المهتمين بحصان عمل مثبت، يظل YOLOv8 خيارًا موثوقًا به للغاية مع موارد مجتمعية واسعة وعمليات تكامل تابعة لجهات خارجية.