RadioDINO-s16
RadioDINO-s16 is a self-supervised Vision Transformer foundation model developed for radiomics and medical imaging. It is based on the DINO framework and pretrained on the large-scale RadImageNet dataset (1.35 million CT, MRI, and Ultrasound images across 165 classes and 11 anatomical regions). This model is part of the Radio DINO family and was created to extract robust, general-purpose features for downstream medical tasks including classification, segmentation, and interpretability analysis.
Unlike traditional radiomics methods that rely on handcrafted features and supervised models pretrained on natural images, RadioDINO-s16 offers a domain-adapted alternative that consistently outperforms previous models on diverse medical benchmarks. It has been rigorously validated on the MedMNISTv2 benchmark suite and shown to be effective even without fine-tuning.
π§ Developed by Luca Zedda, Andrea Loddo, and Cecilia Di Ruberto
π₯ Department of Mathematics and Computer Science, University of Cagliari
π Published in: Computers in Biology and Medicine, 2025
Model Details
- Architecture: ViT-small with patch size 16 (
s16
) - SSL framework: DINO (self-distillation without labels)
- Pretraining dataset: RadImageNet (1.35M CT/MRI/Ultrasound images)
- Embedding size: 384
- Applications: Feature extraction, classification backbones, transfer learning, medical imaging analysis
Example Usage
from PIL import Image
from torchvision import transforms
import timm
import torch
# Load model from Hugging Face Hub
model = timm.create_model("hf_hub:Snarcy/RadioDino-s16", pretrained=True)
model.eval()
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
# Load and preprocess a sample image
image = Image.open("path/to/your/image").convert("RGB")
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]),
])
input_tensor = transform(image).unsqueeze(0).to(device)
# Forward pass to obtain feature embedding
with torch.no_grad():
embedding = model(input_tensor)
π Citation
If you use this model, please cite the following paper:
Radio DINO: A foundation model for advanced radiomics and AI-driven medical imaging analysis
Luca Zedda, Andrea Loddo, Cecilia Di Ruberto
Computers in Biology and Medicine, Volume 195, 2025, 110583
https://doi.org/10.1016/j.compbiomed.2025.110583
@article{ZEDDA2025110583,
title = {Radio DINO: A foundation model for advanced radiomics and AI-driven medical imaging analysis},
journal = {Computers in Biology and Medicine},
volume = {195},
pages = {110583},
year = {2025},
issn = {0010-4825},
doi = {https://doi.org/10.1016/j.compbiomed.2025.110583},
url = {https://www.sciencedirect.com/science/article/pii/S0010482525009345},
author = {Luca Zedda and Andrea Loddo and Cecilia {Di Ruberto}},
keywords = {Radiomics, Self-supervised learning, Deep learning, DINO, DINOV2, Medical imaging, Feature extraction, Generalizability},
}
- Downloads last month
- 489
Evaluation results
- F1 on BreastMNISTself-reported88.980
- F1 on PneumoniaMNISTself-reported90.860
- F1 on OrganAMNISTself-reported96.470
- F1 on OrganCMNISTself-reported93.630
- F1 on OrganSMNISTself-reported77.730
- F1 on BUSIself-reported81.830