الدرس الأول (١)
انظر إلى بداية الدرس المعنون بـ التعلم الموجه لتحليل الصور. رؤية الحاسب هي مجال يجعل الآلات تفهم العالم المرئي وتفسر الصور ومقاطع الفيديو تماما كما يفرى البشر لتتخذ قرارات أو تقوم بإجراءات. من تطبيقاتها التصوير الطبي لتشخيص الأمراض بالأشعة السينية والرنين المغناطيسي، والمركبات ذاتية القيادة للتعرف على إشارات المرور والمشاة والعقبات، وضبط الجودة لفحص المنتجات، والروبوتات للتفاعل مع البيئة. يختلف التعلم الموجه عن غير الموجه؛ فالأول يعتمد على مجموعات بيانات معنونة ومقاطع فيديو لها عناوين صريحة، بينما الثاني يتعلم الأنماط دون معرفة مسبقة كاستخدام خوارزمية لتجميع الصور حسب اللون أو الشكل. انظر إلى الشكل 4.1 أسفل الصفحة؛ فهو يوضح صورا خام لنموذج تصنيف تعلم الآلة ليخرج لنا المخرج المعنون بنسبة 98 بالمئة نمر عربي، و1 بالمئة تفاحة، و1 بالمئة سيارة، وهو ما يجسد كيفية تصنيف الصور باستخدام رؤية الحاسب.
يقوم التعلم الموجه في رؤية الحاسب على تدريب الآلات باستخدام صور مسماة ومعنومة لكي تتمكن من التعرف على المعلومات المرئية وتفسيرها واتخاذ قرارات بناء عليها. يعتمد هذا الدرس على تحميل ومعالجة مجموعة بيانات لصور حيوانات، حيث تُقرأ الصور وتُغير أبعادها إلى تنسيق موحد مثل باستخدام تنسيق الألوان RGB الذي يمثل كل بكسل بثلاث قنوات لونية لكل منها قيم تتراوح من إلى . ثم تُجرى اختبارات للتحقق من أبعاد الصور واكتشاف الصور غير المطابقة مثل صور RGBA أو التدرج الرمادي، وإزالتها لتنظيف البيانات، وأخيراً تحويلها إلى مصفوفات رقمية وتقسيمها إلى مجموعة تدريب ومجموعة اختبار باستخدام دالة train_test_split.
الفكرة الأساسية
تقوم فكرة التعلم الموجه على إعطاء الآلة صوراً معنومة ومرفقة بعناوين واضحة لكي تتعلم منها كيف تصنف الصور الجديدة بدقة. في هذا الدرس، نطبق هذه الفكرة على مجموعة بيانات لصور حيوانات، فنقوم بتحميل الصور، وتحويلها إلى أرقام، وتنسيق أبعادها، وتجهيزها لتكون جاهزة لتدريب نماذج التعلم الآلي.
الشرح
عند التعامل مع رؤية الحاسب، لا تراعي الآلة الصورة كبشر، بل تتعامل معها كشبكة ثنائية الأبعاد تحتوي على صفوف وأعمدة تمثل إحداثيات و للبكسلات، وتسمى مصفوفة الصور Image Matrix. تنسيق الألوان الافتراضي هو RGB، وهو يتكون من ثلاث قنوات رئيسية: الأحمر (Red) والأخضر (Green) والأزرق (Blue). كل بكسل يمتلك ثلاث قيم لهذه القنوات، وتتراوح قيمة كل قناة من إلى في تنسيق البايت بدون إشارة Unsigned Byte، بحيث تعني القيمة لوناً أسود، وتعني القيمة لوناً أبيض.
تتطلب خوارزميات التعلم الموجه أن تكون كل الصور في مجموعة البيانات ذات أبعاد موحدة، ولذلك نستخدم دوال لتغيير حجم الصور مثل تغييرها إلى الأبعاد لتصبح بصيغة أبعاد ثلاثة . قد تحتوي بعض الصور على أخطاء في التنسيق مثل وجود قناة رابعة شفافة تسمى ألفا Alpha في تنسيق RGBA لتصبح الأبعاد ، أو قد تكون الصورة بتنسيق التدرج الرمادي Grayscale بقناة واحدة فقط. لذلك نقوم بالتحقق من أبعاد الصور باستخدام الأكواد البرمجية، واكتشاف القيم المتطرفة أو الفئات الشاذة مثل فئة الطبيعة Nature التي لا تحتوي على حيوانات، ثم نحذفها من القوائم.
بعد تنظيف البيانات، نحول الصور والعناوين إلى مصفوفات نمباي باستخدام المتغيرين و، حيث يمثل مجموعة الصور و مجموعة العناوين. وأخيراً نقوم بتقسيم البيانات إلى مجموعة تدريب ומجموعة اختبار باستخدام دالة train_test_split بنسبة اختبار تبلغ مع تفعيل خاصية إعادة الترتيب العشوائي shuffle = True.
مثال محلول خطوة بخطوة
لديك صورة رئيسية أصلية أبعادها بثلاث قنوات لونية RGB، أي بإجمالي بكسل. تريد تجهيزها لتتوافق مع خوارزمية التعلم الموجه:
- تقرأ الصورة باستخدام دالة imread وتفحص شكلها الأبدي ليظهر لك .
- تغير حجم الصورة لتصبح بأبعاد باستخدام دالة resize لتتوافق مع باقي مجموعة البيانات.
- تفحص أبعاد الصورة الجديدة باستخدام الأمر print(resized.shape) ليكون الناتج .
- تفحص قيمة أول بكسل في الصورة لترى قيم قنوات الألوان الثلاث.
أخطاء شائعة
- ترك الصور بأبعاد مختلفة دون توحيدها، مما يسبب خطأ في تطابق الأبعاد لدى إدخالها إلى مصفوفة نمباي.
- إغفال فحص الصور التي تحتوي على قناة رابعة RGBA أو تدرج رمادي Grayscale، مما يؤدي إلى عدم مطابقة التنسيق المتوقع .
- نسيان تفعيل خاصية إعادة الترتيب العشوائي shuffle = True عند تقسيم البيانات، مما يجعل مجلدات الصور تترتب بطريقة متتالية تضر بأداء النموذج.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما هو تنسيق الألوان الافتراضي الذي تُنشئه دالة imread، وماذا تعني الحروف الثلاثة التي يتكون منها؟ الإجابة: التنسيق هو RGB، والحروف تعني اللون الأحمر (Red) واللون الأخضر (Green) واللون الأزرق (Blue).
السؤال الثاني: لماذا يجب توحيد أبعاد جميع الصور في مجموعة البيانات قبل بدء التدريب على خوارزميات التعلم الموجه؟ الإجابة: لكي تكون جميع الصور في مجموعة البيانات لها الأبعاد نفسها وتتطابق مع المتطلبات الشكلية لتمثيل البيانات في مصفوفة نمباي وتجنب حدوث أخطاء في أبعاد المصفوفة الناتجة.