File size: 4,210 Bytes
b83d525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
136
137
---
license: apache-2.0
datasets:
- strangerguardhf/Tooth-Agenesis-6_Types
language:
- en
base_model:
- google/siglip2-base-patch16-512
pipeline_tag: image-classification
library_name: transformers
tags:
- tooth
- SigLIP2
- chemistry
- biology
- medical
- Calculus
- Mouth Ulcer
- hypodontia
- Tooth Discoloration
- Gingivitis
- tooth-agenesis
---

![123.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/9_mjg7bzNcQT-Ifx-ATmH.png)

# tooth-agenesis-siglip2

> tooth-agenesis-siglip2 is a vision-language encoder model fine-tuned from `google/siglip2-base-patch16-512` for **multi-class image classification**. It is trained to detect various **dental anomalies and conditions** such as **Calculus**, **Caries**, **Gingivitis**, **Mouth Ulcer**, **Tooth Discoloration**, and **Hypodontia**. 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

           Calculus     0.6640    0.7623    0.7098      1296
             Caries     0.9525    0.9558    0.9541      2601
         Gingivitis     0.8496    0.7842    0.8156      2349
        Mouth Ulcer     0.9939    0.9893    0.9916      2806
Tooth Discoloration     0.9314    0.9757    0.9530      2017
         hypodontia     0.9983    0.9161    0.9554      1251

           accuracy                         0.9096     12320
          macro avg     0.8983    0.8972    0.8966     12320
       weighted avg     0.9132    0.9096    0.9105     12320
```

![download.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/vCoLKevXThpp6GhYCvoCe.png)

---

## Label Space: 6 Classes

```
Class 0: Calculus  
Class 1: Caries  
Class 2: Gingivitis  
Class 3: Mouth Ulcer  
Class 4: Tooth Discoloration  
Class 5: hypodontia
```

---

## 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/tooth-agenesis-siglip2"  # 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": "Calculus",
    "1": "Caries",
    "2": "Gingivitis",
    "3": "Mouth Ulcer",
    "4": "Tooth Discoloration",
    "5": "hypodontia"
}

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=6, label="Dental Condition Classification"),
    title="Tooth Agenesis Detection",
    description="Upload a dental image to detect conditions such as Calculus, Caries, Gingivitis, Mouth Ulcer, Tooth Discoloration, or Hypodontia."
)

if __name__ == "__main__":
    iface.launch()
```

---

## Intended Use

`tooth-agenesis-siglip2` is designed for:

* **Dental Diagnosis Support** – Assists dentists and clinicians in identifying common dental conditions from images.
* **Oral Health Monitoring** – A tool for regular monitoring of dental health in clinical or remote settings.
* **Tele-dentistry** – Enables automated screening in virtual consultations and rural healthcare setups.
* **Research and Education** – Useful for academic institutions and training platforms for demonstrating AI in dental diagnostics.
* **Early Detection** – Helps identify oral health issues early to prevent progression.