Improvement of a retinal blood vessel segmentation method using the
Insight Segmentation and Registration Toolkit (ITK)
M. Elena Martinez-Perez, Alun. D. Hughes, Simon A. Thom and Kim H. Parker
Abstract— We describe an improved implementation of asegmentation method for retinal blood vessels based on a multi-scale approach and region growing employing modules fromthe Insight Segmentation and Registration Toolkit (ITK). Wepresent the results of segmentation of retinal blood vesselsusing this improved method and compare these with resultsobtained using the original implementation in Matlab, as wellas with expert manual segmentations obtained from a publicdatabase. We show that the ITK implementation achieves highquality segmentations with markedly improved computationalefficiency. The ITK version has greater segmentation accuracy,from 0.94 to 0.96, than the Matlab version due to a decreasein FPR values and it is between 8 and 12 times faster than theoriginal version. Furthermore, the ITK implementation is ableto segment high-resolution images in an acceptable timescale.
I. INTRODUCTION
Examination of the retinal microvasculature is widely used
to assess diabetic eye disease and as indicator of target
organ damage in hypertension. Recent studies [1], [2] have
shown that quantitative measures of the retinal microvascula-
ture predict cardiovascular disease. Moreover, the increasing
introduction of retinal screening in diabetes using digital
cameras potentially provides a large database for retinal
analysis in high risk individuals. However manual or semi-
automated techniques for the quantification of the retinal
microvasculature are time-consuming and labor intensive and
the development of a rapid means of retinal microvascular
assessment would be of considerable value.
Previously we have described a novel multi-scale method
for segmentation of retinal blood vessels implemented in
Matlab [3]. While this approach achieved good results in
terms of segmentation it was relatively slow and unable to
process high resolution images due to memory limitations.
Consequently, we searched for an alternative way to im-
plement this approach in a computationally more efficient
manner that overcomes the problems of speed and memory.
One way to overcome these problems could be by imple-
menting the current method on parallel, either to write the
algorithm it self on parallel or to process the data on parallel.
Another feasible option is to implement part of the process
This work was supported by the Royal SocietyMartinez-Perez is with the Department of Computer Science. Institute
of Research in Applied Mathematics and Systems. UNAM, Apdo. Postal20-726, Mexico, D.F. 04510 [email protected]
Hughes and Thom are with the International Centre for CirculatoryHealth, NHLI Division, Faculty of Medicine, St Mary’s Hospital andImperial College London, UK. [email protected] [email protected]
Parker is with the Department of Bioengineering. ImperialCollege London. Prince Consort Road, London, SW7 2BY, [email protected]
on hardware, using for instance field programmable gate
arrays (FPGAs).
In this work, we present the implementation of our current
segmentation approach using the Insight Segmentation and
Registration Toolkit (ITK) [4]. ITK is an open source soft-
ware that provides libraries of image processing algorithms
useful for segmentation and registration of medical image
datasets. ITK started as a toolkit for supporting the Visible
Human Project [5].
The paper is organized as follows. In Section II, we
describe briefly the blood vessel segmentation algorithm. In
Section III, we outline the major differences between both
implementations, original Matlab and ITK. We compare the
experimental results of testing using both methods, in terms
of timing, performance and segmentation outcomes. Finally,
the conclusions are presented in Section IV.
II. SEGMENTATION METHOD
Formerly, we have presented an approach for segmenting
retinal blood vessels based upon the principles of multi-
scale differential geometry in combination with gradient
information and region growing. This algorithm [3] has been
tested on two local and two public databases of complete
manually labelled images [6], [7], which have been used by
other authors for similar validation purposes [6], [7], [8].
Multi-scale techniques have been developed to provide
a way to isolate information about objects in an image
by looking for geometrical features at different scales. In
this framework information at different scales is defined by
convolving the original image I(x, y) with a Gaussian kernel
G(x, y; s) of variance s2:
Is(x, y; s) = I(x, y) ⊗ G(x, y; s) (1)
where G is:
G(x, y; s) =1
2πs2e−
x2+y
2
2s2 (2)
and s is a length scale. To extract geometrical features from
an image, an approach based on differentiation is used.
Derivatives of an image can be numerically approximated
by a linear convolution of the image with scale-normalized
derivatives of the Gaussian kernel.
∂nIs(x, y; s) = I(x, y) ⊗ sn∂nG(x, y; s) (3)
where n indicates the order of the derivative.
A. Feature extraction
Using a multi-scale approach we detected two tube-like
structures: the gradient magnitude and the maximum eigen-
value of the Hessian matrix.
Proceedings of the 29th Annual InternationalConference of the IEEE EMBSCité Internationale, Lyon, FranceAugust 23-26, 2007.
ThP2B5.2
1-4244-0788-5/07/$20.00 ©2007 IEEE 892
1) Gradient magnitude: defined as |∇Is| =√
(∂xIs)2 + (∂yIs)2, represents the slope of the image
intensity for a particular value of the scale parameter s.
2) Maximum eigenvalue: Since vessels appear as ridge-
like structures in the image, we identified pixels where the
intensity image has a local maximum in the direction for
which the gradient of the image undergoes the largest change
(largest concavity) [9]. The second derivative information is
derived from the Hessian of the intensity image I(x, y):
H =
(
∂xxIs ∂xyIs
∂yxIs ∂yyIs
)
(4)
Since ∂xyIs = ∂yxIs the Hessian matrix is symmetrical
with real eigenvalues and orthogonal eigenvectors which are
rotation invariant. A pixel belonging to a vessel region will
be weighted as a vessel pixel if its maximum eigenvalue
is ≫ 1. Our approach for multi-scale integration is based
on extracting the information across the scales by finding
the local maxima over scales (pixel by pixel) for both
measurements of feature strength [10].
B. Region growing
The region growing algorithm we use is based on an
iterative relaxation technique. All the parameters used in
the region growing are automatically calculated for each
image from the histograms of the extracted features. The
classification of pixels as vessel or background is based
primarily upon the maximum eigenvalue, from which the
criteria for determining seeds are defined. Using spatial
information from the classification of the 8-neighboring
pixels, classes grow initially in regions with low gradient
magnitude, allowing a relatively broad and fast classification
while suppressing classification in the edge regions where
the gradients are large. In a second stage, the classification
constraint is relaxed and classes grow based solely upon
the maximum eigenvalue to allow the definition of borders
between regions [3].
III. EVALUATION
Our original approach is implemented in Matlab (Version
5.2, MathWorks Inc., Massachusetts, USA). Scale feature
extraction is performed using 2D convolutions and image
scans for region growing are done using nested cycles. The
use of the Fourier Transform instead of convolution was
also explored but memory demands increased as the size
and number of scales increased; therefore we decided to use
convolution as the final preferred strategy.
The current method is implemented using ITK which is
written in C++ language. The use of a lower level language,
rather than Matlab, is itself an advantage. However, one
of the major advantages of ITK is that it includes various
high-level and low-level image processing algorithms, using
the concept of Standard Template Library (STL) so that
it works with arbitrary data types. ITK includes common
classes (defining the basic data structure and the data flow
framework), basic filters (includes basic image operator such
as Gaussian filters), utilities (such as I/O classes), and robust
algorithms.
The ITK version used for our implementation was 2.2.0,
and the filters used were mainly those related to the computa-
tion of the scale feature extraction. Convolution techniques
are computationally expensive since the number of opera-
tions per point in convolving an image with a Gaussian filter
is directly proportional to the width of the operator. The
larger the image size, the larger the scales and therefore the
larger the filters. ITK implements the operation of convolu-
tion with the derivatives of a Gaussian filter in a recursive
way using approximated 2D Gaussian operators, an approach
which is computationally more efficient [11]. In addition to
the latter, to scan an image region during the region growing
phase, ITK defines a so called ”image iterator” which is an
abstraction of a memory pointer, therefore resulting in more
efficient utilization of memory.
A. Timing
We tested both methods on a PC - Pentium 4, 2.4 GHz,
with 1024 Mb of RAM memory, under Linux.
The top of Table I shows the timing performance of the
original Matlab implementation. We used 4 different image
sizes with different interval of scales. The interval of scales
corresponds to the lower and larger s value of the scale object
we are looking for in the image. These values are setting
manually and depend on both the size of the image in pixels
and the chosen camera magnification of the retinal image.
TABLE I
PROCESSING TIMES IN SECONDS. TOP: MATLAB METHOD, AND
BOTTOM: ITK METHOD. FE - FEATURE EXTRACTION, RG - REGION
GROWING.
File Size (pixels) Scales FE (s) RG (s)
Img1 703× 599 [2-6] 32.20 47.35Img2 1319× 1518 [2-8] 320.72 328.44Img3 2308× 2890 [5-25] Out of memory –Img4 3500× 3000 [5-21] Out of memory –
Img1 703× 599 [2-6] 8.55 2.24Img2 1319× 1518 [2-8] 55.82 23.20Img3 2308× 2890 [5-25] 693.83 63.64Img4 3500× 3000 [5-21] 900.17 279.69
Processing times are reported in seconds separately for
feature extraction (FE) and for region growing (RG) pro-
cesses. Segmentation of images larger than 1319 × 1518pixels was not possible in Matlab due to a lack of memory.
The bottom of Table I shows the timing performance
of the ITK version using the same 4 images. In this case
all 4 images were segmented successfully. The times taken
to complete segmentation of images Img1 and Img2 are
significantly lower than those using the Matlab (top of
Table I). In contrast to the Matlab implementation, the ITK
method completed region growing more quickly than feature
extraction (bottom of Table I).
Figure 1 shows an example of a high resolution image
(Img4) of size 3500×3000 pixels for which full segmentation
893
took approximately 20 minutes using the ITK implementa-
tion. It was not possible to segment this image using the
Matlab implementation.
(a) (b)
Fig. 1. (a) High resolution image: “Img4”, size 3500×3000 pixels,(b) automatic segmentation by ITK method. Total processing time≈ 20 minutes.
B. Segmentation performance
In order to evaluate the accuracy of the segmentation, a
Public database of digitized retinal images (STARE database;
http://www.parl.clemson.edu/stare/probing/) [6] was used.
The database contains 20 retinal fundus images photographed
with a TopCon TRV-50 fundus camera with a 35◦ field of
view. Each photographic positive was digitized to produce a
605×700 pixel image, with 24 bit per pixel (standard RGB).
Because the green band of color images on RGB format gives
the highest contrast between vessel and background, only
the green band was used. 10 of the images are of subjects
with no pathology (normals) and the other 10 with pathology
(abnormals). Each of these 20 images were hand-segmented
by two different observers named, the first (AH) and the
second (VK).
Table II shows the mean(SD) processing time values
for this dataset. All image sizes are of 605 × 700 pixels.
Segmentation was performed by both methods, Matlab and
ITK, using an scale interval of [1-12]. Processing time was
approximately 256 for Matlab and 21s for ITK. The ITK
implementation runs approximately 12 times faster than the
Matlab version on these images.
TABLE II
PUBLIC DATABASE. PROCESSING TIMES IN SECONDS FOR THE MATLAB
AND ITK METHODS. MEAN(SD) VALUES OF FEATURE EXTRACTION
(FE) AND REGION GROWING (RG) OF NUMBER OF IMAGES TESTED (n).
Method Size (pixels) Scales FE (s) RG (s) n
Matlab 605 × 700 [1-12] 219.14(1.55) 37.18(6.40) 20
ITK 605 × 700 [1-12] 19.29(0.26) 2.29(0.54) 20
Similar to other authors who have used this Public
database [6], [7], [8], we base our validation of the seg-
mentation outcomes on contingency tables using the AH
hand-segmented images as the ”ground truth” (GT). For a
comparison of other hand segmentations and computational
methods that already exist in the literature against the original
Matlab version please refer to [3].
Contingency tables were built as follows: any pixel which
is marked as vessel in both GT and MS is a true positive (TP).
Any pixel which is marked as non-vessel in both GT and MS
is a true negative (TN). Any pixel which is marked as vessel
in MS but non-vessel in GT is a false positive (FP). The true
positive rate (TPR) is established by dividing the number of
true positives by the total number of vessels in GT. The false
positive rate (FPR) is computed by dividing the number of
false positives by the total number of non-vessels in GT. A
measurement of accuracy (Ac) can also be defined by the
sum of true positives and true negatives divided by the total
number of pixels in the image. For a perfect segmentation,
the true positive rate should be 1 and the false positive rate
should be 0. Table III shows the mean(SD) values of TPR
and FPR for both methods, Matlab and ITK. Notice that TPR
is slightly lower for ITK than for Matlab, whereas FPR is
significantly lower. However, the Ac value is better for ITK
due to the large difference between FPR values.
TABLE III
COMPARISON OF PERFORMANCE EVALUATION BETWEEN ORIGINAL
MATLAB AND ITK METHODS BOTH COMPARE AGAINST THE
HAND-SEGMENTED (AH) SET AS THE ”GROUND TRUTH”. MEAN(SD)
VALUES OF: TRUE POSITIVE RATE (TPR), FALSE POSITIVE RATE (FPR),
ACCURACY (AC) OF NUMBER OF IMAGES TESTED (n).
Method TPR FPR Ac n
Matlab 0.75(0.07) 0.04(0.04) 0.94(0.03) 20ITK 0.72(0.07) 0.02(0.01) 0.96(0.01) 20
Figure 2 shows the results for one of the images of
the Public database [6], where both hand and automatic
segmentations are shown.
Although images and parameters were the same for both
implementations, the numerical differences shown in Ta-
ble III are due the numerical differences of the Gaussian
operator approximations [11], and therefore the numerical
differences on the computation of class intervals for the
region growing technique. However, this evaluation showed
a good outcome for the ITK method since the value of Ac
increases, in addition to a markedly increased processing
speed. Figure 3 shows one clear example of the decrease
in FPR using the ITK method. The results of the Matlab
method Figure 3(c) show that large parts of the background
of this out of focus image were segmented as vessel class,
which increases FPR and therefore decreases Ac (Table III).
IV. CONCLUSIONS
This paper has presented an improvement of a retinal
blood vessel segmentation method using the ITK toolkit.
The original Matlab implementation was in our experience,
a robust segmentation method comparable in performance
with other hand segmentations and computational methods
as reported in [3]. Nevertheless, it lacked sufficient power
to handle high resolution images and therefore was not
894
(a) (b)
(c) (d)
Fig. 2. (a) Image from the Public database, (b) hand-segmented byobserver AH, (c) automatic segmentation by Matlab method and(d) automatic segmentation by ITK method.
applicable to images in contemporary large databases such
as those obtained from recent retinal screening programs.
We have demonstrated that the ITK version is able to
segment images between ≈ 600 and 1500 pixels squared size,
around 8 times faster than the Matlab version. In addition the
ITK version is able to handle higher resolution images than
the Matlab version (Table I).
We have also shown, using a Public database [6], that
ITK version segments, on average, each image of this data
set ≈ 12 times faster than the Matlab version (Table II).
Processing speed depends not only on image size, but also
on the number of scales processed. This in turn depends
on the magnification produce by the eye and the fundus
camera. Furthermore, in terms of segmentation outcome, the
ITK version was demonstrated to have a slightly greater
accuracy than the Matlab implementation due to a decrease
in FPR values (Table III). Since both extracted features
are numerically different due to the approximated Gaussian
operators, during the region growing step the computation of
class intervals are also different. The latter is mainly reflected
on a decrease in FPR values.
The appearance of the retinal blood vessels can be an
important diagnostic indicator of various clinical systemic
disorders of the eye and the body. The development of
high speed and accurate segmentation is a key step in the
development of automated approaches to the analysis of large
amounts of retinal data.
V. ACKNOWLEDGMENTS
The authors gratefully acknowledge financial support from
the Royal Society.
(a) (b)
(c) (d)
Fig. 3. (a) Image from the Public database, (b) hand-segmented byobserver AH, (c) automatic segmentation by Matlab method and(d) automatic segmentation by ITK method.
REFERENCES
[1] N. Witt, T. Y. Wong, A. D. Hughes, N. Chaturvedi, B. E. Klein, andR. Evans, “Abnormalities of retinal microvascular structure and riskof mortality from ischemic heart disease and stroke,” Hypertension,vol. 47, no. 5, pp. 975–981, 2006.
[2] T. Y. Wong, R. Klein, B. Klein, J. Tielsch, L. Hubbard, and F. J. Nieto,“Retinal microvascular abnormalities and their relationship with hy-pertension, cardiovascular disease, and mortality.” Surv. Ophthalmol.,vol. 46, no. 1, pp. 59–80, 2001.
[3] M. E. Martinez-Perez, A. D. Hughes, S. A. Thom, A. A. Bharath,and K. H. Parker, “Segmentation of blood vessels from red-free andfluorescein retinal images,” Medical Image Analysis, vol. 11, no. 1,pp. 47–61, 2007.
[4] “ITK - Insight Segmentation and Registration Toolkit,” NationalLibrary of Medicine, [Online] available: http://www.itk.org.
[5] R. A. Banvard, “The visible human project image data set from in-ception to completion and beyond,” in Proc. CODATA 2002: Frontiers
of Scientific and Technical Data, vol. Track I-D-2, Montreal, ON,Canada., October 2002.
[6] A. Hoover, V. Kouznetsova, and M. Goldbaum, “Locating bloodvessels in retinal images by piecewise threshold probing of a matchedfilter response,” IEEE Trans. Med. Imag., vol. 19, pp. 203–210, 2000.
[7] J. Staal, M. Abramoff, M. Niemeijer, M. Viergever, and B. vanGinneken, “Ridge-based vessel segmentation in color images of theretina,” IEEE Transactions on Medical Imaging., vol. 23, pp. 501–509,2004.
[8] X. Jiang and D. Mojon, “Adaptive local thresholding by verification-based multithreshold probing with application to vessel detection inretinal images,” IEEE Transactions on Pattern Recognition Analysis
and Machine Intelligence., vol. 25, pp. 131–137, 2003.[9] D. Eberly, Ridges in Image and Data Analysis, ser. Computational
Imaging and Vision. Netherlands: Kluwer Academic Publishers,1996.
[10] T. Lindeberg, “On scale selection for differential operators,” in Proc.
8th Scandinavian Conference on Image Analysis, K. Heia, K. Hogdra,and B. Braathen, Eds., Tromso, Norway, 1993, pp. 857–866.
[11] R. Deriche, “Recursively implementing the gaussian and its deriva-tives,” Unite de Recherche INRIA-Sophia Antipolis, Tech. Rep. 1893,1993.
895