This repo includes 3 main parts: using deepface to output age, gender, race, emotion and 2 models training from scratch are masked detection model and skintone detection model. All code are trained and evaluated on Kaggle with all provided data uploaded there.
Running experiment.ipynb notebook on Kaggle with public and private test data to get multiple backend detectors output for age, gender, race, emotion.
In folder skinton_detection, run the skintone_analysis.ipynb notebook to train and predict skintone feature for public and private test data. A model skin_classify_150epoch.keras will be saved to Kaggle working directory /kaggle/working after training, which can be used for inference and fine-tuning later.
In folder masked_detection, run the masked_model_training.ipynb to train the masked detection model. A model named my_model.keras will be saved to Kaggle working directory /kaggle/working.
- Total images: 15000 images (jpg format) including real images and synthetic images
- Number of images with more than 1 face: 109 images (0.7%)
- File annotation format:
- CSV file
- 15310 rows
- Main attributes:
- bbox: face bounding box of format (x, y, w, h) IOU (AVG precision IOU threshold từ 0.5 - 0.95)
- age: 20-30s, 40-50s, Kid, Senior, Baby, Teenager - accuracy (*)
- race: Caucasian, Mongoloid, Negroid - accuracy (*)
- masked: Unmasked, Masked - accuracy
- skintone: Mid-light, Light, Mid-dark, Dark - accuracy (*)
- emotion: Neutral, Happiness, Anger, Surprise, Fear, Sadness, Disgust - accuracy (*)
- gender: Male, Female - accuracy
- Các thuộc tính khó: Độ tuổi, Cảm xúc, Tông màu da, Chủng tộc sẽ được đánh giá cao hơn các thuộc tính khác
Masked detection:
- https://medium.com/cloudnloud/building-a-face-mask-detector-using-python-and-opencv-2654e28d8d76
Skintone detection: