Akshay Biradar
Add model card, config, and architecture code
04dd30e
|
Raw
History Blame Contribute Delete
4.88 kB
---
license: mit
tags:
- pytorch
- vision-transformer
- medical-imaging
- brain-mri
- dementia-classification
- self-supervised-learning
- neuroscience
datasets:
- OASIS
- IXI
language:
- en
pipeline_tag: image-classification
library_name: pytorch
---
# 🧠 NeuroSSL — Self-Supervised Vision Transformer for MRI-Based Dementia Classification
A **Multi-Scale Vision Transformer (ViT)** with **Second-Order Covariance Pooling**, pre-trained via self-supervised learning on brain MRI datasets (OASIS & IXI) and fine-tuned for binary dementia classification.
## Model Description
NeuroSSL is a deep learning model designed for **clinical-grade brain MRI analysis**. It classifies 2D MRI slices as showing dementia-related changes or not, with calibrated probabilities and uncertainty quantification.
### Architecture
| Component | Details |
|---|---|
| **Encoder** | MultiScaleViT2D — 384-dim, 12 transformer blocks, 6 attention heads |
| **Patch Embedding** | 2D Conv projection, patch size 16×16, input 224×224 grayscale |
| **Multi-Scale Fusion** | Intermediate features from layers [2, 5, 8, 11] fused via linear projection |
| **Classifier** | Second-Order Covariance Pooling + MLP head |
| **Calibration** | Platt Temperature Scaling (T = 1.6995) |
| **Uncertainty** | Monte Carlo Dropout (10 forward passes) |
| **Parameters** | ~25M |
### Key Features
- **Self-supervised pre-training** on unlabeled brain MRI data (OASIS + IXI)
- **Multi-scale feature extraction** from 4 intermediate transformer layers
- **Second-order statistics** via covariance pooling for richer representations
- **Attention rollout** visualization for interpretable predictions
- **Calibrated probabilities** with Platt scaling
- **Uncertainty estimation** via MC Dropout
## Training
### Pre-training
- **Method**: Self-supervised (masked image modeling)
- **Data**: OASIS + IXI brain MRI datasets (unlabeled 2D slices)
- **Epochs**: 20
- **Input**: 224×224 grayscale MRI slices, Z-score normalized
### Fine-tuning
- **Task**: Binary classification (Dementia vs Non-Demented)
- **Data**: OASIS labeled dataset
- **Strategy**: 5-fold cross-validation
- **Epochs**: 20 per fold
- **Calibration**: Post-hoc Platt temperature scaling
## Usage
### Loading the Model
```python
import torch
from model import MultiScaleViT2DEncoder, SecondOrderClassifier
# Build architecture
encoder = MultiScaleViT2DEncoder(
img_size=(224, 224),
patch_size=(16, 16),
embed_dim=384,
depth=12,
num_heads=6,
drop_path_rate=0.0
)
model = SecondOrderClassifier(encoder, num_classes=2, dropout=0.3, use_second_order=True)
# Load weights
ckpt = torch.load("checkpoint_best.pt", map_location="cpu", weights_only=False)
model.load_state_dict(ckpt["model_state"])
model.eval()
```
### Running Inference
```python
from PIL import Image
import numpy as np
# Preprocess
img = Image.open("brain_mri.jpg").convert("L").resize((224, 224))
tensor = torch.from_numpy(np.array(img, dtype=np.float32)).unsqueeze(0) / 255.0
mu, std = tensor.mean(), tensor.std() + 1e-8
tensor = ((tensor - mu) / std).unsqueeze(0) # Shape: (1, 1, 224, 224)
# Predict
with torch.no_grad():
logits = model(tensor)
probs = torch.softmax(logits / 1.6995, dim=1) # Platt-calibrated
print(f"Dementia probability: {probs[0, 1]:.4f}")
```
### Downloading from Hugging Face Hub
```python
from huggingface_hub import hf_hub_download
checkpoint_path = hf_hub_download(
repo_id="ABCREATIVEAKSHAY/neuro-ssl-dementia-classifier",
filename="checkpoint_best.pt"
)
ckpt = torch.load(checkpoint_path, map_location="cpu", weights_only=False)
```
## Checkpoint Contents
The `checkpoint_best.pt` file contains:
```python
{
"model_state": OrderedDict, # Model weights (state_dict)
# May also contain optimizer state, epoch info, metrics, etc.
}
```
## Intended Use
- **Primary use**: Research and clinical decision support for brain MRI analysis
- **Input**: 2D grayscale brain MRI slices (axial/sagittal/coronal)
- **Output**: Binary classification with calibrated probability and uncertainty
## Limitations & Ethical Considerations
> ⚠️ **This model is intended for research purposes and clinical decision support only.**
> It should NOT be used as a standalone diagnostic tool. All predictions should be reviewed by qualified medical professionals.
- Trained on OASIS dataset which may not generalize to all populations
- Performance may vary across different MRI scanners and protocols
- 2D slice-level analysis does not capture full 3D volumetric information
## Citation
If you use this model, please cite:
```bibtex
@misc{neurossl2025,
title={NeuroSSL: Self-Supervised Vision Transformer for MRI-Based Dementia Classification},
author={Akshay Biradar},
year={2025},
url={https://huggingface.co/ABCREATIVEAKSHAY/neuro-ssl-dementia-classifier}
}
```