DOI: 10.5061/dryad.sf7m0cggh
title: Robust semi-automatic vessel tracing in the human retinal image by an instance segmentation neural network

description: Vasculature morphology and hierarchy are essential for blood perfusion.
 Human retinal 20 circulation is an intricate vascular system emerging and
 remerging at the optic nerve head 21 (ONH). Tracing retinal vascular
 branching from ONH can allow detailed morphological 22 quantification, and
 yet remains a challenging task. We presented a robust semi-automatic 23
 vessel tracing algorithm on human fundus images by an instance
 segmentation neural 24 network (InSegNN). InSegNN separates and labels
 individual vascular trees and enables 25 tracing each tree throughout its
 branching. We have three strategies to improve robustness 26 and accuracy:
 pseudo-temporal learning, spatial multi-sampling, and dynamic probability
 27 map. We achieved 83% specificity, 50% improvement in Symmetric Best
 Dice (SBD) 28 compared to literature, and outperformed baseline U-net, and
 achieved 91% precision with 29 71% sensitivity. We have demonstrated
 tracing individual vessel trees from fundus 30 images, and simultaneously
 retain vessel hierarchy information. InSegNN paves a way for 31 subsequent
 analysis of vascular morphology in relation to retinal diseases. 
description: # Robust semi-automatic vessel tracing in the human retinal image by an
 instance segmentation neural network [Access this dataset on
 Dryad]([https://doi.org/10.5061/dryad.sf7m0cggh]\(https://doi.org/10.5061/dryad.sf7m0cggh\)) The dataset contains starting points for global vessel tracing results. ## DRIVE DATA ### global\_trace\_annotation\_drive.xlsx This spreadsheet contains starting points for global tracing in DRIVE dataset. * Subject: number assigned to each retina scan in DRIVE dataset * ID: number assigned to each starting point pair * Row_sp: pixel number in x axis of first start point * Column: pixel number in y axis of first start point * Row_other: pixel number in x axis of second start point * Column_other: pixel number in y axis of second start point * Vessel: number assigned to each vessel tree in current retina scan * Sample: number assigned to each starting point pair in current vessel tree ### global\_trace\_result\_drive.xlsx This spreadsheet contains the statistics of global tracing results for DRIVE dataset with different segmentation thresholds. * Subject: number assigned to each retina scan in DRIVE dataset * Vessel: number assigned to each vessel tree in current retina scan * TN: true negative pixel count * FP: false positive pixel count * FN: false negative pixel count * TP: true positive pixel count * Threshold: number assigned to each global tracing threshold tested ## NEW DATA ### global\_trace\_annotation\_new\.xlsx This spreadsheet contains starting points for global tracing in our new acquired dataset. * Subject: number assigned to each retina scan in DRIVE dataset * Row_sp: pixel number in x axis of first start point * Column_sp: pixel number in y axis of first start point * Row_other: pixel number in x axis of second start point * Column_other: pixel number in y axis of second start point * Vessel: number assigned to each vessel tree in current retina scan ### global\_trace\_result\_new\.xlsx This spreadsheet contains the statistics of global tracing results for our new acquired dataset. * Subject: number assigned to each retina scan in DRIVE dataset * Vessel: number assigned to each vessel tree in current retina scan * TN: true negative pixel count * FP: false positive pixel count * FN: false negative pixel count * TP: true positive pixel count ## Sharing/Access information Our GitHub repository also contains the retina scans, ground truth vessel segmentations, and network segmentation results along with the data hosted here. The retina scans and global trace annotations are inputs to the segmentation networks. The ground truth segmentations and network outputs are compared to generate the global trace result spreadsheets. Our GitHub repository is publicly available at: * [https://github.com/yibiophotonics/siyi_vessel_tracing](https://github.com/yibiophotonics/siyi_vessel_tracing) The DRIVE dataset was derived from the following sources: * [https://www.kaggle.com/datasets/andrewmvd/drive-digital-retinal-images-for-vessel-extraction](https://www.kaggle.com/datasets/andrewmvd/drive-digital-retinal-images-for-vessel-extraction) ## Code/Software The DATA PREP SCRIPT folder contains MATLAB scripts for cropping the retinal scans into 96x96 pixel regions following the vessel traces for training the segmentation network. This folder also contains PYTHON scripts for matching the global tracing start points with vessel tree ID in the ground truth segmentations for evaluation of tracing results. The TRACING SCRIPT folder contains PYTHON scripts for vessel segmentation. The main scripts are titled TRAIN (for training the segmentation network), TEST (for testing the segmentation network on local 96x96 patches), and TRACINGVESSEL (for global tracing). Other files are utilities to be used in the main scripts.