Link to this sectionرؤى حول تقييم النموذج والضبط الدقيق#
بعد تدريب نموذج YOLO، الخطوة التالية هي قياس مدى جودة أدائه وضبطه بدقة لسد الفجوات. يستخدم التقييم مقاييس مثل mAP و IoU لتحديد الدقة رقمياً، بينما يعمل الضبط الدقيق على تعديل معلمات التدريب لتعزيز نقاط الضعف حتى يلبي النموذج هدف مشروعك. يشرح هذا الدليل مقاييس التقييم الرئيسية، وكيفية قراءتها، وتقنيات الضبط الدقيق التي تعزز قدرات نموذجك.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
يأتي التقييم والضبط الدقيق في نهاية سير عمل مشروع الرؤية الحاسوبية، بمجرد بدء التدريب وحاجتك إلى التحقق من أن النموذج دقيق وفعال وجاهز للنشر.
Link to this sectionمقاييس التقييم الرئيسية#
تقيس مقاييس متنوعة مدى فعالية أداء النموذج. توفر مقاييس الأداء هذه رؤى رقمية واضحة توجه التحسينات نحو ضمان تحقيق النموذج لأهدافه المقصودة.
Link to this sectionدرجة الثقة (Confidence Score)#
تمثل درجة الثقة مدى يقين النموذج بأن كائناً مكتشفاً ينتمي إلى فئة معينة. تتراوح هذه الدرجة من 0 إلى 1، حيث تشير الدرجات الأعلى إلى ثقة أكبر. تساعد درجة الثقة في تصفية التنبؤات؛ حيث لا تُعتبر صالحة إلا الاكتشافات التي تتجاوز فيها درجة الثقة حداً معيناً (threshold).
عند تشغيل الاستدلال، إذا كنت لا ترى أي تنبؤات وقمت بالتحقق من كل شيء آخر، فحاول خفض عتبة الثقة. في بعض الأحيان تكون العتبة مرتفعة جداً، مما يتسبب في تجاهل النموذج لتنبؤات صحيحة. يؤدي خفضها إلى السماح للنموذج بالنظر في المزيد من الاحتمالات. قد لا يلبي هذا أهداف مشروعك النهائية، ولكنه وسيلة جيدة لمعرفة ما يمكن للنموذج فعله وتحديد كيفية ضبطه بدقة.
Link to this sectionتقاطع الاتحاد (Intersection over Union)#
تقاطع الاتحاد (IoU) هو مقياس في اكتشاف الكائنات يقيس مدى تداخل صندوق الإحاطة المتنبأ به مع صندوق الإحاطة الفعلي (ground truth). تتراوح قيم IoU من 0 إلى 1، حيث تمثل القيمة 1 تطابقاً تاماً. يعد IoU ضرورياً لأنه يقيس مدى قرب تطابق الحدود المتنبأ بها مع حدود الكائن الفعلية.
Link to this sectionمتوسط الدقة#
يقيس متوسط الدقة (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، التي تقيم الدقة عبر كائنات بأحجام مختلفة.
Link to this sectionتقييم نموذج YOLO26#
يمكنك تقييم نموذج YOLO26 مدرب باستخدام وضع التحقق. للحصول على نظرة أعمق حول كيفية حساب وتفسير كل مقياس، راجع دليل مقاييس أداء YOLO26.
Link to this sectionالتعامل مع أحجام الصور المتغيرة#
يساعدك تقييم نموذجك على صور بأحجام مختلفة على فهم أدائه على مجموعات بيانات متنوعة. تقوم معلمة التحقق rect=true بتجميع الصور حسب نسبة العرض إلى الارتفاع وحشو كل دفعة إلى أصغر شكل مناسب، بحيث يتم تقييم الصور المستطيلة دون إجبارها على أن تكون مربعة.
تعين المعلمة imgsz حجم الصورة المستخدم أثناء التحقق، ويتم تطبيقه كمربع. إذا لم تقم بتعيينه صراحةً، فإن YOLO26 يعيد استخدام القيمة المحفوظة في إعدادات النموذج (640 للنماذج الرسمية المدربة مسبقاً، أو أي حجم تم تدريب نقطة تحقق مخصصة عليه). مع rect=true، يقوم YOLO26 بتقييد الجانب الأطول بـ imgsz وحشو الجانب الأقصر إلى مضاعف الخطوة، مع الحفاظ على نسبة العرض إلى الارتفاع. اضبط imgsz بناءً على أبعاد مجموعة البيانات الخاصة بك وذاكرة GPU المتاحة.
Link to this sectionالوصول إلى مقاييس YOLO26#
لفهم أداء نموذجك بالتفصيل، يمكنك الوصول إلى مقاييس تقييم محددة باستخدام بضعة أسطر من Python. يقوم مقتطف الكود أدناه بتحميل نموذج، وتشغيل التحقق، وطباعة المقاييس الأكثر فائدة.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Run validation on your dataset
results = model.val(data="coco8.yaml")
# Overall metrics
print("mAP50-95:", results.box.map) # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50) # mAP at IoU 0.50
print("mAP75:", results.box.map75) # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # weighted score used for model selection
# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)
# Per-stage timing breakdown in milliseconds per image
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. معاً، تسمح لك هذه بتحديد الصور التي يواجه النموذج صعوبة معها وإجراء الضبط الدقيق وفقاً لذلك.
Link to this sectionالضبط الدقيق لنموذجك#
يأخذ الضبط الدقيق نموذجاً مدرباً مسبقاً ويعدل معلماته لتحسين الأداء في مهمة أو مجموعة بيانات محددة. يُعرف أيضاً بإعادة تدريب النموذج، وهو يتيح للنموذج فهم النتائج والتنبؤ بها بشكل أفضل للبيانات التي سيواجهها في تطبيقات العالم الحقيقي. بناءً على نتائج تقييمك، تقوم بإعادة تدريب النموذج لتحقيق نتائج مثالية من خلال إيلاء اهتمام وثيق لبضع معلمات وتقنيات رئيسية.
Link to this sectionالبدء بمعدل تعلم أعلى#
أثناء التدريب العادي، يبدأ معدل التعلم منخفضاً ويزداد تدريجياً خلال الدورات الأولى لتحقيق استقرار التحديثات المبكرة. عند الضبط الدقيق، يكون النموذج محملاً بالفعل بميزات مفيدة من التدريب المسبق، لذا يمكنك تخطي فترة الإحماء هذه والبدء في التكيف مع بياناتك الجديدة على الفور.
اضبط وسيط التدريب warmup_epochs على 0 في model.train() لتعطيل مرحلة الإحماء. يستمر التدريب بعد ذلك من الأوزان المدربة مسبقاً عند معدل التعلم الأساسي المكون (lr0) بدلاً من التصاعد إليه، مما يتكيف مع دقة بياناتك الجديدة.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)Link to this sectionتجانب الصور (Image Tiling) للكائنات الصغيرة#
يمكن أن يؤدي تجميع الصور إلى تحسين دقة الاكتشاف للكائنات الصغيرة. من خلال تقسيم الصور الأكبر إلى مقاطع أصغر، مثل تقسيم صور 1280x1280 إلى عدة مقاطع 640x640، فإنك تحافظ على الدقة الأصلية وتسمح للنموذج بالتعلم من أجزاء عالية الدقة. يدعم Ultralytics هذا في وقت الاستدلال من خلال الاستدلال المجمع SAHI. عند التدريب على صور مجمعة، تأكد من ضبط تسمياتك لكل مقطع جديد بشكل صحيح.
Link to this sectionالخلاصة#
التقييم والضبط الدقيق هما ما يحولان النموذج المدرب إلى نموذج يمكن الاعتماد عليه ونشره: تكشف مقاييس مثل mAP و IoU عن نقاط الضعف، وتعالجها تغييرات المعلمات المستهدفة. ابدأ بـ وضع التحقق لتقييم نموذجك، ثم طبق تقنيات الضبط الدقيق المذكورة أعلاه واستمر في التكرار بمعلمات وتقنيات ومجموعات بيانات جديدة. إذا ظهرت أسئلة على طول الطريق، اسأل المجتمع على مستودع Ultralytics على GitHub أو خادم Ultralytics على Discord.
Link to this sectionالأسئلة الشائعة#
Link to this sectionما هي المقاييس الرئيسية لتقييم أداء نموذج YOLO26؟#
لتقييم أداء نموذج YOLO26، تشمل المقاييس المهمة درجة الثقة (Confidence Score)، وتقاطع الاتحاد (IoU)، ومتوسط الدقة (mAP). تقيس درجة الثقة يقين النموذج لكل فئة من فئات الكائنات المكتشفة. يقيم IoU مدى تداخل صندوق الإحاطة المتنبأ به مع الصندوق الفعلي. يجمع متوسط الدقة (mAP) درجات الدقة عبر الفئات، حيث يعد mAP@.5 وmAP@.5:.95 نوعين شائعين لعتبات IoU متفاوتة. تعرف على المزيد حول هذه المقاييس في دليل مقاييس أداء YOLO26 الخاص بنا.
Link to this sectionكيف يمكنني ضبط نموذج YOLO26 مدرب مسبقاً لمجموعة بياناتي الخاصة؟#
يتضمن الضبط الدقيق لنموذج YOLO26 مدرب مسبقاً تعديل معلماته لتحسين الأداء في مهمة أو مجموعة بيانات محددة. ابدأ بتقييم نموذجك بالمقاييس، ثم اضبط وسيط التدريب warmup_epochs على 0 في model.train() بحيث يبدأ معدل التعلم عند القيمة الأساسية المكونة على الفور بدلاً من التصاعد. أثناء التقييم، تساعد معلمات مثل rect=true في التعامل مع أحجام الصور المتنوعة بفعالية. لمزيد من التوجيهات التفصيلية، راجع قسمنا حول الضبط الدقيق لنموذجك.
Link to this sectionكيف يمكنني التعامل مع أحجام الصور المتغيرة عند تقييم نموذج YOLO26 الخاص بي؟#
للتعامل مع أحجام الصور المتغيرة أثناء التقييم، استخدم المعلمة rect=true في YOLO26، والتي تجمع الصور حسب نسبة العرض إلى الارتفاع وتملأ كل دفعة بدلاً من إجبار كل صورة على أن تكون مربعة. تعين المعلمة imgsz حجم الصورة للتحقق؛ إذا لم تقم بتجاوزها، فإن YOLO26 يعيد استخدام القيمة المحفوظة للنموذج (640 للنماذج الرسمية المدربة مسبقاً). اضبط imgsz لتناسب مجموعة بياناتك وذاكرة GPU. لمزيد من التفاصيل، قم بزيارة قسمنا حول التعامل مع أحجام الصور المتغيرة.
Link to this sectionما هي الخطوات العملية التي يمكنني اتخاذها لتحسين متوسط الدقة لنموذج YOLO26 الخاص بي؟#
يتضمن تحسين متوسط الدقة (mAP) لنموذج YOLO26 عدة خطوات:
- ضبط المعاملات الفائقة (Hyperparameters): جرب معدلات تعلم، وأحجام دفعات (batch sizes)، وتوسيعات للصور مختلفة.
- توسيع البيانات (Data Augmentation): استخدم تقنيات مثل Mosaic و MixUp لإنشاء عينات تدريب متنوعة.
- تجميع الصور: قسّم الصور الأكبر إلى مربعات أصغر لتحسين دقة الاكتشاف للكائنات الصغيرة.
راجع قسمنا التفصيلي حول الضبط الدقيق لنموذجك للحصول على استراتيجيات محددة.
Link to this sectionكيف يمكنني الوصول إلى مقاييس تقييم نموذج YOLO26 في Python؟#
يمكنك الوصول إلى مقاييس تقييم نموذج YOLO26 باستخدام Python بعد تشغيل التحقق:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Run validation
results = model.val(data="coco8.yaml")
# Access key metrics
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.