YOLOv5 YOLOv8: تطور الكشف Ultralytics من Ultralytics
شهد مجال الرؤية الحاسوبية تطوراً سريعاً، مدفوعاً بشكل كبير بالابتكار المستمر في عائلة أجهزة الكشف عن الأجسام YOLO You Only Look Once). ومن أكثر الإصدارات تأثيراً في هذا المجال YOLOv5 و YOLOv8، وكلاهما تم تطويره بواسطة Ultralytics. في حين أن YOLOv5 معيارًا صناعيًا لسهولة الاستخدام والمرونة عند إصداره في عام 2020، فإن YOLOv8 الذي تم إصداره في عام 2023) قدم اختراقات معمارية أعادت تعريف الأداء المتطور.
يقدم هذا الدليل مقارنة تقنية متعمقة لمساعدة المطورين والباحثين والمهندسين على اختيار النموذج المناسب لاحتياجات تطبيقاتهم المحددة، مع تسليط الضوء على أحدث التطورات في هذا المجال، مثل YOLO26.
Ultralytics YOLOv5: معيار الصناعة
صدر في يونيو 2020، YOLOv5 علامة فارقة في عملية إضفاء الطابع الديمقراطي على الذكاء الاصطناعي. على عكس سابقاتها، التي كانت مكتوبة بشكل أساسي بلغة C (Darknet)، YOLOv5 أول لغة أصلية PyTorch ، مما جعله متاحًا بشكل استثنائي لمجتمع Python .
الميزات الرئيسية والهندسة المعمارية
YOLOv5 بتوازنه بين السرعة والدقة والتصميم سهل الاستخدام. وقد أدخلت بنيته العديد من التحسينات الرئيسية مقارنة بـ YOLOv4:
- CSPDarknet Backbone: يستخدم اتصالات جزئية عبر المراحل لتحسين تدفق التدرج وتقليل المعلمات.
- مربعات الربط للتعلم التلقائي: تتعلم تلقائيًا الأبعاد المثلى لمربعات الربط لمجموعة البيانات المخصصة قبل بدء التدريب.
- زيادة بيانات الفسيفساء: تقنية تدريب تجمع أربع صور في صورة واحدة، مما يعزز قدرة النموذج على detect الأجسام detect ويحسن تعميم السياق.
المواصفات الفنية:
- المؤلفون: Glenn Jocher
- المؤسسة:Ultralytics
- التاريخ: 2020-06-26
- GitHub:ultralytics/yolov5
Ultralytics YOLOv8: تعريف أحدث ما توصلت إليه التكنولوجيا
تم إطلاقه في يناير 2023، YOLOv8 قفزة كبيرة إلى الأمام في تكنولوجيا الرؤية الحاسوبية. فقد ابتعد عن الكشف القائم على المراسي المستخدم في YOLOv5 تصميم خالٍ من المراسي، مما بسط عملية التعلم وحسّن التعميم عبر أشكال مختلفة من الأجسام.
الابتكارات المعمارية
YOLOv8 مجموعة من التقنيات الحديثة التي عززت السرعة والدقة:
- الكشف بدون مرساة: يلغي الحاجة إلى التكوين اليدوي لمربع المرساة، ويتنبأ بمراكز الكائنات مباشرة. وهذا يقلل من عدد تنبؤات المربعات ويسرع عملية القمع غير الأقصى (NMS).
- وحدة C2f: تحل محل وحدة C3 من YOLOv5 وتوفر تدفقًا أكثر ثراءً للتدرج اللوني وتضبط أرقام القنوات من أجل استخراج أفضل للميزات.
- الرأس المنفصل: يفصل مهام الكائنات والتصنيف والانحدار إلى فروع مختلفة، مما يسمح لكل منها بالتقارب بشكل أكثر فعالية.
- تنوع المهام: مصمم من الألف إلى الياء لدعم ليس فقط الكشف، ولكن أيضًا تقسيم الحالات، وتقدير الوضع، والتصنيف، و OBB (Oriented Bounding Box).
المواصفات الفنية:
- المؤلفون: Glenn Jocher و Ayush Chaurasia و Jing Qiu
- المؤسسة:Ultralytics
- التاريخ: 2023-01-10
- GitHub:ultralytics/ultralytics
مقارنة الأداء
عند مقارنة هذين النموذجين القويين، يتضح أن YOLOv8 يتفوق YOLOv8 على YOLOv5 الدقة (mAP) والكمون على الأجهزة المماثلة. ومع ذلك، YOLOv5 نموذجًا عالي الكفاءة وفعالًا للغاية بالنسبة للأنظمة القديمة.
يوضح الجدول أدناه الأداء على COCO . تشير القيم المكتوبة بالخط العريض إلى أفضل أداء في كل فئة.
| النموذج | الحجم (بالبكسل) | mAPval 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 Nano) معدل mAP أعلى بكثير mAP 37.3) مقارنةً بـ YOLOv5n (28.0) مع زيادة طفيفة فقط في عدد المعلمات. هذا المكسب في الكفاءة يجعل YOLOv8 الأفضل للتطبيقات الحديثة المتطورة حيث كل نسبة مئوية من الدقة مهمة.
التدريب والنظام البيئي
يستفيد كلا الطرازين بشكل كبير من Ultralytics الذي يضع سهولة الاستخدام في مقدمة أولوياته.
سير عمل تدريبي مبسط
أدى الانتقال من YOLOv5 YOLOv8 إلى إدخال واجهة برمجة تطبيقات موحدة CLI Python تدعم جميع المهام. بينما YOLOv5 على نصوص برمجية محددة (على سبيل المثال، train.py, detect.py)، YOLOv8 والنماذج اللاحقة مثل YOLO26 استخدم بنية حزمة معيارية.
YOLOv5 :
python train.py --img 640 --batch 16 --epochs 50 --data coco128.yaml --weights yolov5s.pt
YOLOv8 :
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640
مزايا Ultralytics
يتكامل كلا النموذجين بسلاسة مع Ultralytics . وهذا يتيح للمستخدمين تصور عمليات التدريب وإدارة مجموعات البيانات وتنفيذ تصدير النموذج بنقرة واحدة إلى تنسيقات مثل ONNXو TensorRTو CoreML إلى كتابة نصوص تحويل معقدة.
حالات الاستخدام والتوصيات
يعتمد الاختيار بين هذين النموذجين على القيود المحددة الخاصة بك، على الرغم من أن النماذج الأحدث يوصى بها عمومًا للمشاريع الجديدة.
السيناريوهات المثالية لـ YOLOv5
- الأنظمة القديمة: المشاريع التي تم دمجها بالفعل بشكل عميق مع YOLOv5 حيث تكاليف الترحيل مرتفعة.
- دعم الأجهزة المحددة: قد تحتوي بعض مسرعات الذكاء الاصطناعي القديمة على نوى محسّنة للغاية ومصممة خصيصًا لهياكل الطبقات المحددة YOLOv5.
- البساطة: لأغراض تعليمية بحتة، يمكن أن تكون البنية النصية الصريحة YOLOv5 أسهل للمبتدئين في تحليلها سطراً بسطر.
السيناريوهات المثالية لـ YOLOv8
- متطلبات الدقة العالية: التطبيقات مثل التصوير الطبي أو فحص الجودة حيث يكون اكتشاف الميزات الدقيقة أمرًا بالغ الأهمية.
- التعلم متعدد المهام: المشاريع التي تتطلب التجزئة أو تقدير الوضع إلى جانب الكشف.
- الاستعداد للمستقبل: يجب على المطورين الذين يبدؤون مشاريع جديدة اختيار YOLOv8 أو أحدث) لضمان الدعم طويل الأمد والتوافق مع أحدث أدوات النشر.
المستقبل: Ultralytics
على الرغم من أن YOLOv5 YOLOv8 هذا المجال استمر في التطور. بالنسبة للمطورين الذين يسعون إلى تحقيق أعلى مستوى من الأداء في عام 2026، نوصي بشدة باستخدام Ultralytics .
لماذا تختار YOLO26؟ يستند YOLO26 إلى إرث الإصدارين v5 و v8، ولكنه يقدم تغييرات ثورية في السرعة والكفاءة:
- NMS من البداية إلى النهاية: من خلال التخلص من الحاجة إلى Non-Maximum Suppression (NMS)، تعمل YOLO26 على تبسيط منطق النشر وتقليل زمن الاستدلال، وهو مفهوم رائد في YOLOv10.
- MuSGD Optimizer: مُحسِّن هجين يوفر استقرار تدريب LLM لنماذج الرؤية، مما يضمن تقاربًا أسرع.
- محسّن لـ Edge: بفضل إزالة DFL CPU معينة CPU ، يعمل YOLO26 بسرعة تصل إلى 43% على وحدات المعالجة المركزية مقارنة بالأجيال السابقة.
- كشف الأجسام الصغيرة بشكل فائق: تعمل وظائف ProgLoss و STAL الجديدة على تحسين الأداء بشكل كبير على الأهداف الصغيرة، وهو أمر بالغ الأهمية لتطبيقات التصوير بالطائرات بدون طيار وتطبيقات إنترنت الأشياء.
الخلاصة
YOLOv8 كل من YOLOv5 YOLOv8 إنجازات هائلة في تاريخ الرؤية الحاسوبية. YOLOv5 محركًا موثوقًا به وذو ذاكرة منخفضة للعديد من التطبيقات الحالية، ويشتهر باستقراره واستهلاكه المنخفض للموارد في التدريب. YOLOv8يوفر تنوعًا فائقًا ودقة أعلى وتصميمًا معماريًا أكثر حداثة يتماشى مع اتجاهات البحث الحالية.
لأولئك الذين يطالبون بأحدث التقنيات، يتطلعون إلى YOLO26 أو YOLO11 سيوفر مزايا أكبر في السرعة والدقة. في النهاية، فإن نظام Ultralytics بأنك ستحصل على الأدوات والوثائق ودعم المجتمع اللازم للنجاح، بغض النظر عن النموذج الذي تختاره.
مثال على الكود: تشغيل الاستدلال
جرب بساطة Ultralytics تطبيقات Ultralytics . يعمل هذا الرمز مع نماذج YOLOv8 و YOLO11 و YOLO26 بشكل متبادل.
from ultralytics import YOLO
# Load a pretrained model (choose yolov8n.pt or yolo26n.pt)
model = YOLO("yolov8n.pt")
# Run inference on an image from the web
results = model("https://ultralytics.com/images/bus.jpg")
# Process results list
for result in results:
boxes = result.boxes # Boxes object for bbox outputs
masks = result.masks # Masks object for segmentation masks
keypoints = result.keypoints # Keypoints object for pose outputs
probs = result.probs # Probs object for classification outputs
result.show() # display to screen
result.save(filename="result.jpg") # save to disk
لمزيد من التفاصيل حول دمج هذه النماذج في سير عملك، تفضل بزيارة دليل البدء السريع.