Recunoastere faciala cu PCA + SVM
In loc de distanta euclidiana in spatiul eigenvectorilor, folosim un clasificator SVM (Support Vector Machines) cu kernel RBF.
PCA (Analiza Componentelor Principale) reduce dimensionalitatea imaginilor de la 1850 de pixeli la 150 de componente principale (numite eigenfaces), care captureaza directiile de varianta maxima in spatiul fetelor. SVM invata un hiperplan de separare cu marja maxima in acest spatiu redus.
Pipeline
Sample din dataset
LFW (Labeled Faces in the Wild):
set de date public cu peste 13.000 de fotografii color
de personaje publice, rezolutie originala
250×250 px, in conditii necontrolate
(iluminare, unghi, expresie variabile).
Folosim varianta funneled (aliniata automat) si aplicam filtrul
min_faces_per_person=70, obtinand
6 persoane, 1217 imagini.
Preprocesare: factor de redimensionare 0.4 prin
fetch_lfw_people (rezultand 50×37 px),
conversie la grayscale, egalizare CLAHE
(clipLimit=2.0, tileGridSize=(4,4)) si normalizare
la \([0, 1]\).
Concluzii
Modelul antrenat pe LFW filtrat obtine 87,3% acuratete pe setul de test, cu un scor F1 ponderat de 0,87. Comparatia cu metoda clasica Eigenfaces arata ca SVM aduce un castig substantial fata de varianta originala Turk-Pentland (nearest centroid pe componente PCA fara whitening, 64,3%); insa, adaugand whitening, un simplu clasificator prin distanta euclidiana la centroidul clasei atinge 88,5%, usor peste SVM.
Pe acest dataset, ipoteza implicita a metodei nearest centroid (clase aproximativ sferice in spatiul whitened) este satisfacuta, iar avantajul SVM dispare. Componenta cu adevarat critica este whitening-ul, nu alegerea clasificatorului.