<< Chapter < Page | Chapter >> Page > |
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.
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 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 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.
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.
Notification Switch
Would you like to follow the 'Iris recognition' conversation and receive update notifications?