Idiap-Data commited on
Commit
e5795d8
·
verified ·
1 Parent(s): 20b5b53

Upload 3 files

Browse files
Files changed (3) hide show
  1. Fusion.zip +3 -0
  2. Fusion_checksum.txt +2 -0
  3. README.md +89 -3
Fusion.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d86c4ae174faf9acef1ebefc88957d068ce6d789684ef28fda4e8e562c42ba4
3
+ size 234392518
Fusion_checksum.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ Filename: Fusion.zip
2
+ MD5 Hash: 7a42987f41f62beaff2b20f78cd8debd
README.md CHANGED
@@ -1,3 +1,89 @@
1
- ---
2
- license: cc-by-nc-4.0
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ ---
4
+
5
+
6
+ # Fusion
7
+
8
+ In this work, we show that lightweight tuning of vision–language foundation models, combined with domain-adapted face recognition networks, can effectively bridge the domain gap between photographs and paintings. Our fusion approach achieves state-of-the-art accuracy in sitter identification. Face recognition on artworks remains a particularly difficult task compared to traditional FR due to the scarcity of labelled data, stylistic variation, and the interpretive nature of portraiture. However, the results show that adapting modern architectures to this setting is feasible and promising. This opens up new research avenues, including synthetic data generation to augment the limited training set and heterogeneous domain adaptation techniques to improve generalisation across visual domains.
9
+ Project page: https://www.idiap.ch/paper/artface/
10
+
11
+ ## Overview
12
+
13
+ * **Training**: ArtFace was trained on [The Historical Faces dataset](https://github.com/marcohuber/HistoricalFaces) (it consists of 766 paintings of 210 different sitters)
14
+ * **Backbone**: **Fusion model** is derived from OpenAI's CLIP (ViT-B/16, MIT License — https://github.com/openai/CLIP) and InsightFace's ArcFace-antelopev2 (MIT License — https://github.com/deepinsight/insightface/tree/master/model_zoo).
15
+ * **Parameters**: 1M
16
+ * **Task**: Towards Historical Portrait Face Identification via Model Adaptation
17
+ * **Framework**: Pytorch
18
+ * **Output structure**: Batch of face embeddings (ie, features)
19
+
20
+ ## Evaluation of Models:
21
+
22
+ ![ArtFace](https://www.idiap.ch/paper/artface/static/images/ArtFR-Page-9.drawio.png)
23
+
24
+ _Overview of the proposed method: **(a)** LoRA-based adaptation of the CLIP model, and **(b)** head adaptation using triplet loss._
25
+
26
+ ![ArtFace ROC](https://www.idiap.ch/paper/artface/static/images/roc.png){width=80%}
27
+
28
+ _**ROC curves** of tuned and base CLIP, IResNet100, COTS and proposed fusion method. Fusion provides consistent improvements even at low FAR._
29
+
30
+
31
+ | Model | EER | TAR @ 0.1% FAR | TAR @ 1% FAR |
32
+ |-------------------------------------------------|-------|----------------|--------------|
33
+ | COTS FR system | 12.6 | 34.3% | 58.1% |
34
+ | CLIP-Base | 17.9 | 8.4% | 33.2% |
35
+ | IResNet100-Base | 14.0 | 29.9% | 55.1% |
36
+ | CLIP-Base + IResNet100-Base | 13.1 | 29.0% | 54.7% |
37
+ | CLIP-Base + IResNet100-Tuned | 12.6 | 35.1% | 57.9% |
38
+ | CLIP-LoRA + IResNet100-Base | 11.1 | 34.6% | 62.6% |
39
+ | CLIP-LoRA + IResNet100-Tuned | 10.7 | 39.7% | 62.15% |
40
+ |**CLIP-LoRA + IResNet100-Base + IResNet100-Tuned** |**9.9** | **39.7%** | **65.9%** |
41
+
42
+ _Performance Comparison of Base, Tuned models, Fusion, and COTS FR Systems. Fusion enhances overall accuracy._
43
+
44
+ ## Running Code
45
+
46
+ * Minimal code to instantiate the model and perform inference:
47
+
48
+ ``` bash
49
+ # The command below can be used to align the images.
50
+ python align.py -f [path_to_paintings]/* -o data/phttps://gitlab.idiap.ch/biometric/code.iccv2025artmetrics.artface/
51
+ aintings
52
+ # Run the commands below to test the full model.
53
+ python generate-scores.py fusion
54
+ python evaluate.py table -f out/fusion.csv
55
+ python plot.py roc --log -f out/fusion.csv
56
+ # To use the model directly, use the following code snippet:
57
+ from lib.models import get_model
58
+ from PIL import Image
59
+ model, preprocess = get_model("fusion").torch()
60
+ model.eval()
61
+ image = Image.open("...")
62
+ inputs = preprocess(image)
63
+ embedding = model(inputs).squeeze()
64
+ ```
65
+
66
+
67
+ ## License
68
+ [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
69
+
70
+ ## Copyright
71
+
72
+ (c) 2025, Francois Poh, Anjith George, Sébastien Marcel Idiap Research Institute, Martigny 1920, Switzerland.
73
+
74
+ https://gitlab.idiap.ch/biometric/code.iccv2025artmetrics.artface/
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
+ @article{poh2025artface,
84
+ title={ArtFace: Towards Historical Portrait Face Identification via Model Adaptation},
85
+ author={Poh, Francois and George, Anjith and Marcel, S{\'e}bastien},
86
+ journal={arXiv preprint arXiv:2508.20626},
87
+ year={2025}
88
+ }
89
+ ```