> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/detections-shapes/detectors/custom-cnn-model.md).

# Custom CNN Model

This function block lets you load a TensorFlow-based image classification model and run predictions on incoming images. It is intended for users who want to apply a custom trained convolutional neural network to classify images in a visual workflow.

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

`Image Any` الصورة التي سيقوم النموذج المحمّل بتصنيفها.

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

`Class Index (Detected)` المؤشر العددي للفئة المتوقعة.

`Class Name (Detected)` اسم الفئة المقروء بشريًا (إذا وفّر النموذج تسميات الفئات).

`Detection Result (Raw Output)` الناتج الخام أو درجات النموذج التي ينتجها المصنف.

## 🕹️ عناصر التحكم <a href="#controls" id="controls"></a>

`Load Model` يفتح مربع حوار لاختيار ملف النموذج وتحميله. أنواع النماذج المدعومة تشمل نماذج TensorFlow القياسية وملفات TFLite.

`Classes` منطقة نص تعرض قائمة الفئات الموجودة داخل النموذج المحمّل (إن توفّرت).

## 🎨 الميزات <a href="#features" id="features"></a>

* استيراد نموذج بسيط: تحميل نموذج TensorFlow أو TFLite مدرّب باستخدام عنصر تحكم واحد.
* معاينة تسميات الفئات: يعرض البلوك أسماء الفئات المستخرجة من النموذج لتتحقق منها قبل التشغيل.
* استدلال فوري: عند تحميل النموذج، تُصنَّف الصور الواردة مباشرةً وتُرسل النتائج للاستخدام اللاحق.
* مخرجات للأتمتة: يتوفر كل من المؤشر العددي واسم الفئة المقروء بشريًا، بالإضافة إلى مخرجات النموذج الخام للمعالجة المتقدمة.

## ⚙️ كيفية التشغيل <a href="#how-it-works" id="how-it-works"></a>

* استخدم عنصر التحكم `Load Model` لاستيراد ملف النموذج من القرص.
* بعد تحميل النموذج والتحقق منه، يقبل البلوك الصور عبر مدخل `Image Any`.
* لكل صورة واردة، يجري البلوك عملية استدلال ويقدّم مؤشر الفئة المتوقعة، واسم الفئة إن وُجد، وقيم التنبؤ الخام على المخرجات.

## 📝 تعليمات الاستخدام <a href="#usage" id="usage"></a>

1. اضغط زر `Load Model` واختر ملف النموذج. تأكد من ظهور قائمة الفئات في عرض `Classes` للتأكد من أن النموذج تم تحميله بشكل صحيح.
2. وصل أي مصدر صور إلى مدخل `Image Any` (مثال: `Camera USB`، `Load Image`، أو `Stream Reader`).
3. استخدم مخرجات البلوك لتوجيه نتائج التصنيف إلى عرض الصور، السجلات، أو بلوكات منطق القرار.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* قُم بعملية معالجة مسبقة لتطابق أبعاد الإدخال المتوقعة للنموذج باستخدام `Image Resizer` أو `Image Resize` قبل تغذية الصور بهذا البلوك. هذا يحسّن تناسق التنبؤات.
* للمراجعة البصرية، وصل مصدر الصور لهذا البلوك إلى `Show Image` حتى ترى ما يراه النموذج.
* أدرج نتائج التصنيف على الصور باستخدام `Write Text On Image` أو `Draw Result On Image` لإنشاء مخرجات مرئية سهلة الفهم للمشغّلين.
* احفظ أحداث التصنيف باستخدام `Image Logger` أو صدّر النتائج الرقمية إلى ملفات باستخدام `CSV Export` للتحليل لاحقًا.
* استخدم `Image ROI Select` أو `Image ROI` لاقتصاص المناطق ذات الصلة قبل التصنيف إذا كان نموذجك يتوقع وجود الكائنات في موضع ثابت.
* اجمع مع `Is None` أو `Data Memory` للتعامل مع الإطارات المفقودة أو تجميد المخرجات عند الحاجة.

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* عدم ظهور فئات بعد التحميل: تأكد أن النموذج يحتوي على بيانات وصفية لتسميات الفئات. إذا كانت قائمة الفئات فارغة، سيستمر البلوك في إخراج مؤشرات عددية لكن دون أسماء مقروءة.
* عدم تحميل النموذج: تحقق من اختيارك لملف نموذج مدعوم وأن مسار الملف متاح. إذا كان لديك ملف TFLite أو TensorFlow، اختر النوع المناسب.
* توقعات غير متوقعة: تأكد من أن حجم الصورة وقنوات الألوان والمعالجة المسبقة تتطابق مع ما تدرب عليه النموذج. استخدم `Image Resize`، وبلوكات تحويل اللون، أو خطوات معالجة مسبقة أعلى في المسار لتطابق شروط التدريب.
* بطء في الاستدلال: فكر في تصغير حجم الصور باستخدام `Image Resizer` أو استخدام نسخة أخف من النموذج قبل النشر في الزمن الحقيقي.
