YOLOv8: إطار شامل لاكتشاف الكائنات وتجزئة المثيلات وتصنيف الصور

في المشهد المتطور باستمرار لرؤية الحاسوب (computer vision)، فإن الإبداع المستمر في مجال الذكاء الاصطناعي يوسع حدود ما يمكن للآلات إدراكه وفهمه. أحد هذه الابتكارات هو YOLOv8، وهو إطار متطور يجمع بين اكتشاف الكائنات وتجزئة المثيلات وتصنيف الصور في حزمة شاملة وفعالة. ينجح نموذج YOLOv8 في تحقيق المعالجة المرئية الآنية وبدقة عالية. ما هو YOLOv8 […]

شارك هذا المنشور

في المشهد المتطور باستمرار لرؤية الحاسوب (computer vision)، فإن الإبداع المستمر في مجال الذكاء الاصطناعي يوسع حدود ما يمكن للآلات إدراكه وفهمه. أحد هذه الابتكارات هو YOLOv8، وهو إطار متطور يجمع بين اكتشاف الكائنات وتجزئة المثيلات وتصنيف الصور في حزمة شاملة وفعالة. ينجح نموذج YOLOv8 في تحقيق المعالجة المرئية الآنية وبدقة عالية.

ما هو YOLOv8

YOLO (You Only Look Once) هي مجموعة من نماذج اكتشاف الأشياء في الوقت الفعلي التي حظيت باهتمام كبير منذ إنشائها. إطار عمل YOLOv8 هو تتويج للتطورات التي تعالج قيود الإصدارات السابقة مع تقديم إمكانات جديدة. يحافظ النموذج على فلسفة معالجة الصورة بلقطة الواحدة، مما يعني أنه يعالج الصورة بأكملها مرة واحدة للتنبؤ بالمستطيلات المحيطة (Bounding Boxes) واحتمالات الفئة (Class Probabilities) وأقنعة الكائن (instance masks) لكائنات متعددة. يعتبر YOLOv8 أحدث نسخة لنموذج YOLO الشهير التابع لشركة ألتراليتكس (Ultralytics)، وهو مصمم لاكتشاف الكائنات وتجزئة الصور بشكل فعال ودقيق. يمكن تدريب يولو8 على مجموعات بيانات كبيرة ويعمل بشكل جيد على العديد من منصات الأجهزة (hardware platforms)، سواء وحدات المعالجة المركزية (CPUs) أو وحدات معالجة الرسومات (GPUs). مقارنة بالإصدارات الأخرى من النموذج، تم إجراء تحسينات كبيرة في أدائه من حيث السرعة والدقة والهندسة المعمارية. أسرع وأكثر دقة من (YOLOv7)، وصلت إلى مستوى مرتفع جديد بمتوسط درجة دقة (MAP) بلغ 53.7.

الميزات الرئيسة يميز 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

				
			

6.     المهام (Tasks):

يمكن لـ YOLOv8 تدريب النماذج وتقييمها والتنبؤ بها وتصديرها للمهام الأكثر شيوعًا في الرؤية AI: الكشف والتقسيم والتصنيف والحركة.

أ‌)        الاكتشاف (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

				
			

الخاتمة:

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

المصادر:

Author

  • عبدالرحمن المصري

    مختص ذكاء اصطناعي وعلم بيانات، محاضر جامعي في جامعة الاسراء - غزة، حاصل على درجة الماجستير في الذكاء الاصطناعي وعلم البيانات، شريك مؤسس في مجتمع أكايا العربي لنهج الذكاء الاصطناعي

    View all posts

الدروس:

Uncategorized

الدرس الرابع | التعرف على الوجوه

الدرس الرابع: التعرف على الوجوه محتويات هذا الدرس: خوارزمية هاار التتالي تطبيق عملي: تحديد الوجوه على صورة تطبيق عملي: تحديد الوجوه على فيديو الدروس الأخرى

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

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى Author نور عمار

دورات أخرى:

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

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى Author نور عمار

Uncategorized

الدرس الثاني | مساحات الألوان في الصورة

الدرس الثاني: مساحات الألوان في الصورة محتويات هذا الدرس: مساحات ألوان الصورة شرح مبادئ الألوان في الصور تحويل الألوان بين الصور تحويل الصورة الملونة إلى