Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
language: en
|
| 4 |
+
library_name: pytorch
|
| 5 |
+
tags:
|
| 6 |
+
- medical-imaging
|
| 7 |
+
- brain-mri
|
| 8 |
+
- segmentation
|
| 9 |
+
- implicit-neural-representation
|
| 10 |
+
- meta-learning
|
| 11 |
+
- siren
|
| 12 |
+
- parameter-efficient
|
| 13 |
+
datasets:
|
| 14 |
+
- oasis
|
| 15 |
+
metrics:
|
| 16 |
+
- dice
|
| 17 |
+
pipeline_tag: image-segmentation
|
| 18 |
+
---
|
| 19 |
+
|
| 20 |
+
# MetaSeg-SIREN 2D 5-class (OASIS)
|
| 21 |
+
|
| 22 |
+
Meta-learned **SIREN implicit neural network** for 5-class brain MRI
|
| 23 |
+
segmentation on neurite-OASIS coronal slices. Trained with the MetaSeg recipe
|
| 24 |
+
(Vyas et al., MICCAI 2025): 5,000 outer-loop MAML iterations + 4,001
|
| 25 |
+
classifier-only finetune epochs.
|
| 26 |
+
|
| 27 |
+
## Performance
|
| 28 |
+
|
| 29 |
+
| Metric | Value | Source |
|
| 30 |
+
|---|---:|---|
|
| 31 |
+
| Mean Dice (OASIS test split, n=80) | **0.925 ± 0.013** | Reproduction of paper Table 1 row 1 (paper: 0.93 ± 0.012, within 1σ) |
|
| 32 |
+
| INR parameters | 83 K | – |
|
| 33 |
+
| Seg head parameters | 645 | – |
|
| 34 |
+
| Inference time (per slice, A100 BF16) | ~0.3 s | inner_steps=100 |
|
| 35 |
+
|
| 36 |
+
Output classes:
|
| 37 |
+
|
| 38 |
+
| ID | Class |
|
| 39 |
+
|---:|---|
|
| 40 |
+
| 0 | background |
|
| 41 |
+
| 1 | CSF / ventricles |
|
| 42 |
+
| 2 | cortex |
|
| 43 |
+
| 3 | white matter |
|
| 44 |
+
| 4 | deep grey matter (thalamus, caudate, putamen, hippocampus, etc.) |
|
| 45 |
+
|
| 46 |
+
## Usage
|
| 47 |
+
|
| 48 |
+
```python
|
| 49 |
+
from inr_brain_seg import InrBrainSeg
|
| 50 |
+
|
| 51 |
+
model = InrBrainSeg.from_pretrained("basimazam/metaseg-siren-2d-5cls")
|
| 52 |
+
mask = model.segment("path/to/T1.nii.gz")
|
| 53 |
+
# mask is a numpy.ndarray of integer class labels, same spatial shape as the input.
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
The model expects a **mid-coronal slice at 192² resolution**, percentile-normalised
|
| 57 |
+
to `[0, 1]`. If you pass a full 3D NIfTI volume, the wrapper extracts the mid-coronal
|
| 58 |
+
slice automatically; see `preprocessing.json` for the canonical recipe.
|
| 59 |
+
|
| 60 |
+
CLI:
|
| 61 |
+
|
| 62 |
+
```sh
|
| 63 |
+
inr-seg-single \
|
| 64 |
+
--model basimazam/metaseg-siren-2d-5cls \
|
| 65 |
+
--input /data/T1.nii.gz \
|
| 66 |
+
--output /data/T1_seg.nii.gz
|
| 67 |
+
```
|
| 68 |
+
|
| 69 |
+
## Training details
|
| 70 |
+
|
| 71 |
+
* **Backbone**: SIREN with `omega_0=30`, 3 hidden layers of width 128.
|
| 72 |
+
* **Outer loop**: 5,000 MAML iterations, lr 1e-4, inner_steps=2 at lr 1e-4.
|
| 73 |
+
* **Classifier finetune**: 4,001 epochs, lr 5e-5, BCE loss.
|
| 74 |
+
* **Validation budget**: 50 inner-loop steps.
|
| 75 |
+
* **Test-time inner loop**: K=100 steps at lr 1e-4 (paper default).
|
| 76 |
+
|
| 77 |
+
Training data: 314 neurite-OASIS subjects (train split). Validation: 21
|
| 78 |
+
subjects. Held-out test: 80 subjects.
|
| 79 |
+
|
| 80 |
+
## Intended use
|
| 81 |
+
|
| 82 |
+
Research only. The model is not validated for clinical use. Best for in-domain
|
| 83 |
+
neurite-OASIS-style coronal T1 slices.
|
| 84 |
+
|
| 85 |
+
For **cross-site** scans (different scanner / vendor / field strength), the
|
| 86 |
+
zero-shot Dice drops to ~0.30. Use the adapter variant
|
| 87 |
+
[`basimazam/metaseg-siren-adapter-v2-ixi`](https://huggingface.co/basimazam/metaseg-siren-adapter-v2-ixi)
|
| 88 |
+
which lifts cross-site Dice to 0.69 with a 65,920-parameter MLP adapter.
|
| 89 |
+
|
| 90 |
+
## Reproducibility
|
| 91 |
+
|
| 92 |
+
The full reproduction log lives at
|
| 93 |
+
[`results/RESULTS.md`](https://github.com/basim-azam/inr-brain-seg/blob/main/results/RESULTS.md)
|
| 94 |
+
in the accompanying repository, including hardware, wall-clock, seed values,
|
| 95 |
+
and paper-deviation discussion.
|
| 96 |
+
|
| 97 |
+
## Citation
|
| 98 |
+
|
| 99 |
+
```bibtex
|
| 100 |
+
@inproceedings{azam2026inrbrainseg,
|
| 101 |
+
title = {Coordinate-Field Implicit Networks for Cross-Site Brain MRI Segmentation},
|
| 102 |
+
author = {Azam, Basim},
|
| 103 |
+
booktitle = {Asian Conference on Computer Vision (ACCV)},
|
| 104 |
+
year = {2026}
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
@inproceedings{vyas2025metaseg,
|
| 108 |
+
title = {Fit Pixels, Get Labels: Meta-Learned Implicit Networks for Image Segmentation},
|
| 109 |
+
author = {Vyas, Kushal and others},
|
| 110 |
+
booktitle = {MICCAI},
|
| 111 |
+
year = {2025}
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
@inproceedings{sitzmann2020siren,
|
| 115 |
+
title = {Implicit Neural Representations with Periodic Activation Functions},
|
| 116 |
+
author = {Sitzmann, Vincent and others},
|
| 117 |
+
booktitle = {NeurIPS},
|
| 118 |
+
year = {2020}
|
| 119 |
+
}
|
| 120 |
+
```
|
| 121 |
+
|
| 122 |
+
## License
|
| 123 |
+
|
| 124 |
+
Apache License 2.0.
|