Face-Recognition-Using-the-SIFT-RITF-CNN-Model
Facial recognition model that combines CNN, rotation-invariant texture feature (RITF) and scale-invariant feature transform (SIFT) features to get 99% accuracy on LFW dataset
This is based mostly on the articles below (I also made some improvements based on my expirence):
- Yu-Xin Yang, Chang Wen, Kai Xie, Fang-Qing Wen, Guan-Qun Sheng and Xin-Gong Tang - Face Recognition Using the SR-CNN Model
- Ke Yan, Yaowei Wang, Dawei Liang, Tiejun Huang, Yonghong Tian - CNN vs. SIFT for Image Retrieval: Alternative or Complementary?
- Mundher Al-Shabi, Wooi Ping Cheah, Tee Connie - Facial Expression Recognition Using a Hybrid CNN–SIFT Aggregator
Note: The code generates and saves numpy arrays to your hard drive to improve the training speed, so it's important that you run the jupyter notebooks by order, every notebook starts with a number that indicates the execution order (starting from 1).
Accuracy (99%)
Result with my images
Resources
Libraries and APIs:
- OpenCV docs and examples - https://scikit-learn.org/
- Scikit-learn docs and examples - https://opencv.org/
- Keras docs and examples - https://keras.io/
- Matplotlib - https://matplotlib.org/
- Numpy - https://numpy.org/
Helpful sites:
- https://machinelearningmastery.com/
- https://www.pyimagesearch.com/2015/12/07/local-binary-patterns-with-python-opencv/
Database (LFW): https://www.kaggle.com/atulanandjha/lfwpeople