Quality of circle obtained for four given positions of local maxima (n, m, u , v) (in
right, left, top and bottom projections respectively) may be estimated as sum of projec-
tion function values in these positions:
Q
n,m,u,v
= loc max
n,r
Π
R
(r) + loc max
m,r
Π
L
(r) + loc max
u,r
Π
T
(r) + loc max
n,r
Π
B
(r). (7)
3 Selection of Interrelated Histogram Maxima
So, various hypothetic circles are constructed by a method of circular projections. The
circles can be hypothetic pupils (index P is used further) or irises (index I). Circles can
be defined by their parameters, center position and radius: (q
P
, r
P
) (q
I
, r
I
). If two
circles are the borders of an iris the following limitations due to human iris nature [13]
are necessarily true:
1) r
P
>
1
6
r
I
(iris radius cannot exceed pupil radius more than six times);
2) r
P
<
3
4
r
I
(pupil radius cannot be bigger than 75% of iris radius);
3) d < r
P
, d = kq
P
− q
I
k iris center lies inside pupil circle;
4) 2(r
I
− r
p
− d) > r
I
− r
P
+ d, or after reduction d <
r
I
− r
P
3
(lengths of
segments between pupil and iris borders cut by a line passing through pupil and iris
centers do not differ by more than two times).
From all pairs of circles satisfying (1–4) the one is selected with maximum sum of
quality values.
Thus algorithm in whole consists of three steps:
1. Calculation of local gradients in image. Each of two gradient components require
six memory reads, five additions, one subtraction, three bit shifts and one memory write,
that is totally 24 integer operations per one image point.
2. Building circular projections (histograms) for four quadrants selecting local max-
ima in histograms. This requires evaluating indicator function (1) in each point. Check-
ing condition kgk > T
1
requires two memory reads for obtaining g
x
and g
y
, two mul-
tiplications, one addition and one comparison operations, totally six integer operations.
Most of image points do not have enough brightness gradient to pass this check and
are not involved in the following calculations. Checking condition T
2
<
x·g
kxk kgk
is split
to checking x · g > 0 and (x · g)
2
> T
2
2
x
2
g
2
to avoid square root calculation. First
of these conditions takes six integer operations and rejects half of points. Second takes
additional four multiplications and one comparison. Summing to projection histogram
is a single memory write operation. Totally, processing of each image point in this step
takes from 6 to 18 integer operations, and the major share of points is processed in 6
operations.
3. Enumeration of circle combinations searching most likely (with biggest quality)
pair. The computational cost of this step depends on the number of local maxima se-
lected rather than on source image size. Typical number of local maxima is around ten,
and there could be dosens of thousands of combinations from four maxima positions,
48