YOLOv5 مقابل YOLOv8: تطور اكتشاف الأجسام في الوقت الحقيقي
لقد تم تشكيل تطور اكتشاف الأجسام بشكل كبير من خلال مجموعة نماذج YOLO (أنت تنظر مرة واحدة فقط). تم تطويرها بواسطة Ultralyticsيمثل كل من YOLOv5 و YOLOv8 لحظات محورية في تاريخ الرؤية الحاسوبية. في حين أن YOLOv5 أثبت نفسه كأكثر بنية كشف محبوبة ومستخدمة على نطاق واسع في العالم بسبب بساطته وسرعته، قدم YOLOv8 إطار عمل موحد مع ابتكارات معمارية متطورة لدعم مجموعة أوسع من مهام الرؤية.
يعتمد الاختيار بين هاتين القوتين على قيود مشروعك المحددة، وتوافر الأجهزة، والحاجة إلى قدرات متعددة المهام. يقدم هذا الدليل تحليلاً تقنيًا عميقًا لمساعدة مهندسي الرؤية الحاسوبية والباحثين على اتخاذ القرار الصحيح.
YOLOv5: معيار الصناعة المثبت
المؤلف: جلين جوشر
المنظمة:Ultralytics
التاريخ: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5yolov5
المستنداتyolov5
تم إصدار YOLOv5 في منتصف عام 2020، وقد أحدث ثورة في إمكانية الوصول إلى اكتشاف الأجسام. لقد كان أول نموذج YOLO يُنفَّذ محليًا في PyTorchمبتعدًا عن إطار عمل الشبكة المظلمة الذي استخدمته سابقاتها. هذا التحول جعل من السهل للغاية على المطورين تدريب مجموعات البيانات المخصصة ونشرها وتجربتها.
يستخدم YOLOv5 العمود الفقري لشبكة CSPDarknet وهو كاشف قائم على الارتساء. هذا يعني أنه يعتمد على مربعات الارتساء المحددة مسبقًا للتنبؤ بمواقع الكائنات. على الرغم من أن هذا النهج يتطلب بعض الضبط للمعامل الفائق لتحقيق الأداء الأمثل على مجموعات البيانات الفريدة، إلا أنه يظل فعالاً للغاية. تركز بنيته على سرعة الاستدلال والقدرة المنخفضة للذاكرة، مما يجعله مفضلًا للنشر على الأجهزة محدودة الموارد مثل Raspberry Pi والأجيال الأولى من NVIDIA Jetson.
نقاط القوة الرئيسية في YOLOv5
- الاستقرار القديم: سنوات من الاستخدام النشط في بيئات الإنتاج جعلته أحد أكثر نماذج الرؤية المتوفرة استقراراً وخلواً من الأخطاء.
- تحسين الحافة: يمكن أن توفر بنية YOLOv5 الأبسط في بعض الأحيان زمن استجابة أسرع في الاستدلال خاصةً على وحدات المعالجة المركزية الأقدم والمعالجات المحمولة المحددة.
- نظام بيئي واسع: مجتمع ضخم من البرامج التعليمية والتكاملات الخارجية ومناقشات المنتديات يدعم استكشاف الأخطاء وإصلاحها وتطويرها.
YOLOv8: القوة متعددة المهام
المؤلفون: جلين جوتشر، وأيوش تشوراسيا، وجينغ كيو
المنظمة:Ultralytics
التاريخ: 2023-01-10
GitHubultralytics
المستنداتyolov8
يمثّل YOLOv8 قفزة كبيرة إلى الأمام، حيث تم تصميمه ليس فقط ككاشف للأجسام ولكن كإطار عمل شامل لتجزئة الصور وتقدير الوضع والتصنيف والكشف عن الصندوق المحيط الموجه (OBB).
من الناحية المعمارية، ينتقل YOLOv8 إلى تصميم خالٍ من المراسي برأس منفصل، يفصل بين مهام الكائنات والتصنيف والانحدار. كما يقدم أيضًا الوحدة C2f (وحدة C2f (وحدة الزجاجة الجزئية المتقاطعة ذات التلافيف الثنائية)، والتي تحل محل الوحدة C3 الموجودة في YOLOv5. تعمل وحدة C2f على تحسين تدفق التدرج ودمج الميزات، مما يسمح للنموذج بتعلم أنماط أكثر تعقيدًا دون زيادة هائلة في التكلفة الحسابية.
نقاط القوة الرئيسية في YOLOv8
- دقة فائقة: يحقق باستمرار درجات mAP (متوسط الدقة المتوسطة) أعلى على مجموعات بيانات COCO ومجموعات البيانات المخصصة مقارنةً بـ YOLOv5.
- الكشف بدون مرساة: يزيل الحاجة إلى حساب أو ضبط مربعات الارتكاز، مما يبسّط خط أنابيب التدريب ويحسّن التعميم على الأجسام ذات نسب الأبعاد غير المعتادة.
- تعدد الاستخدامات: إن القدرة على التبديل بين الاكتشاف والتجزئة وتقدير الوضعية باستخدام نفس واجهة برمجة التطبيقات تقلل بشكل كبير من وقت التطوير للمشاريع المعقدة.
التعمق التقني: البنية والأداء
يتسم الانتقال من YOLOv5 إلى YOLOv8 بالعديد من التغييرات "تحت الغطاء" التي تؤدي إلى زيادة الأداء.
التحولات المعمارية
الاختلاف الأبرز هو رأس الكشف. يستخدم YOLOv5 رأسًا مقترنًا حيث يشترك التصنيف والتوطين في الميزات. أما YOLOv8 فيستخدم رأسًا منفصلًا، مما يسمح للشبكة بضبط الأوزان بشكل مستقل لتحديد ماهية الكائن مقابل تحديد مكانه. يؤدي هذا عادةً إلى تقارب أفضل ودقة أعلى.
علاوة على ذلك، فإن تطور العمود الفقري من C3 إلى C2f يسمح لـ YOLOv8 بالتقاط معلومات تدرج أكثر ثراءً. وعلى الرغم من أن هذا يجعل البنية أكثر تعقيدًا بعض الشيء، إلا أن Ultralytics قد حسّنت التنفيذ لضمان بقاء كفاءة التدريب عالية.
مقاييس الأداء
عند مقارنة النماذج على مجموعة بياناتCOCO القياسية، يُظهر YOLOv8 نسب دقة إلى حساب أعلى من النماذج.
| النموذج | الحجم (بالبكسل) | mAPفال 50-95 | السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) | السرعة T4 TensorRT10 (بالمللي ثانية) | المعلمات (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
كما هو موضح, YOLOv8n (نانو) يحقق mAP يبلغ 37.3، وهو ما يطابق عمليًا مع YOLOv5 الأكبر حجمًا (صغير) الذي يحقق 37.4، ولكن مع عدد أقل بكثير من وحدات FLOP. تعد هذه الكفاءة أمرًا بالغ الأهمية لتطبيقات الذكاء الاصطناعي الحديثة ذات الحافة.
منهجيات التدريب والنظام البيئي
إحدى الخصائص المميزة لنماذج Ultralytics هي التركيز على تجربة المطورين. يستفيد كلا النموذجين من نظام Ultralytics الشامل، ولكن يتم الوصول إليهما بشكل مختلف قليلاً.
سهولة الاستخدام وواجهة برمجة التطبيقات
قدم YOLOv8 ultralytics حزمة Python وهي واجهة CLI و Python موحدة. تدير هذه الحزمة التبعيات بفعالية وتوفر واجهة برمجة تطبيقات متسقة ل التدريب, التحقق، و التنبؤ. ومن المثير للاهتمام أن 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 كبيرة وأوقات تدريب أطول للتقارب. وعلى النقيض من ذلك، تم تحسين نماذجYOLO Ultralytics لتعمل على وحدات معالجة الرسومات من فئة المستهلكين وحتى وحدات المعالجة المركزية، مما يجعل الوصول إلى الذكاء الاصطناعي عالي الأداء أكثر ديمقراطية.
النظام البيئي المتكامل
كلا النموذجين متوافقان تمامًا مع Ultralytics HUB، مما يسمح بإدارة مجموعة البيانات بسلاسة وتصور النموذج والنشر بنقرة واحدة على أجهزة العالم الحقيقي.
حالات الاستخدام المثالية
غالباً ما يعود اختيار النموذج المناسب إلى البيئة المحددة التي سيتم نشر النموذج فيها.
متى تختار YOLOv5
يظل YOLOv5 خيارًا ممتازًا لـ
- الأنظمة القديمة: تحديث خطوط الأنابيب الحالية حيث تكون البنية التحتية مبنية بالفعل حول بنية YOLOv5 .
- أجهزة حافة محددة: تحتوي بعض برامج تشغيل NPU (وحدة المعالجة العصبية) الأقدم على دعم مُحسَّن للغاية خصيصًا لبنية YOLOv5 .
- الكمون المنخفض للغاية: في السيناريوهات التي يكون فيها كل جزء من الثانية من استدلال CPU مهمًا، يمكن أن يوفر الرأس المقترن الأبسط لـ YOLOv5n أحيانًا ميزة السرعة الخام على v8n.
متى تختار YOLOv8
YOLOv8 هو الخيار الموصى به لـ
- تطورات جديدة: البدء في مشروع اليوم، YOLOv8 (أو الأحدث YOLO11) يوفر مسارًا مستقبليًا أفضل.
- المهام المعقدة: التطبيقات التي تتطلب تجزئة النماذج (على سبيل المثال، تحليل الخلايا الطبية) أو اكتشاف النقاط الرئيسية (على سبيل المثال، التحليلات الرياضية).
- متطلبات الدقة العالية: السيناريوهات التي يكون فيها فقدان الكشف أمراً بالغ الأهمية، كما هو الحال في أنظمة سلامة المركبات ذاتية القيادة أو المراقبة الأمنية.
الخلاصة
يُعدّ كل من YOLOv5 و YOLOv8 دليلاً على التزام Ultralytics بالابتكار مفتوح المصدر. YOLOv5 أسطورة في هذا المجال - موثوق وسريع ومدعوم على نطاق واسع. ومع ذلك YOLOv8 يعمل على تحسين هذا الأساس من خلال التطورات المعمارية التي توفر دقة أعلى وتنوعًا أكبر دون التضحية بسهولة الاستخدام التي يتوقعها المطورون.
بالنسبة لغالبية المشاريع الجديدة، نوصي بالاستفادة من التطورات في YOLOv8 أو الترقية إلى أحدث إصدار من YOLO11الذي يُحسِّن هذه المفاهيم بشكل أكبر لتحقيق التوازن النهائي بين السرعة والدقة.
استكشف نماذج أخرى
إذا كنت مهتمًا باستكشاف أحدث ما توصلت إليه تكنولوجيا الكشف على الإطلاق، ففكر في البحث في:
- YOLO11: أحدث تطور، حيث يوفر معالجة أسرع واستخراج ميزات محسّنة مقارنةً بـ YOLOv8.
- RT-DETR: نموذج قائم على المحولات يوفر دقة عالية لتطبيقات الوقت الحقيقي، وهو مثالي عندما تكون ذاكرة GPU أقل تقييدًا.