البيانات المخصصة وتدريب النماذج
كيف تعلّم الكمبيوتر التعرف على أشيائك الخاصة؟
قبل أن نبدأ، دعونا نتفق على هذه المصطلحات:
yolo26n.pt).لبناء نموذج ذكي، يجب أن نقسم بياناتنا (كما نُعدّ طالباً للاختبار):
تخيلها كأنها:
قاعدة ذهبية: لا تدرّب النموذج أبداً على بيانات الاختبار! هذا يسمى الغش في الاختبار (Data Leakage) وسيجعل النموذج يبدو ذكياً في الأرقام لكنه فاشل تماماً في الواقع.
المشكلة: بالغلط، دخلت صور من “الاختبار” إلى “أسئلة المذاكرة”. النموذج حفظ الإجابة!
الأسباب الشائعة: وجود صور مكررة، أو تقسيم البيانات يدوياً بطريقة خاطئة.
الخطر: الدرجات (mAP) تبدو 100% (ممتازة جداً!)، لكن عندما تستخدم الكاميرا في الواقع، النموذج لا يتعرف على شيء!
كيف تتجنبها؟ - استخدم خاصية التقسيم التلقائي autosplit() لضمان عدم اختلاط الأوراق. - لا تنسخ الصور يدوياً بين المجلدات. - تأكد من عدم وجود صور مكررة في بياناتك.
الدرجات تبدو مثالية جداً؟ ربما حدث تسريب للبيانات!
كيف نختصر الوقت؟ نستفيد من المعرفة السابقة!
.pt: نماذج سبق وأن تدربت على الملايين من الصور وتعرف الأشكال الأساسية (خطوط، دوائر، حواف). تستخدمها كنقطة انطلاق لتعلم أشياء جديدة بسرعة جداً وببيانات قليلة! (يُنصح بها دائماً!).yaml: نماذج بيضاء تماماً (مثل طفل حديث الولادة). يجب أن تتعلم كل شيء من الصفر، وتحتاج لبيانات هائلة وأسابيع من التدريب.استخدم دائماً نماذج .pt لتسريع التدريب.
كل مهمة لها طريقة مختلفة في ترتيب الصور:
cat وصور الكلاب في مجلد dog). لا حاجة لملفات نصوص!.txt يحمل نفس الاسم يحتوي على الإحداثيات.اكتشاف الكائنات (مربع إحاطة): <class_id> <x_center> <y_center> <width> <height>
التجزئة (مضلع بأضلاع كثيرة): <class_id> <x1> <y1> <x2> <y2> ... <xn> <yn>
تتبع الهيكل (نقاط المفاصل): <class_id> <bbox> <kp_x1> <kp_y1> <v1> ...
تنبيه ⚠️: يجب أن تكون كل الإحداثيات نسبية (من 0.0 إلى 1.0) وليست أرقام بيكسل مطلقة!
data.yamlهو بمثابة الفهرس الذي يربط أرقام الكائنات بأسمائها، ويدل النموذج على مكان مجلد الصور.
منصة Ultralytics وأدوات التسمية
كتابة الإحداثيات يدوياً في ملفات نصية هو أمر مستحيل! لذلك نستخدم منصات مثل Ultralytics HUB أو Roboflow.
المرجع: منصة Ultralytics HUB
وفر وقتك واستخدم نماذج الذكاء الاصطناعي “السحرية” لمساعدتك في التصنيف:
المرجع: نماذج SAM
المعايير والإعدادات
بمجرد تجهيز بياناتك، يمكننا بدء التدريب بسطر واحد فقط:
ماذا لو انقطع التيار الكهربائي أو توقف جهازك في منتصف التدريب؟ لا تقلق، يمكنك استكمال التدريب من آخر نقطة وصل إليها النموذج دون خسارة الأيام السابقة!
batch=-1 وسيقوم YOLO باختيار أنسب حجم يناسب جهازك تلقائياً!imgsz (الافتراضي 640): حجم الصورة أثناء التدريب. الأحجام الكبيرة (مثل 1024) تلتقط تفاصيل أدق (ممتازة للأشياء الصغيرة جداً!) لكنها تستهلك ذاكرة أكبر وبطيئة جداً.device (الافتراضي ’’): تحديد كروت الشاشة (مثال device=0,1) لتفعيل التدريب على أكثر من كرت معاً!المشكلة: إذا صغرنا صورة بدقة 4K إلى 640 بيكسل للتدريب، ستختفي الأشياء الصغيرة تماماً ولن يراها النموذج!
الحل السحري — SAHI (الاستدلال المساعد بالتقسيم):
بدلاً من كتابة كل المعلمات في سطر واحد طويل، ضعها في ملف experiment.yaml:
تتكامل Ultralytics بسلاسة مع أدوات MLOps لتسجيل ومراقبة المقاييس (الدقة، الخسارة) ورسم المصفوفات (مصفوفة الارتباك) الحية أثناء التدريب.
أدوات المراقبة المدعومة:
المرجع: التكامل مع الأدوات
يدعم YOLO مكتبة Albumentations لتعزيز قوة النموذج. ويقوم بتطبيق تأثيرات (مثل تدوير الصورة، تغيير الألوان، التشويش) تلقائياً أثناء التدريب!
تشويقة: سنتعلم لماذا ومتى نستخدم تعزيز البيانات في الجزء الرابع — إنه سلاحك السري ضد “الحفظ الأعمى” (Overfitting)!
اختبر معرفتك في أساسيات التدريب
وصل المصطلح بالوصف الذي يناسبه:
نهاية جزء تدريب النماذج
data.yaml ليفهمها YOLO وكيف نتجنب تسريب البيانات.في الدرس القادم: التقييم والنشر (Evaluation & Deployment)
يُسعدني الإجابة على استفساراتكم ومناقشاتكم