WBC-Type-Classifier
WBC-Type-Classifier is an image classification vision-language encoder model fine-tuned from google/siglip2-base-patch16-224 for a single-label classification task. It is designed to classify different types of white blood cells (WBCs) using the SiglipForImageClassification architecture.
Accuracy: 0.9891
F1 Score: 0.9893
Classification Report:
precision recall f1-score support
basophil 0.9822 0.9959 0.9890 1218
eosinophil 0.9994 0.9984 0.9989 3117
erythroblast 0.9835 0.9974 0.9904 1551
ig 0.9787 0.9693 0.9740 2895
lymphocyte 0.9893 0.9942 0.9918 1214
monocyte 0.9852 0.9852 0.9852 1420
neutrophil 0.9876 0.9838 0.9857 3329
platelet 1.0000 0.9996 0.9998 2348
accuracy 0.9891 17092
macro avg 0.9882 0.9905 0.9893 17092
weighted avg 0.9891 0.9891 0.9891 17092
The model categorizes images into eight classes:
- Class 0: "Basophil"
- Class 1: "Eosinophil"
- Class 2: "Erythroblast"
- Class 3: "IG"
- Class 4: "Lymphocyte"
- Class 5: "Monocyte"
- Class 6: "Neutrophil"
- Class 7: "Platelet"
Run with Transformers🤗
!pip install -q transformers torch pillow gradio
import gradio as gr
from transformers import AutoImageProcessor
from transformers import SiglipForImageClassification
from transformers.image_utils import load_image
from PIL import Image
import torch
# Load model and processor
model_name = "prithivMLmods/WBC-Type-Classifier"
model = SiglipForImageClassification.from_pretrained(model_name)
processor = AutoImageProcessor.from_pretrained(model_name)
def wbc_classification(image):
"""Predicts WBC type for a given blood cell 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()
labels = {
"0": "Basophil", "1": "Eosinophil", "2": "Erythroblast", "3": "IG",
"4": "Lymphocyte", "5": "Monocyte", "6": "Neutrophil", "7": "Platelet"
}
predictions = {labels[str(i)]: round(probs[i], 3) for i in range(len(probs))}
return predictions
# Create Gradio interface
iface = gr.Interface(
fn=wbc_classification,
inputs=gr.Image(type="numpy"),
outputs=gr.Label(label="Prediction Scores"),
title="WBC Type Classification",
description="Upload a blood cell image to classify its WBC type."
)
# Launch the app
if __name__ == "__main__":
iface.launch()
Intended Use:
The WBC-Type-Classifier model is designed to classify different types of white blood cells from blood smear images. Potential use cases include:
- Medical Diagnostics: Assisting pathologists in identifying different WBC types for diagnosis.
- Hematology Research: Supporting studies related to blood cell morphology and disease detection.
- Automated Blood Analysis: Enhancing automated diagnostic tools for rapid blood cell classification.
- Educational Purposes: Providing insights and training data for medical students and researchers.
- Downloads last month
- 1
Inference Providers
NEW
This model is not currently available via any of the supported Inference Providers.
Model tree for prithivMLmods/WBC-Type-Classifier
Base model
google/siglip2-base-patch16-224