Package: facial-keypoints-detecter
Facial Keypoints DetectionA computer vision project to build a facial keypoints detection system.Table of ContentsProject OverviewData DescriptionMethodologyResultsPython packagefacial_keypoints_detecterProject OverviewFacial keypoints detection system has variety of applications, including:Facial tracking.Facial pose recognition.Facial filters.Emotion recognition.Medical diagnosis: Identifying dysmorphic facial symptoms.Detecting facial keypoints is a challenging problem given the variations in both facial features as well as image conditions. Facial features may differ according to size, position, pose and expression, while image qualtiy may vary with illumination and viewing angle.In this project,Convolutional Neural Network (CNN)based facial keypoints detector system has been implemented to detect 68 facial keypoints (also called facial landmarks) around important areas of the face: the eyes, corners of the mouth, the nose, etc. usingcomputer vision techniquesanddeep learning architectures.The project is broken up into a few main parts in 4 Python notebooks: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 a Trained CNN.Notebook 4: Applications - Facial filters, Face Blur.The implemented Python package code isfacial_keypoints_detecter.Data DescriptionFacial keypoints are the small magenta dots shown on each of the faces in the image above.In each training and test image, there is a single face and 68 keypoints, with coordinates (x, y), for that face.These keypoints mark important areas of the face: the eyes, corners of the mouth, the nose, etc. Here they are, numbered, and you can see that specific ranges of points match different portions of the face.Training and Testing DataThis facial keypoints dataset consists of 5770color images.3462 aretraining images.2308 aretest images.The information about the images and keypoints in this dataset are summarized inCSV files.Original + Augmented dataNote: Datasets are explored inNotebook 1.Note: This set of image data has been extracted from theYouTube Faces Dataset, which includes videos of people in YouTube videos. These videos have been fed through some processing steps and turned into sets of image frames containing one face and the associated keypoints.mkdir data

wget -P data/ https://s3.amazonaws.com/video.udacity-data.com/topher/2018/May/5aea1b91_train-test-data/train-test-data.zip

unzip -n data/train-test-data.zip -d dataResultsA custom made Python packagefacial_keypoints_detecterwhich contains a classifier, plotting & feature extraction functionalities, and datasets for the project.The trained model has been implemented for 2 example applications:Facial filtersFace blurFacial filtersFace blurFeature visualizationThe project results and package usage have been clearly demonstrated inNotebook 1.Notebook 2.Notebook 3.Notebook 4.Python packagefacial_keypoints_detecterThis project utilizes a custom-made packagefacial_keypoints_detecterwhich contains a classifier, plotting & feature extraction functionalities, and datasets for the project.Libraries used:Python 3,PyTorch,torchvision,OpenCV-Python,Matplotlib,pandas,numpy.This library contains a cnn model, pre-processing tools, plotting tools, and datasets loading tools for this project.facial_keypoints_detecter contains a cnn model, pre-processingMain libraries used: PyTorch, OpenCV-Python, matplotlib, pandas, numpy.DependenciesPython 3,PyTorch,torchvision,OpenCV-Python,Matplotlib,pandas,numpy.Installation# Install package from PyPI >>pipinstallfacial_keypoints_detecter# or# Install package from GitHub >>pipinstallgit+https://github.com/ShashankKumbhare/facial-keypoints-detecter.git#egg=facial-keypoints-detecterPackage usage has benn demonstrated inNotebook 1,Notebook 2,Notebook 3,Notebook 4.