For the complete documentation index, see llms.txt. This page is also available as Markdown.

بعد التدريب

أنت الآن قريب من نشر النموذج — هذه النقطة التي تحول فيها "الأرقام" إلى نموذج يعمل فعليًا في سير العمل الواقعي لديك.


1) اعثر على مخرجات التدريب (weights + config + names)

عند انتهاء التدريب، تعرض رسائل السجل/الحالة مكان حفظ المخرجات.

في AugeLab Studio، عادةً ما تُنشأ مخرجات التدريب داخل مجلد اسمه:

XXX_config

بجوار مجلد بياناتك (XXX هو اسم مجلد مجموعة البيانات).

الهيكل النموذجي:

XXX_config/
    XXX.names
    XXX.cfg
    backup/
        XXX_last.weights  (إذا كان متوفرًا)
        XXX_best.weights  (إذا كان متوفرًا)

على الأقل، احتفظ بهذه الملفات معًا:

  • ملف الأوزان: .weights (أحيانًا يوجد ملفان بنمط best مقابل last)

  • ملف الإعدادات: .cfg

  • ملف أسماء الفئات: .names

⚠️ تحذير: لا تعيد تسمية/إعادة ترتيب الفئات في ملف .names بعد التدريب إلا إذا قمت أيضًا بإعادة تعيين معرفات الملصقات (label IDs). ترتيب الفئات يجب أن يطابق معرفات الملصقات.

أي weights أستخدم: best أم last؟

إذا أظهر التدريب مقياس mAP أثناء التدريب، فبعض سلاسل العمل لـ YOLO/Darknet تحتفظ بنقطة حفظ "الأفضل حتى الآن".

  • استخدم best عندما يتحسن mAP ثم ينخفض لاحقًا (overfitting).

  • استخدم last إذا انتهى التدريب بينما كان mAP لا يزال يتحسن ومستقرًا.

إذا لم يكن لديك ملف "best"، فاختر ملف الأوزان النهائي أولًا ثم تحقق من الأداء.


2) تحقق من النموذج قبل النشر

قبل ربط النموذج بمنطق الإنتاج، قم بتمرير تحقق سريع.

مجموعات التحقق الموصى بها:

  • مجموعة التحقق (Validation set): 30–100 صورة تمثل الواقع (إضاءة جيدة/ضعيفة، تشويش، فوضى، حالات حافة)

  • مقاطع فيديو قصيرة أو صور: فيديو قصير من الكاميرا الحقيقية (إذا كنت ستنشر على كاميرا ثابتة)

ما الذي تبحث عنه:

  • هل النموذج يكتشف الكائن الصحيح باستمرار؟

  • هل الصناديق (boxes) "جيدة بما يكفي" للمنطق لديك (قد لا تكون مثالية)؟

  • هل الإيجابيات الكاذبة مقبولة أم يمكن تصفيتها؟

  • هل الحالات النادرة والمهمة تُكتشف؟

⚠️ تحذير: قيمة mAP العالية قد تفشل في الإنتاج إذا كانت مجموعة التحقق صغيرة جدًا أو نظيفة جدًا. فحص مجموعة التحقق/المشاهد الحقيقية يمنع ذلك.


3) حمّل النموذج داخل Studio (Inference)

في AugeLab Studio، الخطوة التالية المعتادة هي بناء (أو تحديث) سيناريو .pmod يقوم بالتشغيل للـ inference.

A) استخدم “Object Detection - Custom” (موصى به)

استخدم هذا البلوك عندما تريد تشغيل نموذجك المدرب عبر YOLO/Darknet داخل سير العمل.

سير العمل:

  1. أضف Object Detection - Custom إلى الرسم البياني (فئة AI Applications).

  2. في واجهة البلوك:

    • اضغط Open Weight File واختر ملف .weights

    • اضغط Open Config File واختر ملف .cfg

    • اضغط Open Class File واختر ملف .names

  3. اختر الفئات التي تريد اكتشافها (قائمة اختيارات).

  4. اضبط Confidence Threshold (ابدأ بقيمة حوالي 0.5–0.8 وقم بضبطها).

  5. وصل مصدر الصورة إلى مدخل البلوك ومعاينة صورة المخرجات.

المخرجات التي يمكنك استخدامها في المنطق:

  • صورة مخرجة مع رسم الاكتشافات

  • Object Count

  • Object Locations / Sizes

  • Object Classes

  • Rectangles

ℹ️ ملاحظة: إذا لم يكن “Object Detection - Custom” متوفرًا، قد لا يكون البناء لديك مفعّلًا بدعم CUDA/OpenCV DNN. جرب بلوك الـ CPU أدناه، أو قم بتثبيت الوحدات المطلوبة من Module Downloader (انظر ai-training.md).

B) استخدم “Object Detection - Custom (CPU)” (خيار احتياطي)

استخدم هذا البلوك لنفس سير العمل لكن بدون تسريع GPU.

  • يعمل على CPU، لذا سيكون أبطأ.

  • الإعداد هو نفسه: weights + cfg + names.


4) ضبط العتبات (ما يهم فعلاً)

معظم تحسينات "جودة النشر" تأتي من ضبط العتبات، وليس من تدريب أطول.

ابدأ بهذه الخطوات العملية:

  • زد قيمة الثقة (confidence threshold) إذا رأيت الكثير من الإيجابيات الكاذبة.

  • خفّض قيمة الثقة إذا كنت تفوت اكتشاف بعض الأشياء.

  • قيّم على مجموعة الذهب (golden set) وعلى مقطع كاميرا حقيقي واحد على الأقل.

⚠️ تحذير: لا تضبط على صورة واحدة فقط. اضبط دائمًا على مجموعة صغيرة. وإلا ستقوم "بفوق التكيّف" (overfit) للعتبة على مشهد واحد.


5) حزّم النموذج للمشاركة / إعادة الإنتاج

إذا أردت أن يكون النموذج قابلاً للاستخدام لاحقًا (أو من قِبل شخص آخر)، فقُم بتغليفه بشكل منظم.

مجلد موصى به:

ما تكتبه في README:

  • مجموعة البيانات التي درّب عليها النموذج (الإصدار/التاريخ)

  • معنى الفئات (إن كانت غامضة)

  • نطاق عتبة الثقة الموصى به

  • حالات الفشل المعروفة (وميض الضوء، الأشياء الصغيرة جدًا، التغطية الشديدة)

ℹ️ ملاحظة: إذا كان سيناريو .pmod يشير إلى هذه الموارد، ففكر في الاحتفاظ بها كمصادر نسبية للمشروع حتى يظل السيناريو قابلًا للنقل. انظر أيضًا: headless-studio (سلوك تحميل الموارد المفقودة).


6) إذا فشل في الإنتاج (ما التالي)

عندما يفشل النموذج بعد النشر، يكون الإصلاح عادة واحدًا من هذه الخطوات (بالترتيب):

  1. اجمع حالات الفشل (احفظ الإطارات التي تُظهر الفشل/الإيجابيات الكاذبة)

  2. قم بتوسيمها بشكل صحيح (label them)

  3. أعد التدريب أو قم بالتغذية الدقيقة (fine-tune) باستخدام البيانات الجديدة

هذه هي الطريقة التي تُصبح بها النماذج أكثر قوة.

أوضاع الفشل الشائعة وأسرع إصلاح
  • الإيجابيات الكاذبة على نسيج الخلفية → أضف أمثلة سلبية من نفس البيئة بالضبط

  • الفشل في اكتشاف الأشياء الصغيرة → زد حجم الإدخال (إن سمح الـ GPU) واجمع أمثلة لأشياء صغيرة أكثر

  • الفشل تحت الوهج/الطُّرْد (glare/blur) → أضف هذه الحالات عمدًا إلى مجموعة البيانات (لا تعتمد فقط على Augmentation)

  • الصناديق دائمًا واسعة جدًا/ضيقة جدًا → أصلح اتساق نمط التعليقات (annotation) ثم أعد التدريب

آخر تحديث