Commit
·
5015097
0
Parent(s):
Initial commit
Browse files- .gitattributes +35 -0
- Langevin-Dispersion-10k.ckpt +3 -0
- Langevin-Dispersion-10k_checksum.txt +2 -0
- README.md +89 -0
.gitattributes
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
Langevin-Dispersion-10k.ckpt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e92522365dc92faa9b130fd871ab21a4ed01a8afa5c5ce5dc96d63aceae1f1cc
|
3 |
+
size 390034798
|
Langevin-Dispersion-10k_checksum.txt
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
Filename: Langevin-Dispersion-10k.ckpt
|
2 |
+
MD5 Hash: 9b9e9aafa7497e4ac9bd7a1657c0fb6f
|
README.md
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: cc-by-nc-sa-4.0
|
3 |
+
---
|
4 |
+
|
5 |
+
|
6 |
+
# Langevin-Dispersion-10k
|
7 |
+
|
8 |
+
Face recognition models are trained on large-scale datasets, which have privacy and ethical concerns. Lately, the use of synthetic data to complement or replace genuine data for the training of face recognition models has been proposed. While promising results have been obtained, it still remains unclear if generative models can yield diverse enough data for such tasks. In this work, we introduce a new method, inspired by the physical motion of soft particles subjected to stochastic Brownian forces, allowing us to sample identities distributions in a latent space under various constraints. We introduce three complementary algorithms, called Langevin, Dispersion, and DisCo, aimed at generating large synthetic face datasets. With this in hands, we generate several face datasets and benchmark them by training face recognition models, showing that data generated with our method exceeds the performance of previously GAN-based datasets and achieves competitive performance with state-of-the-art diffusion-based synthetic datasets. While diffusion models are shown to memorize training data, we prevent leakage in our new synthetic datasets, paving the way for more responsible synthetic datasets. Project page: https://www.idiap.ch/paper/synthetics-disco
|
9 |
+
|
10 |
+
|
11 |
+
## Overview
|
12 |
+
|
13 |
+
* **Training**: Face Recognition models trained on [Synthetic Face Recognition Datasets (Langevin-Dispersion-DisCo)](https://zenodo.org/records/11474048)
|
14 |
+
* **Backbone**: IResnet50
|
15 |
+
* **Parameters**: 43.6M
|
16 |
+
* **Task**: Face Recognition models trained on Synthetic Face Datasets
|
17 |
+
* **Framework**: Pytorch
|
18 |
+
* **Output structure**: Batch of face embeddings (ie, features)
|
19 |
+
|
20 |
+
## Evaluation of Models
|
21 |
+
|
22 |
+
For evaluation, we train face recognition models from scratch using the synthetic datasets and then evaluate trained models on benchmarking datasets.
|
23 |
+
Performance benchmarks of face recognition models trained with our dataset and other datasets in the literature:
|
24 |
+
|
25 |
+
| Dataset Type | Dataset Name | Generator | No. IDs | No. Samples | LFW | CPLFW | CALFW | CFP | AgeDB |
|
26 |
+
|---------------------|-----------------------|-----------------|----------|----------|--------|--------|--------|--------|--------|
|
27 |
+
| Real images | MS-Celeb-1M | N/A | 85,000 | 5,800,000| 99.82 | 92.83 | 96.07 | 96.10 | 97.82 |
|
28 |
+
| Real images | WebFace-4M | N/A | 206,000 | 4,000,000| 99.78 | 94.17 | 95.98 | 97.14 | 97.78 |
|
29 |
+
| Real images | CASIA-WebFace | N/A | 10,572 | 490,623 | 99.42 | 90.02 | 93.43 | 94.97 | 94.32 |
|
30 |
+
| Computer Graphics | DigiFace-1M | Rendered mesh | 109,999 | 1,219,995| 90.68 | 72.55 | 73.75 | 79.43 | 68.43 |
|
31 |
+
| Diffusion-based | DCFace-0.5M | custom trained | 10,000 | 500,000 | 98.35 | 83.12 | 91.70 | 88.43 | 89.50 |
|
32 |
+
| Diffusion-based | DCFace-1.2M | custom trained | 60,000 | 1,200,000| 98.90 | 84.97 | 92.80 | 89.04 | 91.52 |
|
33 |
+
| Diffusion-based | IDiff-Face (Uniform) | custom trained | 10,049 | 502,450 | 98.18 | 80.87 | 90.82 | 82.96 | 85.50 |
|
34 |
+
| Diffusion-based | IDiff-Face (Two-Stage)| custom trained | 10,050 | 502,500 | 98.00 | 77.77 | 88.55 | 82.57 | 82.35 |
|
35 |
+
| GAN-based | Synface | StyleGAN2 | 10,000 | 999,994 | 86.57 | 65.10 | 70.08 | 66.79 | 59.13 |
|
36 |
+
| GAN-based | SFace | StyleGAN2 | 10,572 | 1,885,877| 93.65 | 74.90 | 80.97 | 75.36 | 70.32 |
|
37 |
+
| GAN-based | SFace2 | StyleGAN2 | 10,572 | 1,048,255| 94.03 | 73.2 | 80.33 | 74.87 | 72.98 |
|
38 |
+
| GAN-based | Syn-Multi-PIE | StyleGAN2 | 10,000 | 1,800,000| 78.72 | 60.22 | 61.83 | 60.84 | 54.05 |
|
39 |
+
| GAN-based | GANDiffFace | StyleGAN3 | 10,080 | 543,893 | 94.35 | 76.15 | 79.90 | 78.99 | 69.82 |
|
40 |
+
| GAN-based | IDnet | StyleGAN2 | 10,577 | 1,057,200| 84.48 | 68.12 | 71.42 | 68.93 | 62.63 |
|
41 |
+
| GAN-based | ExFaceGAN | GAN-Control | 10,000 | 599,944 | 85.98 | 66.97 | 70.00 | 66.96 | 57.37 |
|
42 |
+
|**GAN-based** |**Langevin-Dispersion [ours]**| StyleGAN2 | 10,000 | 650,000 | 94.38 | 65.75 | 86.03 | 65.51 | 77.30 |
|
43 |
+
| GAN-based | Langevin-DisCo [ours] | StyleGAN2 | 10,000 | 650,000 | 97.07 | 76.73 | 89.05 | 79.56 | 83.38 |
|
44 |
+
| GAN-based | Langevin-DisCo [ours] | StyleGAN2 | 30,000 | 1,650,000| 98.97 | 81.52 | 93.95 | 83.77 | 93.32 |
|
45 |
+
|
46 |
+
_Comparison of the existing synthetic face datasets present in the literature with the best performing datasets created in this work. In addition to the number of identities and number of images, we present the recognition accuracy obtained by training an FR model on each dataset and evaluating on standard face recognition benchmarking datasets._
|
47 |
+
|
48 |
+
|
49 |
+
## Running Code
|
50 |
+
|
51 |
+
* Minimal code to instantiate the model and perform inference:
|
52 |
+
|
53 |
+
``` python
|
54 |
+
# Inferece (Face Recognition)
|
55 |
+
from face_alignment import align
|
56 |
+
from inference import load_pretrained_model, to_input
|
57 |
+
|
58 |
+
checkpoint = 'model_checkpoint.ckpt'
|
59 |
+
model = load_pretrained_model(checkpoint, architecture='ir_50')
|
60 |
+
path = 'path_to_the_image'
|
61 |
+
aligned_rgb_img = align.get_aligned_face(path)
|
62 |
+
bgr_input = to_input(aligned_rgb_img)
|
63 |
+
feature, _ = model(bgr_input)
|
64 |
+
```
|
65 |
+
|
66 |
+
## License
|
67 |
+
|
68 |
+
[CC BY-NC-SA 4.0](https://www.idiap.ch/Paper/?namespace=paper&slug=synthetics-disco)
|
69 |
+
|
70 |
+
## Copyright
|
71 |
+
|
72 |
+
(c) 2025, David Geissbühler, Hatef Otroshi Shahreza, Sébastien Marcel Idiap Research Institute, Martigny 1920, Switzerland.
|
73 |
+
|
74 |
+
https://www.idiap.ch/paper/synthetics-disco/
|
75 |
+
|
76 |
+
Please refer to the link for information about the License & Copyright terms and conditions.
|
77 |
+
|
78 |
+
## Citation
|
79 |
+
|
80 |
+
If you find our work useful, please cite the following publication:
|
81 |
+
|
82 |
+
```bibtex
|
83 |
+
@inproceedings{geissbuhler2025synthetic,
|
84 |
+
title={Synthetic Face Datasets Generation via Latent Space Exploration from Brownian Identity Diffusion},
|
85 |
+
author={David Geissb{\"u}hler and Hatef Otroshi Shahreza and S{\'e}bastien Marcel},
|
86 |
+
booktitle={Forty-second International Conference on Machine Learning},
|
87 |
+
year={2025}
|
88 |
+
}
|
89 |
+
```
|