Karkkainen, K., & Joo, J. (2021). FairFace: Face Attribute Dataset for Balanced Race, Gender, and Age for Bias Measurement and Mitigation. In Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (pp. 1548-1558).
@inproceedings{karkkainenfairface,
title={FairFace: Face Attribute Dataset for Balanced Race, Gender, and Age for Bias Measurement and Mitigation},
author={Karkkainen, Kimmo and Joo, Jungseock},
booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision},
year={2021},
pages={1548--1558}
}
-
Download or Clone this repo
-
Install Dependencies
- Please follow the Pytorch's official documentation to install Pytorch
- Please also install dlib, if you have pip installed on your system. Simply type the following command on your terminal.
pip install dlib
-
Download our models Download our pretrained models from here and save it in the same folder as where predict.py is located. Two models are included, race_4 model predicts race as White, Black, Asian and Indian and race_7 model predicts races as White, Black, Latino_Hispanic, East, Southeast Asian, Indian, Middle Eastern.
-
Unzip the downloaded FairFace model as well as dlib face detection models in dlib_models.
-
Prepare the images
- prepare a csv and provide the paths of testing images where the colname name of testing images is "img_path" (see our template csv file.
Run the predict.py script and provide the csv path (described in the section above).
python3 predict.py --csv "NAME_OF_CSV"
After download this repository, you can run python3 predict.py --csv test_imgs.csv
, the results will be available at detected_faces (in case dlib detect multiple faces in one image, we save them here) and test_outputs.csv.
The results will be saved at "test_outputs.csv" (located in the same folder as predict.py, see sample here
same commands as predict.py, the output csv will have additional column "bbox" which is the bounding box of detected face.
python3 predict_bbox.py --csv "NAME_OF_CSV"
indices to type
- race_scores_fair (model confidence score) [White, Black, Latino_Hispanic, East, Southeast Asian, Indian, Middle Eastern]
- race_scores_fair_4 (model confidence score) [White, Black, Asian, Indian]
- gender_scores_fair (model confidence score) [Male, Female]
- age_scores_fair (model confidence score) [0-2, 3-9, 10-19, 20-29, 30-39, 40-49, 50-59, 60-69, 70+]
Images (train + validation set): Padding=0.25, Padding=1.25
We used dlib's get_face_chip() to crop and align faces with padding = 0.25 in the main experiments (less margin) and padding = 1.25 for the bias measument experiment for commercial APIs. Labels: Train, Validation
License: CC BY 4.0
The models and scripts were tested on a device with 8Gb GPU, it takes under 2 seconds to predict the 5 images in the test folder.