YOLO
YOLO (You Only Look Once)
الكشف في تمريرة واحدة: فكرة الشبكة، والمخرجات، والتطور، والتدريب على بيانات مخصصة.
الفكرة الأصلية
- تقسم الصورة إلى شبكة \(S \times S\).
- كل خلية مسؤولة عن الأجسام التي يقع مركزها فيها.
- تتنبأ كل خلية بـ \(B\) مربعات \((x, y, w, h, \text{confidence})\) واحتمالات \(C\) فئات.
- المخرج موتر بحجم \(S \times S \times (B \cdot 5 + C)\)؛ في الورقة الأصلية \(S=7, B=2, C=20\).
- تُطبق عتبة ثقة ثم NMS.
التطور
- إضافة صناديق المراسي والتطبيع الدفعي.
- التنبؤ على عدة مقاييس لتحسين كشف الأجسام الصغيرة (YOLOv3).
- تصاميم لاحقة من فرق مختلفة أضافت تحسينات في العمود الفقري وزيادة البيانات وتصاميم دون مراسٍ.
أرقام الإصدارات بعد v3 تصدر عن جهات مختلفة، فراجع ورقة كل إصدار وترخيصه قبل الاستخدام.
صيغة التسميات
لكل صورة ملف نصي، كل سطر جسم واحد بإحداثيات مطبَّعة بين 0 و1:
<class_id> <x_center> <y_center> <width> <height>
0 0.512 0.430 0.210 0.380مثال باستخدام مكتبة Ultralytics
pip install ultralytics
from ultralytics import YOLO
model = YOLO("yolov8n.pt") # أوزان صغيرة مدربة على COCO (تُنزَّل عند أول استخدام)
results = model("street.jpg", conf=0.5)
for r in results:
print(r.boxes.xyxy, r.boxes.cls, r.boxes.conf)
# تدريب على بيانات مخصصة يصفها ملف data.yaml (مسارات الصور وأسماء الفئات)
model.train(data="data.yaml", epochs=50, imgsz=640)
metrics = model.val() # يحسب mAPتخضع مكتبة Ultralytics لترخيص AGPL-3.0 أو ترخيص تجاري؛ تحقق من توافق الترخيص مع مشروعك.
نصائح عملية
- اجمع صوراً تمثل ظروف التشغيل الحقيقية (إضاءة، زوايا، مسافات).
- تحقق من جودة التسميات؛ المربعات غير الدقيقة تحد من الأداء.
- قيّم على بيانات منفصلة تماماً، ولاحظ الأداء على الأجسام الصغيرة بشكل خاص.
مصطلحات الدرس
- الاستدلال في الزمن الحقيقي Real-time Inference
- معالجة الإطارات بسرعة تواكب معدل الفيديو، مثل 30 إطاراً في الثانية.
- الكاشف أحادي المرحلة One-Stage Detector
- كاشف يتنبأ بالمربعات والفئات مباشرة من خرائط السمات في تمريرة واحدة دون مرحلة اقتراح مناطق منفصلة.
- صندوق المرساة Anchor Box
- مربع مرجعي بأبعاد محددة مسبقاً يتنبأ الكاشف بالإزاحات بالنسبة إليه.
الملخص
قدّم Redmon وزملاؤه YOLO عام 2015 كاشفاً يعامل الكشف كمسألة انحدار واحدة: تقسم الشبكة الصورة إلى شبكة خلايا، وتتنبأ كل خلية بمربعات ودرجات ثقة واحتمالات فئات في تمريرة واحدة، ما يتيح الكشف في الزمن الحقيقي. تطورت العائلة بإصدارات متعددة أضافت المراسي والتنبؤ متعدد المقاييس ثم التصاميم دون مراسٍ. تتطلب البيانات المخصصة تسميات بصيغة YOLO وتقييماً بمقياس mAP.
أسئلة مراجعة
-
ما الذي تتنبأ به كل خلية في YOLO الأصلي؟
عدد من المربعات مع درجات ثقتها، واحتمالات الفئات للخلية.
-
لماذا يعد YOLO أسرع من Faster R-CNN عادة؟
لأنه يتنبأ بكل الكشوفات في تمريرة واحدة دون مرحلة اقتراح مناطق ثم تصنيفها.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة