<< Chapter < Page Chapter >> Page >
The green point is the pupil center found using the pupil detection techniques of part 1. The red point indicates the starting point of the area of interest. The blue point is the approximate radius found. The yellow point is the padded radius for use in finding the actual iris parameters.

Iris translation

Having acquired an approximate radius, a small pad of this value should produce a circle centered on the pupil which contains the entire iris. Furthermore, with the perimeter of the pupil known, an annulus may be formed which should have the majority of it's area filled by the iris. This annulus can then be unrolled into cartestian coordinates through a straight discretized transformation. (r --> y,--> x) The details of this procedure are described in Step 3.

If the iris is perfectly centered on the pupil, the unrolled image should have a perfectly straight line along its top. However, if the iris is off center even a little this line will be wavy. The line represents the overall distance the iris is at from the pupil center. It is this line which will help to determine the iris' center and radius. Consequently, an edge detection algorith m must be run on the strip in order to determine the line's exact location. Once again canny edge detection is used. However, before the edge detection can be run the image should undergo some simple pre-processing to increase the contrast of the line. This will allow for a higher thresholding on the edge detection to eliminate extraneous data.

The unrolled iris before and after edge detection

Iris information extraction

In order to extrapolate the iris' center and radius, two chords of the actual iris through the pupil must be found. This can be easily accomplished with the information gained in the previous step. By examing points with x values on the strip offset by half of the length of the strip a chord of the iris is formed through the pupil center. It is important to pick the vectors for these chords so they are both maximally independent of each other, while also being far from areas where eyelids or eyelashes may interfere.

The points selected on the strip to form the chords of the iris through the pupil

The center of the iris can be computed by examining the shift vectors of the chords. By looking at both sides of a chord and comparing their lengths an offset can be computed. If the center was shifted by this vector it would equalize the two components of the chord. By doing this with both of the chords two different offset vectors can be computed. However, by just shifting the center through both of these vectors some components of shift will be overcompensated for due to the vectors not being orthogonal. Thus, the center should be shifted through the first vector, and the orthogonal component of the second to the first.

The change vectors (black) represent the shift of the pupil (black circle) in order to find the iris center. By just adding the vectors (blue vector) the result (blue circle) is offset by any vector the two change vectors share. Consequently, by adding the orthogonal component (gray vector) of one vector to the other (red vector), the actual iris center (red circle) is found.

The diameter of the iris can now be estimated by simply averaging the two diameters of the chords. While this is not a perfect estimate, that would require a single chord through the iris center, it is a very good approximation.

The pupil center and perimeter, along with the original estimate of the iris perimeter and the determined iris center and perimeter

Possible improvements

Currently the algorithm only examines two static vectored chords. While these were chosen to work best within the maximal orthogonality and minimal eyelash/eyelid interference constraint there are still many cases where they do not work. It is possible for someone to have the entire upper half of their iris covered and still have the rest of the iris code generation work since less then half of the iris surface is needed for an identification. Of course, if half of the eye is shut the chords will not intersect the iris edge and no result will occur. Instead of these static vectors for chords, an adaptive algorithm could be used which starts from the eye center and works progressively through angles to find points near the eyelid interference region. In this case the orthogonality would be maximized for that eye while still finding points on the iris edge.

Most modern iris detection algorithms produce what is known as an iris mask. This mask represents the portion of the iris obstructed by the eyelid or eyelash. This portion can then be ignored when doing the iris code comparison. In this way a user is not penalized for blocking a portion of their iris in the overall authentication. This takes advantage of the need for only a fraction of the iris for identification. The algorithm described in this module does not currently produce a mask. One way in which a mask could be produced is during the iris extrapolation. After unrolling the iris the presence of discontinuities in the line across the top the eyelids or eyelashes could be detected and a mask could be returned showing them. Another way a mask could be generated is through the running of a edge detector around the edge of the computed iris. In this way all sections of the perimeter which are messy could be found and masked.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Iris recognition. OpenStax CNX. Dec 18, 2004 Download for free at http://cnx.org/content/col10256/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Iris recognition' conversation and receive update notifications?

Ask