YOLOv9: قفزة إلى الأمام في تكنولوجيا object detection
يمثل YOLOv9 تطورًا كبيرًا في مجال الكشف عن الأجسام في الوقت الفعلي، حيث يقدم تقنيات رائدة مثل Programmable Gradient Information (PGI) و Generalized Efficient Layer Aggregation Network (GELAN). يُظهر هذا النموذج تحسينات ملحوظة في الكفاءة والدقة والقدرة على التكيف، مما يضع معايير جديدة على مجموعة بيانات MS COCO. يعتمد مشروع YOLOv9، الذي تم تطويره بواسطة فريق منفصل مفتوح المصدر، على قاعدة التعليمات البرمجية القوية التي توفرها UltralyticsYOLOv5، مما يدل على الروح التعاونية لمجتمع أبحاث الذكاء الاصطناعي.
شاهد: تدريب YOLOv9 على بيانات مخصصة باستخدام Ultralytics | مجموعة بيانات الحزم الصناعية

مقدمة إلى YOLOv9
في إطار السعي لتحقيق الاكتشاف الأمثل للأشياء في الوقت الحقيقي، يتميز YOLOv9 بنهجه المبتكر للتغلب على تحديات فقدان المعلومات المتأصلة في الشبكات العصبية العميقة. من خلال دمج PGI وبنية GELAN متعددة الاستخدامات، لا يعزز YOLOv9 قدرة النموذج على التعلم فحسب، بل يضمن أيضًا الاحتفاظ بالمعلومات المهمة طوال عملية الكشف، وبالتالي تحقيق دقة وأداء استثنائيين.
الابتكارات الأساسية في YOLOv9
تستند تطورات YOLOv9 بشكل عميق إلى معالجة التحديات التي يفرضها فقدان المعلومات في الشبكات العصبية العميقة. يعتبر مبدأ Information Bottleneck والاستخدام المبتكر لوظائف Reversible Functions أساسيين لتصميمه، مما يضمن محافظة YOLOv9 على كفاءة ودقة عالية.
مبدأ عنق الزجاجة المعلوماتي
يكشف مبدأ عنق الزجاجة المعلوماتي عن تحدٍ أساسي في التعلم العميق: مع مرور البيانات عبر طبقات متتالية من الشبكة، يزداد احتمال فقدان المعلومات. يتم تمثيل هذه الظاهرة رياضيًا على النحو التالي:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))
حيث I تدل على المعلومات المتبادلة، و f و g تمثل دوال التحويل مع المعلمات theta و phi، على التوالي. تتصدى YOLOv9 لهذا التحدي من خلال تطبيق Programmable Gradient Information (PGI)، مما يساعد في الحفاظ على البيانات الأساسية عبر عمق الشبكة، مما يضمن توليد تدرج أكثر موثوقية، وبالتالي، تحسين تقارب النموذج وأدائه.
الدوال العكسية
مفهوم الدوال العكسية هو حجر الزاوية الآخر في تصميم YOLOv9. تعتبر الدالة قابلة للعكس إذا كان من الممكن عكسها دون أي فقدان للمعلومات، كما هو معبر عنه بـ:
X = v_zeta(r_psi(X))
مع psi و zeta كمعاملات للدالة العكسية ودالتها العكسية، على التوالي. هذه الخاصية ضرورية لـ التعلم العميق تسمح الهيكليات للشبكة بالاحتفاظ بتدفق كامل للمعلومات، مما يتيح تحديثات أكثر دقة لمعلمات النموذج. تدمج YOLOv9 وظائف قابلة للعكس داخل هيكليتها للتخفيف من خطر تدهور المعلومات، خاصة في الطبقات العميقة، مما يضمن الحفاظ على البيانات الهامة لمهام detect الأجسام.
التأثير على النماذج خفيفة الوزن
تعد معالجة فقدان المعلومات أمرًا حيويًا بشكل خاص للنماذج خفيفة الوزن، والتي غالبًا ما تكون ذات معلمات قليلة وعرضة لفقدان معلومات كبيرة أثناء عملية التغذية الأمامية. يضمن هيكل YOLOv9، من خلال استخدام PGI والوظائف القابلة للعكس، أنه حتى مع وجود نموذج مبسط، يتم الاحتفاظ بالمعلومات الأساسية المطلوبة لـ detect الكائنات بدقة واستخدامها بفعالية.
معلومات التدرج القابلة للبرمجة (PGI)
PGI هو مفهوم جديد تم تقديمه في YOLOv9 لمكافحة مشكلة عنق الزجاجة المعلوماتي، مما يضمن الحفاظ على البيانات الأساسية عبر طبقات الشبكة العميقة. يتيح ذلك إنشاء تدرجات موثوقة، مما يسهل تحديثات النموذج الدقيقة وتحسين أداء الكشف العام.
شبكة تجميع الطبقات الفعالة المعممة (GELAN)
يمثل GELAN تقدمًا معماريًا استراتيجيًا، مما يمكّن YOLOv9 من تحقيق استخدام فائق للمعلمات وكفاءة حسابية. يسمح تصميمه بالتكامل المرن للكتل الحسابية المختلفة، مما يجعل YOLOv9 قابلاً للتكيف مع مجموعة واسعة من التطبيقات دون التضحية بالسرعة أو الدقة.

معايير YOLOv9
يتضمن القياس المعياري في YOLOv9 باستخدام Ultralytics تقييم أداء النموذج المدرب والمتحقق منه في سيناريوهات العالم الحقيقي. تتضمن هذه العملية:
- تقييم الأداء: تقييم سرعة النموذج ودقته.
- تنسيقات التصدير: اختبار النموذج عبر تنسيقات تصدير مختلفة لضمان مطابقته للمعايير الضرورية وأدائه الجيد في بيئات مختلفة.
- دعم الإطار: توفير إطار عمل شامل داخل Ultralytics YOLOv8 لتسهيل هذه التقييمات وضمان نتائج متسقة وموثوقة.
من خلال القياس المعياري، يمكنك التأكد من أن النموذج الخاص بك لا يعمل بشكل جيد في بيئات الاختبار الخاضعة للرقابة فحسب، بل يحافظ أيضًا على أداء عالٍ في التطبيقات العملية في العالم الحقيقي.
شاهد: كيفية قياس أداء نموذج YOLOv9 باستخدام حزمة Ultralytics python
الأداء على مجموعة بيانات MS COCO
يوضح أداء YOLOv9 على مجموعة بيانات COCO تطوراته الكبيرة في الكشف عن الأجسام في الوقت الفعلي، مما يضع معايير جديدة عبر أحجام النماذج المختلفة. يقدم الجدول 1 مقارنة شاملة لأحدث أدوات الكشف عن الأجسام في الوقت الفعلي، مما يوضح الكفاءة الفائقة لـ YOLOv9 و الدقة.
الأداء
| النموذج | الحجم (بالبكسل) | mAPval 50-95 | mAPval 50 | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
| النموذج | الحجم (بالبكسل) | mAPbox 50-95 | mAPmask 50-95 | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
| YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
تكرارات YOLOv9، بدءًا من الصغير t متغير إلى واسع النطاق e يوضح النموذج تحسينات ليس فقط في الدقة (مقاييس mAP) ولكن أيضًا في الكفاءة مع عدد أقل من المعلمات والاحتياجات الحسابية (FLOPs). يؤكد هذا الجدول قدرة YOLOv9 على تقديم أداء عالٍ الدقة مع الحفاظ على النفقات الحسابية أو تقليلها مقارنة بالإصدارات السابقة والنماذج المنافسة.
بالمقارنة، يُظهر YOLOv9 مكاسب ملحوظة:
- نماذج خفيفة الوزن: يتفوق YOLOv9s على YOLO MS-S في كفاءة المعلمات والحمل الحسابي مع تحقيق تحسين بنسبة 0.4∼0.6٪ في AP.
- نماذج متوسطة إلى كبيرة: يُظهر YOLOv9m و YOLOv9e تطورات ملحوظة في موازنة المفاضلة بين تعقيد النموذج وأداء الكشف، مما يوفر تخفيضات كبيرة في المعلمات والحسابات مقابل خلفية الدقة المحسنة.
يسلط نموذج YOLOv9c، على وجه الخصوص، الضوء على فعالية تحسينات الهندسة المعمارية. إنه يعمل بعدد أقل من المعلمات بنسبة 42٪ وطلب حسابي أقل بنسبة 21٪ من YOLOv7 AF، ولكنه يحقق دقة مماثلة، مما يدل على تحسينات الكفاءة الكبيرة في YOLOv9. علاوة على ذلك، يضع نموذج YOLOv9e معيارًا جديدًا للنماذج الكبيرة، مع عدد أقل من المعلمات بنسبة 15٪ وحاجة حسابية أقل بنسبة 25٪ من YOLOv8x، إلى جانب تحسن تدريجي بنسبة 1.7٪ في AP.
تُظهر هذه النتائج التقدم الاستراتيجي الذي حققه نموذج YOLOv9 في تصميم النموذج، مع التأكيد على كفاءته المعززة دون المساومة على الدقة الضرورية لمهام اكتشاف الأجسام في الوقت الحقيقي. لا يدفع النموذج حدود مقاييس الأداء فحسب، بل يؤكد أيضًا على أهمية الكفاءة الحسابية، مما يجعله تطورًا محوريًا في مجال الرؤية الحاسوبية.
الخلاصة
يمثل YOLOv9 تطورًا محوريًا في الكشف عن الأجسام في الوقت الفعلي، حيث يقدم تحسينات كبيرة من حيث الكفاءة والدقة والقدرة على التكيف. من خلال معالجة التحديات الحاسمة من خلال حلول مبتكرة مثل PGI و GELAN، يضع YOLOv9 سابقة جديدة للبحث والتطبيق المستقبلي في هذا المجال. مع استمرار تطور مجتمع الذكاء الاصطناعي، يقف YOLOv9 كدليل على قوة التعاون والابتكار في دفع التقدم التكنولوجي.
أمثلة الاستخدام
يوفر هذا المثال أمثلة بسيطة لتدريب واستدلال YOLOv9. للحصول على وثائق كاملة حول هذه الأوضاع وغيرها، راجع صفحات وثائق التوقع و التدريب و التقييم و التصدير.
مثال
PyTorch مدربة مسبقًا *.pt بالإضافة إلى نماذج التهيئة *.yaml يمكن تمرير الملفات إلى YOLO() class لإنشاء مثيل نموذج في python:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
تتوفر أوامر CLI لتشغيل النماذج مباشرة:
# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg
المهام والأوضاع المدعومة
تقدم سلسلة YOLOv9 مجموعة من النماذج، تم تحسين كل منها للكشف عن الكائنات عالي الأداء. تلبي هذه النماذج الاحتياجات الحسابية المختلفة ومتطلبات الدقة، مما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.
| النموذج | أسماء الملفات | المهام | الاستدلال | التحقق | التدريب | تصدير |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | الكشف عن الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | تجزئة المثيل | ✅ | ✅ | ✅ | ✅ |
يوفر هذا الجدول نظرة عامة مفصلة عن متغيرات نموذج YOLOv9، مع تسليط الضوء على قدراتها في مهام الكشف عن الأجسام وتوافقها مع أوضاع التشغيل المختلفة مثل Inference و Validation و Training و Export. يضمن هذا الدعم الشامل أن يتمكن المستخدمون من الاستفادة الكاملة من قدرات نماذج YOLOv9 في مجموعة واسعة من سيناريوهات الكشف عن الأجسام.
ملاحظة
سيتطلب تدريب نماذج YOLOv9 موارد أكثر وسيستغرق وقتًا أطول من نموذج YOLOv8 ذي الحجم المكافئ.
الاقتباسات والإقرارات
نود أن نعرب عن تقديرنا لمؤلفي YOLOv9 لمساهماتهم الكبيرة في مجال الكشف عن الأجسام في الزمن الحقيقي:
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}
يمكن العثور على ورقة YOLOv9 الأصلية على arXiv. لقد أتاح المؤلفون عملهم للجمهور، ويمكن الوصول إلى قاعدة التعليمات البرمجية على GitHub. نحن نقدر جهودهم في تطوير هذا المجال وإتاحة عملهم للمجتمع الأوسع.
الأسئلة الشائعة
ما هي الابتكارات التي يقدمها YOLOv9 للكشف عن الأجسام في الوقت الفعلي؟
يقدم YOLOv9 تقنيات رائدة مثل معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعالة المعممة (GELAN). تعالج هذه الابتكارات تحديات فقدان المعلومات في الشبكات العصبية العميقة، مما يضمن كفاءة عالية ودقة وقابلية للتكيف. تحافظ PGI على البيانات الأساسية عبر طبقات الشبكة، بينما تعمل GELAN على تحسين استخدام المعلمات والكفاءة الحسابية. تعرف على المزيد حول الابتكارات الأساسية لـ YOLOv9 التي وضعت معايير جديدة على مجموعة بيانات MS COCO.
كيف يكون أداء YOLOv9 على مجموعة بيانات MS COCO مقارنة بالنماذج الأخرى؟
يتفوق YOLOv9 على أحدث أدوات الكشف عن الأجسام في الوقت الفعلي من خلال تحقيق دقة وكفاءة أعلى. في مجموعة بيانات COCO، تُظهر نماذج YOLOv9 درجات mAP فائقة عبر أحجام مختلفة مع الحفاظ على النفقات الحسابية أو تقليلها. على سبيل المثال، يحقق YOLOv9c دقة مماثلة مع عدد أقل من المعلمات بنسبة 42% وطلب حسابي أقل بنسبة 21% من YOLOv7 AF. استكشف مقارنات الأداء للحصول على مقاييس تفصيلية.
كيف يمكنني تدريب نموذج YOLOv9 باستخدام python و CLI؟
يمكنك تدريب نموذج YOLOv9 باستخدام أوامر Python و CLI. بالنسبة إلى Python، قم بإنشاء نموذج باستخدام YOLO الفئة واستدعاء train الطريقة:
from ultralytics import YOLO
# Build a YOLOv9c model from pretrained weights and train
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
بالنسبة لتدريب CLI، قم بتنفيذ:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
تعرف على المزيد حول أمثلة الاستخدام للتدريب والاستدلال.
ما هي مزايا استخدام Ultralytics YOLOv9 للنماذج خفيفة الوزن؟
تم تصميم YOLOv9 للتخفيف من فقدان المعلومات، وهو أمر مهم بشكل خاص للنماذج خفيفة الوزن المعرضة غالبًا لفقدان معلومات كبيرة. من خلال دمج معلومات التدرج القابلة للبرمجة (PGI) والوظائف القابلة للعكس، يضمن YOLOv9 الاحتفاظ بالبيانات الأساسية، مما يعزز دقة النموذج وكفاءته. هذا يجعله مناسبًا للغاية للتطبيقات التي تتطلب نماذج مدمجة ذات أداء عالٍ. لمزيد من التفاصيل، استكشف القسم الخاص بـ تأثير YOLOv9 على النماذج خفيفة الوزن.
ما هي المهام والأوضاع التي يدعمها YOLOv9؟
يدعم YOLOv9 مهام متنوعة بما في ذلك الكشف عن الأجسام و تقسيم المثيلات. وهو متوافق مع أوضاع التشغيل المتعددة مثل الاستدلال والتحقق والتدريب والتصدير. هذه المرونة تجعل YOLOv9 قابلاً للتكيف مع تطبيقات رؤية الكمبيوتر المتنوعة في الوقت الفعلي. راجع قسم المهام والأوضاع المدعومة لمزيد من المعلومات.