التحقق من صحة النموذج باستخدام 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
عند التحقق من صحة نماذج 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.
مثال على ذلك
الأسئلة الشائعة
كيف يمكنني التحقق من صحة نموذج 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):
لمزيد من التخصيص، يمكنك ضبط وسيطات مختلفة مثل 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:
للمزيد من الخيارات القابلة للتخصيص أثناء التحقق من الصحة، راجع قسم مثال التحقق من الصحة بالحجج.
كيف يمكنني حفظ نتائج التحقق من الصحة في ملف 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 لمزيد من التفاصيل.