/Emotion-detection-with-retinaface-and-resnet56

RetinaFace (RetinaFace: Single-stage Dense Face Localisation in the Wild, published in 2019) reimplemented in Tensorflow 2.0, with pretrained weights available !

Primary LanguagePythonMIT LicenseMIT

RetinaFace-tf2

RetinaFace (RetinaFace: Single-stage Dense Face Localisation in the Wild, published in 2019) reimplemented in Tensorflow 2.0, with pretrained weights available. Resnet50 backbone.

Original paper -> arXiv
Original Mxnet implementation -> Insightface

Table of contents

  1. Installation
  2. Usage
  3. Benchmark
  4. Evaluation
  5. Acknowledgements

example output : testing on a random internet selfie


INSTALLATION

To install dependencies, if you have a GPU, run :

pip install -r requirements-gpu.txt

If not, run :

pip install -r requirements.txt

Then build the rcnn module by running :

make

USAGE

Download pretrained weights on Dropbox and save them in the data folder
Run :

python detect.py --weights_path="./data/retinafaceweights.npy" --sample_img="./sample-images/WC_FR.jpeg"

Python usage :

from retinaface import RetinaFace
import cv2

detector = RetinaFace("./data/retinafaceweights.npy", False, 0.4)
img = cv2.imread("./sample-images/WC_FR.jpeg")
faces, landmarks = detector.detect(img, 0.9)

BENCHMARK

mAP result values on the WIDERFACE validation dataset:

Model Easy Medium Hard
Original Mxnet implementation 96.5 95.6 90.4
Ours 95.6 94.6 88.5

EVALUATE ON WIDERFACE

In order to verify the models accuracy on the WiderFace dataset:

  • Run the model on the dataset and generate text files as results
python eval_widerface --weights_path="data/retinafaceweights.npy" --widerface_data_dir = "/data/WIDER_test/images" --save_folder="./WiderFace-Evaluation/results/"
  • Evaluate the results
cd ./WiderFace-Evaluation
python setup.py build_ext --inplace
python evaluation.py -p ./results_val/ -g ./ground_truth/

ACKNOWLEDGEMENTS

This work is largely based on the original implementation by the amazing insightface team
Evaluation on widerface done with the Widerface-Evaluation repo
If you use this repo, please reference the original work :

@inproceedings{Deng2020CVPR,
title = {RetinaFace: Single-Shot Multi-Level Face Localisation in the Wild},
author = {Deng, Jiankang and Guo, Jia and Ververas, Evangelos and Kotsia, Irene and Zafeiriou, Stefanos},
booktitle = {CVPR},
year = {2020}
}