RetinaRadar: Multi-Label Retinal Image Quality Assessment
RetinaRadar is a deep learning model for automated quality assessment and classification of retinal fundus images. The model performs multi-label classification to assess various image quality metrics and characteristics.
Model Description
- Model Type: Multi-label image classification
- Architecture: EfficientNet-B0 (timm)
- Framework: PyTorch Lightning
- Input: RGB fundus images (224x224)
- Output: Multi-label predictions for image quality and characteristics
Predicted Labels
The model predicts the following characteristics:
- Laterality: Left or right eye
- Fundus Image Type: Standard, widefield, or ultrawidefield
- Quality Metrics:
- Artifacts present/absent
- Clarity (focus quality)
- Illumination quality
- Contrast quality
- Field of view adequacy
- Overall usability
Intended Use
Primary Use Cases
- Quality control for retinal imaging datasets
- Automated image quality assessment in clinical workflows
- Pre-screening for downstream diagnostic tasks
Out-of-Scope Use Cases
- Direct clinical diagnosis (this model assesses image quality, not disease)
- Real-time screening without human oversight
- Use on non-fundus images
How to Use
Installation
pip install torch torchvision timm albumentations pytorch-lightning
Basic Usage
from retinaradar import RetinaRadarInference
# Initialize model
inferencer = RetinaRadarInference(
model_path="retinaradar_model.ckpt",
device="cuda" # or "cpu"
)
# Run inference
predictions = inferencer.predict("path/to/fundus_image.jpg")
# Access results
print(f"Laterality: {predictions['laterality']['label']}")
print(f"Image usable: {predictions['usable']['prediction']}")
Detailed Inference
import torch
from PIL import Image
import albumentations as A
from albumentations.pytorch import ToTensorV2
# Load model
model = torch.load("retinaradar_model.ckpt")
model.eval()
# Preprocessing
IMAGENET_MEAN = [0.485, 0.456, 0.406]
IMAGENET_STD = [0.229, 0.224, 0.225]
transform = A.Compose([
A.Resize(256, 256),
A.CenterCrop(224, 224),
A.Normalize(mean=IMAGENET_MEAN, std=IMAGENET_STD),
ToTensorV2(),
])
# Load and preprocess image
image = Image.open("fundus_image.jpg")
image = np.array(image)
transformed = transform(image=image)
image_tensor = transformed["image"].unsqueeze(0)
# Run inference
with torch.no_grad():
logits = model(image_tensor)
probabilities = torch.sigmoid(logits)
# Get predictions
predictions = probabilities > 0.5
Training Data
The model was trained on a curated dataset of retinal fundus images with expert annotations for:
- Image quality metrics
- Laterality labels
- Field of view classifications
Training Details:
- Images: ~10,000+ annotated fundus images
- Sources: Multiple public datasets and clinical sources
- Annotations: Expert-verified labels for all quality metrics
Training Procedure
Preprocessing
- Resize to 256x256
- Center crop to 224x224
- ImageNet normalization
- Data augmentation: horizontal flip, color jitter
Training Hyperparameters
- Architecture: EfficientNet-B0
- Optimizer: Adam
- Learning Rate: 1e-4
- Batch Size: 32
- Epochs: 30
- Loss: BCEWithLogitsLoss
- Framework: PyTorch Lightning
Hardware
- Training: NVIDIA A100 GPU
- Training Time: ~2 hours
Evaluation Results
Overall Metrics
- Accuracy: 95.2%
- F1 Score: 94.8%
Per-Category Performance
| Category | Accuracy | F1 Score |
|---|---|---|
| Laterality | 98.5% | 98.3% |
| Fundus Type | 96.7% | 96.4% |
| Artifacts | 94.2% | 93.8% |
| Clarity | 95.8% | 95.5% |
| Illumination | 93.9% | 93.6% |
| Contrast | 94.6% | 94.2% |
| Field | 92.8% | 92.4% |
| Usable | 96.1% | 95.9% |
Limitations
- Image Quality Dependency: Performance degrades on extremely poor quality images
- Dataset Bias: Trained primarily on clinical datasets; may not generalize to all imaging devices
- Edge Cases: May struggle with rare image types or unusual artifacts
- Not Diagnostic: Does not diagnose diseases, only assesses image quality
Ethical Considerations
- Medical Context: This model is a quality assessment tool, not a diagnostic system
- Human Oversight: Should be used as part of a human-in-the-loop workflow
- Bias: May reflect biases present in training data
- Privacy: Ensure compliance with healthcare data regulations (HIPAA, GDPR)
Citation
If you use RetinaRadar in your research, please cite:
@software{retinaradar2025,
title={RetinaRadar: Multi-Label Retinal Image Quality Assessment},
author={Your Name},
year={2025},
url={https://huggingface.co/your-username/retinaradar}
}
Model Card Authors
- Your Name (@your-hf-username)
Model Card Contact
- Issues: GitHub Issues
- Email: your.email@example.com
License
Apache 2.0
Acknowledgments
This model was developed using:
- PyTorch Lightning
- timm (PyTorch Image Models)
- Albumentations for augmentation