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

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

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

الدرس: معالجة الصور وتغيير الحجم

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

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

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

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

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

📝 ملخص الصفحة

تشرح هذه الصفحة عملية تغيير حجم الصور في سياق معالجة البيانات للتعلم الآلي، حيث يتم تحويل الصور من تنسيق RGB إلى تنسيق قائم على القيم العائمة (Float-Based) مع تسوية القيم بين 0 و 1. يوضح النص كيفية استخدام دوال مثل `resize` لتغيير الأبعاد إلى 100 × 100 بكسل، وكيفية إعادة التحويل إلى تنسيق البايت باستخدام `img_as_ubyte`، مع ملاحظة الاختلافات الطفيفة في قيم الألوان الناتجة عن الضغط.

يتضمن المحتوى أمثلة برمجية توضح شكل المصفوفات الناتجة وقيم البكسلات، بالإضافة إلى مناقشة الآثار الشائعة مثل انخفاض الوضوح في الصور المعاد تحجيمها، كما هو موضح في الشكل 4.3. يتم أيضًا التحقق من مطابقة الصور في مجموعة البيانات للتنسيق المطلوب (100, 100, 3) وكشف الصور غير المطابقة.

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

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

يؤدي تغيير الحجم إلى تحويل الصور من تنسيق RGB إلى تنسيق مستند على عدد حقيقي (Float-Based): resized = resize(image, (100, 100)) print(resized.shape) print(resized[0][0]) (100, 100, 3) [0.40857161 0.27523827 0.26739514] على الرغم من أن الصورة قد غُيّر حجمها إلى مصفوفة ذات أبعاد 100 × 100، فإن قيم القنوات الثلاث RGB لكل بكسل تم تسويتها (Normalized) لتكون ذات قيمة بين 0 و 1. ويمكن إعادة تحويلها مرة أخرى إلى تنسيق البايت بدون إشارة من خلال المقطع البرمجي التالي: resized = img_as_ubyte(resized) print(resized.shape) print(resized[0][0]) print(image[0][0]) (100, 100, 3) [104 70 68] [102 68 66] تختلف قيم الألوان RGB للبكسل الذي غُيّر حجمه اختلافًا بسيطًا عن القيم الموجودة في الصورة الأصلية، وهو من الآثار الشائعة الناتجة عن تغيير الحجم. وعند طباعة الصورة التي غُيّر حجمها، يتبين أنها أقل وضوحًا، كما يظهر في الشكل 4.3. وهذا ناتج عن ضغط المصفوفة 169 × 169 إلى تنسيق 100 × 100. # displays the resized image plt.imshow(resized); قبل بدء التدريب على خوارزميات التعلم الموجه، من الجيد التحقق مما إذا كانت أي صورة من الصور الموجودة في مجموعة البيانات غير مطابقة للتنسيق (3، 100، 100). violations = [index for index in range(len(resized_images)) if resized_images[index].shape != (100,100,3)] violations [455, 1587] يكشف هذا المقطع البرمجي عن وجود صورتين غير مطابقتين لتلك الصيغة. وهذا غير متوقع؛ لأن دالة ()resize_image تم تطبيقها على جميع الصور الموجودة في مجموعة البيانات. يقوم المقطعان البرمجيان التاليان بطباعة هاتين الصورتين، بالإضافة إلى أبعادهما واسمي ملفيهما: وزارة التعليم 201 2025 - 1447 --- VISUAL CONTEXT --- **IMAGE**: شكل 4.3: صورة رأس أسد غُيّر حجمها Description: A photograph of a lion's head, likely resized or processed as per the surrounding text. The image shows the head and upper body of a lion, facing forward. The background is slightly blurred. The image is displayed within a plot-like frame with x and y axes ranging from 0 to 80, indicating pixel coordinates, which is common in image processing visualizations. Context: This visual element illustrates the outcome of the image resizing and processing discussed in the text, specifically showing how the resized image appears less clear compared to the original, and is referenced in the text as 'الشكل 4.3'.

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

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

ما هو التأثير الرئيسي لتغيير حجم الصور (Resizing) من تنسيق RGB إلى تنسيق يعتمد على الأعداد الحقيقية (Float-Based)؟

الإجابة: يؤدي تغيير الحجم إلى تحويل قيم البكسلات من نطاق البايت (0-255) إلى نطاق الأعداد الحقيقية (0-1)، مما يسمح بعمليات حسابية أكثر دقة.

الشرح: تحويل الصور إلى تنسيق Float-Based (أعداد حقيقية) يعني أن قيم كل قناة لونية (مثل R, G, B) لكل بكسل تصبح قيمة عشرية بين 0 و 1. هذا مفيد لإجراء العمليات الحسابية الدقيقة التي تتطلبها خوارزميات التعلم الآلي، حيث أن القيم الأصلية (0-255) قد تكون واسعة جداً لبعض العمليات.

تلميح: فكر في الفرق بين الأرقام الصحيحة الكبيرة والأرقام العشرية عند تمثيل القيم.

ماذا تعني عبارة "تسوية (Normalized) قيم القنوات الثلاث RGB لكل بكسل لتكون ذات قيمة بين 0 و 1"؟

الإجابة: تعني أن كل قيمة لونية أصلية (0-255) تم تحويلها إلى قيمة عشرية تقع ضمن النطاق من 0.0 إلى 1.0. على سبيل المثال، القيمة 255 قد تصبح 1.0، والقيمة 0 تبقى 0.0، والقيم المتوسطة يتم تحويلها نسبياً.

الشرح: التسوية (Normalization) هي عملية مهمة في معالجة الصور والتعلم الآلي. في هذه الحالة، يتم قسمة كل قيمة بكسل على الحد الأقصى الممكن (255) لضمان أن جميع القيم تقع في النطاق [0, 1]. هذا يساعد على توحيد مدخلات البيانات للخوارزميات ويمنع القيم الكبيرة من التأثير بشكل غير متناسب على عملية التدريب.

تلميح: فكّر كيف يمكن تحويل أي رقم كبير إلى رقم صغير ضمن نطاق محدد.

كيف يمكن إعادة تحويل الصور من تنسيق يعتمد على الأعداد الحقيقية (Float-Based) إلى تنسيق البايت بدون إشارة (Unsigned Byte)؟

الإجابة: يمكن استخدام دالة مثل `img_as_ubyte()` لتحويل القيم العشرية (0-1) مرة أخرى إلى نطاق البايت (0-255).

الشرح: بعد إجراء العمليات الحسابية على الصور بتنسيق Float-Based، قد نحتاج أحياناً لإعادة تحويلها إلى تنسيق البايت (0-255) لعرضها أو حفظها. الدالة `img_as_ubyte()` تقوم بضرب القيم العشرية في 255 ثم تقريبها إلى أقرب عدد صحيح، مع التأكد من بقاء القيم ضمن النطاق [0, 255].

تلميح: ابحث عن الدالة المستخدمة في النص والتي تقوم بعملية التحويل العكسي.

ما هو السبب الشائع لاختلاف قيم الألوان RGB للبكسل الذي غُيّر حجمه قليلاً عن القيم الموجودة في الصورة الأصلية؟

الإجابة: الاختلاف ناتج عن الآثار الشائعة لعملية تغيير الحجم، حيث يتم تقريب القيم وإعادة حسابها، مما يؤدي إلى فقدان بعض التفاصيل أو تغيرات طفيفة في قيم البكسلات.

الشرح: عملية تغيير الحجم (Resizing) تتضمن تقليل عدد البكسلات (في حالة التصغير) أو زيادتها (في حالة التكبير). عند تقليل الأبعاد، يتم تجميع معلومات البكسلات الأصلية أو تقريبها لتمثيل البكسلات الجديدة. هذا التقريب وإعادة الحساب يؤديان إلى تغيرات طفيفة في قيم الألوان، وهو أمر طبيعي ومتوقع.

تلميح: عند تقليل حجم الصورة، كيف يمكن أن تتأثر المعلومات الأصلية لكل بكسل؟

لماذا يعد التحقق من عدم تطابق تنسيق الصور (3، 100، 100) مهماً قبل تدريب خوارزميات التعلم الموجه؟

الإجابة: الخوارزميات مصممة للعمل مع مدخلات ذات تنسيق ثابت. أي صورة تختلف في أبعادها عن التنسيق المتوقع (100، 100، 3) ستؤدي إلى أخطاء أو نتائج غير صحيحة أثناء التدريب.

الشرح: خوارزميات التعلم الآلي، وخاصة تلك المتعلقة برؤية الكمبيوتر، غالباً ما تتطلب أن تكون جميع الصور المدخلة بنفس الأبعاد (مثل 100x100 بكسل مع 3 قنوات لونية). إذا وُجدت صور ذات أبعاد مختلفة، فإنها لا تتناسب مع هيكل البيانات المتوقع للخوارزمية، مما قد يسبب أعطالاً أو يجعل النموذج يتعلم بشكل غير صحيح. لذلك، يتم التحقق من "انتهاكات" (violations) لهذا التنسيق.

تلميح: تخيل أنك تحاول وضع قطع في قوالب ذات أحجام مختلفة - ماذا سيحدث؟