Views
No views yet

tooth-agenesis-siglip2 is a vision-language encoder model fine-tuned fromgoogle/siglip2-base-patch16-512for 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 theSiglipForImageClassificationarchitecture.
[!note] SigLIP 2: Multilingual Vision-Language Encoders with Improved Semantic Understanding, Localization, and Dense Features https://arxiv.org/pdf/2502.14786
1Classification Report:
2 precision recall f1-score support
3
4 Calculus 0.6640 0.7623 0.7098 1296
5 Caries 0.9525 0.9558 0.9541 2601
6 Gingivitis 0.8496 0.7842 0.8156 2349
7 Mouth Ulcer 0.9939 0.9893 0.9916 2806
8Tooth Discoloration 0.9314 0.9757 0.9530 2017
9 hypodontia 0.9983 0.9161 0.9554 1251
10
11 accuracy 0.9096 12320
12 macro avg 0.8983 0.8972 0.8966 12320
13 weighted avg 0.9132 0.9096 0.9105 12320
Class 0: Calculus
Class 1: Caries
Class 2: Gingivitis
Class 3: Mouth Ulcer
Class 4: Tooth Discoloration
Class 5: hypodontiapip install -q transformers torch pillow gradio hf_xet1import gradio as gr
2from transformers import AutoImageProcessor, SiglipForImageClassification
3from PIL import Image
4import torch
5
6# Load model and processor
7model_name = "prithivMLmods/tooth-agenesis-siglip2" # Update with actual model name on Hugging Face
8model = SiglipForImageClassification.from_pretrained(model_name)
9processor = AutoImageProcessor.from_pretrained(model_name)
10
11# Updated label mapping
12id2label = {
13 "0": "Calculus",
14 "1": "Caries",
15 "2": "Gingivitis",
16 "3": "Mouth Ulcer",
17 "4": "Tooth Discoloration",
18 "5": "hypodontia"
19}
20
21def classify_image(image):
22 image = Image.fromarray(image).convert("RGB")
23 inputs = processor(images=image, return_tensors="pt")
24
25 with torch.no_grad():
26 outputs = model(**inputs)
27 logits = outputs.logits
28 probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
29
30 prediction = {
31 id2label[str(i)]: round(probs[i], 3) for i in range(len(probs))
32 }
33
34 return prediction
35
36# Gradio Interface
37iface = gr.Interface(
38 fn=classify_image,
39 inputs=gr.Image(type="numpy"),
40 outputs=gr.Label(num_top_classes=6, label="Dental Condition Classification"),
41 title="Tooth Agenesis Detection",
42 description="Upload a dental image to detect conditions such as Calculus, Caries, Gingivitis, Mouth Ulcer, Tooth Discoloration, or Hypodontia."
43)
44
45if __name__ == "__main__":
46 iface.launch()tooth-agenesis-siglip2 is designed for: