Ultralytics YOLO27:
Get Started

رؤى حول تقييم النموذج وضبطه بدقة#

بعد تدريب نموذج YOLO، تتمثل الخطوة التالية في قياس مستوى أدائه وضبطه بدقة لسد الفجوات. يستخدم التقييم مقاييس مثل mAP وIoU لتحديد الدقة كميًا، بينما يضبط الضبط الدقيق معلمات التدريب لتعزيز نقاط الضعف، كي يحقق النموذج هدف مشروعك. يشرح هذا الدليل مقاييس التقييم الأساسية، وكيفية قراءتها، وكيفية الاستفادة مما توضحه.



شاهد: رؤى حول تقييم النماذج وضبطها الدقيق | نصائح لتحسين متوسط الدقة

يأتي التقييم والضبط الدقيق قرب نهاية سير عمل مشروع الرؤية الحاسوبية، بعد بدء التدريب وعندما تحتاج إلى التحقق من أن النموذج دقيق وفعّال وجاهز للنشر.

مقاييس التقييم الأساسية#

تقيس مقاييس متنوعة مدى فعالية أداء النموذج. وتوفّر مقاييس الأداء هذه رؤى رقمية واضحة توجّه التحسينات لضمان تحقيق النموذج لأهدافه المقصودة.

درجة الثقة#

تمثل درجة الثقة مدى يقين النموذج من أن كائنًا مكتشفًا ينتمي إلى فئة معينة. وتتراوح بين 0 و1، وتشير الدرجات الأعلى إلى ثقة أكبر. وتساعد درجة الثقة على تصفية التنبؤات؛ فلا تُعد صالحة إلا الاكتشافات التي تتجاوز درجات ثقتها عتبة محددة.

لا ترى أي تنبؤات؟

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

التقاطع على الاتحاد#

التقاطع على الاتحاد Intersection over Union (IoU) مقياس في اكتشاف الكائنات يقيس مدى تداخل المربع المحيط المتنبأ به مع مربع الحقيقة الأساسية. وتتراوح قيم IoU بين 0 و1، حيث تشير القيمة 1 إلى تطابق تام. ويُعد IoU أساسيًا لأنه يقيس مدى تطابق الحدود المتنبأ بها مع الحدود الفعلية للكائن.

Intersection over Union Overview

متوسط الدقة#

يقيس متوسط الدقة (mAP) الأداء الإجمالي لنموذج اكتشاف الكائنات. فهو يحسب دقة اكتشاف كل فئة من الكائنات، ويحسب متوسط هذه الدرجات، ثم يعطي رقمًا واحدًا يوضح مدى دقة النموذج في تحديد الكائنات وتصنيفها.

يشيع الإبلاغ عن مقياسي mAP التاليين:

  • mAP@.5: يقيس متوسط الدقة عند عتبة IoU واحدة مقدارها 0.5. ويتحقق هذا المقياس مما إذا كان النموذج قادرًا على العثور على الكائنات بشكل صحيح وفق متطلب أقل صرامة للدقة. ويركز على ما إذا كان الكائن في موضعه الصحيح تقريبًا، دون اشتراط تحديد موضعه بدقة تامة، ويساعد على معرفة ما إذا كان النموذج جيدًا عمومًا في اكتشاف الكائنات.
  • mAP@.5:.95: يحسب متوسط قيم mAP المحسوبة عند عتبات IoU متعددة، من 0.5 إلى 0.95 بزيادات قدرها 0.05. وهذا المقياس أكثر تفصيلًا وصرامة. ويعطي صورة أشمل عن دقة النموذج في العثور على الكائنات عند مستويات مختلفة من الصرامة، ويفيد خصوصًا في التطبيقات التي تتطلب اكتشافًا دقيقًا للكائنات.

تشمل مقاييس mAP الأخرى mAP@0.75، الذي يستخدم عتبة IoU أكثر صرامة مقدارها 0.75، وmAP@small وmAP@medium وmAP@large، التي تقيّم الدقة للكائنات ذات الأحجام المختلفة.

Mean average precision mAP metric

تقييم نموذج YOLO26#

يمكنك تقييم نموذج YOLO26 مُدرَّب باستخدام وضع التحقق. وللاطلاع بتعمق أكبر على كيفية حساب كل مقياس وتفسيره، راجع دليل مقاييس أداء YOLO26.

التعامل مع أحجام الصور المتغيرة#

يساعدك تقييم النموذج على صور بأحجام مختلفة على فهم أدائه على مجموعات بيانات متنوعة. يستخدم التحقق افتراضيًا تجميع الدفعات المستطيلة (rect=True في model.val()): إذ يجمع الصور حسب نسبة العرض إلى الارتفاع ويضيف حشوًا لكل دفعة لتلائم أصغر أبعاد ممكنة، بحيث تُقيّم الصور المستطيلة دون إجبارها على اتخاذ شكل مربع.

تحدّد المعلمة imgsz حجم الصورة المستخدم أثناء التحقق، ويُطبَّق كحجم مربع. وإذا لم تحدده صراحةً، يعيد YOLO26 استخدام القيمة المحفوظة في إعدادات النموذج (640 للنماذج الرسمية المدربة مسبقًا، أو أي حجم دُرّبت عليه نقطة تحقق مخصصة). باستخدام rect=true، يقيّد YOLO26 الضلع الأطول ليكون imgsz، ويضيف حشوًا إلى الضلع الأقصر ليكون من مضاعفات الخطوة، مع الحفاظ على نسبة العرض إلى الارتفاع. اضبط imgsz وفقًا لأبعاد مجموعة بياناتك والذاكرة المتاحة لوحدة GPU.

الوصول إلى مقاييس YOLO26#

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

الاستخدام
from ultralytics import YOLO

# ⁨تحميل نموذج⁩
model = YOLO("yolo26n.pt")

# ⁨تشغيل التحقق على مجموعة البيانات⁩
results = model.val(data="coco8.yaml")

# ⁨المقاييس الإجمالية⁩
print("mAP50-95:", results.box.map)  # ⁨mAP عند IoU ‏0.50:0.95⁩
print("mAP50:", results.box.map50)  # ⁨mAP عند IoU ‏0.50⁩
print("mAP75:", results.box.map75)  # ⁨mAP عند IoU ‏0.75⁩
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # ⁨الدرجة الموزونة المستخدمة لاختيار النموذج⁩

# ⁨المقاييس لكل فئة⁩
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# ⁨الدقة والاستدعاء وF1 وTP وFP وFN لكل صورة⁩
print("Per-image metrics:", results.box.image_metrics)

# ⁨تفصيل التوقيت لكل مرحلة بالمللي ثانية لكل صورة⁩
print("Timing breakdown (ms/image):", results.speed)

لاحظ أن fitness() دالة ويجب استدعاؤها باستخدام الأقواس، بينما المقاييس مثل map وmap50 وmp خصائص يمكن الوصول إليها مباشرة.

السمة results.box.image_metrics عبارة عن قاموس لكل صورة، مفهرس باسم ملف الصورة، ويحتوي على precision وrecall وf1 وtp وfp وfn عند IoU ‏0.5 لكل صورة. وتُعرض أزمنة المعالجة المسبقة والاستدلال والخسارة والمعالجة اللاحقة كلٌّ على حدة في القاموس results.speed. وتتيح هذه المعلومات مجتمعةً تحديد الصور التي يواجه النموذج صعوبة فيها وضبطه وفقًا لذلك.

ضبط النموذج بدقة#

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

تقسيم الصور إلى رقع لاكتشاف الأجسام الصغيرة#

يمكن أن يؤدي تقسيم الصور إلى رقع إلى تحسين دقة اكتشاف الأجسام الصغيرة. إذ يحافظ تقسيم الصور الأكبر إلى أجزاء أصغر، مثل تقسيم الصور بحجم 1280x1280 إلى عدة أجزاء بحجم 640x640، على الدقة الأصلية ويتيح للنموذج التعلم من أجزاء عالية الدقة. تدعم Ultralytics ذلك وقت الاستدلال عبر الاستدلال باستخدام رقع SAHI. وعند التدريب على صور مقسمة إلى رقع، تأكد من ضبط التسميات لكل جزء جديد على نحو صحيح.

الخلاصة#

يحوّل التقييم والضبط الدقيق النموذج المدرّب إلى نموذج موثوق وقابل للنشر: فالمقاييس مثل mAP وIoU تكشف مواطن الضعف، وتعالجها التغييرات الموجّهة للمعلمات. ابدأ باستخدام وضع التحقق لقياس أداء النموذج، ثم أعد تدريبه باستخدام الوسائط المشمولة في دليل الضبط الدقيق، وواصل التكرار باستخدام معلمات وتقنيات ومجموعات بيانات جديدة. وإذا راودتك أسئلة خلال ذلك، فاطرحها على المجتمع في مستودع Ultralytics على GitHub أو خادم Ultralytics على Discord.

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

  • تشمل المقاييس المهمة لتقييم أداء نموذج YOLO26 درجة الثقة، والتقاطع على الاتحاد (IoU)، ومتوسط الدقة المتوسطة (mAP). تقيس درجة الثقة مدى يقين النموذج بشأن فئة كل جسم يكتشفه. ويقيّم IoU مدى تداخل صندوق الإحاطة المتوقع مع الحقيقة الأرضية. ويجمع mAP درجات الدقة عبر الفئات، ويُعد mAP@.5 وmAP@.5:.95 نوعين شائعين عند استخدام عتبات IoU مختلفة. تعرّف على المزيد حول هذه المقاييس في دليل مقاييس أداء YOLO26.

  • يتضمن ضبط نموذج YOLO26 مدرّب مسبقًا تعديل معلماته لتحسين أدائه في مهمة أو مجموعة بيانات محددة. ابدأ بتقييم النموذج باستخدام المقاييس، ثم أعد تدريبه على مجموعة بياناتك باستخدام الأوزان المدرّبة مسبقًا. أثناء التقييم، تساعد معلمات مثل rect=true على التعامل بفاعلية مع أحجام الصور المتنوعة. للاطلاع على وسائط التدريب التي ينبغي تعديلها، راجع دليل الضبط الدقيق.

  • للتعامل مع أحجام الصور المتغيرة أثناء التقييم، استخدم التحقق المستطيل (rect=True، وهو الإعداد الافتراضي لـ model.val())، إذ يجمع الصور حسب نسبة العرض إلى الارتفاع ويضيف الحشو إلى كل دفعة بدلًا من فرض شكل مربع على كل صورة. وتحدد المعلمة imgsz حجم الصورة للتحقق؛ وإذا لم تغيّر هذه المعلمة، فسيستخدم YOLO26 القيمة المحفوظة في النموذج (640 للنماذج الرسمية المدرّبة مسبقًا). اضبط imgsz بما يناسب مجموعة بياناتك وذاكرة GPU. لمزيد من التفاصيل، تفضل بزيارة القسم الخاص بالتعامل مع أحجام الصور المتغيرة.

  • يتطلب تحسين متوسط الدقة المتوسطة (mAP) لنموذج YOLO26 اتباع عدة خطوات:

    1. ضبط المعلمات الفائقة: جرّب معدلات تعلم وأحجام دفعات مختلفة، بالإضافة إلى عمليات تحسين الصور.
    2. تحسين البيانات: استخدم تقنيات مثل Mosaic وMixUp لإنشاء عينات تدريب متنوعة.
    3. تقسيم الصور إلى رقع: قسّم الصور الأكبر إلى رقع أصغر لتحسين دقة اكتشاف الأجسام الصغيرة.

    للاطلاع على وسائط التدريب المرتبطة بالخطوتين 1 و2، راجع دليل الضبط الدقيق؛ أما الخطوة 3 فتناولها صفحة تقسيم الصور إلى رقع.

  • يمكنك الوصول إلى مقاييس تقييم نموذج YOLO26 باستخدام Python بعد تشغيل التحقق:

    الاستخدام
    from ultralytics import YOLO
    
    # ⁨تحميل نموذج⁩
    model = YOLO("yolo26n.pt")
    
    # ⁨تشغيل التحقق⁩
    results = model.val(data="coco8.yaml")
    
    # ⁨الوصول إلى المقاييس الرئيسية⁩
    print("Mean average precision at IoU=0.50:", results.box.map50)
    print("Mean average precision at IoU=0.50:0.95:", results.box.map)
    print("Mean recall:", results.box.mr)
    print("Class indices evaluated:", results.box.ap_class_index)

    يساعدك تحليل هذه المقاييس على ضبط نموذج YOLO26 وتحسينه. ولمزيد من التعمق، اطلع على دليلنا حول مقاييس أداء YOLO.

التعليقات