A desktop application for face recognition using the ORL (Olivetti Research Lab) face dataset. The system implements multiple pattern recognition algorithms.
- NN (Nearest Neighbor) - Basic nearest neighbor classification
- kNN (k-Nearest Neighbors) - K-nearest neighbor with configurable K value
- Eigenfaces - Principal Component Analysis (PCA) for face recognition
- Eigenfaces with Class Representative - PCA with class representative averaging
- Lanczos - Lanczos algorithm for dimensionality reduction
- GUI built with CustomTkinter
- Support for multiple distance metrics: Manhattan, Euclidean, Infinity, Cosine
- Configurable training/testing split
- Statistics generation with accuracy and timing metrics
- Image visualization
- Python
- NumPy
- Matplotlib
- CustomTkinter
- Select the ORL dataset folder
- Choose the number of training/testing pictures per person
- Select normalization method (Manhattan, Euclidean, Infinity, Cosine)
- Choose algorithm (NN, kNN, Eigenfaces, Eigenfaces with CR, Lanczos)
- Select a test picture
- Click "Test" to run recognition
- Click "Generate Statistics" to run full evaluation