Skip to content

A face recognition system as a portfolio project using deep learning algorithms

Notifications You must be signed in to change notification settings

Friedrich94326/Real-time_Face_Recognition_System

Repository files navigation

Portfolio Project: Real-time Face Recognition System Using Keras

Flow Chart of the Face Recognition System

Image of Flow Chart

Stage Management

Phase Description
Build datasets 5_celebrities_dataset
family_and_friends
family_and_friends_LITE
Build a face detector MTCNN-based detector to draw bounding box for each face detected and even crop the face
Face Embedding Use FaceNet's inception network to get face embeddings for representing each face captured
Transfer learning: fine-tuning the pre-trained FaceNet model
Build a face classifier Using SVM to classify face embeddings as one of faces in our dataset
Integrate system Integrate detector and classifier into the entire recognition system
Display control Use OpenCV VideoCapture() to receive video stream
Display bounding box, predicted label, and its probability of each face on the screen
Compare other models Use other common pre-trained neural networks (e.g., VGG-16, DeepFace, Haar cascade) to perform our task

DEMO

Development Tools:

TensorFlow-GPU: version 2.3.0
Keras: version 2.4.3
OpenCV: version 4.2.0
Python: version 3.6.9
FaceNet's Inception Model
MTCNN
Scikit-learn: version 0.23.2
CUDA version 11.1

References:

(1) 《FaceNet: A Unified Embedding for Face Recognition and Clustering》
(2) 《DeepFace: Closing the gap to human-level performance in face verification》
(3)   David Sandberg's prominent project: Face Recognition using Tensorflow
(4)   MTCNN for face detection
(5) 《Face Detection in Python Using a Webcam》
(6)  Transfer Learning and Fine-tuning
(7) 《Face Recognition: Real-Time Face Recognition System using Deep Learning Algorithm and Raspberry Pi 3B》
(8)   Dr. Jason Brownlee's article on developing a face recognition system using FaceNet model in Keras
(9)   Chapter 14- Face Recognition Digital Image Processing: An Algorithmic Approach with MATLAB, Uvais Qidwai and
        C.H. Chen