Application features:
- Creating a training dataset for face recognition systems
- Training a face recognition model using machine learning
- 4 face recognition algorithms: LBPH, Eigenfaces, Fisherfaces, Deep Learning
- Testing created face recognition system manually or using k-fold cross-validation
Python 3.7
PyCharm IDE (run the program via detection_app.py file)
Python libraries used:
PyYaml
opencv-python
opencv-contrib-python (required for dlib face alignment)
numpy
kivy (kivy-sdl2, kivy-glew)
tensorflow (required by keras)
keras
scikit-learn
shutil
os
sklearn
pickle
dlib
PyCharm IDE should download all needed Python libraries using the requirements.txt file.
Dlib requires:
Cmake
Visual Studio Build Tools with C++ libraries
for GPU support:
CUDA 10.1
cuDNN
cuDNN installation:
Copy [installpath]\cuda\bin\cudnn64_[version].dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v[version]\bin.\
Copy [installpath]\cuda\include\cudnn.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v[version]\include.\
Copy [installpath]\cuda\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v[version]\lib\x64.
- OpenCV FaceRecognizer class (https://docs.opencv.org/3.4/da/d60/tutorial_face_main.html)
- Keras FaceNet Pre-Trained Model by Hiroki Taniai (https://github.com/nyoki-mtl/keras-facenet)
- Scikit-learn SVM classifier (https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html)
- Scikit-learn N-fold cross-validation (https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html)
- Dlib face detector (http://dlib.net/face_detector.py.html)
- Dlib face alignment (http://dlib.net/face_alignment.py.html)
- Dlib 68 point facial landmark predictor (http://dlib.net/face_landmark_detection.py.html)