تخطي إلى المحتوى

التحقق من صحة النموذج باستخدام Ultralytics YOLO

النظام البيئي Ultralytics YOLO وعمليات التكامل

مقدمة

التحقق من الصحة هو خطوة حاسمة في مسار التعلم الآلي، مما يسمح لك بتقييم جودة النماذج المدربة الخاصة بك. يوفر وضع Val في Ultralytics YOLO11 مجموعة قوية من الأدوات والمقاييس لتقييم أداء نماذج اكتشاف الكائنات الخاصة بك. يعمل هذا الدليل كمورد كامل لفهم كيفية استخدام وضع Val بشكل فعال لضمان أن نماذجك دقيقة وموثوقة.



شاهد: Ultralytics Modes Tutorial: Validation

لماذا التحقق من الصحة باستخدام Ultralytics YOLO؟

إليك سبب كون استخدام وضع Val الخاص بـ YOLO11 مفيدًا:

  • الدقة: احصل على مقاييس دقيقة مثل mAP50 و mAP75 و mAP50-95 لتقييم نموذجك بشكل شامل.
  • سهولة الاستخدام: استخدم الميزات المضمنة التي تتذكر إعدادات التدريب، مما يبسط عملية التحقق.
  • المرونة: تحقق من صحة النموذج الخاص بك باستخدام نفس مجموعات البيانات وأحجام الصور أو مجموعات بيانات وأحجام صور مختلفة.
  • ضبط المعلمات الفائقة: استخدم مقاييس التحقق لضبط النموذج الخاص بك للحصول على أداء أفضل.

الميزات الرئيسية لوضع Val

هذه هي الوظائف البارزة التي يوفرها وضع Val الخاص بـ YOLO11:

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

نصيحة

  • تتذكر نماذج YOLO11 تلقائيًا إعدادات التدريب الخاصة بها، بحيث يمكنك التحقق من صحة النموذج بنفس حجم الصورة وعلى مجموعة البيانات الأصلية بسهولة باستخدام yolo val model=yolo11n.pt أو model('yolo11n.pt').val()

أمثلة الاستخدام

التحقق من صحة نموذج YOLO11n المدرب الدقة على مجموعة بيانات COCO8. لا توجد حاجة إلى وسائط حيث أن model يحتفظ بالتدريب الخاص به data والوسائط كسمات للنموذج. راجع قسم الوسائط أدناه للحصول على قائمة كاملة بوسائط التحقق.

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

حجج للتحقق من صحة نموذج YOLO

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

الوسيطة النوع افتراضي الوصف
data str None يحدد المسار إلى ملف تكوين مجموعة البيانات (على سبيل المثال، coco8.yaml). يتضمن هذا الملف مسارات إلى بيانات التحققوأسماء الفئات وعدد الفئات.
imgsz int 640 يحدد حجم الصور المدخلة. يتم تغيير حجم جميع الصور إلى هذا البعد قبل المعالجة. قد تؤدي الأحجام الأكبر إلى تحسين الدقة للأجسام الصغيرة ولكنها تزيد من وقت الحساب.
batch int 16 يحدد عدد الصور لكل دفعة. القيم الأعلى تستخدم ذاكرة GPU بكفاءة أكبر ولكنها تتطلب المزيد من VRAM. اضبط بناءً على موارد الأجهزة المتاحة.
save_json bool False إذا True، لحفظ النتائج في ملف JSON لمزيد من التحليل أو التكامل مع الأدوات الأخرى أو الإرسال إلى خوادم التقييم مثل COCO.
conf float 0.001 يحدد الحد الأدنى لعتبة الثقة للكشف. القيم الأقل تزيد من الاسترجاع ولكن قد تدخل المزيد من الإيجابيات الخاطئة. يستخدم أثناء التحقق لحساب منحنيات الدقة والاسترجاع.
iou float 0.7 يحدد عتبة تقاطع الاتحاد لـ منع القمع الأقصى. يتحكم في إزالة الاكتشافات المكررة.
max_det int 300 يحد من الحد الأقصى لعدد الاكتشافات لكل صورة. مفيد في المشاهد المزدحمة لمنع الاكتشافات المفرطة وإدارة الموارد الحسابية.
half bool True يتيح حساب نصف الدقة (FP16)، مما يقلل من استخدام الذاكرة ويزيد السرعة المحتملة مع الحد الأدنى من التأثير على الدقة.
device str None يحدد الجهاز للتحقق (cpu, cuda:0، إلخ). عندما None، يختار تلقائيًا أفضل جهاز متاح. يمكن تحديد عدة أجهزة CUDA بفصلها بفواصل.
dnn bool False إذا True، يستخدم OpenCV وحدة DNN للاستدلال بنموذج ONNX، مما يوفر بديلاً لـ PyTorch طرق الاستدلال.
plots bool False عند الضبط على True، يقوم بإنشاء وحفظ مخططات للتنبؤات مقابل الحقائق الأساسية، ومصفوفات الالتباس، ومنحنيات PR للتقييم البصري لأداء النموذج.
classes list[int] None يحدد قائمة بمعرفات الفئات للتدريب عليها. مفيد لتصفية والتركيز فقط على فئات معينة أثناء التقييم.
rect bool True إذا True، يستخدم الاستدلال المستطيل للتقسيم على دفعات، مما يقلل من الحشو ويزيد السرعة والكفاءة المحتملة عن طريق معالجة الصور في نسبة العرض إلى الارتفاع الأصلية.
split str 'val' يحدد تقسيم مجموعة البيانات المراد استخدامها للتحقق (val, test، أو train). يتيح المرونة في اختيار جزء البيانات لتقييم الأداء.
project str None اسم دليل المشروع حيث يتم حفظ مخرجات التحقق. يساعد في تنظيم النتائج من التجارب أو النماذج المختلفة.
name str None اسم تشغيل التحقق. يُستخدم لإنشاء دليل فرعي داخل مجلد المشروع، حيث يتم تخزين سجلات ومخرجات التحقق.
verbose bool False إذا True، يعرض معلومات مفصلة أثناء عملية التحقق، بما في ذلك مقاييس لكل فئة، وتقدم الدُفعات، ومعلومات تصحيح الأخطاء إضافية.
save_txt bool False إذا True، لحفظ نتائج الكشف في ملفات نصية، مع ملف واحد لكل صورة، وهو أمر مفيد لمزيد من التحليل أو المعالجة اللاحقة المخصصة أو التكامل مع الأنظمة الأخرى.
save_conf bool False إذا True، يتضمن قيم الثقة في ملفات النصوص المحفوظة عندما save_txt ممكن، مما يوفر إخراجًا أكثر تفصيلاً للتحليل والتصفية.
workers int 8 عدد سلاسل العمليات العاملة لتحميل البيانات. القيم الأعلى يمكن أن تسرع معالجة البيانات ولكن قد تزيد من استخدام وحدة المعالجة المركزية CPU. الضبط على 0 يستخدم السلسلة الرئيسية، والتي يمكن أن تكون أكثر استقرارًا في بعض البيئات.
augment bool False تمكين زيادة وقت الاختبار (TTA) أثناء التحقق، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال عن طريق تشغيل الاستدلال على إصدارات محولة من الإدخال.
agnostic_nms bool False تمكين قمع غير الحد الأقصى غير المحدد للفئة، والذي يدمج الصناديق المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيلات.
single_cls bool False يعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائية أو عندما لا تكون الفروق بين الفئات مهمة.

يلعب كل من هذه الإعدادات دورًا حيويًا في عملية التحقق، مما يسمح بتقييم قابل للتخصيص وفعال لنماذج YOLO. يمكن أن يساعد تعديل هذه المعلمات وفقًا لاحتياجاتك ومواردك الخاصة في تحقيق أفضل توازن بين الدقة والأداء.

مثال للتحقق من الصحة مع الحجج



شاهد: كيفية تصدير نتائج التحقق من النموذج بتنسيقات CSV و JSON و SQL و Pandas DataFrame والمزيد

استكشف التحقق من صحة النموذج وطرق التصدير المختلفة في Google Colab

تعرض الأمثلة أدناه التحقق من نموذج YOLO باستخدام وسيطات مخصصة في Python و CLI.

مثال

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Customize validation settings
metrics = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
yolo val model=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

تصدير مصفوفة الالتباس ConfusionMatrix

يمكنك أيضًا حفظ نتائج ConfusionMatrix بتنسيقات مختلفة باستخدام الكود المقدم.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.val(data="coco8.yaml", plots=True)
print(results.confusion_matrix.to_df())
الطريقة نوع الإرجاع الوصف
summary() List[Dict[str, Any]] يحول نتائج التحقق إلى قاموس ملخص.
to_df() DataFrame إرجاع نتائج التحقق كـ Pandas DataFrame منظم.
to_csv() str يصدر نتائج التحقق بتنسيق CSV ويعيد سلسلة CSV.
to_xml() str يصدر نتائج التحقق بتنسيق XML ويعيد سلسلة XML.
to_html() str يصدر نتائج التحقق بتنسيق جدول HTML ويعيد سلسلة HTML.
to_json() str يصدر نتائج التحقق بتنسيق JSON ويعيد سلسلة JSON.
to_sql() str يصدر نتائج التحقق في قاعدة بيانات SQl.

لمزيد من التفاصيل، راجع DataExportMixin توثيق الفئة.

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

كيف يمكنني التحقق من صحة نموذج YOLO11 الخاص بي باستخدام Ultralytics؟

للتحقق من نموذج YOLO11 الخاص بك، يمكنك استخدام وضع Val الذي توفره Ultralytics. على سبيل المثال، باستخدام Python API، يمكنك تحميل نموذج وتشغيل التحقق باستخدام:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

بدلاً من ذلك، يمكنك استخدام واجهة سطر الأوامر (CLI):

yolo val model=yolo11n.pt

لمزيد من التخصيص، يمكنك تعديل العديد من الوسائط مثل imgsz, batch، و conf في كل من وضعي Python و CLI. تحقق من حجج للتحقق من صحة نموذج YOLO قسم للحصول على القائمة الكاملة للمعلمات.

ما هي المقاييس التي يمكنني الحصول عليها من التحقق من صحة نموذج YOLO11؟

يوفر التحقق من نموذج YOLO11 العديد من المقاييس الرئيسية لتقييم أداء النموذج. وتشمل هذه:

  • mAP50 (متوسط الدقة المتوسطة عند عتبة IoU 0.5)
  • mAP75 (متوسط الدقة المتوسطة عند عتبة IoU 0.75)
  • mAP50-95 (متوسط الدقة المتوسطة عبر عتبات IoU متعددة من 0.5 إلى 0.95)

باستخدام Python API، يمكنك الوصول إلى هذه المقاييس على النحو التالي:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

لتقييم كامل للأداء، من الضروري مراجعة جميع هذه المقاييس. لمزيد من التفاصيل، راجع الميزات الرئيسية لوضع Val.

ما هي مزايا استخدام Ultralytics YOLO للتحقق من الصحة؟

يوفر استخدام Ultralytics YOLO للتحقق من الصحة العديد من المزايا:

  • الدقة: يقدم YOLO11 مقاييس أداء دقيقة بما في ذلك mAP50 و mAP75 و mAP50-95.
  • الراحة: تتذكر النماذج إعدادات التدريب الخاصة بها، مما يجعل التحقق من الصحة أمرًا سهلاً.
  • المرونة: يمكنك التحقق من الصحة مقابل نفس مجموعات البيانات أو مجموعات بيانات مختلفة وأحجام الصور.
  • ضبط المعلمات الفائقة: تساعد مقاييس التحقق من الصحة في ضبط النماذج لتحسين الأداء.

تضمن هذه المزايا تقييم نماذجك بدقة ويمكن تحسينها للحصول على نتائج فائقة. تعرف على المزيد حول هذه المزايا في قسم لماذا تتحقق من الصحة باستخدام Ultralytics YOLO.

هل يمكنني التحقق من صحة نموذج YOLO11 الخاص بي باستخدام مجموعة بيانات مخصصة؟

نعم، يمكنك التحقق من صحة نموذج YOLO11 الخاص بك باستخدام مجموعة بيانات مخصصة. حدد الـ data الوسيطة مع المسار إلى ملف تكوين مجموعة البيانات الخاصة بك. يجب أن يتضمن هذا الملف مسارات إلى بيانات التحقق، وأسماء الفئات، والتفاصيل الأخرى ذات الصلة.

مثال في Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

مثال باستخدام CLI:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

لمزيد من الخيارات القابلة للتخصيص أثناء التحقق، راجع قسم مثال التحقق مع الوسائط.

كيف يمكنني حفظ نتائج التحقق من الصحة في ملف JSON في YOLO11؟

لحفظ نتائج التحقق في ملف JSON، يمكنك تعيين save_json إلى True عند تشغيل التحقق. يمكن القيام بذلك في كل من Python API و CLI.

مثال في Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

مثال باستخدام CLI:

yolo val model=yolo11n.pt save_json=True

هذه الوظيفة مفيدة بشكل خاص لمزيد من التحليل أو التكامل مع الأدوات الأخرى. تحقق من وسائط التحقق من نموذج YOLO لمزيد من التفاصيل.



📅 تم إنشاؤه منذ عام واحد ✏️ تم التحديث منذ 14 يومًا

تعليقات