ما هو YOLOv8
الميزات الرئيسة يميز YOLOv8 عدة ميزات وهي:
1.
بنيتها المحسنة (Enhanced Backbone
Architecture): يستفيد YOLOv8 من أحدث الهياكل الأساسية مثل EfficientNet وCSPDarknet53
لاستخراج الميزات من الصور بكفاءة، حيث يمكّنه من التقاط السياق (capture context)
والملمس (texture) والأنماط المرئية المعقدة (Complex Visual Patterns) بشكل أفضل،
مما يعزز دقة اكتشافه وتصنيفه.
2.
التعلم متعدد المهام
(Multi-Task
Learning): على عكس سابقاتها من الإصدارات التي ركزت بشكل أساسي على اكتشاف
الكائنات، يوسع YOLOv8 قدراته لتشمل تجزئة الكائنات وتصنيف الصور. هذا يسمح لإطار العمل
بتحديد حدود الكائنات مع التعرف على فئات الكائنات وتصنيفها في نفس الوقت.
3.
التدريب التكيفي (Adaptive Training): يدمج
YOLOv8
استراتيجية تدريب ديناميكية تقوم بضبط المعلمات الفائقة (hyperparameters) أثناء
عملية التعلم. يساعد هذا النهج التكيفي النموذج على التقارب بشكل أسرع وتحقيق
تعميم أفضل، مما يجعله أكثر تنوعًا عبر مجموعات البيانات والسيناريوهات المختلفة.
4.
الاستدلال الفعال (Efficient Inference): يركز
YOLOv8 بشدة
على الأداء في الوقت الفعلي دون المساس بالدقة. من خلال استخدام تقنيات مثل تقليم
النموذج (model Pruning)، والتكميم (Quantization)، ومحركات الاستدلال
المحسّنة (optimized inference engines)، يحقق الإطار سرعة مذهلة دون التضحية بقدرته على اكتشاف الأشياء
وتصنيفها بدقة.
نماذج YOLOv8 (YOLOv8 Models)
في YOLOv8، هناك خمسة نماذج مختلفة متاحة لكل فئة من فئات الكشف والتجزئة والتصنيف. YOLOv8 Nano هو أصغر وأسرع موديل ، في حين أن YOLOv8 Extra Large (YOLOv8x) هو الأبطأ والأكثر دقة من بينها.
تم تدريب نقاط فحص (checkpoints) اكتشاف الكائنات على مجموعة بيانات اكتشاف COCO بدقة صورة تبلغ 640. تم تدريب نقاط فحص تجزئة المثيل (Instance segmentation) على مجموعة بيانات تجزئة COCO بدقة صورة تبلغ 640.
نماذج تصنيف الصور التي تم اختبارها مسبقًا على مجموعة بيانات ImageNet بدقة صورة تبلغ 224.
كيفية البدء باستخدام YOLOv8 وما هي مميزاتها وقدراتها؟
–
التثبيت (Setup):
تأكد من تنزيل مكتبة ultralytics من
خلال الكود التالي:
%pip install ultralytics
import ultralytics
ultralytics.checks()
1.
التنبؤ / التوقع (Predict):
يمكن استخدام YOLOv8 مباشرة
في واجهة سطر الأوامر (CLI) باستخدام أمر yolo لمجموعة متنوعة من المهام والأوضاع ويقبل الـ arguments
الإضافية، مثل imgsz = 640. اطلع على القائمة الكاملة لجميع الـ arguments الخاصة
بـ yolo
المتاحة والتفاصيل الأخرى في YOLOv8 Predict Docs.
# Run inference on an image with YOLOv8n
!yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg'
2.
التحقق (Validate):
تحقق من دقة النموذج
على مجموعة بيانات COCO أو تجزئة الاختبار (test splits). يتم تنزيل أحدث إصدارات YOLOv8
تلقائيًا في المرة الأولى التي يتم استخدامها فيها. راجع YOLOv8 Val Docs لمزيد
من المعلومات.
# Download COCO val
import torch
torch.hub.download_url_to_file('https://ultralytics.com/assets/coco2017val.zip', 'tmp.zip') # download (780M - 5000 images)
!unzip -q tmp.zip -d datasets && rm tmp.zip # unzip
# Validate YOLOv8n on COCO8 val
!yolo val model=yolov8n.pt data=coco8.yaml
3.
التدريب (Train):
تدريب YOLOv8 على
مجموعات بيانات الاكتشاف (Detect) والتقسيم (Segment) والتصنيف (Classify) والحركة (Pose). انظر
YOLOv8
Train Docs لمزيد من المعلومات.
# Train YOLOv8n on COCO8 for 3 epochs
!yolo train model=yolov8n.pt data=coco8.yaml epochs=3 imgsz=640
4. التصدير (Export):
قم بتصدير نموذج YOLOv8 إلى أي تنسيق مدعوم أدناه باستخدام argument ال format، مثل: format = onnx.
تصدير إلى ONNX أو OpenVINO لتسريع وحدة المعالجة المركزية حتى 3x.
تصدير إلى TensorRT لتسريع GPU حتى 5 أضعاف.
!yolo export model=yolov8n.pt format=torchscript
5.
استخدام بايثون (Python Usage):
تم إعادة تصور YOLOv8
باستخدام مبادئ Python-first للحصول على تجربة خاصة بـ Python YOLO أكثر سلاسة حتى الآن. يمكن
تحميل نماذج YOLOv8 من نقطة فحص (checkpoint) مدربة أو إنشائها من نقطة
الصفر. ثم تُستخدم الطرق لتدريب النموذج وفحصه والتنبؤ به وتصديره.
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.yaml') # build a new model from scratch
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
# Use the model
results = model.train(data='coco128.yaml', epochs=3) # train the model
results = model.val() # evaluate model performance on the validation set
results = model('https://ultralytics.com/images/bus.jpg') # predict on an image
results = model.export(format='onnx') # export the model to ONNX format
أ)
الاكتشاف (Detection):
لا تحتوي نماذج الكشف عن YOLOv8 على لاحقة وهي نماذج YOLOv8 الافتراضية، ويكون الاسم مثل: yolov8n.pt ويتم
تدريبها مسبقًا على COCO.
# Load YOLOv8n, train it on COCO128 for 3 epochs and predict an image with it
from ultralytics import YOLO
model = YOLO('yolov8n.pt') # load a pretrained YOLOv8n detection model
model.train(data='coco128.yaml', epochs=3) # train the model
model('https://ultralytics.com/images/bus.jpg') # predict on an image
ب)
التجزئة (Segmentation):
تستخدم
نماذج تجزئة YOLOv8 اللاحقة –seg ، ويكون الاسم بهذه الطريقة yolov8n-seg.pt ويتم
تدريبها مسبقًا على COCO.
# Load YOLOv8n-seg, train it on COCO128-seg for 3 epochs and predict an image with it
from ultralytics import YOLO
model = YOLO('yolov8n-seg.pt') # load a pretrained YOLOv8n segmentation model
model.train(data='coco128-seg.yaml', epochs=3) # train the model
model('https://ultralytics.com/images/bus.jpg') # predict on an image
ت)
التصنيف (Classification):
تستخدم نماذج تصنيف YOLOv8 اللاحقة –cls ، ويكون الاسم مثل: yolov8n-cls.pt ويتم تدريبها مسبقًا على ImageNet.
# Load YOLOv8n-cls, train it on mnist160 for 3 epochs and predict an image with it
from ultralytics import YOLO
model = YOLO('yolov8n-cls.pt') # load a pretrained YOLOv8n classification model
model.train(data='mnist160', epochs=3) # train the model
model('https://ultralytics.com/images/bus.jpg') # predict on an image
ث)
الحركة (Pose):
تستخدم نماذج وضع YOLOv8 اللاحقة –pose، ويكون مثل: yolov8n-pose.pt ويتم تدريبها مسبقًا على النقاط
الأساسية (Keypoints) COCO.
# Load YOLOv8n-pose, train it on COCO8-pose for 3 epochs and predict an image with it
from ultralytics import YOLO
model = YOLO('yolov8n-pose.pt') # load a pretrained YOLOv8n classification model
model.train(data='coco8-pose.yaml', epochs=3) # train the model
model('https://ultralytics.com/images/bus.jpg') # predict on an image
الخاتمة:
المصادر:
Author
-
مختص ذكاء اصطناعي وعلم بيانات، محاضر جامعي في جامعة الاسراء - غزة، حاصل على درجة الماجستير في الذكاء الاصطناعي وعلم البيانات، شريك مؤسس في مجتمع أكايا العربي لنهج الذكاء الاصطناعي
View all posts