Skip to content

In this project, I implement an enhanced active contour method that uses discrete wavelet transform for energy minimization to increase the accuracy.

License

Notifications You must be signed in to change notification settings

Mahtab-Shabani/Retinal-Blood-Vessel-Segmentation-by-Active-Contour

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retinal-Blood-Vessel-Segmentation-by-Active-Contour

Active contour is a strong method for edge extraction. However, it cannot extract thin vessels and ridges very well. We propose an enhanced active contour for retinal blood vessel extraction. this repository is an implementation of the paper below:

"An active contour model using matched filter and Hessian matrix for retinal vessels segmentation. Shabani etc" LINK

For more additional information read the master dissertation: Preprint

STEPS

1. Original image:

image

2. Green Channel:

image

3. CLAHE (Constrast-limited adaptive histogram equalization):

image

4. Vessel Enhansment:

using the vessel enhancement method in [1]. The authors in [1] present an algorithm based on iterated morphology operators. By using this filter inhomogeneities illumination is reduced and the false edge around the optic disk is destroyed.

[1] Heneghan, C., Flynn, J., O’Keefe, M., et al., Characterization of changes in blood vessel width and tortuosity in retinopathy of prematurity using image analysis. Medical image analysis, 2002. 6(4), pp. 407-429.

image

5. Enhanced Active Contour:

5.1. Adding Wavelet terms to the minimization energy formula to improve the performance of the algorithm

5.2. Optimization process

image

The result of the active contour:

image

6. Vessel Tree Generation:

image

7. Performance evaluation

We carry out the algorithm in MATLAB version R2014a on a personal computer running Windows 10 with an Intel(R) Core i5-7200U, the processor 2.5GHz and 8 GB of memory. The proposed algorithm is experimented on five public available dataset. The values achieved are 94.3%, 73.36%, and 97.41% for accuracy, sensitivity, and specificity, respectively, on the DRIVE dataset, and the proposed algorithm is comparable to the state-of-the-art approaches.

image

The top: Randomly chosen images from DRIVE dataset. The middle: Segmentation results. The bottom: Expert's annotation.

Performance metrics on the DRIVE, STARE, HRF, CHASE DB1, and ARIA databases: image

8. Performance in the absence of main vessels

There are main vessel pixels extremely more than thin vessel pixels, so sensitivity is not useful to indicate performance alone and accuracy measure typically will be high. Therefore, we remove wide vessels pixels from images, and then to show performance of the proposed algorithm, are calculated evaluation metrics on the images without wide vessels. For this work, we need a new benchmark of DRIVE database in the absence of wide vessels. To removing wide vessels, used Canny detector. In the figure below is illustrated a randomly chosen benchmark of DRIVE and the corresponding new benchmark image. Afterward, we calculated the measures for all the 20 images of test set of the DRIVE dataset with new benchmark.

The average TPR is achieved 0.4544 that means our algorithm can detect 45.44 percent of the thin vessels pixels. The average accuracy, FPR, and informedness are achieved 0.9616, 0.0164 and 0.4387 respectively. In this section we use a new measure called J index (or informedness) that is obtained as J = sensitivity + specificity – 1. F-score only considers two positive classes (precision and sensitivity) but the J index, considers information from both positive and negative classes (sensitivity and specificity). The ability of the algorithms with the informedness shows better than TPR alone.

(a) image (b) image

(a) Expert's annotation. (b) the corresponding new benchmark that made by us.

Basic Usage

Now RUN Demo_ActiveContoure.m and Enjoy it!

Releases

No releases published

Packages

No packages published

Languages