Link to this sectionYOLOv9: قفزة نوعية في تقنية اكتشاف الكائنات#
يمثل YOLOv9 تقدماً كبيراً في مجال اكتشاف الكائنات في الوقت الفعلي، حيث يقدم تقنيات رائدة مثل معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعالة المعممة (GELAN). يُظهر هذا النموذج تحسينات ملحوظة في الكفاءة والدقة والقدرة على التكيف، مما يضع معايير جديدة على مجموعة بيانات MS COCO. وعلى الرغم من أن مشروع YOLOv9 تم تطويره بواسطة فريق مفتوح المصدر مستقل، إلا أنه يعتمد على قاعدة الكود القوية التي توفرها Ultralytics في YOLOv5، مما يعكس روح التعاون في مجتمع أبحاث الذكاء الاصطناعي.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

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

Link to this sectionمعايير قياس أداء YOLOv9#
يتضمن إجراء قياس الأداء في YOLOv9 باستخدام Ultralytics تقييم أداء نموذجك الذي تم تدريبه والتحقق من صحته في سيناريوهات العالم الحقيقي. تشمل هذه العملية ما يلي:
- تقييم الأداء: تقييم سرعة ودقة النموذج.
- تنسيقات التصدير: اختبار النموذج عبر تنسيقات تصدير مختلفة لضمان تلبيته للمعايير الضرورية وعمله بشكل جيد في بيئات متنوعة.
- دعم الإطار: توفير إطار عمل شامل ضمن Ultralytics YOLOv8 لتسهيل هذه التقييمات وضمان نتائج متسقة وموثوقة.
من خلال قياس الأداء، يمكنك التأكد من أن نموذجك لا يعمل بشكل جيد في بيئات الاختبار الخاضعة للرقابة فحسب، بل يحافظ أيضاً على أداء عالٍ في التطبيقات العملية الواقعية.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Link to this sectionالأداء على مجموعة بيانات MS COCO#
يوضح أداء YOLOv9 على مجموعة بيانات COCO تقدمه الكبير في اكتشاف الكائنات في الوقت الفعلي، حيث وضع معايير جديدة عبر مختلف أحجام النماذج. يقدم الجدول 1 مقارنة شاملة لأحدث كاشفات الكائنات في الوقت الفعلي، مما يوضح الكفاءة الفائقة والدقة لـ YOLOv9.
تُظهر تكرارات 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 في تصميم النماذج، مع التأكيد على كفاءتها المحسنة دون المساومة على الدقة الضرورية لمهام اكتشاف الكائنات في الوقت الفعلي. لا يدفع النموذج حدود مقاييس الأداء فحسب، بل يؤكد أيضاً على أهمية الكفاءة الحسابية، مما يجعله تطوراً محورياً في مجال رؤية الحاسوب.
Link to this sectionالخلاصة#
يُمثل YOLOv9، الذي تم إصداره في فبراير 2024، تطوراً محورياً في اكتشاف الكائنات في الوقت الفعلي، حيث قدم تحسينات كبيرة من حيث الكفاءة والدقة والقدرة على التكيف. من خلال معالجة التحديات الحرجة عبر حلول مبتكرة مثل PGI و GELAN، وضع YOLOv9 معايير جديدة في وقت إصداره. وعلى الرغم من أنه قد تم إصدار نماذج أحدث مثل YOLO11 و YOLO26 منذ ذلك الحين مع تحسينات إضافية، إلا أن ابتكارات YOLOv9 المعمارية لا تزال تؤثر في هذا المجال.
Link to this sectionأمثلة الاستخدام#
يوفر هذا المثال أمثلة بسيطة لتدريب YOLOv9 والاستدلال. للحصول على وثائق كاملة حول هذه الأنماط وغيرها، راجع صفحات وثائق التنبؤ، والتدريب، والتحقق، والتصدير.
يمكن تمرير نماذج PyTorch المدربة مسبقاً *.pt بالإضافة إلى ملفات التهيئة *.yaml إلى فئة YOLO() لإنشاء مثيل نموذج في 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")Link to this sectionالمهام والأوضاع المدعومة#
توفر سلسلة YOLOv9 مجموعة من النماذج، كل منها مُحسَّن لـ اكتشاف الكائنات عالي الأداء. تلبي هذه النماذج احتياجات حسابية ومتطلبات دقة متفاوتة، مما يجعلها متعددة الاستخدامات لمجموعة واسعة من التطبيقات.
| النموذج | أسماء الملفات | مهام | الاستنتاج | التحقق | التدريب | التصدير |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | اكتشاف الكائنات | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | تجزئة المثيلات | ✅ | ✅ | ✅ | ✅ |
يوفر هذا الجدول نظرة عامة مفصلة على متغيرات نموذج YOLOv9، مع تسليط الضوء على قدراتها في مهام اكتشاف الكائنات وتوافقها مع أنماط التشغيل المختلفة مثل الاستدلال، والتحقق، والتدريب، والتصدير. يضمن هذا الدعم الشامل للمستخدمين الاستفادة الكاملة من قدرات نماذج YOLOv9 في مجموعة واسعة من سيناريوهات اكتشاف الكائنات.
سيتطلب تدريب نماذج YOLOv9 موارد أكثر وسيستغرق وقتاً أطول من نموذج YOLOv8 بنفس الحجم.
Link to this sectionالاقتباسات والشكر#
نود أن نعرب عن تقديرنا لمؤلفي 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. نحن نقدر جهودهم في تطوير هذا المجال وجعل عملهم متاحاً للمجتمع الأوسع.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هي الابتكارات التي يقدمها YOLOv9 لاكتشاف الكائنات في الوقت الفعلي؟#
يقدم YOLOv9 تقنيات رائدة مثل معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعالة المعممة (GELAN). تعالج هذه الابتكارات تحديات فقدان المعلومات في الشبكات العصبية العميقة، مما يضمن كفاءة ودقة وقابلية تكيف عالية. يحافظ PGI على البيانات الأساسية عبر طبقات الشبكة، بينما تعمل GELAN على تحسين استخدام المعاملات والكفاءة الحسابية. تعرف على المزيد حول الابتكارات الجوهرية لـ YOLOv9 التي وضعت معايير جديدة على مجموعة بيانات MS COCO.
Link to this sectionكيف يكون أداء YOLOv9 على مجموعة بيانات MS COCO مقارنة بالنماذج الأخرى؟#
يتفوق YOLOv9 على أحدث كاشفات الكائنات في الوقت الفعلي من خلال تحقيق دقة وكفاءة أعلى. على مجموعة بيانات COCO، تُظهر نماذج YOLOv9 درجات mAP فائقة عبر أحجام مختلفة مع الحفاظ على العبء الحسابي أو تقليله. على سبيل المثال، يحقق YOLOv9c دقة مماثلة مع معاملات أقل بنسبة 42% ومتطلبات حسابية أقل بنسبة 21% من YOLOv7 AF. استكشف مقارنات الأداء للحصول على مقاييس مفصلة.
Link to this sectionكيف يمكنني تدريب نموذج 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تعرف على المزيد حول أمثلة الاستخدام للتدريب والاستدلال.
Link to this sectionما هي مزايا استخدام Ultralytics YOLOv9 للنماذج خفيفة الوزن؟#
تم تصميم YOLOv9 للتخفيف من فقدان المعلومات، وهو أمر مهم بشكل خاص للنماذج خفيفة الوزن التي غالباً ما تكون عرضة لفقدان معلومات كبيرة. من خلال دمج معلومات التدرج القابلة للبرمجة (PGI) والدوال القابلة للعكس، يضمن YOLOv9 الاحتفاظ بالبيانات الأساسية، مما يعزز دقة النموذج وكفاءته. وهذا يجعله مناسباً جداً للتطبيقات التي تتطلب نماذج مدمجة ذات أداء عالٍ. لمزيد من التفاصيل، استكشف القسم الخاص بـ تأثير YOLOv9 على النماذج خفيفة الوزن.
Link to this sectionما هي المهام والأنماط التي يدعمها YOLOv9؟#
يدعم YOLOv9 مهام متنوعة بما في ذلك اكتشاف الكائنات وتجزئة المثيلات. وهو متوافق مع أنماط تشغيل متعددة مثل الاستدلال، والتحقق، والتدريب، والتصدير. تجعل هذه المرونة YOLOv9 قابلاً للتكيف مع تطبيقات رؤية الحاسوب المتنوعة في الوقت الفعلي. راجع قسم المهام والأنماط المدعومة لمزيد من المعلومات.