تحميل الصور ومعالجتها أولياً - كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: تحميل الصور ومعالجتها أولياً

📚 معلومات الصفحة

الكتاب: كتاب الذكاء الإصطناعي - الصف 12 - الفصل 1 | المادة: الذكاء الإصطناعي | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

يقدم هذا الدرس مقدمة عملية لتحميل الصور ومعالجتها أولياً باستخدام لغة البرمجة بايثون، مع التركيز على تطبيقات في معالجة الصور والتعلم الآلي. يبدأ الدرس باستيراد المكتبات الأساسية مثل matplotlib وscikit-image، والتي تُستخدم لتصور الصور ومعالجتها.

يتضمن الدرس دالة متقدمة تُسمى `resize_images_v2`، وهي نسخة محسنة من دالة سابقة، تسمح بتحميل الصور من مجموعة بيانات LHI-Animal-Faces (وجوه الحيوانات)، وتعديل حجمها إلى أبعاد محددة (الطول والعرض)، مع إمكانية تصفية الصور بناءً على فئات حيوانات محددة يختارها المستخدم.

يشرح الدرس كيفية استخدام الدالة لقراءة الصور من مجلدات فرعية، واستخراج التسميات (labels)، وتخزين الصور المُعدلة في صيغة مصفوفات numpy، مما يعد خطوة أولية حاسمة في سير عمل معالجة الصور للتحليل اللاحق أو النمذجة.

يُبرز الدرس أهمية المعالجة الأولية للصور في تحسين جودة البيانات ودقة النتائج في مشاريع التعلم الآلي، مع تقديم أمثلة عملية على استخدام المكتبات البرمجية الشائعة في هذا المجال.

يختتم الدرس بالإشارة إلى السياق التعليمي أو المؤسسي للمحتوى، مما يعزز مصداقيته وارتباطه بالمناهج الدراسية أو التطبيقات العملية.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

تحميل الصور ومعالجتها أولياً

نوع: محتوى تعليمي

Loading and Preprocessing Images أولياً

نوع: محتوى تعليمي

يستورد المقطع البرمجي التالي المكتبات التي ستُستخدم لتحميل الصور ومعالجتها أولياً:

Python Library Imports and Setup

نوع: محتوى تعليمي

%%capture import matplotlib.pyplot as plt from os import listdir !pip install scikit-image from skimage.io import imread from skimage.transform import resize from skimage import img_as_ubyte # a palette of 10 colors that will be used to visualize the clusters. color_palette = ['blue', 'green', 'red', 'yellow', 'gray', 'purple', 'orange', 'pink', 'black', 'brown']

نوع: محتوى تعليمي

تقرأ الدالة التالية صور مجموعة بيانات LHI-Animal-Faces (وجوه_الحيوانات) من input_folder (مجلد_المدخلات) الخاص بها، وتُعدّل حجم كل منها بحيث تكون لها أبعاد الطول والعرض نفسها، ثم تقوم بتحسين دالة resize_images() من الدرس السابق بالسماح للمستخدم بأن يحدّد قائمة فئات الحيوانات التي يجب أن تُؤخذ بالاعتبار. كما أنها تستخدم سطرًا واحدًا من المقطع البرمجي بلغة البايثون؛ لكي تقرأ كل صورة وتُعدّل حجمها وتُخزّنها:

Python Function: resize_images_v2

نوع: محتوى تعليمي

def resize_images_v2(input_folder:str, width:int, height:int, labels_to_keep:list ): labels = [] # a list with the label for each image resized_images = [] # a list of resized images in np array format filenames = [] # a list of the original image file names for subfolder in listdir(input_folder): # print(subfolder) path = input_folder + '/' + subfolder for file in listdir(path): label=subfolder[:-4] # uses the subfolder name without the "Head" suffix if label not in labels_to_keep: continue labels.append(label) # appends the label #loads, resizes, preprocesses, and stores the image. resized_images.append(img_as_ubyte(resize(imread(path+'/'+file), (width, height)))) filenames.append(file) return resized_images,labels,filenames

نوع: METADATA

222

نوع: METADATA

وزارة التعليم Ministry of Education 2023 - 1447

🔍 عناصر مرئية

Ministry of Education Logo

A logo for the Ministry of Education, featuring a stylized green pattern resembling a circuit board or abstract design, with the text 'وزارة التعليم' in Arabic and 'Ministry of Education 2023 - 1447' in English below it.

📄 النص الكامل للصفحة

--- SECTION: تحميل الصور ومعالجتها أولياً --- Loading and Preprocessing Images أولياًيستورد المقطع البرمجي التالي المكتبات التي ستُستخدم لتحميل الصور ومعالجتها أولياً:--- SECTION: Python Library Imports and Setup --- %%capture import matplotlib.pyplot as plt from os import listdir!pip install scikit-image from skimage.io import imread from skimage.transform import resize from skimage import img_as_ubyte# a palette of 10 colors that will be used to visualize the clusters. color_palette = ['blue', 'green', 'red', 'yellow', 'gray', 'purple', 'orange', 'pink', 'black', 'brown']تقرأ الدالة التالية صور مجموعة بيانات LHI-Animal-Faces (وجوه_الحيوانات) من input_folder (مجلد_المدخلات) الخاص بها، وتُعدّل حجم كل منها بحيث تكون لها أبعاد الطول والعرض نفسها، ثم تقوم بتحسين دالة resize_images() من الدرس السابق بالسماح للمستخدم بأن يحدّد قائمة فئات الحيوانات التي يجب أن تُؤخذ بالاعتبار. كما أنها تستخدم سطرًا واحدًا من المقطع البرمجي بلغة البايثون؛ لكي تقرأ كل صورة وتُعدّل حجمها وتُخزّنها:--- SECTION: Python Function: resize_images_v2 --- def resize_images_v2(input_folder:str, width:int, height:int, labels_to_keep:list ): labels = [] # a list with the label for each image resized_images = [] # a list of resized images in np array format filenames = [] # a list of the original image file names for subfolder in listdir(input_folder): # print(subfolder) path = input_folder + '/' + subfolder for file in listdir(path): label=subfolder[:-4] # uses the subfolder name without the "Head" suffix if label not in labels_to_keep: continue labels.append(label) # appends the label #loads, resizes, preprocesses, and stores the image. resized_images.append(img_as_ubyte(resize(imread(path+'/'+file), (width, height)))) filenames.append(file)return resized_images,labels,filenames2023 - 1447--- VISUAL CONTEXT ---Context: Indicates the publishing authority or educational institution for the content.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما هي المكتبات الرئيسية التي تم استيرادها لمعالجة الصور في هذا المقطع البرمجي؟

الإجابة: المكتبات الرئيسية المستوردة هي: `matplotlib.pyplot` (للرسوم البيانية)، `os.listdir` (للتفاعل مع نظام الملفات)، `skimage.io.imread` (لقراءة الصور)، `skimage.transform.resize` (لتعديل حجم الصور)، و`skimage.img_as_ubyte` (للتحويل إلى صيغة بايتات الأعداد الصحيحة).

الشرح: توضح هذه المكتبات الأدوات الأساسية اللازمة لتحميل الصور، عرضها، وتغيير أبعادها.

تلميح: ابحث عن الأوامر التي تبدأ بـ `from` وقبلها علامة `!pip install`.

ما هو الغرض الرئيسي من الدالة `resize_images_v2`؟

الإجابة: الغرض الرئيسي للدالة `resize_images_v2` هو قراءة صور من مجلد محدد، تعديل حجمها إلى أبعاد معينة (عرض وارتفاع محددين)، وترشيحها بناءً على قائمة فئات حيوانات محددة يتم الاحتفاظ بها، ومن ثم إرجاع الصور المعدلة، تصنيفاتها، وأسماء ملفاتها الأصلية.

الشرح: هذه الدالة تحسن من وظيفة سابقة عن طريق إضافة إمكانية تحديد الفئات التي يجب معالجتها، مما يوفر مرونة أكبر في التعامل مع مجموعات البيانات.

تلميح: ركز على مدخلات الدالة (parameters) وما تفعله بناءً عليها.

كيف تقوم الدالة `resize_images_v2` بتحديد الفئات التي يجب معالجتها؟

الإجابة: تقوم الدالة بتحديد الفئات التي يجب معالجتها عن طريق التحقق مما إذا كان اسم المجلد الفرعي (الذي يمثل تصنيف الحيوان) موجودًا ضمن قائمة `labels_to_keep` التي يتم تمريرها كمدخل للدالة. إذا لم يكن الاسم ضمن القائمة، يتم تخطي معالجة الصور الموجودة في ذلك المجلد الفرعي.

الشرح: هذه الخاصية تمنع معالجة الصور التي لا تنتمي إلى الفئات المطلوبة، مما يجعل العملية أكثر كفاءة ويسمح بالتركيز على بيانات محددة.

تلميح: ابحث عن الشرط (`if`) داخل حلقات تكرار معالجة المجلدات والملفات.

ما هي الصيغة التي يتم بها تخزين الصور بعد تعديل حجمها وقبل إرجاعها من الدالة `resize_images_v2`؟

الإجابة: يتم تخزين الصور بعد تعديل حجمها باستخدام الدالة `img_as_ubyte`، والتي تحول الصورة إلى صيغة بايتات الأعداد الصحيحة (unsigned byte)، وهي صيغة شائعة للصور الرقمية.

الشرح: استخدام `img_as_ubyte` يضمن أن تكون بيانات الصورة في تنسيق قياسي ومناسب للمعالجة اللاحقة، خاصة في خوارزميات التعلم الآلي.

تلميح: انظر إلى السطر الذي يتم فيه استدعاء الدالة `resize` قبل إضافتها إلى القائمة.