التحقق من صحة النموذج باستخدام 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 والمزيد
تعرض الأمثلة أدناه التحقق من نموذج 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 لمزيد من التفاصيل.