مشروع تصنيف الصور
بناء نموذج CNN أساسي
مشروع تصنيف الصور درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 5 دروس في المجموع.
مشروع تصنيف الصور
مشروع تصنيف الصور
سننشئ في هذا المشروع شبكة عصبية التفافية بسيطة لتصنيف الصور ضمن فئات. يتضمن تصنيف الصور التنبؤ بالفئة أو التصنيف الذي تنتمي إليه صورة مُدخلة.

مجموعة بيانات التصنيف
مجموعة بيانات التصنيف
سنستخدم مجموعة بيانات CIFAR-10، التي تتكون من 60,000 صورة موزعة على 10 فئات، مثل الطائرات والسيارات والطيور والقطط. أبعاد كل صورة 32×32 بكسل، وتحتوي على 3 قنوات لونية (RGB).
تحميل مجموعة البيانات
تحميل مجموعة البيانات
سنحمّل مجموعة بيانات CIFAR-10 باستخدام TensorFlow:
import tensorflow as tf
from tensorflow.keras.datasets import cifar10
# Load dataset
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# Normalize the pixel values to [0, 1]
x_train = x_train / 255.0
x_test = x_test / 255.0
print("Training data shape:", x_train.shape)إنشاء نموذج الشبكة العصبية الالتفافية
إنشاء نموذج الشبكة العصبية الالتفافية
سنحدد بنية لشبكة عصبية التفافية تتضمن طبقات التفاف وتجميع وطبقات متصلة بالكامل:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# Define the CNN model
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])تجميع النموذج
تجميع النموذج
نُجمّع النموذج باستخدام ما يلي:
- دالة الخسارة: الانتروبيا المتقاطعة الفئوية للتصنيف متعدد الفئات.
- المُحسِّن: مُحسِّن Adam للتعلّم بكفاءة.
- المقاييس: الدقة لتقييم الأداء.
# Compile the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])تدريب النموذج
تدريب النموذج
ندرّب النموذج باستخدام بيانات التدريب لمدة 10 حقبات. يتعلم النموذج أثناء التدريب تصنيف الصور ضمن فئات.
# Train the model
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))تقييم النموذج
تقييم النموذج
بعد التدريب، نقيّم النموذج باستخدام بيانات الاختبار للتحقق من دقته:
# Evaluate the model
loss, accuracy = model.evaluate(x_test, y_test)
print(f"Test Accuracy: {accuracy * 100:.2f}%")إجراء التنبؤات
إجراء التنبؤات
يمكننا استخدام النموذج المدرَّب لإجراء تنبؤات على صور جديدة:
# Predict the category of a test image
import numpy as np
sample_image = x_test[0]
sample_label = y_test[0]
prediction = np.argmax(model.predict(sample_image[np.newaxis, ...]))
print(f"Predicted Label: {prediction}, Actual Label: {sample_label[0]}")التحديات في تصنيف الصور
التحديات في تصنيف الصور
تشمل التحديات الشائعة ما يلي:
- فرط التكيّف: يحقق النموذج أداءً جيدًا على بيانات التدريب، لكنه يحقق أداءً ضعيفًا على البيانات الجديدة.
- عدم توازن الفئات: عدم تساوي تمثيل الفئات في مجموعة البيانات.
- التكلفة الحسابية: يتطلب تدريب الشبكات العميقة موارد كبيرة.
الملخص والخطوات التالية
الملخص والخطوات التالية
في هذا المشروع:
- أنشأنا ودرّبنا شبكة عصبية التفافية لتصنيف الصور باستخدام مجموعة بيانات CIFAR-10.
- تعلّمنا تحميل مجموعة البيانات ومعالجتها مسبقًا وتقييمها.
- ناقشنا التحديات في مهام تصنيف الصور.
سنستكشف بعد ذلك تقنيات زيادة البيانات لتحسين أداء النموذج من خلال إنشاء تنويعات من صور التدريب.

الأسئلة الشائعة
هل درس «مشروع تصنيف الصور» مجاني؟
نعم — نص درس «مشروع تصنيف الصور» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 5 دروس في المجموع.
ماذا ستتعلم في «مشروع تصنيف الصور»؟
بناء نموذج CNN أساسي تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 5.
كم من الوقت يستغرق درس «مشروع تصنيف الصور»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- ما هي بيانات الصور؟
- معالجة الصور باستخدام OpenCV
- الشبكات العصبية الالتفافية (CNN)
- مشروع تصنيف الصور
- تقنيات زيادة البيانات