0Pricing
Learn AI with Python · درس

اكتشاف الأجسام باستخدام YOLOv8

‏ultralytics YOLO وmodel.predict() والمربعات المحيطة وتصفية الثقة والتدريب المخصص

اكتشاف الأجسام باستخدام YOLOv8 درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

التصنيف مقابل الاكتشاف

يحدّد تصنيف الصورة ما تحتويه الصورة. أما اكتشاف الكائنات فيتقدم خطوة أخرى: إذ يحدّد مكان كل كائن، ويرسم مربعات إحاطة وتسميات. ويُعدّ YOLO كاشف الوقت الفعلي الأكثر شيوعًا.

ما هو YOLO؟

يكتشف YOLO (You Only Look Once) جميع الكائنات في مرور أمامي واحد، ما يجعله سريعًا بما يكفي لمعالجة الفيديو. ويوفّر YOLOv8 من Ultralytics واجهة Python واضحة للاستدلال والتدريب.

pip install ultralytics

تحميل نموذج مُدرَّب مسبقًا

استوردوا YOLO وحمّلوا نقطة تحقق. إن yolov8n.pt هو نموذج nano، أي صغير جدًا وسريع. وتوازن الإصدارات الأكبر ‏(s وm وl وx) بين السرعة والدقة. وتُنزّل الأوزان تلقائيًا عند الاستخدام الأول.

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

تشغيل الاستدلال

استدعوا model.predict، أو model(image) فقط، على مسار صورة أو عنوان URL أو مصفوفة. ويعيد ذلك قائمة من Results، عنصرًا واحدًا لكل صورة إدخال.

results = model.predict("street.jpg", conf=0.5)

عتبة conf

تحدّد المعلمة conf الحد الأدنى من الثقة اللازمة للاحتفاظ باكتشاف. ارفعوا قيمتها لإسقاط المربعات غير الموثوقة، ما يقلّل الإيجابيات الكاذبة، أو اخفضوها لالتقاط عدد أكبر من الكائنات مع احتمال زيادة الضوضاء.

results = model.predict("street.jpg", conf=0.25)  # more detections
results = model.predict("street.jpg", conf=0.7)   # only confident ones

قراءة المربعات

يحتوي كل ناتج على كائن boxes. وتُعطي boxes.xyxy زوايا مربع الإحاطة بصيغة [x1, y1, x2, y2]، أي إحداثيات البكسلات للزاوية العلوية اليسرى والسفلية اليمنى.

r = results[0]
print(r.boxes.xyxy)  # tensor of [x1, y1, x2, y2] rows

التصنيفات والثقة

إلى جانب المربعات، تحصلون على boxes.cls، وهي فهارس التصنيفات، وعلى boxes.conf، وهي درجات الثقة. اربطوا الفهارس بالأسماء باستخدام model.names.

for box in r.boxes:
    cls_id = int(box.cls)
    conf = float(box.conf)
    name = model.names[cls_id]
    print(name, round(conf, 2))

تصوير النتائج

يعيد results[0].plot() مصفوفة صورة مشروحة رُسمت عليها المربعات والتسميات، وتكون جاهزة للعرض أو الحفظ. وهذا مفيد جدًا للتحقق السريع من الاكتشافات.

annotated = results[0].plot()

import cv2
cv2.imwrite("output.jpg", annotated)

الاكتشاف في الفيديو

مرّروا ملف فيديو أو فهرس كاميرا الويب، وسيعالج YOLO كل إطار. وعند استخدام stream=True، يعيد النتائج إطارًا تلو الآخر، مع الحفاظ على انخفاض استهلاك الذاكرة في مقاطع الفيديو الطويلة.

for result in model.predict("clip.mp4", stream=True):
    boxes = result.boxes
    # process each frame

التدريب المخصّص

لاكتشاف فئات الكائنات الخاصة بكم، درّبوا النموذج على مجموعة بيانات معنونة موصوفة في ملف YAML. استدعوا model.train مع إعدادات البيانات وعدد الحقب وحجم الصورة. ويُجري YOLO ضبطًا دقيقًا للأوزان المُدرَّبة مسبقًا.

model = YOLO("yolov8n.pt")
model.train(
    data="my_dataset.yaml",
    epochs=50,
    imgsz=640
)

ملف YAML للبيانات

يسرد YAML الخاص بمجموعة البيانات مجلدي صور train وval وأسماء التصنيفات. ويتوقع YOLO أن تكون لكل صورة مطابقة لها تحتوي على إحداثيات مربعات مطبّعة لكل كائن.

# my_dataset.yaml
# train: images/train
# val: images/val
# names:
#   0: helmet
#   1: vest

تحقق سريع

اختبروا معرفتكم بـ YOLOv8.

خلاصة: اكتشاف الكائنات باستخدام YOLOv8

حمّلتم كاشفًا مُدرَّبًا مسبقًا باستخدام YOLO("yolov8n.pt")، وشغّلتم model.predict(img, conf=0.5)، وقرأتم الاكتشافات من results[0].boxes.xyxy و.cls و.conf. وصوّرتم النتائج باستخدام results[0].plot()، وأجريتم ضبطًا دقيقًا لفئات مخصّصة عبر model.train باستخدام YAML للبيانات.

الأسئلة الشائعة

هل درس «اكتشاف الأجسام باستخدام YOLOv8» مجاني؟

نعم — نص درس «اكتشاف الأجسام باستخدام YOLOv8» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «اكتشاف الأجسام باستخدام YOLOv8»؟

‏ultralytics YOLO وmodel.predict() والمربعات المحيطة وتصفية الثقة والتدريب المخصص تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «اكتشاف الأجسام باستخدام YOLOv8»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. موترات PyTorch وAutograd
  2. مجموعات البيانات ومحملات البيانات المخصصة
  3. بناء شبكات CNN وتدريبها في PyTorch
  4. اكتشاف الأجسام باستخدام YOLOv8
← العودة إلى Learn AI with Python