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

YOLOv5 مقابل YOLOv8: تطور الكشف عن الكائنات في الوقت الفعلي

لقد تم تشكيل تطور الكشف عن الكائنات بشكل كبير من خلال عائلة نماذج YOLO (You Only Look Once). يمثل كل من YOLOv5 و YOLOv8، اللذين تم تطويرهما بواسطة Ultralytics، لحظات محورية في تاريخ رؤية الكمبيوتر. في حين أن YOLOv5 أثبتت نفسها كأكثر بنية كشف محبوبة واستخدامًا على نطاق واسع في العالم نظرًا لبساطتها وسرعتها، فقد قدمت YOLOv8 إطارًا موحدًا مع ابتكارات معمارية متطورة لدعم نطاق أوسع من مهام الرؤية.

يعتمد الاختيار بين هذين النموذجين القويين على قيود مشروعك المحددة، وتوافر الأجهزة، والحاجة إلى إمكانات المهام المتعددة. يقدم هذا الدليل تحليلاً فنيًا عميقًا لمساعدة مهندسي رؤية الكمبيوتر والباحثين على اتخاذ القرار الصحيح.

YOLOv5: معيار الصناعة المثبت

Author: Glenn Jocher
Organization:Ultralytics
Date: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
Docs:https://docs.ultralytics.com/models/yolov5/

أحدث YOLOv5، الذي تم إصداره في منتصف عام 2020، ثورة في إمكانية الوصول إلى اكتشاف الكائنات. لقد كان أول نموذج YOLO يتم تنفيذه أصليًا في PyTorch، مبتعدًا عن إطار عمل Darknet الذي استخدمته الإصدارات السابقة. هذا التحول جعل من السهل بشكل لا يصدق على المطورين تدريب مجموعات البيانات المخصصة ونشرها وتجربتها.

يستخدم YOLOv5 عمودًا فقريًا CSPDarknet وهو كاشف يعتمد على المرساة. هذا يعني أنه يعتمد على مربعات مرساة محددة مسبقًا للتنبؤ بمواقع الكائنات. على الرغم من أن هذا النهج يتطلب بعض الضبط الفائق للمعلمات للحصول على الأداء الأمثل على مجموعات البيانات الفريدة، إلا أنه يظل فعالًا للغاية. تؤكد بنيته على سرعة الاستدلال وقدرة الذاكرة المنخفضة، مما يجعله المفضل للنشر على الأجهزة ذات الموارد المحدودة مثل Raspberry Pi والأجيال الأولى من NVIDIA Jetson.

نقاط القوة الرئيسية في YOLOv5

  • الاستقرار القديم: سنوات من الاستخدام النشط في بيئات الإنتاج جعلته أحد أكثر نماذج الرؤية استقرارًا وخالية من الأخطاء المتاحة.
  • تحسين الحافة: خاصة على وحدات المعالجة المركزية القديمة ومعالجات الأجهزة المحمولة المحددة، يمكن أن توفر بنية YOLOv5 الأبسط أحيانًا زمن انتقال استدلال أسرع.
  • Vast Ecosystem: مجتمع ضخم من الدروس التعليمية وعمليات التكامل الخارجية ومناقشات المنتديات يدعم استكشاف الأخطاء وإصلاحها والتطوير.

تعرف على المزيد حول YOLOv5

YOLOv8: القوة المحركة متعددة المهام

المؤلفون: جلين جوتشر، أيوش تشوراسيا، و جينغ تشيو
المنظمة:Ultralytics
التاريخ: 2023-01-10
GitHub:https://github.com/ultralytics/ultralytics
المستندات:https://docs.ultralytics.com/models/yolov8/

يمثل YOLOv8 قفزة كبيرة إلى الأمام، وهو مصمم ليس فقط ككاشف للكائنات ولكن كإطار عمل شامل لـ تقسيم الصور و تقدير الوضعية و التصنيف و detect الصندوق المحيط الموجه (OBB).

معماريًا، ينتقل YOLOv8 إلى تصميم خالٍ من المرساة مع رأس منفصل، يفصل بين مهام الكشف عن الكائنات والتصنيف والانحدار. كما يقدم وحدة C2f (عنق الزجاجة الجزئي للمرحلة المتقاطعة مع 2 من الالتواءات)، والذي يحل محل وحدة C3 الموجودة في YOLOv5. تعمل وحدة C2f على تحسين تدفق التدرج ودمج الميزات، مما يسمح للنموذج بتعلم أنماط أكثر تعقيدًا دون زيادة هائلة في التكلفة الحسابية.

نقاط القوة الرئيسية في YOLOv8

  • دقة متطورة: تحقق باستمرار درجات mAP (متوسط الدقة المتوسط) أعلى على COCO ومجموعات البيانات المخصصة مقارنة بـ YOLOv5.
  • الكشف الخالي من المرتكزات (Anchor-Free Detection): يلغي الحاجة إلى حساب أو ضبط مربعات الارتكاز، مما يبسط مسار التدريب ويحسن التعميم على الكائنات ذات نسب العرض إلى الارتفاع غير العادية.
  • تنوع الاستخدامات: القدرة على التبديل بين الكشف والتقسيم وتقدير الوضعية باستخدام نفس واجهة برمجة التطبيقات (API) تقلل بشكل كبير من وقت التطوير للمشاريع المعقدة.

تعرف على المزيد حول YOLOv8

نظرة فاحصة فنية: الهيكل والأداء

تتميز المرحلة الانتقالية من YOLOv5 إلى YOLOv8 بالعديد من التغييرات "الخفية" التي تدفع مكاسب الأداء.

التحولات المعمارية

الفرق الأبرز هو رأس الكشف. يستخدم YOLOv5 رأسًا مقترنًا حيث تشترك التصنيفات والمواقع في الميزات. يستخدم YOLOv8 رأسًا منفصلاً، مما يسمح للشبكة بضبط الأوزان بشكل مستقل لتحديد ما هو الكائن مقابل أين هو. يؤدي هذا عادةً إلى تقارب أفضل ودقة أعلى.

علاوة على ذلك، يسمح تطور العمود الفقري من C3 إلى C2f لـ YOLOv8 بالتقاط معلومات تدرج أكثر ثراءً. في حين أن هذا يجعل التصميم المعماري أكثر تعقيدًا بعض الشيء، فقد قامت Ultralytics بتحسين التنفيذ لضمان بقاء كفاءة التدريب عالية.

مقاييس الأداء

عند مقارنة النماذج على مجموعة بيانات COCO القياسية، يُظهر YOLOv8 نسب دقة إلى حساب فائقة.

النموذجالحجم
(بالبكسل)
mAPval
50-95
السرعة
وحدة المعالجة المركزية CPU ONNX
(بالمللي ثانية)
السرعة
T4 TensorRT10
(بالمللي ثانية)
المعلمات
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

كما هو موضح، تحقق YOLOv8n (Nano) قيمة mAP تبلغ 37.3، والتي تتطابق عمليًا مع YOLOv5s الأكبر (صغير) الذي يسجل 37.4، ولكن مع عدد أقل بكثير من FLOPs. هذه الكفاءة ضرورية لتطبيقات Edge AI الحديثة.

منهجيات التدريب والنظام البيئي

إحدى الخصائص المميزة لنماذج Ultralytics هي التركيز على تجربة المطور. يستفيد كلا النموذجين من نظام Ultralytics الشامل، ولكن يتم الوصول إليهما بشكل مختلف قليلاً.

سهولة الاستخدام و API

قدم YOLOv8 ultralytics حزمة Python وواجهة موحدة لسطر الأوامر و Python. تدير هذه الحزمة التبعيات بشكل فعال وتوفر واجهة برمجة تطبيقات (API) متسقة لـ تدريب, التحقق، و توقع. ومن المثير للاهتمام، أن ultralytics يمكن للحزمة أيضًا تحميل وتشغيل نماذج YOLOv5، مما يسد الفجوة بين الأجيال.

from ultralytics import YOLO

# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")

# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")

# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)

الذاكرة والكفاءة

بالمقارنة مع النماذج القائمة على المحولات مثل RT-DETR، فإن YOLOv5 و YOLOv8 كلاهما فعالان للغاية من حيث الذاكرة. غالبًا ما تتطلب المحولات ذاكرة CUDA كبيرة وأوقات تدريب أطول للوصول إلى التقارب. في المقابل، تم تحسين نماذج Ultralytics YOLO للتشغيل على وحدات معالجة الرسومات (GPU) ووحدات المعالجة المركزية (CPU) من الدرجة الاستهلاكية، مما يتيح الوصول إلى الذكاء الاصطناعي عالي الأداء.

النظام البيئي المتكامل

كلا النموذجين متوافقان تمامًا مع Ultralytics HUB، مما يسمح بإدارة سلسة لمجموعات البيانات وتصور النموذج والنشر بنقرة واحدة على الأجهزة الحقيقية.

حالات الاستخدام المثالية

غالبًا ما يعتمد اختيار النموذج المناسب على البيئة المحددة التي سيتم فيها نشر النموذج.

متى تختار YOLOv5

لا يزال YOLOv5 خيارًا ممتازًا للحالات التالية:

  • الأنظمة القديمة: تحديث خطوط الأنابيب الحالية حيث تم بناء البنية التحتية بالفعل حول بنية YOLOv5.
  • أجهزة طرفية محددة: تحتوي بعض برامج تشغيل NPU (وحدة معالجة عصبية) القديمة على دعم مُحسَّن للغاية خصيصًا لبنية YOLOv5.
  • زمن الوصول المنخفض للغاية: في السيناريوهات التي يكون فيها كل جزء من الثانية من استدلال CPU مهمًا، يمكن أن يوفر الرأس المقترن الأبسط لـ YOLOv5n أحيانًا ميزة السرعة الأولية على v8n.

متى تختار YOLOv8

YOLOv8 هو الخيار الموصى به لـ:

  • تطورات جديدة: بدء مشروع اليوم، يوفر YOLOv8 (أو YOLO11 الأحدث) مسارًا أفضل للحماية من التطورات المستقبلية.
  • مهام معقدة: التطبيقات التي تتطلب segmentation المثيل (مثل تحليل الخلايا الطبية) أو الكشف عن النقاط الرئيسية (مثل تحليلات الألعاب الرياضية).
  • متطلبات الدقة العالية: السيناريوهات التي يكون فيها فقدان الكشف detect أمرًا بالغ الأهمية، كما هو الحال في أنظمة السلامة للمركبات ذاتية القيادة أو المراقبة الأمنية.

الخلاصة

تعتبر كل من YOLOv5 و YOLOv8 شهادة على التزام Ultralytics بالابتكار مفتوح المصدر. يظل YOLOv5 أسطورة في هذا المجال - موثوقًا وسريعًا ومدعومًا على نطاق واسع. ومع ذلك، فإن YOLOv8 يحسن هذا الأساس من خلال التطورات المعمارية التي تقدم دقة أعلى وتنوعًا أكبر دون التضحية بسهولة الاستخدام التي يتوقعها المطورون.

بالنسبة لغالبية المشاريع الجديدة، نوصي بالاستفادة من التطورات في YOLOv8 أو الترقية إلى أحدث YOLO11، والذي يعمل على تحسين هذه المفاهيم بشكل أكبر لتحقيق التوازن المطلق بين السرعة والدقة.

استكشف نماذج أخرى

إذا كنت مهتمًا باستكشاف أحدث التقنيات في مجال الكشف، ففكر في البحث عن:

  • YOLO11: أحدث تطور، يوفر معالجة أسرع واستخراج ميزات محسنة مقارنة بـ YOLOv8.
  • RT-DETR: نموذج يعتمد على المحولات ويوفر دقة عالية للتطبيقات في الوقت الفعلي، وهو مثالي عندما تكون ذاكرة GPU أقل تقييدًا.

تعليقات