YOLOv7 مقابل YOLOv9#
تطور مجال كشف الأجسام الآني بسرعة، إذ يدفع كل إصدار جديد حدود الإمكانات على الأجهزة الطرفية والخوادم السحابية على حد سواء. وعند تقييم البنى لمشروعات الرؤية الحاسوبية، كثيرًا ما يقارن المطورون المعايير الراسخة بالابتكارات الأحدث. يقارن هذا الدليل الشامل بين محطتين بارزتين في عائلة YOLO: YOLOv7 وYOLOv9.
سنحلل ابتكاراتهما المعمارية ومقاييس الأداء وسيناريوهات النشر المثالية لمساعدتك على اختيار النموذج المناسب لتطبيقك. كما سنستكشف كيف تجعل منصة Ultralytics وواجهة Python API تدريب النماذج المدعومة مثل YOLOv9 والتحقق من صحتها ونشرها أسهل.
سلالة النماذج والمواصفات التقنية#
يوفر فهم أصول هذه النماذج وفلسفات تصميمها سياقًا أساسيًا لقدراتها. يشترك النموذجان في سلالة بحثية، لكنهما يستهدفان اختناقات معمارية مختلفة.
YOLOv7: رائد مجموعة المزايا المجانية#
صدر YOLOv7 في منتصف عام 2022، وأثبت مكانته بوصفه بنية موثوقة للغاية ومحسّنة بدرجة كبيرة. وقد قدّم إعادة المعلمة البنيوية ونهج «حقيبة مزايا قابلة للتدريب» للحفاظ على سرعات استدلال عالية من دون التضحية بـمتوسط الدقة (mAP).
- المؤلفون: Chien-Yao Wang وAlexey Bochkovskiy وHong-Yuan Mark Liao
- المؤسسة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- التاريخ: 6 يوليو 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
الابتكارات المعمارية: يتضمن YOLOv7 شبكة تجميع الطبقات الفعّالة الموسعة (E-ELAN)، التي تمكّن النموذج من تعلم ميزات أكثر تنوعًا عبر توسيع التعددية وترتيبها عشوائيًا ودمجها. وينتج عن هذا التصميم استخدام ممتاز لوحدات GPU وزمن استجابة الاستدلال. إلا أنه قد يتطلب ذاكرة كبيرة أثناء عمليات التدريب المعقدة مقارنةً بالإصدارات الحديثة.
YOLOv9: معالجة اختناق المعلومات#
قدّم فريق البحث نفسه YOLOv9 في أوائل عام 2024 لمعالجة «اختناق المعلومات» المتأصل في الشبكات العصبية العميقة. فكثيرًا ما تُفقد تفاصيل أساسية مع مرور البيانات عبر الطبقات العميقة. ويحد YOLOv9 من هذه المشكلة عبر تصميمات جديدة جوهريًا للطبقات.
- المؤلفون: Chien-Yao Wang وHong-Yuan Mark Liao
- المؤسسة: معهد علوم المعلومات، أكاديميا سينيكا، تايوان
- التاريخ: 21 فبراير 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
الابتكارات المعمارية: يقدم YOLOv9 معلومات التدرج القابلة للبرمجة (PGI) وشبكة تجميع الطبقات الفعّالة المعممة (GELAN). وتضمن PGI الحفاظ على تدرجات موثوقة وإعادتها لتحديث الأوزان بدقة. أما GELAN فتعظّم كفاءة المعلمات، ما يمكّن YOLOv9 من تحقيق دقة عالية بعمليات FLOPs أقل بكثير من أسلافه.
تحليل الأداء#
عند الاختيار بين البنى، يجب على مهندسي الذكاء الاصطناعي الموازنة بين الدقة وسرعة الاستدلال والتكلفة الحسابية. يوضح الجدول أدناه اختلافات الأداء بين هذه النماذج على مجموعة بيانات COCO القياسية.
| النموذج | الحجم (بكسل) | mAPالتحقق 50-95 | السرعة CPU ONNX (مللي ثانية) | السرعة T4 TensorRT10 (ms) | المعاملات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
أهم النتائج#
- كفاءة المعلمات: يضاهي YOLOv9m دقة YOLOv7l (51.4% mAP)، مع استخدام عدد أقل من المعلمات بنحو 45% (20.1M مقابل 36.9M). ويجعل هذا الانخفاض الكبير نشر YOLOv9m على أجهزة الذكاء الاصطناعي الطرفي محدودة الذاكرة أسهل بكثير.
- عمليات النشر المصغّرة: يوفر طرح المتغير YOLOv9t (الصغير) سرعات مذهلة (2.3ms على T4 باستخدام TensorRT) في البيئات التي تكون فيها قيود التشغيل الآني صارمة.
- أقصى دقة: في التطبيقات التي تكون فيها الدقة بالغة الأهمية، يرفع YOLOv9e دقة الكشف إلى 55.6% mAP، متفوقًا بدرجة كبيرة على YOLOv7x.
على الرغم من قوة YOLOv7 وYOLOv9، يمثّل YOLO26 الذي أُطلق حديثًا قفزة نوعية حاسمة إلى الأمام. يقدّم YOLO26 تصميمًا أصليًا شاملًا خاليًا من NMS (اختياري عبر nms=False) يتجاوز المعالجة اللاحقة المعقدة، ويوفّر استدلالًا على CPU أسرع بنسبة تصل إلى 43%. وباستخدام مُحسِّن MuSGD الجديد ودوال الخسارة المحسّنة ProgLoss + STAL، يوفّر YOLO26 استقرارًا تدريبيًا ودقةً في اكتشاف الأجسام الصغيرة لا مثيل لهما.
ميزة Ultralytics#
اختيار بنية النموذج ليس سوى الخطوة الأولى. يحدّد النظام البرمجي المحيط بالنموذج مدى سرعة انتقالك من النموذج الأولي إلى الإنتاج. يوفّر دمج النماذج المدعومة مثل YOLOv9 عبر واجهة Python البرمجية من Ultralytics فوائد كبيرة للمطورين والباحثين.
سهولة الاستخدام وكفاءة التدريب#
تاريخيًا، كان تدريب YOLOv7 يتطلب إعدادًا معقدًا للبيانات ونصوصًا برمجية مخصصة بدرجة كبيرة. يجرّد إطار عمل Ultralytics هذه العملية من تعقيدات التعلم العميق. ويمكن للمطورين التبديل بسهولة بين البنى، وتجربة ضبط المعلمات الفائقة، واستخدام مسارات زيادة البيانات الذكية بأقل قدر من التعليمات البرمجية.
علاوة على ذلك، تحسّن Ultralytics استخدام الذاكرة أثناء التدريب والاستدلال. وعلى خلاف نماذج Transformer الثقيلة (مثل RT-DETR)، تتدرب بُنى Ultralytics YOLO بسرعة أكبر بكثير، وتتطلب قدرًا أقل بكثير من ذاكرة CUDA، ما يجعلها مثالية لوحدات GPU المخصصة للمستهلكين.
مثال على الشفرة: تدريب مبسط#
يُعد تدريب النماذج المتطورة أمرًا سلسًا ضمن منظومة Ultralytics. إليك مثالًا كاملًا قابلًا للتنفيذ يوضّح كيفية تدريب نموذج YOLOv9 والتحقق من صحته:
from ultralytics import YOLO
# تهيئة النموذج (يمكنك استبدال 'yolov9c.pt' بـ 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# تدريب النموذج على مجموعة بيانات العينة COCO8
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # استخدام GPU 0 إذا كان متاحًا
batch=16, # تحسين حجم الدفعة لتحقيق كفاءة استخدام الذاكرة
)
# التحقق من أداء النموذج على مجموعة التحقق
metrics = model.val()
# تصدير النموذج المدرّب إلى تنسيق ONNX لنشره
model.export(format="onnx")تعدد استخدامات لا مثيل له عبر المهام#
تعني المنظومة التي تحظى بصيانة جيدة إمكانية الوصول إلى مجموعة متنوعة من مهام الرؤية الحاسوبية. فبينما صُمم YOLOv7 أساسًا لاكتشاف الأجسام (مع إصدارات تجريبية لاحقة لمهام أخرى)، بُنيت نماذج Ultralytics الحديثة لتكون متعددة الاستخدامات بطبيعتها. ويمكنك مباشرةً تنفيذ تجزئة الكائنات، وتقدير الوضعيات، وتصنيف الصور، واكتشاف صناديق الإحاطة الموجّهة (OBB) بسلاسة.
حالات الاستخدام والتطبيقات المثالية#
غالبًا ما يعتمد الاختيار بين YOLOv7 وYOLOv9 على قيود المجال المحددة لديك وتوافر العتاد.
متى يُستخدم YOLOv7#
- عمليات النشر الطرفية للأنظمة القديمة: يظل YOLOv7 خيارًا متينًا لبيئات العتاد التي ضُبطت وحُسّنت بالفعل بدرجة كبيرة لبنية E-ELAN الخاصة به، لا سيما في إنترنت الأشياء الصناعي.
- مراقبة حركة المرور: تجعل معدلات الإطارات العالية والاستقرار المثبت لـ YOLOv7 منه خيارًا ممتازًا لبنية المدن الذكية التحتية وإدارة حركة المرور في الوقت الفعلي.
- التكامل مع الروبوتات: يتطلب التنقل في البيئات الديناميكية معالجة بزمن استجابة منخفض، وهو سيناريو خضعت فيه متغيرات YOLOv7 لاختبارات مكثفة.
متى تستخدم YOLOv9#
- التصوير الطبي: تتميز بنية PGI في YOLOv9 بقدرتها الفائقة على الحفاظ على التفاصيل الدقيقة عبر الطبقات العميقة، وهو أمر بالغ الأهمية عند تحليل مهام تحليل الصور الطبية المعقدة مثل اكتشاف الأورام.
- تحليلات التجزئة عالية الكثافة: يوفّر دمج السمات في YOLOv9 دقةً أعلى ويقلل النتائج السلبية الكاذبة عند تتبع العناصر المتراصة على رفوف متاجر التجزئة وعدّها.
- الصور الجوية وصور الطائرات المسيّرة: تتيح كفاءة YOLOv9m في استخدام المعلمات معالجة الصور عالية الدقة على الطائرات المسيّرة، ما يساعد في الحفاظ على الحياة البرية ومراقبة المحاصيل دون استنزاف البطارية.
الخلاصة#
رسّخ كل من YOLOv7 وYOLOv9 مكانته في تاريخ الرؤية الحاسوبية. قدّم YOLOv7 تحسينات أساسية للمعالجة في الوقت الفعلي، بينما عالج YOLOv9 اختناقات التعلم العميق البنيوية لزيادة كفاءة استخدام المعلمات إلى أقصى حد.
لكن بالنسبة إلى المطورين الذين يبدؤون مشاريع جديدة اليوم، فإن الاستفادة من منظومة Ultralytics، وتحديدًا نماذج الجيل التالي مثل YOLO11 وYOLO26، توفر أفضل موازنة بين السرعة والدقة وتجربة المطور. ومن خلال ابتكارات مثل مُحسِّن MuSGD وإزالة Distribution Focal Loss (DFL) لتحسين التوافق مع نطاق أوسع من العتاد، تواصل Ultralytics توفير الأدوات الأسهل وصولًا والأقوى لمحترفي الذكاء الاصطناعي للرؤية.