By Shouyue Liu, Jinkui Hao, Yanwu Xu, Huazhu Fu, Xinyu Guo, Jiang Liu, Yalin Zheng, Yonghuai Liu, Jiong Zhang, and Yitian Zhao
Optical Coherence Tomography Angiography (OCTA) is a promising tool for detecting Alzheimer's disease (AD) by imaging the retinal microvasculature. Ophthalmologists commonly use region-based analysis, such as the ETDRS grid, to study OCTA image biomarkers and understand the correlation with AD. However, existing studies have used general deep computer vision methods, which present challenges in providing interpretable results and leveraging clinical prior knowledge. To address these challenges, we propose a novel deep-learning framework called Polar-Net. Our approach involves mapping OCTA images from Cartesian coordinates to polar coordinates, which allows for the use of approximate sector convolution and enables the implementation of the ETDRS grid-based regional analysis method commonly used in clinical practice. Furthermore, Polar-Net incorporates clinical prior information of each sector region into the training process, which further enhances its performance. Additionally, our framework adapts to acquire the importance of the corresponding retinal region, which helps researchers and clinicians understand the model's decision-making process in detecting AD and assess its conformity to clinical observations. Through evaluations on private and public datasets, we have demonstrated that Polar-Net outperforms existing state-of-the-art methods and provides more valuable pathological evidence for the association between retinal vascular changes and AD. In addition, we also show that the two innovative modules introduced in our framework have a significant impact on improving overall performance.
-
System Requirements:
- NVIDIA GPUs, CUDA supported.
- Ubuntu 20.04 workstation or server
- Anaconda environment
- Python 3.9
- PyTorch 2.0
- Git
-
Installation:
git clone https://github.com/iAaronLau/Polar-Net-Pytorch.git
cd ./Polar-Net-Pytorch
conda env create -f environment.yaml
Please put the root directory of your dataset into the folder ./data. The root directory contain the two subfolder now: AD and control. The most convenient way is to follow the sample file structure, as follows:
|-- data
|-- root directory
|-- AD
|-- control
|-- ID_name
|-- macular3_3 or 3x3
|-- *SVC.png
|-- *DVC.png
|-- *choriocapillaris.png or *CC.png
|-- ...
You can also change the file structure. Note that you need to change the data processing function to ensure the data can be obtained correctly.
Due to the method need the multiple inputs, i.e., SVC, DVC and choriocapillaris, so the most important thing is that you need specify the filter words for file name of SVC, DVC, and choriocapillaris. Please make sure the three filter words are in the right order.
You can change the experiment parameters by modifying the configuration file, Config.py, and then come to train the model.
python start_e200_polarnet.py
The results will be automatically saved in the ./save folder.
If you find our paper useful in your research, please consider citing:
@inproceedings{liu2023polar,
title={Polar-Net: A Clinical-Friendly Model for Alzheimer’s Disease Detection in OCTA Images},
author={Liu, Shouyue and Hao, Jinkui and Xu, Yanwu and Fu, Huazhu and Guo, Xinyu and Liu, Jiang and Zheng, Yalin and Liu, Yonghuai and Zhang, Jiong and Zhao, Yitian},
booktitle={International Conference on Medical Image Computing and Computer-Assisted Intervention},
pages={607--617},
year={2023},
organization={Springer}
}
MIT License