يهدف هذا المشروع إلى تنفيذ نظام تصنيف للوجوه وغير الوجوه باستخدام خوارزميات تحليل المكونات الرئيسية (PCA)، وتحليل التمييز الخطي (LDA)، وأقرب الجيران (KNN).
الهدف الأساسي هو تحديد ما إذا كانت الصورة تحتوي على وجه بشري أم لا.
هيكل المشروع
facerec.ipynb: دفتر Jupyter الرئيسي الذي يحتوي على جميع التجارب والنتائج.
archive3.zip: يحتوي على ملفات مجموعة البيانات (صور الوجوه وصور غير الوجوه التجريبية).
المنهجية
إعداد البيانات
صور الوجوه: تم استخراجها من مجموعة بيانات وجوه قياسية.
صور غير الوجوه: تم إنشاء 300 صورة تجريبية غير مخصصة للوجوه.
تم تقسيم البيانات إلى مجموعة تدريب واختبار (مثال: 330 تدريب / 150 اختبار).
تقليل الأبعاد
تم تطبيق خوارزمية PCA لاستخراج الميزات الرئيسية من الصور.
تم تطبيق LDA بعد PCA لزيادة الفصل بين الفئات وتحسين الدقة.
التصنيف
تم تدريب مصنف KNN على الفضاء المميز المخفض.
تم اختبار الأداء باستخدام إعدادات مختلفة لصور غير الوجوه.
النتائج
تصنيف وجه مقابل غير وجه (مثال: 50 صورة غير وجه)
الدقة (Accuracy): 1.0000
الدقة الإيجابية (Precision): 1.0000
الاستدعاء (Recall): 1.0000
درجة F1: 1.0000
لم يتم تسجيل أي حالات فشل.
تصنيف باستخدام PCA فقط (قيم Alpha مختلفة)
نظام PCA + LDA
عدد الأبعاد بعد PCA: 115
دقة LDA (عدد المكونات = 39): 93.5%
دقة PCA فقط: 94%
أمثلة على التنبؤات
تم التنبؤ بنجاح لكل من صور الوجوه وغير الوجوه بثقة عالية، وجميع الحالات التجريبية المعروضة في الدفتر تم تصنيفها بشكل صحيح.
الاستنتاجات
خوارزمية PCA فعّالة في استخراج الميزات من صور الوجوه.
الجمع بين PCA وLDA يحسن من قدرة الفصل بين الفئات.
مصنف KNN أظهر أداءً ممتازاً في كل من حالتي PCA فقط وPCA + LDA.
تم تحقيق دقة تصل إلى 100% في مهام تصنيف الوجوه مقابل غير الوجوه.