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

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

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

مقدمة

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



شاهد: Ultralytics البرنامج التعليمي للأوضاع: التحقق من الصحة

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

إليك السبب الذي يجعل استخدام وضع فال YOLO11 مفيدًا:

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

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

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

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

نصيحة

  • 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.
save_hybrid bool False إذا كان Trueيحفظ نسخة هجينة من التسميات التي تجمع بين الشروح الأصلية والتنبؤات النموذجية الإضافية. مفيد للتعلم شبه الخاضع للإشراف وتحسين مجموعة البيانات.
conf float 0.001 تعيين الحد الأدنى لعتبة الثقة للكشف. تزيد القيم المنخفضة من الاستدعاء ولكنها قد تقدم المزيد من النتائج الإيجابية الخاطئة. يُستخدم أثناء التحقق من الصحة لحساب منحنيات دقة الاستدعاء.
iou float 0.6 يضبط عتبة التقاطع فوق الاتحاد للقمع غير الأقصى. يتحكم في إزالة الكشف عن التكرار.
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ينشئ ويحفظ مخططات للتنبؤات مقابل الحقيقة الأرضية، ومصفوفات الارتباك، ومنحنيات العلاقات العامة للتقييم البصري لأداء النموذج.
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 ممكّن، مما يوفر مخرجات أكثر تفصيلاً للتحليل والتصفية.
save_crop bool False إذا كان True، يحفظ الصور التي تم اقتصاصها للأجسام المكتشفة، والتي يمكن أن تكون مفيدة لإنشاء مجموعات بيانات مركزة أو للتحقق البصري أو لمزيد من التحليل للكشف الفردي.
workers int 8 عدد الخيوط العاملة لتحميل البيانات. يمكن أن تؤدي القيم الأعلى إلى تسريع المعالجة المسبقة للبيانات ولكنها قد تزيد من استخدام CPU . الضبط على 0 يستخدم مؤشر ترابط رئيسي، والذي يمكن أن يكون أكثر استقرارًا في بعض البيئات.
augment bool False تمكين زيادة وقت الاختبار (TTA) أثناء التحقق من الصحة، مما قد يحسن دقة الكشف على حساب سرعة الاستدلال من خلال تشغيل الاستدلال على نسخ محوّلة من المدخلات.
agnostic_nms bool False تُمكِّن خاصية الكبت غير الفئوي غير الفئوي، والتي تدمج المربعات المتداخلة بغض النظر عن فئتها المتوقعة. مفيد للتطبيقات التي تركز على المثيل.
single_cls bool False يعامل جميع الفئات كفئة واحدة أثناء التحقق من الصحة. مفيد لتقييم أداء النموذج في مهام الكشف الثنائي أو عندما لا تكون الفروق بين الفئات مهمة.

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

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

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

مثال على ذلك

from ultralytics import YOLO

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

# Customize validation settings
validation_results = 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

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

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

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

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 (متوسط متوسط الدقة عند عتبة وحدة القياس الدولية 0.5)
  • mAP75 (متوسط متوسط الدقة عند عتبة وحدة القياس الدولية 0.75)
  • mAP50-95 (متوسط متوسط الدقة عبر عتبات IoU المتعددة من 0.5 إلى 0.95)

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

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

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

ما هي مزايا استخدام 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 لمزيد من التفاصيل.

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 4 أيام

التعليقات