# Retinal Vessels Segmentation Techniques and Algorithms: A Survey
## 4 Retinal Vessels Segmentation Techniques
### Machine Learning Techniques
First level of the ensemble is composed by training (n) parallel stacked denoised autoencoders that have the same architecture, whereas second level is implemented by parallel training of two stacked denoised autoencoders, and the final architecture was fine-tuned until a satisfied accuracy was achieved. The decisions of individual members of the ensemble are combined by a simple SoftMax classifier. The method proves to be reliable and consistent in addition to high average detection accuracy that reached up to 0.953. Contemporaneous research proposed by [PERSON] et al. [88] uses deep neural network technique ensemble of twelve convolutional neural networks to distinguish vessel pixels from non-vessel ones. Each convolutional neural network has three convolutional layers; each one was trained separately using a set of 60,000 randomly selected \(31\times 31\times 31\)-sized patches taken from 20 raw color retinal images of DRIVE dataset. At the time of deduction, the probabilities of vesselness were produced by each convolutional network in a separate manner. Then, the individual responses were averaged to form the final vesselness probability of each pixel. Although the method did not achieve the highest detection accuracy (0.9470) among other methods, it exhibited superior performance in terms of learning vessel presentation from data because multiple experts represented by ensemble of conventional networks are more powerful and accurate than one neural network. Detecting and restoring small foreground retinal filamentary structure was handled by [PERSON] and [PERSON] [22] using an iterative two-step approach built based on Latent Classification Tree (LCT) model. After the confidence map has been constructed, a sufficiently high thresholding was placed on it, yielding a partially segmented image containing the main (thick and long) vessels. Using latent classification tree, the remaining low confidence map (filamentary filaments) was obtained. The filamentary structure was re-connected to main filaments (large vessels) via novel matting and completion field technique. These steps were performed iteratively until the whole retina surface was scanned. The proposed method achieved high detection accuracy, up to 97.32% for DRIVE dataset and 97.72% for STARE dataset, which is considered an expected result due to the noticeable degradation in the false positives produced by false detection of fine retinal filaments. The proposed method achieved encouraging performance, and also has a broad range of applications in fields other than retinal vessels extraction such as 3D magnetic resonance angiography and neural tracing. A fast and accurate automated segmentation method for retinal and optic disc structures was proposed by [PERSON] et al. [24]. Their method uses deep Conventional Neural Networks (CNNs) as supervised segmentation methods. As all neural networks, the layers of CNN were trained in a specialized manner to address both retrial and optic disc segmentation. The proposed method was validated using DRIVE and STARE dataset for retinal vessel segmentation task where the area under recall-precision curve reached up to 0.822 for DRIVE dataset and 0.831 for STARE dataset. In context of CNN-based approaches, remarkable performances have been achieved by [PERSON] et al. [89] with supremum area under curve (AUC) of 0.99 and accuracy of 95.33%, while AUC of 0.974 was achieved by [PERSON] and [PERSON] [91] for automated retinal vessel segmentation. A novel enhancement applied on the classic K-nearest neighbor (KNN) clustering algorithm for retinal vessel segmentation has been demonstrated by [PERSON] et al. [80]. Each pixel was represented by a feature vector composed of green channel intensity, local maxima of the gradient magnitude and the local maxima of the largest eigenvalue. Based on these features, image pixels were clustered using the modified version of KNN without using training set.