استكشف Ultralytics YOLOv8
نظرة عامة
تم إصدار YOLOv8 بواسطة Ultralytics في 10 يناير 2023، حيث قدم أداءً متطورًا من حيث الدقة والسرعة. بالاعتماد على التطورات في إصدارات YOLO السابقة، قدم YOLOv8 ميزات وتحسينات جديدة تجعله خيارًا مثاليًا لمختلف مهام اكتشاف الكائنات في مجموعة واسعة من التطبيقات.
شاهد: نظرة عامة على نموذج Ultralytics YOLOv8
الميزات الرئيسية لـ YOLOv8
- هياكل خلفية ورقبة متقدمة: تستخدم YOLOv8 أحدث الهياكل الخلفية وهياكل الرقبة، مما يؤدي إلى تحسين استخراج الميزات وأداء الكشف عن الأجسام.
- رأس Ultralytics المنفصل الخالي من المرساة: يعتمد YOLOv8 رأس Ultralytics منفصلًا خاليًا من المرساة، مما يساهم في تحسين الدقة وعملية اكتشاف أكثر كفاءة مقارنةً بالطرق القائمة على المرساة.
- موازنة مُحسَّنة بين الدقة والسرعة: مع التركيز على الحفاظ على توازن مثالي بين الدقة والسرعة، فإن YOLOv8 مناسب لمهام الكشف عن الأجسام في الوقت الفعلي في مجالات تطبيق متنوعة.
- مجموعة متنوعة من النماذج المدربة مسبقًا: يقدم YOLOv8 مجموعة من النماذج المدربة مسبقًا لتلبية مختلف المهام ومتطلبات الأداء، مما يسهل العثور على النموذج المناسب لحالة الاستخدام المحددة.
المهام والأوضاع المدعومة
تقدم سلسلة YOLOv8 مجموعة متنوعة من النماذج، كل منها متخصص في مهام محددة في رؤية الكمبيوتر. تم تصميم هذه النماذج لتلبية المتطلبات المختلفة، من الكشف عن الأجسام إلى المهام الأكثر تعقيدًا مثل تجزئة المثيلات، واكتشاف الوضع/النقاط الرئيسية، واكتشاف الأجسام الموجهة، والتصنيف.
تم تحسين كل نوع من سلسلة YOLOv8 للمهمة الخاصة به، مما يضمن أداءً ودقةً عالية. بالإضافة إلى ذلك، تتوافق هذه النماذج مع أوضاع التشغيل المختلفة بما في ذلك الاستدلال، و التحقق، و التدريب، و التصدير، مما يسهل استخدامها في مراحل مختلفة من النشر والتطوير.
النموذج | أسماء الملفات | المهمة | الاستدلال | التحقق | التدريب | تصدير |
---|---|---|---|---|---|---|
YOLOv8 | yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt |
اكتشاف | ✅ | ✅ | ✅ | ✅ |
YOLOv8-seg | yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt |
تجزئة المثيل | ✅ | ✅ | ✅ | ✅ |
YOLOv8-pose | yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt |
الوضع/النقاط الرئيسية | ✅ | ✅ | ✅ | ✅ |
YOLOv8-obb | yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt |
الكشف الموجه | ✅ | ✅ | ✅ | ✅ |
YOLOv8-cls | yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt |
التصنيف | ✅ | ✅ | ✅ | ✅ |
يقدم هذا الجدول نظرة عامة على متغيرات نموذج YOLOv8، مع تسليط الضوء على قابليتها للتطبيق في مهام محددة وتوافقها مع أوضاع التشغيل المختلفة مثل الاستدلال والتحقق والتدريب والتصدير. إنه يعرض تنوع وقوة سلسلة YOLOv8، مما يجعلها مناسبة لمجموعة متنوعة من التطبيقات في رؤية الكمبيوتر.
مقاييس الأداء
الأداء
راجع وثائق الكشف للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على COCO، والتي تتضمن 80 فئة مُدرَّبة مسبقًا.
النموذج | الحجم (بالبكسل) |
mAPval 50-95 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
راجع وثائق الكشف للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على Open Image V7، والتي تتضمن 600 فئة مُدرَّبة مسبقًا.
النموذج | الحجم (بالبكسل) |
mAPval 50-95 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
راجع وثائق التقسيم للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على COCO، والتي تتضمن 80 فئة مُدرَّبة مسبقًا.
النموذج | الحجم (بالبكسل) |
mAPمربع 50-95 |
mAPقناع 50-95 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-seg | 640 | 36.7 | 30.5 | 96.1 | 1.21 | 3.4 | 12.6 |
YOLOv8s-seg | 640 | 44.6 | 36.8 | 155.7 | 1.47 | 11.8 | 42.6 |
YOLOv8m-seg | 640 | 49.9 | 40.8 | 317.0 | 2.18 | 27.3 | 110.2 |
YOLOv8l-seg | 640 | 52.3 | 42.6 | 572.4 | 2.79 | 46.0 | 220.5 |
YOLOv8x-seg | 640 | 53.4 | 43.4 | 712.1 | 4.02 | 71.8 | 344.1 |
راجع وثائق التصنيف للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على ImageNet، والتي تتضمن 1000 فئة مُدرَّبة مسبقًا.
النموذج | الحجم (بالبكسل) |
acc top1 |
acc top5 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) عند 224 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 69.0 | 88.3 | 12.9 | 0.31 | 2.7 | 0.5 |
YOLOv8s-cls | 224 | 73.8 | 91.7 | 23.4 | 0.35 | 6.4 | 1.7 |
YOLOv8m-cls | 224 | 76.8 | 93.5 | 85.4 | 0.62 | 17.0 | 5.3 |
YOLOv8l-cls | 224 | 76.8 | 93.5 | 163.0 | 0.87 | 37.5 | 12.3 |
YOLOv8x-cls | 224 | 79.0 | 94.6 | 232.0 | 1.01 | 57.4 | 19.0 |
راجع وثائق تقدير الوضعية للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على COCO، والتي تتضمن فئة واحدة مُدرَّبة مسبقًا، 'شخص'.
النموذج | الحجم (بالبكسل) |
mAPpose 50-95 |
mAPpose 50 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
راجع مستندات الكشف الموجه للحصول على أمثلة حول كيفية استخدام هذه النماذج المدربة على DOTAv1، والتي تتضمن 15 فئة مدربة مسبقًا.
النموذج | الحجم (بالبكسل) |
mAPtest 50 |
السرعة وحدة المعالجة المركزية CPU ONNX (بالمللي ثانية) |
السرعة A100 TensorRT (بالمللي ثانية) |
المعلمات (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n-obb | 1024 | 78.0 | 204.77 | 3.57 | 3.1 | 23.3 |
YOLOv8s-obb | 1024 | 79.5 | 424.88 | 4.07 | 11.4 | 76.3 |
YOLOv8m-obb | 1024 | 80.5 | 763.48 | 7.61 | 26.4 | 208.6 |
YOLOv8l-obb | 1024 | 80.7 | 1278.42 | 11.83 | 44.5 | 433.8 |
YOLOv8x-obb | 1024 | 81.36 | 1759.10 | 13.23 | 69.5 | 676.7 |
أمثلة استخدام YOLOv8
يوفر هذا المثال أمثلة بسيطة لتدريب YOLOv8 والاستدلال. للحصول على الوثائق الكاملة حول هذه الأوضاع وغيرها، راجع صفحات وثائق التوقع و التدريب و التقييم و التصدير.
لاحظ أن المثال أدناه خاص بنماذج الكشف عن الكائنات Detect الخاصة بـ YOLOv8. للحصول على مهام إضافية مدعومة، راجع مستندات التقطيع و التصنيف و OBB ومستندات الوضع.
مثال
PyTorch مدربة مسبقًا *.pt
بالإضافة إلى نماذج التهيئة *.yaml
يمكن تمرير الملفات إلى YOLO()
class لإنشاء مثيل نموذج في python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.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 YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
تتوفر أوامر CLI لتشغيل النماذج مباشرة:
# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg
الاقتباسات والشكر والتقدير
منشور Ultralytics YOLOv8
لم تنشر Ultralytics ورقة بحثية رسمية لـ YOLOv8 نظرًا للطبيعة سريعة التطور للنماذج. نحن نركز على تطوير التكنولوجيا وتسهيل استخدامها، بدلاً من إنتاج وثائق ثابتة. للحصول على أحدث المعلومات حول بنية YOLO وميزاته واستخدامه، يرجى الرجوع إلى مستودع GitHub الخاص بنا و الوثائق.
إذا كنت تستخدم نموذج YOLOv8 أو أي برنامج آخر من هذا المستودع في عملك، فيرجى الاستشهاد به باستخدام التنسيق التالي:
@software{yolov8_ultralytics,
author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
title = {Ultralytics YOLOv8},
version = {8.0.0},
year = {2023},
url = {https://github.com/ultralytics/ultralytics},
orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
license = {AGPL-3.0}
}
يرجى ملاحظة أن مُعرِّف الكائن الرقمي (DOI) معلق وسيتم إضافته إلى الاقتباس بمجرد توفره. يتم توفير نماذج YOLOv8 بموجب تراخيص AGPL-3.0 و Enterprise.
الأسئلة الشائعة
ما هو YOLOv8 وكيف يختلف عن إصدارات YOLO السابقة؟
تم تصميم YOLOv8 لتحسين أداء الكشف عن الأجسام في الوقت الفعلي من خلال الميزات المتقدمة. على عكس الإصدارات السابقة، يشتمل YOLOv8 على رأس Ultralytics مقسم وخالي من المرساة، و هياكل العمود الفقري والعنق الحديثة، ويوفر مقايضة مُحسَّنة بين الدقة والسرعة، مما يجعله مثاليًا للتطبيقات المتنوعة. لمزيد من التفاصيل، راجع قسمي النظرة العامة و الميزات الرئيسية.
كيف يمكنني استخدام YOLOv8 لمهام رؤية الكمبيوتر المختلفة؟
يدعم YOLOv8 مجموعة واسعة من مهام رؤية الكمبيوتر، بما في ذلك الكشف عن الكائنات، وتقسيم المثيلات، والكشف عن الوضع/النقاط الرئيسية، والكشف عن الكائنات الموجهة، والتصنيف. تم تحسين كل متغير من النموذج لمهمته المحددة ومتوافق مع أوضاع التشغيل المختلفة مثل الاستدلال و التحقق من الصحة و التدريب و التصدير. ارجع إلى قسم المهام والأوضاع المدعومة لمزيد من المعلومات.
ما هي مقاييس الأداء لنماذج YOLOv8؟
تحقق نماذج YOLOv8 أداءً متطورًا عبر مجموعات بيانات قياسية مختلفة. على سبيل المثال، يحقق نموذج YOLOv8n متوسط الدقة (mAP) يبلغ 37.3 على مجموعة بيانات COCO وسرعة 0.99 مللي ثانية على A100 TensorRT. يمكن العثور على مقاييس الأداء التفصيلية لكل متغير نموذج عبر المهام ومجموعات البيانات المختلفة في قسم مقاييس الأداء.
كيف يمكنني تدريب نموذج YOLOv8؟
يمكن إجراء تدريب نموذج YOLOv8 باستخدام Python أو CLI. فيما يلي أمثلة لتدريب نموذج باستخدام نموذج YOLOv8 المدرب مسبقًا على COCO على مجموعة بيانات COCO8 لعدد 100 حقبة:
مثال
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640
لمزيد من التفاصيل، قم بزيارة وثائق التدريب.
هل يمكنني قياس أداء نماذج YOLOv8؟
نعم، يمكن قياس أداء نماذج YOLOv8 من حيث السرعة والدقة عبر تنسيقات تصدير مختلفة. يمكنك استخدام PyTorch و ONNX و TensorRT والمزيد للقياس. فيما يلي أمثلة لأوامر القياس باستخدام Python و CLI:
مثال
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0
للحصول على معلومات إضافية، تحقق من قسم مقاييس الأداء.