malunet-cvc / README.md
abdulbasitdev's picture
Upload MALUNet CVC-ClinicDB weights
334b3e5 verified
---
license: apache-2.0
tags:
- image-segmentation
- medical-imaging
- polyp-segmentation
- pytorch
- malunet
datasets:
- cvc-clinicdb
library_name: pytorch
pipeline_tag: image-segmentation
---
# MALUNet · CVC-ClinicDB (Polyp Segmentation)
Lightweight U-shape segmentation network adapted from
[jcruan519/MALUNet](https://github.com/jcruan519/MALUNet) and trained on
[CVC-ClinicDB](https://www.kaggle.com/datasets/balraj98/cvcclinicdb) for
binary polyp segmentation in colonoscopy frames.
## Model
- Architecture: MALUNet (DGA + IEA + CAB + SAB)
- Channels: `[8, 16, 24, 32, 48, 64]`, `split_att="fc"`, `bridge=True`
- Input: RGB, 256×256
- Output: single-channel sigmoid mask (1 = polyp)
- Parameters: ~0.18 M
## Training
- Dataset: CVC-ClinicDB (612 paired image/mask frames)
- Split: 80% train / 20% val (seeded by filename, `seed=42`)
- Loss: BCE + Dice
- Optimizer: AdamW, `lr=1e-3`, `weight_decay=1e-2`
- Schedule: CosineAnnealingLR, `T_max=50`, `eta_min=1e-5`
- Augmentations: random h/v flip, random rotation
- Epochs: 150
## Usage
```python
import torch
from huggingface_hub import hf_hub_download
from infer import load_model, predict_mask # infer.py from this repo
from PIL import Image
model = load_model("YOUR_USERNAME/malunet-cvc")
mask = predict_mask(model, Image.open("polyp.png"))
Image.fromarray(mask).save("mask.png")
```
`infer.py` and `models/malunet.py` are bundled in this repo so you can
also clone it and run inference without the original training code.
## Limitations
- Trained on CVC-ClinicDB only (612 frames, single source). Generalization
to other colonoscopy systems / patient populations is unverified.
- Not a medical device. Research / demo use only.