CoolFace
Modelpublic

Sadou/malaria-detector-dinov2-tanzania

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
0likes34downloads
Model Card

Malaria Detector โ€” DINOv2 fine-tuned on Tanzania Blood Smears ๐ŸฆŸ

Fine-tuned facebook/dinov2-base for binary classification of blood smear images: malaria infected vs healthy.

Trained on real patient data from 5 Tanzanian health centres, with rigorous handling of class imbalance.

๐Ÿ“Š Performance (test set)

MetricValueNote
Accuracy99.44%Can be misleading with imbalance
Balanced Accuracy99.25%โญ Imbalance-robust
MCC (Matthews)0.988โญ Best single metric
F1 Macro99.40%Equitable across classes
Recall (Sensitivity)100.00%โญ Critical clinical metric
Specificity98.51%
AUC-ROC100.00%
AUC-PR100.00%Imbalance-robust AUC

โš–๏ธ Class imbalance handling

Dataset has 1.64x imbalance (Paludisme: 62% vs Sain: 38%).

Techniques applied :

  1. 1.โœ… Class weights in loss function
  2. 2.โœ… Stratified split on subtype (not just binary label)
  3. 3.โœ… Aggressive data augmentation
  4. 4.โœ… MCC-based model selection (instead of accuracy)
  5. 5.โœ… Multiple imbalance-robust metrics reported

๐Ÿš€ Quick Start

python
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import torch

processor = AutoImageProcessor.from_pretrained('Sadou/malaria-detector-dinov2-tanzania')
model = AutoModelForImageClassification.from_pretrained('Sadou/malaria-detector-dinov2-tanzania')

img = Image.open('blood_smear.jpg').convert('RGB')
inputs = processor(img, return_tensors='pt')

with torch.no_grad():
    outputs = model(**inputs)

probs = torch.softmax(outputs.logits, dim=-1)[0]
pred = torch.argmax(probs).item()

labels = ['Healthy', 'Malaria']
print(f'{labels[pred]} (confidence: {probs[pred]:.1%})')

๐Ÿ“‚ Dataset

Tanzania Malaria Blood Smear Dataset

  • โ€”Source: Harvard Dataverse
  • โ€”DOI: 10.7910/DVN/O2WVWA
  • โ€”Images: 3,544 real blood smears
  • โ€”Source: 5 health centres in Tanga region, Tanzania
  • โ€”Microscope: 4K SONY IMX334 sensor (40X-2500X)
  • โ€”Staining: Giemsa reagent
  • โ€”Reference: Lufyagila et al. 2024, Data in Brief

Class distribution

ClassCount
Thick Infected1,139
Thick Uninfected1,071
Thin Infected1,064
Thin Uninfected270

โš ๏ธ Disclaimer

This is a research tool, NOT a certified medical device. Any real diagnosis must be confirmed by a qualified microscopist or physician. Clinical validation is required before any real-world deployment.

๐Ÿ“š Citation

bibtex
@misc{malaria-dinov2-2026,
  author = {Sadou Barry},
  title = {Malaria Detector โ€” DINOv2 fine-tuned on Tanzania Blood Smears with Class Imbalance Handling},
  year = {2026},
  publisher = {HuggingFace},
  url = {https://huggingface.co/Sadou/malaria-detector-dinov2-tanzania}
}