Face Recognition System Using Deep Learning
Face Recognition System Using Deep Learning
LEARNING
TEAM MEMBERS:
● Jatin P
ENG19CS0126
● Likith Ram Verma ENG19CS0136
● Sumanth Reddy
ENG19CS0138
● Karthik Reddy
ENG19CS0056
Introduction
Human brain is trained for face detection and recognition. Face detection and recognitions is an easy task for humans.
Experimentally, it has been found that even one to three days old babies are able to distinguish between known faces.
In the field of computer science, Face recognition identifies faces in digital images, identifies the pixels that represent
the face in a given image, which is referred to as the pre – processing phase, and finally, identifying a face match.
Face Recognition is the task of identifying an already detected face as a ‘known’ or ‘unknown’ face, and in more
advanced cases, displaying the name of the person or telling exactly whose it is.
It is used to verify and identify information for secure transactions, for surveillance and security tasks, and for access
control to buildings. Face Recognition applications such as Aurora Imaging & Recognition is used in airports which
claims to validate a person’s identity quickly and efficiently using biometrics and facial recognition technology. It is also
used in tech companies like Google which has Cloud Vision API and Firebase, Microsoft uses Azure Face service,
Facebook uses face recognition to tag people un the photos using its tag suggestion tools and Apple uses Face ID
which is a 3D facial recognition system.
Problem Statement
Given an image, to identify as a face, extract face images from it and to retrieve similar images from the
given database of face images, recognize the face labelling them as ‘known’ or ‘unknown’.
Literature Survey
i. Illumination-robust face recognition based on deep convolutional neural networks
architectures
Author Techniques Result Limitations Published by
• Operating System : Windows 10/Ubuntu latest • Processor : Pentium processor of 400 MHz or
version for faster processing. higher
• Programming language – : Python
• RAM : Minimum 4GB primary memory,
• IDE – PyCharm/ Spyder preferably 8GB.
• Front – End tools : Numpy (library used for working • Hard Disk : Minimum 1GB hard disk space.
with arrays); OpenCV Python (library of Python
bindings designed to solve computer vision problems). • Inbuilt webcam
i. Dataset Collection
This is the first step. OpenCV is used for real-time face detection via the webcam. We will be applying
the Haar Cascade algorithm to detect the face. Haar Cascade is a machine learning based-approach
where many positive and negative images are used to train the classifier. Positive images indicate the
images which we want the classifier to identify and negative images are those that do not contain
objects to be detected. A green rectangle boundary is drawn along the cropped face from the total
image. Up to 100 face samples will be collected and stored in a folder. Each face is resized and cropped
here.
ii. Model Training
In this step, we import OS library modules to access the previous files and to append that to the current datapath. We
create arrays for training data and labels. Then, read the images using cv2.imread() from the specified file path which here
is the image path. We use numpy array for both training data and labels and append the same using numpy. LBPH (Local
Binary Pattern Histogram) face recognizer is used to detect and define a particular value from a binary coded image.
We copy the previous files dataset.py and training.py. Then, load the Haar face classifier from the given path. If no face is
found, return empty space, else using a for loop, we extract the face having parameters x coordinate, y coordinate, width
and height. We declare the region of interest of the image. Detects the face from the frame and compares it with the
dataset samples. We predict the face and match it with the dataset and store it in the result variable. We use a random
value like 500, and to get a threshold value perform type conversion for the confidence value which we get in the
percentage form. IF confidence > 82, display the user name under the image else display unknown. When a try block
raises an error, the except block will be executed which prints the statement “Face Not Found”. Then, we close all the
windows.
Design Methods
Algorithm:
Haar Cascade Algorithm - It is an Object Detection Algorithm used to identify faces in an image or a real time
video. The algorithm uses edge or line detection features proposed by Viola and Jones in their research paper
“Rapid Object Detection using a Boosted Cascade of Simple Features” published in 2001. The algorithm is given
a lot of positive images consisting of faces, and a lot of negative images not consisting of any face to train on
them.
LBPH (Local Binary Pattern Histogram) - Local Binary Pattern (LBP) is a simple yet very efficient texture
operator which labels the pixels of an image by thresholding the neighborhood of each pixel and
considers the result as a binary number. It was first described in 1994 (LBP) and has since been found
to be a powerful feature for texture classification.
Flow Of The Algorithm
Step 1 : import opencv-python, numpy, and opencv-contrib-python libraries