File size: 4,062 Bytes
d971608 ceb5703 2c8fbc2 ceb5703 2c8fbc2 ceb5703 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
---
license: apache-2.0
datasets:
- prithivMLmods/Face-Age-10K
language:
- en
base_model:
- google/siglip2-base-patch16-512
pipeline_tag: image-classification
library_name: transformers
tags:
- age-detection
- SigLIP2
- biology
---

# facial-age-detection
> facial-age-detection is a vision-language encoder model fine-tuned from `google/siglip2-base-patch16-512` for **multi-class image classification**. It is trained to detect and classify human faces into **age groups** ranging from early childhood to elderly adults. The model uses the `SiglipForImageClassification` architecture.
> \[!note]
> SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features
> [https://arxiv.org/pdf/2502.14786](https://arxiv.org/pdf/2502.14786)
```py
Classification Report:
precision recall f1-score support
age 01-10 0.9614 0.9669 0.9641 2474
age 11-20 0.8418 0.8467 0.8442 1181
age 21-30 0.8118 0.8326 0.8220 1523
age 31-40 0.6937 0.6683 0.6808 1010
age 41-55 0.7106 0.7528 0.7311 1181
age 56-65 0.6878 0.6646 0.6760 799
age 66-80 0.7949 0.7596 0.7768 653
age 80 + 0.9349 0.8343 0.8817 344
accuracy 0.8225 9165
macro avg 0.8046 0.7907 0.7971 9165
weighted avg 0.8226 0.8225 0.8223 9165
```

---
## Label Space: 8 Classes
```
Class 0: age 01-10
Class 1: age 11-20
Class 2: age 21-30
Class 3: age 31-40
Class 4: age 41-55
Class 5: age 56-65
Class 6: age 66-80
Class 7: age 80 +
```
---
## Install Dependencies
```bash
pip install -q transformers torch pillow gradio hf_xet
```
---
## Inference Code
```python
import gradio as gr
from transformers import AutoImageProcessor, SiglipForImageClassification
from PIL import Image
import torch
# Load model and processor
model_name = "prithivMLmods/facial-age-detection" # Update with actual model name on Hugging Face
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)
# Updated label mapping
id2label = {
"0": "age 01-10",
"1": "age 11-20",
"2": "age 21-30",
"3": "age 31-40",
"4": "age 41-55",
"5": "age 56-65",
"6": "age 66-80",
"7": "age 80 +"
}
def classify_image(image):
image = Image.fromarray(image).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
prediction = {
id2label[str(i)]: round(probs[i], 3) for i in range(len(probs))
}
return prediction
# Gradio Interface
iface = gr.Interface(
fn=classify_image,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(num_top_classes=8, label="Age Group Classification"),
title="Facial Age Detection",
description="Upload a face image to estimate the age group: 01–10, 11–20, 21–30, 31–40, 41–55, 56–65, 66–80, or 80+."
)
if __name__ == "__main__":
iface.launch()
```
---
## Intended Use
`facial-age-detection` is designed for:
* **Demographic Analytics** – Estimate age distributions in image datasets for research and commercial analysis.
* **Access Control & Verification** – Enforce age-based access in digital or physical environments.
* **Retail & Marketing** – Understand customer demographics in retail spaces through camera-based analytics.
* **Surveillance & Security** – Enhance people classification systems by integrating age detection.
* **Human-Computer Interaction** – Adapt experiences and interfaces based on user age. |