/JTFN

Joint Topology-preserving and Feature-refinement Network for Curvilinear Structure Segmentation (ICCV21)

Primary LanguagePython

Implementation of JTFN

Joint Topology-preserving and Feature-refinement Network for Curvilinear Structure Segmentation
Mingfei Cheng*, Kaili Zhao*, Xuhong Guo, Yajing Xu, and Jun Guo.
Accepted to ICCV 2021

Method

framework

Train and Test

Requirements

Python 3.6
Pytorch 1.9.1

dataset

Please download related datasets: CrackTree200, Crack500, DRIVE, Roads
Data folder structure:

data/
├── split
│    ├──drive
│    │    ├── train.txt
│    │    └── test.txt
│    └──...
└── other data process files
datasets/
├── DRIVE
│   ├── images
│   │   ├── img1.tif
│   │   └── ...
│   ├── annotation_mask
│   │   ├── img1.png
│   │   └── ...
│   ├── annotation_boundary
│   │   ├── img1.png
│   │   └── ...
│   └── others
└── ...

We provide our script to generate boundary labels from annotations, your can run (Replace the folder path in brackets below):

python tools/produce_boundary.py --mask [annotation folder path] --save [generated boundary labels' path]

train

Please modify the config and run:
sh train_jtfn.sh

test

Please modify the config and run:
sh test_jtfn.sh

retained models

We provide our retrained models on Roads, DRIVE and Crack500 (Baidu, password:n14e; Google):

Dataset F1
DRIVE 82.70
Roads 61.16
Crack500 66.38

Citation

If you use this code and our results for your research, please cite our paper.

@inproceedings{JTFN_ICCV_2021,
  title={Joint Topology-preserving and Feature-refinement Network for Curvilinear Structure Segmentation},
  author={Cheng, Mingfei and Zhao, Kaili and Guo, Xuhong and Xu, Yajing and Guo, Jun},
  booktitle={ICCV},
  year={2021}
}