LUNet: deep learning for the segmentation of arterioles and venules in high resolution fundus images
Jonathan Fhima • Jan Van Eijgen • Marie-Isaline Billen Moulin-Romsée • Heloïse Brackenier• Hana Kulenovic
Valérie Debeuf Marie Vangilbergen• Moti Freiman• Ingeborg Stalmans• Joachim A Behar
First, clone this repository and run install the environment:
cd LUNet
python -m venv lunet_env
source lunet_env/bin/activate
pip install -r requirements.txt
Download the UZLF (aka Leuven-Haifa) dataset from the official website (https://rdr.kuleuven.be/dataset.xhtml?persistentId=doi:10.48804/Z7SHGO), and organize it as follows:
LUNet
├── Databases
│ ├── UZLF_TRAIN
│ │ ├── images
│ │ ├── artery
│ │ ├── veins
│ ├── UZLF_VAL
│ │ ├── images
│ │ ├── artery
│ │ ├── veins
│ ├── UZLF_TEST
│ │ ├── images
│ │ ├── artery
│ │ ├── veins
After install the external datasets from PVBM (https://pvbm.readthedocs.io/) using the following commands:
cd LUNet
source lunet_env/bin/activate
python -u install_pvbm_datasets.py
Run the following command: (Original LUNet model have been trained using 8 A100-40gb GPUs and have been trained with a slightly different version of the UZLF dataset which can explain minor differences in performance).
cd LUNet
source lunet_env/bin/activate
python -u main.py Databases/ lunet_model
Run with test-time data augmentation (higher performance):
cd LUNet
source lunet_env/bin/activate
python -u eval_all.py Databases/ lunet_model --use_TTDA --datasets_test UZLF_VAL UZLF_TEST CropHRF INSPIRE
#Remove --use_TTDA if you dont want to use test time data augmentation during inference
#You can change the list of the test dataset
Run without test-time data augmentation (faster inference):
cd LUNet
source lunet_env/bin/activate
python -u eval_all.py Databases/ lunet_model --datasets_test UZLF_VAL UZLF_TEST CropHRF INSPIRE
Method | UZLF test | LES-AV | INSPIRE-AVR | Cropped HRF | ||||
---|---|---|---|---|---|---|---|---|
Artery | Vein | Artery | Vein | Artery | Vein | Artery | Vein | |
LUNet | 82.0 | 84.5 | 82.3 | 84.8 | 73.6 | 77.5 | 78.1 | 80.4 |
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License, see LICENSE file, which prohibits commercial use.
If you find this code or data to be useful for your research, please consider citing the following papers.
@article{fhima2024lunet,
title={LUNet: deep learning for the segmentation of arterioles and venules in high resolution fundus images},
author={Fhima, Jonathan and Van Eijgen, Jan and Moulin-Roms{\'e}e, Marie-Isaline Billen and Brackenier, Helo{\"\i}se and Kulenovic, Hana and Debeuf, Val{\'e}rie and Vangilbergen, Marie and Freiman, Moti and Stalmans, Ingeborg and Behar, Joachim A},
journal={Physiological Measurement},
volume={45},
number={5},
pages={055002},
year={2024},
publisher={IOP Publishing}
}
@article{van2024leuven,
title={Leuven-Haifa High-Resolution Fundus Image Dataset for Retinal Blood Vessel Segmentation and Glaucoma Diagnosis},
author={Van Eijgen, Jan and Fhima, Jonathan and Billen Moulin-Roms{\'e}e, Marie-Isaline and Behar, Joachim A and Christinaki, Eirini and Stalmans, Ingeborg},
journal={Scientific Data},
volume={11},
number={1},
pages={257},
year={2024},
publisher={Nature Publishing Group UK London}}
@InProceedings{10.1007/978-3-031-25066-8_15,
author="Fhima, Jonathan and Eijgen, Jan Van and Stalmans, Ingeborg and Men, Yevgeniy and Freiman, Moti and Behar, Joachim A.",
title="PVBM: A Python Vasculature Biomarker Toolbox Based on Retinal Blood Vessel Segmentation",
booktitle="Computer Vision -- ECCV 2022 Workshops",
year="2023",
publisher="Springer Nature Switzerland",
address="Cham",
pages="296--312",
isbn="978-3-031-25066-8"
}