YOLOv9: قفزة نوعية في تقنية اكتشاف الكائنات#
يمثل YOLOv9 تقدمًا ملحوظًا في اكتشاف الكائنات في الزمن الفعلي، إذ يقدم تقنيات رائدة مثل معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعالة المعممة (GELAN). ويُظهر هذا النموذج تحسينات لافتة في الكفاءة والدقة والقدرة على التكيف، محققًا معايير جديدة على مجموعة بيانات MS COCO. وقد طُوّر مشروع YOLOv9 على يد فريق مستقل مفتوح المصدر، لكنه يستند إلى قاعدة الشيفرة المتينة التي وفرتها Ultralytics YOLOv5، مجسدًا روح التعاون في مجتمع أبحاث الذكاء الاصطناعي.
شاهد: تدريب YOLOv9 على بيانات مخصصة باستخدام Ultralytics | مجموعة بيانات العبوات الصناعية

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

معايير أداء YOLOv9#
يتضمن قياس أداء YOLOv9 باستخدام Ultralytics تقييم أداء النموذج المدرّب والمتحقق منه في سيناريوهات العالم الحقيقي. وتشمل هذه العملية:
- تقييم الأداء: قياس سرعة النموذج ودقته.
- تنسيقات التصدير: اختبار النموذج عبر تنسيقات تصدير مختلفة لضمان استيفائه المعايير اللازمة وأدائه الجيد في بيئات متنوعة.
- دعم الأطر: توفير إطار عمل شامل ضمن حزمة Ultralytics لتسهيل هذه التقييمات وضمان نتائج متسقة وموثوقة.
يتيح قياس الأداء التأكد من أن نموذجك لا يؤدي جيدًا في بيئات الاختبار المضبوطة فحسب، بل يحافظ أيضًا على أدائه العالي في التطبيقات العملية الواقعية.
شاهد: كيفية قياس أداء نموذج YOLOv9 باستخدام حزمة Ultralytics Python
الأداء على مجموعة بيانات 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، وتبرز كفاءته المحسنة من دون المساس بالدقة الضرورية لمهام اكتشاف الكائنات في الزمن الفعلي. ولا يدفع النموذج حدود مقاييس الأداء فحسب، بل يبرز أيضًا أهمية الكفاءة الحاسوبية، ما يجعله تطورًا محوريًا في مجال الرؤية الحاسوبية.
الخلاصة#
مثّل YOLOv9، الذي صدر في فبراير 2024، تطورًا محوريًا في اكتشاف الكائنات في الزمن الفعلي، إذ قدم تحسينات كبيرة في الكفاءة والدقة والقدرة على التكيف. ومن خلال معالجة التحديات المهمة بحلول مبتكرة مثل PGI وGELAN، وضع YOLOv9 معايير جديدة وقت إصداره. ورغم صدور نماذج أحدث منذ ذلك الحين، مثل YOLO11 وYOLO26، مع تحسينات إضافية، لا تزال ابتكارات YOLOv9 المعمارية تؤثر في هذا المجال.
أمثلة الاستخدام#
يقدم هذا المثال أمثلة مبسطة على تدريب YOLOv9 والاستدلال به. للاطلاع على الوثائق الكاملة لهذه الأوضاع وغيرها، راجع صفحات وثائق التنبؤ والتدريب والتحقق والتصدير.
يمكن تمرير نماذج *.pt المدربة مسبقًا من PyTorch، وكذلك ملفات الإعداد *.yaml، إلى الصنف YOLO() لإنشاء مثيل نموذج في Python:
from ultralytics import YOLO
# إنشاء نموذج YOLOv9c من الصفر
model = YOLO("yolov9c.yaml")
# إنشاء نموذج YOLOv9c باستخدام أوزان مدرّبة مسبقًا
model = YOLO("yolov9c.pt")
# عرض معلومات النموذج (اختياري)
model.info()
# تدريب النموذج على مجموعة بيانات المثال COCO8 لمدة 100 حقبة
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# تشغيل الاستدلال باستخدام نموذج YOLOv9c على الصورة 'bus.jpg'
results = model("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، مع إبراز قدراتها في مهام اكتشاف الكائنات وتوافقها مع أوضاع تشغيل متنوعة مثل الاستدلال والتحقق والتدريب والتصدير. ويضمن هذا الدعم الشامل للمستخدمين الاستفادة الكاملة من إمكانات نماذج YOLOv9 في نطاق واسع من سيناريوهات اكتشاف الكائنات.
يتطلب تدريب نماذج YOLOv9 موارد أكثر ويستغرق وقتًا أطول من تدريب نموذج YOLOv8 بالحجم نفسه.
الاستشهادات والشكر والتقدير#
نود الإشادة بمؤلفي YOLOv9 لمساهماتهم المهمة في مجال اكتشاف الكائنات في الزمن الفعلي:
@inproceedings{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
booktitle={Computer Vision -- ECCV 2024},
pages={1--21},
year={2024},
organization={Springer Nature Switzerland}
}نُشرت الورقة البحثية الرسمية لـYOLOv9 ضمن وقائع مؤتمر Springer ECCV 2024، مع نسخة أولية على arXiv. وأتاح المؤلفون عملهم للجمهور، ويمكن الوصول إلى قاعدة الشيفرة على GitHub. ونقدر جهودهم في تطوير هذا المجال وإتاحة عملهم للمجتمع الأوسع.
الأسئلة الشائعة#
يقدم YOLOv9 تقنيات رائدة مثل معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعالة المعممة (GELAN). وتعالج هذه الابتكارات تحديات فقدان المعلومات في الشبكات العصبية العميقة، ما يضمن كفاءة ودقة وقدرة على التكيف عالية. وتحافظ PGI على البيانات الأساسية عبر طبقات الشبكة، بينما تحسّن GELAN الاستفادة من المعلمات والكفاءة الحاسوبية. تعرّف على المزيد عن الابتكارات الأساسية في YOLOv9 التي أرست معايير جديدة على مجموعة بيانات MS COCO.
يتفوق YOLOv9 على كواشف الكائنات المتطورة في الزمن الفعلي، محققًا دقة وكفاءة أعلى. وعلى مجموعة بيانات COCO، تحقق نماذج YOLOv9 درجات mAP أعلى عبر أحجام مختلفة مع الحفاظ على العبء الحاسوبي أو خفضه. فعلى سبيل المثال، يحقق YOLOv9c دقة مماثلة مع عدد معلمات أقل بنسبة 42% واحتياجات حاسوبية أقل بنسبة 21% من YOLOv7 AF. استكشف مقارنات الأداء للاطلاع على المقاييس التفصيلية.
يمكنك تدريب نموذج YOLOv9 باستخدام أوامر Python وCLI. لاستخدام Python، أنشئ مثيلًا للنموذج باستخدام الفئة
YOLOواستدعِ الطريقةtrain:from ultralytics import YOLO # إنشاء نموذج YOLOv9c باستخدام أوزان مدرّبة مسبقًا ثم تدريبه 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تعرّف على المزيد من أمثلة الاستخدام للتدريب والاستدلال.
صُمم YOLOv9 للتخفيف من فقدان المعلومات، وهو أمر مهم بوجه خاص للنماذج خفيفة الوزن التي غالبًا ما تكون عرضة لفقدان قدر كبير من المعلومات. ومن خلال دمج معلومات التدرج القابلة للبرمجة (PGI) والدوال العكسية، يضمن YOLOv9 الاحتفاظ بالبيانات الأساسية، ما يعزز دقة النموذج وكفاءته. وهذا يجعله مناسبًا جدًا للتطبيقات التي تتطلب نماذج مدمجة عالية الأداء. لمزيد من التفاصيل، استكشف قسم أثر YOLOv9 على النماذج خفيفة الوزن.
يدعم YOLOv9 مهامًا متعددة، منها اكتشاف الكائنات وتقسيم المثيلات. وهو متوافق مع أوضاع تشغيل متعددة مثل الاستدلال والتحقق والتدريب والتصدير. وتجعل هذه المرونة YOLOv9 قابلًا للتكيف مع تطبيقات الرؤية الحاسوبية المتنوعة في الزمن الفعلي. راجع قسم المهام والأوضاع المدعومة لمزيد من المعلومات.