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
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Evaluation results