Face recognition has evolved significantly—from classical statistical methods like Eigenfaces (PCA) and texture-based descriptors like LBPH (Local Binary Pattern Histograms) to modern deep learning frameworks like DeepFace .
In this post, we will implement and compare all three approaches on a small dataset in Python, test how they hold up against illumination changes (e.g., low lighting), and look at how to run the code effortlessly without running into environment issues.
🧠 Overview of the 3 Approaches
Eigenfaces (PCA-based Representation)
Extracts principal components (eigenvectors) of the face distribution.
Pros: Fast and computationally lightweight.
Cons: Very sensitive to lighting, pose, and requires uniform image sizes.
LBPH (Local Binary Pattern Histograms)
Analyzes local pixel neighborhoods by thresholding surrounding pixels against the center pixel.
Pros: Much more robust to illumination changes than Eigenfaces because it looks at relative local textures rather than global pixel…