
Make sure to upload the repository available in the resources to your Google Drive.
It is recommended you fill in the code cells as you watch the lectures for maximum benefit.
Explore how facial recognition differs from traditional classification and detection, and learn how convolutional networks enable one-shot classification, ACMD network, face encodings with triplet loss, and evaluating similarity between faces.
The lecture contrasts traditional classification with face recognition, highlighting how changing object counts and limited images force retraining and changes to output layers, limiting practicality.
Extract faces from an image using the detector, returning metadata with bounding box coordinates, confidence, and key points for left eye, right eye, nose, left mouth, and right mouth.
Read the four values of the face bounding box as x, y, width, and height to draw the box around the detected face.
Analyze the first detected face by extracting the bounding box coordinates from the face metadata, draw a rectangle around it with OpenCV, and visualize the detected face.
Apply a convolutional neural network face recognition model to generate a face embedding from the detected face, using a public model with options for 128 or 512 dimensions.
Load FaceNet with the TensorFlow Keras library, load the model from the H5 file, and convert the input image into an embedding with the neural network.
Load the face embedding from a file using the load method, obtaining the embedding and its label from the data array. Confirm the embedding matches the stored vector.
About the course
Welcome to the course Deep Learning in Practice III on Face Recognition. I am Anis Koubaa, and I will be your instructor in this course.
This course is the third course in the series Deep Learning in Practice. It provides a fast and easy-to-follow introduction to face recognition with deep learning using MTCNN for face extraction and FaceNet for face recognition. My two previous courses deal with object classification and transfer learning with Tensorflow and Keras.
In this course, you will learn the whole loop of face recognition systems, which starts by extracting the face from an image and localizing the face in an image by its bounding box; then, we process the extracted face through a convolutional neural network, called FaceNet in our case, to create a fingerprint of the face, which we call face embedding. The face embedding can be stored in a database so that they are compared with other face embeddings to identify the person of interest.
In this course, you will have a step-by-step introduction to this whole loop, and I will show you how you can develop a Python application that performs the abovementioned operations. Exciting, right?
Why is the course important?
This course is essential due to the importance of face recognition systems in real-world applications. These fast-growing systems are used in several applications, such as surveillance systems, face access systems, and biometric identification.
In this course, you will be introduced to face recognition systems both from a theoretical and practical perspective, allowing you to develop your own projects using face recognition in Python.
The course's motivation is a lack of resources to get quickly started with the topic. So taking this course will save you tons of time looking for scattered references over the Internet and will get you much quicker into the field.
What's worth?
This course provides fast yet comprehensive coverage of face recognition systems that would let you go from Zero to Hero.
I first start with presenting the fundamental concepts of face recognition systems and how deep learning models for face embedding are trained and produced.
Then, I provide a hands-on introduction to face recognition using MTCCN for face extraction and FaceNet for face recognition, all with Python programming language. Tensorflow and Keras APIs will be used to load the FaceNet model. I provide a Jupiter notebook that you will use as a guide in the lecture to follow and write the code to apply as you learn.
At the end of this course, I guarantee that you will understand the whole loop of face recognition systems, and you will be able to develop your application and integrate it into your project.
Pre-requisites
To benefit from this course most, you just need to know about Python programming.
Having a basic understanding of deep learning and TensorFlow would be a plus, but it is not mandatory.
In any case, you may refer to my two courses: Deep Learning in Practice I and II, for a basic practical introduction to deep learning.
Welcome to the course, and I wish you a pleasant learning experience.
Let's get started.
About me
I am Anis Koubaa, and I am working as a Full Professor in Computer Science and Leader of the Robotics and Internet-of-Things Lab at Prince Sultan University
I am the author of two best-seller courses on Deep Learning and Robot Operating System (ROS),
and this course is the third course in the series Deep Learning in Practice, which deals with face recognition systems.
The series of deep learning in practice intends to present advanced deep learning topics very easily to beginner users who would like to get started with hands-on projects in deep learning in a minimum amount of time.
The two previous courses dealt with object classification and transfer learning projects.