A classifier that uses realtime webcams to detect faces and extrapolate emotions and gender of faces
Real-time demo:
Real-time face detection and emotion/gender classification using fer2013/IMDB datasets with a keras CNN model and openCV.
- IMDB gender classification test accuracy: 96%.
- fer2013 emotion classification test accuracy: 66%.
This project is greatly inspired from the Sandberg Paper called Google FaceNet, thereby harnessing Google's whitepaper implementations and applying them for real world production ready use cases and environments as a robust solution
Oversight uses a number of open source projects to work properly:
- Tensorflow - A google open-source ML framework
- Python - awesome language we love
These were the pre-requisities :
- CUDA - parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). Download and Install all the patches. During install, choose Custom and uncheck the Visual Studio Integration checkbox.
- cuDNN - The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. Create a NVIDIA developer account to download.
Add the following paths, C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\extras\CUPTI\libx64
Install Anaconda with 3.6 x64
$ conda update conda
$ pip install -r requirements.txt
$ python3 video_emotion_color_demo.py
$ python3 image_gradcam_demo.py
$ python3 image_emotion_gender_demo.py <image_path>
e.g.
$ python3 image_emotion_gender_demo.py ../images/test_image.jpg
-
Download the fer2013.tar.gz file from here
-
Move the downloaded file to the datasets directory inside this repository.
-
Untar the file:
$ tar -xzf fer2013.tar
- Run the train_emotion_classification.py file
$ python3 train_emotion_classifier.py
-
Download the imdb_crop.tar file from here (It's the 7GB button with the tittle Download faces only).
-
Move the downloaded file to the datasets directory inside this repository.
-
Untar the file:
$ tar -xfv imdb_crop.tar
- Run the train_gender_classification.py file
$ python3 train_gender_classifier.py
- Optimize Further to increase speed
- Implement Docker and Jenkins based deployment
Public