In this project, I've combined the knowledge of computer vision techniques and deep learning architectures to build a facial keypoint detection system. Facial keypoints include points around the eyes, nose, and mouth on a face and are used in many applications. These applications include: facial tracking, facial pose recognition, facial filters, and emotion recognition. My code is able to look at any image, detect faces, and predict the locations of facial keypoints on each face; examples of these keypoints are displayed below
The project will be broken up into a few main parts in three Python notebooks and a file :
Notebook 1 : Loading and Visualizing the Facial Keypoint Data
Notebook 2 : Defining and Training a Convolutional Neural Network (CNN) to Predict Facial Keypoints
Notebook 3 : Facial Keypoint Detection Using Haar Cascades and your Trained CNN
File : model.py
Please see the requirements.txt file. To ensure you're up to date, run:
pip install -r requirements.txt
Data Set used is Youtube Face Dataset It is a dataset that contains 3,425 face videos designed for studying the problem of unconstrained face recognition in videos. These videos have been fed through processing steps and turned into sets of image frames containing one face and the associated keypoints.
Run the notebook 1 for loading and visualizing the data. Then the notebook 2 where the architecture is defined and the model is being trained.
In the notebook 3 the keypoint have been displayed using the show_all_keypoints().