| --- |
| license: cc-by-4.0 |
| tags: |
| - medical-imaging |
| - segmentation |
| - pytorch |
| - deeplabv3plus |
| - brain-tumor |
| - mri |
| library_name: pytorch |
| --- |
| |
| # Brain Tumor Segmentation β DeepLabv3+ (ResNet-34 + ASPP + WBCE) |
|
|
| An implementation of the architecture and training recipe described in |
| Soomro et al., *"Boosting Brain Tumor Detection Accuracy in MRI Using |
| Transfer Learning and Fine-Tuned DeepLabv3+"* (IEEE Open Journal of the |
| Computer Society, 2026), trained on the CE-MRI brain tumor dataset |
| (Cheng et al., 233 patients, 3,064 T1-weighted contrast-enhanced axial |
| slices: glioma, meningioma, pituitary tumors). |
|
|
| This is a personal/academic reproduction project β **not the original |
| authors' model, not clinically validated, and not for medical use.** |
| See [Honest results](#honest-results-vs-the-paper) below before using |
| this for anything beyond learning/experimentation. |
|
|
| ## Model architecture |
|
|
| - ResNet-34 encoder, initialized from ImageNet-pretrained weights |
| - Atrous Spatial Pyramid Pooling (ASPP), rates 12/16/18 + global image pooling |
| - Lightweight decoder fusing low-level and ASPP features (DeepLabv3+ design) |
| - Binary output: tumor vs. background, per pixel |
| - Trained with Weighted Binary Cross-Entropy (WBCE) loss, with per-slice |
| adaptive class-imbalance weighting |
|
|
| ## Training setup |
|
|
| - 100 epochs, Adam optimizer (Ξ²1=0.9, Ξ²2=0.999, weight decay 1e-5), |
| initial LR 1e-4 with `ReduceLROnPlateau` |
| - Patient-wise 70/15/15 train/val/test split (163/35/35 patients) β |
| no patient's slices appear in more than one split, avoiding data leakage |
| - Image size 512Γ512, batch size 8 |
| - Trained on a single Kaggle GPU session (T4Γ2) |
|
|
| Full training/evaluation code: **[link to your GitHub repo here]** |
|
|
| ## Honest results vs. the paper |
|
|
| The paper reports ~98% DSC and ~99.3% sensitivity. This reproduction |
| falls meaningfully short of that on the two metrics that matter most for |
| segmentation quality (DSC, sensitivity), while matching closely on |
| accuracy/specificity β which is expected, since ~98% of pixels in these |
| images are background, so accuracy/specificity are dominated by the easy |
| majority class rather than tumor-finding ability. |
|
|
| | Metric | This model (test set, 35 held-out patients) | Paper | |
| |---|---:|---:| |
| | DSC (overall) | **75.6%** | 98.0% | |
| | Sensitivity | 88.95% | 99.3% | |
| | Specificity | 99.34% | 98.99% | |
| | Accuracy | 99.11% | 99.1% | |
|
|
| Per-tumor-type DSC: glioma 70.2%, meningioma 85.5%, pituitary 74.6% β |
| the same relative ordering (meningioma easiest, glioma hardest) as the |
| paper reports, which is a useful internal consistency check even though |
| absolute numbers differ. |
|
|
| **Why the gap likely exists** (in rough order of suspected impact): |
| 1. The paper doesn't fully specify some architectural details (exact |
| decoder channel widths, output stride choice, precise augmentation |
| policy) β this implementation fills those gaps with standard |
| DeepLabv3+ conventions, which may not match the authors' exact setup. |
| 2. Training was extended from 40 to 100 epochs and DSC barely moved |
| (74.3% β 75.6%), suggesting the model has converged for this |
| configuration β the remaining gap is not simply "needs more training." |
| 3. Possible differences in preprocessing intensity (the paper mentions |
| CLAHE contrast enhancement; exact parameters aren't given) or data |
| augmentation strength. |
|
|
| This gap is reported transparently rather than hidden β reproducing a |
| paper's exact numbers without the authors' full implementation details |
| is a known hard problem in ML research, and getting a rigorous, honest |
| measurement of *how far off* a reproduction is is itself the useful |
| skill being demonstrated here. |
|
|
| ## Intended use |
|
|
| - Educational / portfolio demonstration of a segmentation pipeline |
| (transfer learning, class-imbalance-aware loss, patient-wise |
| evaluation discipline) |
| - Starting point for further experimentation (e.g. testing architectural |
| variants, better augmentation, longer training with a different LR |
| schedule) |
|
|
| ## Out of scope / not suitable for |
|
|
| - Any clinical, diagnostic, or medical decision-making use |
| - Deployment without independent validation on a properly consented, |
| IRB-approved clinical dataset |
| - Use as a certified medical device (it is not one, and has not been |
| evaluated as one) |
|
|
| ## How to use |
|
|
| ```python |
| import torch |
| from model import DeepLabV3Plus # from this repo's model.py |
| |
| model = DeepLabV3Plus(num_classes=1, use_imagenet_init=False) |
| state = torch.load("pytorch_model.pt", map_location="cpu", weights_only=False) |
| model.load_state_dict(state) |
| model.eval() |
| |
| # image: torch.Tensor, shape (1, 3, 512, 512), ImageNet-normalized |
| with torch.no_grad(): |
| logits = model(image) |
| mask = (torch.sigmoid(logits) > 0.5).float() |
| ``` |
|
|
| See the [GitHub repo](#) for the full `dataset.py` preprocessing pipeline |
| (CLAHE + ImageNet normalization) needed to prepare inputs correctly. |
|
|
| ## Dataset |
|
|
| Trained on the CE-MRI brain tumor dataset (Cheng et al., 2017, |
| *"Enhanced performance of brain tumor classification via tumor region |
| augmentation and partition,"* PLoS ONE). This repository does not |
| redistribute the dataset β see the original publication for access. |
|
|
| ## Citation |
|
|
| If referencing the original paper this reproduces: |
|
|
| ``` |
| Soomro et al., "Boosting Brain Tumor Detection Accuracy in MRI Using |
| Transfer Learning and Fine-Tuned DeepLabv3+," IEEE Open Journal of the |
| Computer Society, vol. 7, 2026. |
| ``` |
|
|
| This repository is an independent reproduction and is not affiliated |
| with the original authors. |