This blog post provides the introduction to face recognition and various algorithms and implementations using face recognition using matlab and opencv.
What is Face Recognition ?
Face recognition is a system ,which identifies and recognizes face in a Video or an Image.
What are the Applications of Face Recognition ?
- Unlock Phones and Laptops and other devices-Authentication
- Identify Crime person
- Help blind people
- Smarter Advertising
- Diagnose disease
- Track Attendance
How Face Recognition Works ?
Step 1. A picture of your face is captured from a photo or video. Your face might appear alone or in a crowd. Your image may show you looking straight ahead or nearly in profile.
Step 2. Facial recognition software reads the geometry of your face. Key factors include the distance between your eyes and the distance from forehead to chin. The software identifies facial landmarks — one system identifies 68 of them — that are key to distinguishing your face. The result: your facial signature .
Step 3. Your facial signature — a mathematical formula — is compared to a database of known faces. And consider this: at least 117 million Americans have images of their faces in one or more police databases. According to a May 2018 report, the FBI has had access to 412 million facial images for searches.
Step 4. A determination is made. Your faceprint may match that of an image in a facial recognition system database.
Face recognition using PCA & Fast Features
This face recognition use PCA features for dimensionality reduction and fast features for feature extraction process.
Face recognition using Eigen Faces
- In this project every image in training is some linear combination of weights of eigen faces which is basis for entire training dataset.
- This weights to represent the image in smaller subspace.(Dimensionality Reduction — Using k best eigenvectors to represent basis)
- For recognizing the weights of test image will compare it with weights of all the images in training dataset,and recognizes the image with least error between weights of test and training set.
Face recognition using Deep Learning
Deep learning methods, especially convolutional neural networks have achieved significant success in the area of computer vision including the difficult face recognition problems. Training of deep models shows exceptional performance with large datasets, but they are not suitable for learning from few samples. This paper proposes a modified deep learning neural network to learn face representation from a smaller dataset. The proposed network is composed of a set of elaborately designed CNNs, RELUs and fully connected layers. The training dataset is augmented with synthetically generated samples by applying Gaussian and Poisson noise to each sample of the training set, thus doubling the size of the training set.
Face recognition using Opencv
Face recognition using Gabor Features-Matlab
Face recognition using Fisher Faces
We develop a face recognition using matlab which is insensitive to large variation in lighting direction and facial expression. Taking a pattern classification approach, we consider each pixel in an image as a coordinate in a high-dimensional space. We take advantage of the observation that the images of a particular face, under varying illumination but fixed pose, lie in a 3D linear subspace of the high dimensional image space—if the face is a Lambertian surface without shadowing. However, since faces are not truly Lambertian surfaces and do indeed produce self-shadowing, images will deviate from this linear subspace. Rather than explicitly modeling this deviation, we linearly project the image into a subspace in a manner which discounts those regions of the face with large deviation. Our projection method is based on Fisher’s Linear Discriminant and produces well separated classes in a low-dimensional subspace, even under severe variation in lighting and facial expressions. The Eigenface technique, another method based on linearly projecting the image space to a low dimensional subspace, has similar computational requirements. Yet, extensive experimental results demonstrate that the proposed “Fisherface” method has error rates that are lower than those of the Eigenface technique for tests on the Harvard and Yale Fase Databases.
Matlab Toolbox for Face recognition research
This face recognition toolbox is a collection of Matlab functions and scripts intended to help researchers working in the field of face recognition. The toolbox was produced as a byproduct of my research work and is freely available for download.
This toolbox features implementations of several popular face recognition techniques, such as principal component analysis, linear discriminant analysis, kernel principal component analysis, or kernel fisher analysis. In addition to these techniques, it contains functions for Gabor filter construction, Gabor feature extraction, phase congruency computation and others.
An important part of the toolbox are also the evaluation tools that allow for the construction of the most common performance curves (e.g., ROC, DET, CMC, EPC) used for evaluating face recognition systems.