| | --- |
| | license: mit |
| | library_name: pytorch |
| | tags: |
| | - medical |
| | - segmentation |
| | - stroke |
| | - neurology |
| | - mri |
| | pipeline_tag: image-segmentation |
| | --- |
| | |
| | # SynthPlus |
| |
|
| | Synthseg-style model trained on synthetic data derived from OASIS3 tissue maps and ATLAS binary lesion masks. Augmented with real training images from various public/private datasets. |
| |
|
| | ## Model Details |
| |
|
| | - **Name**: SynthPlus |
| | - **Classes**: 0 (Background), 1 (Gray Matter), 2 (White Matter), 3 (Gray/White Matter Partial Volume), 4 (Cerebro-Spinal Fluid), 5 (Stroke) |
| | - **Patch Size**: 192³ |
| | - **Voxel Spacing**: 1mm³ |
| | - **Input Channels**: 1 |
| |
|
| | ## Usage |
| |
|
| | ### Loading from Hugging Face Hub |
| |
|
| | ```python |
| | import torch |
| | from synthstroke_model import SynthStrokeModel |
| | |
| | # Load the model from Hugging Face Hub |
| | model = SynthStrokeModel.from_pretrained("liamchalcroft/synthstroke-synth-plus") |
| | |
| | # Prepare your input (example shape: batch_size=1, channels=1, H, W, D) |
| | input_tensor = torch.randn(1, 1, 192, 192, 192) |
| | |
| | # Get predictions (with optional TTA for improved accuracy) |
| | predictions = model.predict_segmentation(input_tensor, use_tta=True) |
| | |
| | # Get tissue probability maps |
| | background = predictions[:, 0] # Background |
| | gray_matter = predictions[:, 1] # Gray Matter |
| | white_matter = predictions[:, 2] # White Matter |
| | partial_volume = predictions[:, 3] # Gray/White Matter PV |
| | csf = predictions[:, 4] # Cerebro-Spinal Fluid |
| | stroke = predictions[:, 5] # Stroke lesion |
| | |
| | # Alternative: Get logits without TTA |
| | logits = model.predict_segmentation(input_tensor, apply_softmax=False) |
| | ``` |
| |
|
| | ## Citation |
| |
|
| | [Machine Learning for Biomedical Imaging](https://www.melba-journal.org/papers/2025:014.html) |
| |
|
| | ```bibtex |
| | @article{chalcroft2025synthetic, |
| | title={Synthetic Data for Robust Stroke Segmentation}, |
| | author={Chalcroft, Liam and Pappas, Ioannis and Price, Cathy J. and Ashburner, John}, |
| | journal={Machine Learning for Biomedical Imaging}, |
| | volume={3}, |
| | pages={317--346}, |
| | year={2025}, |
| | publisher={Machine Learning for Biomedical Imaging}, |
| | doi={10.59275/j.melba.2025-f3g6}, |
| | url={https://www.melba-journal.org/papers/2025:014.html} |
| | } |
| | ``` |
| |
|
| | For the original arXiv preprint: |
| |
|
| | [arXiv](https://arxiv.org/abs/2404.01946) |
| |
|
| | ```bibtex |
| | @article{Chalcroft_2025, |
| | title={Synthetic Data for Robust Stroke Segmentation}, |
| | volume={3}, |
| | ISSN={2766-905X}, |
| | url={http://dx.doi.org/10.59275/j.melba.2025-f3g6}, |
| | DOI={10.59275/j.melba.2025-f3g6}, |
| | number={August 2025}, |
| | journal={Machine Learning for Biomedical Imaging}, |
| | publisher={Machine Learning for Biomedical Imaging}, |
| | author={Chalcroft, Liam and Pappas, Ioannis and Price, Cathy J. and Ashburner, John}, |
| | year={2025}, |
| | month=aug, pages={317–346} |
| | } |
| | ``` |
| |
|
| | ## License |
| |
|
| | MIT License - see the [LICENSE](https://github.com/liamchalcroft/synthstroke/blob/main/LICENSE) file for details. |
| |
|