A Semi-Supervised Fracture-Attention Model for Segmenting Tubular Objects with Improved Topological Connectivity
This is the official code of A Semi-Supervised Fracture-Attention Model for Segmenting Tubular Objects with Improved Topological Connectivity. (Bioinformatics 2025.01)
- Semi-Supervised Fracture-Attention Model (SSFA)
- More Intuitive Topological Evaluation Metric: Fracture Rate (FR)
Visualization of fractures in segmentation results.
Qualitative results on ER, SNEMI3D, CREMI and STARE-DRIVE. (a) Raw images. (b) Ground truth. (c) UNet. (d) TopoLoss. (e) clDice. (f) MT. (g) CPS. (h) SSFA. Red arrows highlight differences among the results.
albumentations==0.5.2
matplotlib==3.2.1
networkx==2.3
numba==0.44.1
numpy==1.18.5
opencv_python==4.2.0.32
Pillow==9.3.0
ripser==0.6.4
scikit_image==0.19.1
scikit_learn==1.2.0
scipy==1.4.1
skimage==0.0
torch==1.8.0
torchvision==0.9.0
tqdm==4.32.1
visdom==0.1.8.9
Data preparation Your datasets directory tree should be look like this:
to see tools/attention_map/initial_attention.py for structure1, structure2, semantic, attention.
dataset
├── train_sup
├── image
├── 1.tif
└── ...
├── structure1
├── 1.tif
└── ...
├── structure2
├── 1.tif
└── ...
├── semantic
├── 1.tif
└── ...
├── attention
├── 1.tif
└── ...
└── mask
├── 1.tif
└── ...
├── train_unsup
├── image
├── structure1
├── structure2
├── semantic
└── attention
├── val
├── image
├── structure1
├── structure2
├── semantic
├── attention
└── mask
Training
python -m torch.distributed.launch --nproc_per_node=4 train_semi_TA.py
Testing
python -m torch.distributed.launch --nproc_per_node=4 test_TA.py
If our work is useful for your research, please cite our paper:

