Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
This process of training a convolutional neural network to output face embeddings requires a lot
of data and computer power. Even with an expensive Nvidia Tesla video card, it takes about 24
hours of continuous training to get good accuracy. But once the network has been trained, it can
generate measurements for any face, even ones it has never seen before. Luckily, there are
pre-trained networks on the internet that we can directly use.
In week 4, we will try implementing the face recognition part of our system. The basic steps
include
1. Implement the face landmark estimation and pose alignment
2. Implement the neural network
3. Train classifier from the embedded network features/measurements
4. Test the classifier
1. Implement the face landmark estimation and pose alignment
There are many python libraries that can help implement face landmark estimation, such
as dlib.
Questions:
● Show the results of face landmark estimation
● Show the results of pose alignment
2. Implement the neural network
According to the papers you have read on neural networks, try to find a pre-trained
neural network to extract facial features of the face images in the bounding box. Deep learning
frameworks, such as pytorch, caffe or tensorflow, are needed to implement the neural networks.
Please install framework requested for the network you have chosen. Installing the framework
and setting up the environment may take a long time. So please start as soon as possible.
Again, Linux and Mac OS is recommended for this project. Installation on windows is much
more complicated.
A suggestion on the network is Openface, a pre-trained network for facial feature
extraction. It is a face recognition network implemented
in python and pytorch.
For the installation of pytorch, there is a simple and clear command line installation
guides for different operating systems and python versions on the official website of pytorch
. Choose None for CUDA option. Note, if installing on windows, python 3 is
required.
For linux and anaconda, use command line:
conda install pytorch-cpu torchvision-cpu -c pytorch
For macOS and anaconda, use command line:
conda install pytorch torchvision -c pytorch
For windows, python 3.5/3.6 and anaconda, use command line:
conda install pytorch-cpu -c pytorch
pip3 install torchvision
Questions:
● What neural network did you use?
● Show a sample of the feature the network generates?
3. Train classifier from the embedded network features/measurements
● Randomly split the neural network features into 90 training and 10 testing.
● Train the classifier. Try multiple classifiers for each feature. (SVM, Naive Bayes,
KNN, Logistic Regressor, etc)
● Train the classifiers from the neural network features with and without the face
landmark estimation and pose alignment.
Questions:
● What kind of classifiers did you train? Try at least 3 different kinds of classifiers.
4. Test the classifiers
Questions:
● Compare the classifier testing and training accuracy with and without the pose
alignment.
● Compare the classifier testing and training accuracy among different classifiers.
● Plot the training and testing accuracy of different training/testing split ratio of one
of the classifiers. Comment on the results.