Iris Recognition

The security demands are increasing nowadays and finding useful trustful algorithms to prevent/identify unwelcome visitors is very important.


The security demands are increasing nowadays and finding useful trustful algorithms to prevent/identify unwelcome visitors is very important. Iris Recognition is one of those methods. It based on the fact that every eye has a unique characteristics (in its Iris) which separate the person from other people, and even separating his right eye from his left eye. The project was divided into 2 subjects:.

a. Image Processing – isolating the iris:


Figure 1 – The detected iris region


b. Signal Processing – characterizing it as a matrix unique to every person

Figure 2 -an example to the binary code of the iris

A. Image Processing :

This subject is also divided to sub-subjects :

  1. Finding the pupil
  2. Finding the iris
  3. Finding the down curve
  4. Finding the upper curve

Finding the pupil

Estimating the center
In order to estimate the center of the pupil we look for 6-8 pixels which their gray scale is under than 65 in equal gaps.(10 pixels).
In that way we find the diameter position and we take its center to be the estimated center of the circle.

Finding accurate center:

  1. To find the center of the pupil accurately we choose rectangle around the estimated center and we assume that every point in it can be the center of the pupil
  2. To every point in the rectangle we start draw circles from a minimum radius to a maximum one
  3. we mean every circle and keep its value
  4. after finding the average to every circle we find the gradient
  5. finding the gradient:
    1. a.we subtract the mean value of every circle from his neighbour and find the maximum result. This maximum result is the gradient for the specific point
    2. we do this steps to all the points in the rectangle
    3. we take the maximum result(gradient) for all the points in the rectangle
    4. the gradient is the radius and the center of the pupil

Finding the iris

The same steps to find the pupil we did to find the iris . A major problem exists when we try to find the iris in the algorithm described. When we mean the gray levels on the circle we can sometimes biased very much from the true result. This happens due to the eyelashes which lower the mean value and detect the iris imperfectly:


Figure 3 – An example to an imperfect detection of the iris


In order to solve this problem we did 2 prior steps :

I. We didn’t mean the circle from 0-360 degrees as we did in the pupil but we mean from 180-225 deg. and from 325-360 deg.
This method prevent the eyelashes to influence because they hardly exit there


Figure 4 – The searching region

II. We also used Median filter and Gaussian filter to prevent from noise as eyelashes to influence the mean gray level


Finding the down curve

  1. In order to find the down curve we assumed that it behaves as a parabola
  2. We find the points that describe the parabola by using a wave which is called: Haar wave
  3. We choose columns in the iris area (9 for each side of the iris center) and we make a convolution with every column and the Haar wave
  4. The result of every convolution is a number about 1 (we inverted the gray scale from 0-255 to 0-1 gray scale)and the maximum result is the point we want
  5. Doing this convolution to all the columns we get the points for the parabola
  6. For more details see the project book
Figure 5 – The detected points of the parabola


Finding the up curve

We have 2 assumptions:

1.The eyelid is very close to a parabola
2.Near the eyelid we have the largest arc gradient all over the picture


The method :

In order to find the up curve we developed a method called the arc gradient method, that is described as follows :

  1. We search the curve in the upper half of the picture and start with an initial curve
  2. We pass over all possible parabolas in that region and the mean gray level of the picture in the coordinates of the parabola is the grade of the parabola
  3. We pass over the vertical axis and for every x0 we take all the parabolas with the same parameters (a,b) and different c when c is shifted one pixel, and search for the gradient from one parabola to another
  4. The parabola at the point x0 and with the parameters (a0,b0) that gives the largest gradient along the vertical axis is the desired one

B. Signal Processing


  1. after finding the iris we need to convert it to a form (matrix) which is easy to deal with
  2. To do that we sample in r axis and in theta axis (from 0 to 360 deg.) and get this matrix
Figure 6 – The normalized picture


I. Sometimes the eyelid of the eye which requests to enter is lower or higher than the one in the database.
This can cause a huge difference in the samples we have, and the same person may get a rejection instead of permission.
II. To avoid that we do masking. Every image has a mask besides the processed image :

Figure 7 – The mask

The desired data is the black one .

III. Before the image (which want to enter) get processed , we do OR between the 2 masks







Figure 8 -In that figure we take the two first masks and do the or operation between them and get the result in the third picture

IV. After finding the common information we can continue the process



I. After normalization we convulate the matrix with one-dimension Gabor

II. the gabor looks like:

Figure 9 -This is the gabor function
Figure 10 -This is the gabor function

III. The conversion is cyclic and in one dimension
IV. After the conversion we quantized the matrix result. The positive elements got the value ‘1’ and the negative – ‘0’


Comparing Codes

  1. To compare between the codes (the matrices) we do XOR bit to bit
  2. If the eyes are different (different person) we get about 0.5 , if it is the same person it is about 0.3
  3. The value we get is called HD


  1. Sometimes a person might move his neck while his eye is photographed. That can cause a shift in the angel axis
  2. To prevent that, we shift the matrix cyclic for about 20 columns (which equals to 20 degrees) and try to find the HD not only for the current matrices but also for all the shifting
  3. the minimal result is the desired one

I.The simulation was made for each eye separately
II.for each eye we divide the results into 2 parts:
a. Correlation of the same eye(every eye has some pictures)
b. Correlation of different eyes
III.The results were also divided to 2 parts:
a. Pictures that their Image Processing was perfect
b. Pictures that their Image Processing wasn’t perfect


Figure 11 – the upper picture is for the same eyes
The lower picture is for the different eyes


In the Histogram we can see that the average for the same eyes is about 0.3 and the average for the different eyes is about 0.45.
But in order to find an absolute threshold we put aside all the bad pictures and by that we get that the minimum HD of the different pictures is more than 0.4 and the maximum HD for the same pictures is less than 0.35.
Thus we can choose threshold between 0.35 and 0.4.



We would like to thank our project supervisor Mr. Dori Peleg for his support and guidance throughout the project
We would like to thank also to Vision and Image Science Lab and especially to the charge of the lab – Johanan Erez , that by their assistance we could concentrate in the project without dealing with technical problems
For more detailed results see the project book