تخطي إلى المحتوى

YOLOv9: قفزة إلى الأمام في تكنولوجيا الكشف عن الأجسام

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



شاهد: تدريب YOLOv9 على بيانات مخصصة باستخدام Ultralytics | مجموعة بيانات الحزمة الصناعية

مقارنة أداء YOLOv9

مقدمة إلى 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

يتضمن القياس المعياري في 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
النموذج الحجم
(بالبكسل)
mAPمربع
50-95
mAPقناع
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، مع تسليط الضوء على قدراتها في مهام الكشف عن الكائنات وتوافقها مع أوضاع التشغيل المختلفة مثل الاستدلال و التحقق و التدريب و التصدير. يضمن هذا الدعم الشامل أن يتمكن المستخدمون من الاستفادة الكاملة من قدرات نماذج 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 قابلة للتكيف مع تطبيقات رؤية الكمبيوتر المتنوعة في الوقت الفعلي. راجع قسم المهام والأوضاع المدعومة لمزيد من المعلومات.



📅 أُنشئ منذ سنة واحدة ✏️ تم التحديث منذ 3 أشهر

تعليقات