license:cc-by-4.0 modality:image arxiv:2409.08345 region:us
---
license: cc-by-4.0
---
# ControlFace10k Dataset

## Overview

ControlFace10k is a synthetic face dataset designed for evaluating face recognition systems. It contains 10,008 high-quality images of 3,336 synthetic identities, balanced across race, gender, age, and pose. This dataset was generated using the Synthetic Identity Generation (SIG) pipeline, which allows for precise control over demographic attributes and facial features.

The primary purpose of ControlFace10k is to provide researchers and practitioners with a diverse, balanced, and ethically sourced dataset for assessing the performance and fairness of face recognition algorithms across various demographic groups.

This dataset is part of the research presented in the paper:
[SIG: A Synthetic Identity Generation Pipeline for Generating Evaluation Datasets for Face Recognition](https://www.arxiv.org/pdf/2409.08345)

## Dataset Structure

The ControlFace10k dataset is organized hierarchically based on demographic attributes:

```
/controlface
├── African
│   ├── female
│   │   ├── age
│   │   │   ├── identity-{uuid1}
│   │   │   ├── identity-{uuid2}
│   │   └── ...
│   └── male
│       └── ...
├── Asian
│   └── ...
├── Caucasian
│   └── ...
└── Indian
    └── ...
```

Each `identity-{uuid}` folder contains a collection of images representing a unique synthetic identity in the dataset.

## Image Naming Convention

Images in the dataset follow a specific naming convention that encodes the attributes of the subject:

Format: `rX_gY_aZ_oW_cXXXXXX.png`

- `rX`: Race (X is the race ID)
  - `0`: African
  - `1`: Asian
  - `2`: Caucasian
  - `3`: Indian
- `gY`: Gender (Y is the gender ID)
  - `0`: Female
  - `1`: Male
- `aZ`: Age (Z is the age of the subject)
- `oW`: Orientation (W is the orientation index)
- `XXXXXX`: Unique 6-character identifier for the image

This naming convention allows for easy filtering and selection of images based on specific attributes.

## Usage

To use the ControlFace10k dataset with the Hugging Face datasets library, you can load it as follows:

```python
from datasets import load_dataset

dataset = load_dataset("HuMInGameLab/ControlFace10K") 

# Access an image
image = dataset['train'][0]['image']
```

You can then use the dataset for various face recognition evaluation tasks, such as:

- Testing model performance across different demographic groups
- Analyzing bias in face recognition systems
- Evaluating pose invariance in face recognition algorithms

## Citation

If you use the ControlFace10k dataset in your research, please cite our paper:

```
@misc{nzalasse2024sigsyntheticidentitygeneration,
      title={SIG: A Synthetic Identity Generation Pipeline for Generating Evaluation Datasets for Face Recognition}, 
      author={Kassi Nzalasse and Rishav Raj and Eli Laird and Corey Clark},
      year={2024},
      eprint={2409.08345},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2409.08345}, 
}
```