2010-03-19
Swap Final Results and conclusion
1 \chapter{Final Results}
3 With the batch command line option of the application, it is possible to
4 process a large amount of images of eyes. Using this option, 108 images of eyes
5 from the CASIA database were loaded into the application; the pupil, iris and eyelids were auto-detected to generate a bitcode and store it in the database. These were then compared to an alternative image of each eye
6 to check for matches.
9 To further test primarily for false matches, the first three images of each eye were
10 loaded into the database, and then compared to a fourth
11 image for each eye. As there were originally three images for each eye, and
12 then a comparison was performed on all of the extra 108 images, roughly 35,000
13 iris comparisons took place ($(108 * 3) * 108$).
15 Our results of these tests are as follows: \begin{itemize} \item 0 false
16 matches in $\sim$35,000 comparisons \item 70\% (75 out of 108) match rate
17 with Professor Daugman's suggested 0.32 Hamming distance.
18 \end{itemize}
20 The complete lack of any false matches and the incredibly high match rate are a
21 testament to the robustness and feasibility of an iris recognition system. The
22 tests have suggested that in virtually any case where the iris boundary is
23 correctly located, the iris should be correctly identified.
25 As a roughly 70\% match rate was achieved for the iris location, this percentage has, as
26 predicted, been reflected in the overall match rate in the
27 database of images. Similarly to Daugman, we can also observe that the Hamming
28 distances produced by comparing different irides tends to follow a binomial distribution, with a mean around 0.46; see
29 figure \ref{hd}.
31 \begin{figure}
32 \centering
33 \includegraphics[width=0.55\textwidth]{hd}
34 \caption{The distribution of Hamming distances for one run of all the irides in the database}
35 \label{hd}
36 \end{figure}
37 \chapter{Conclusions}
38 \section{Final Product}
39 The final prototype is a functional iris detection application, which provides the
40 user with visual prompts and feedback and also some supplementary information about
41 the loaded image for debugging purposes.
43 The final product can read in an 8-bit indexed, greyscale image and will attempt to
44 automatically best-fit parameters for the location of the pupil, iris and eyelids with
45 consideration for specular highlights and padding for eyelash interference. The entire auto-detection process takes a matter of milliseconds. The user may
46 choose to manually enter points to specify all of these locations; if the user does, he
47 or she will receive appropriate visual feedback cues for repositioning elements in a
48 manner intuitive to any casual computer user.
50 From this point, the user input is complete and the application will process the
51 image data, unwrap the iris using polar co-ordinates and mask appropriate
52 regions of the unwrapped iris based on the auto-detection sequence or user
53 input. This information is then extracted using Gabor wavelet convolution
54 filters and the final output is a 2048-bit iris code containing phase
55 information of the valid iris pixel data.
57 The iris code is stored in a local, new line delimited text database if unique
58 or the prototype reports that the code has already been located in the database
59 and a successful match dialog is given.
61 \section{Auto Detection}
63 %\subsubsection{Pupil}
65 Pupil detection in the application works to a very high degree of accuracy in
66 every seen case. The pupil has a fairly unique shade in comparison to the rest
67 of the eye and its surrounding area; this enables an intelligent threshold to
68 be carried out with information from the image histogram to isolate the pupil.
69 This, unfortunately, is not a property shared by the iris, making it significantly more
70 difficult to isolate than the pupil.
72 %\subsubsection{Iris}
74 Currently the prototype makes an estimation of the location of the iris based on
75 concentricity (a potential source of error) with the pupil, and assumes
76 a detectable gradient ramp between the iris and the sclera. These complications
77 hamper the accuracy of our current estimates and produce a successful detection
78 rate on the CASIA database of around 70\%, though potential improvements to this
79 method are suggested in future work (\ref{furtherwork}).
81 %\subsubsection{Eyelids}
83 The prototype manages to detect the top edge of the eyelids in the vast
84 majority of cases. With the small amount of padding added to accommodate the
85 thickness of the top eyelid, it can be seen that, although not perfect, a very
86 reasonable estimate of the eyelid boundary is found automatically.
88 \newpage
90 \section{Source Code}
91 The source code is freely available under the GPL licence from \url{http://projectiris.co.uk}.
93 \chapter{Future Work}
94 \label{furtherwork}
95 Throughout development the focus was on producing a functioning piece of software capable of
96 fast, consistent and reliable iris recognition. There are other possible routes for extension
97 and exploration within this project. There are alternative ideas for the format of the
98 application and unexplored avenues within auto-detection techniques.
100 \section{Otsu Thresholding for Iris/Sclera Separation}
101 As we have seen before on average the iris has a lower intensity than the
102 sclera. Hence it could potentially be beneficial to explore the use of Otsu
103 thresholding for separation of the iris and sclera. Similar to the methods
104 implemented for eyelid detection, if we remove eyelids and pupil intensities
105 from the Otsu thresholding process then we obtain the image shown in figure
106 \ref{otsu-iris}. Although to the human eye this image looks to hold more
107 information than the implemented technique (see figure \ref{iris-threshold})
108 the image contains a large amount of noise and would require further filtering
109 and refinement to be useful.
111 \begin{figure}
112 \centering
113 \includegraphics[width=0.35\textwidth]{anothereye}
114 \hspace{1cm}
115 \includegraphics[width=0.35\textwidth]{otsui}
116 \caption{Image before and after an Otsu threshold.}
117 \label{otsu-iris}
118 \end{figure}
120 This would be the first recommended route for extension since, during the
121 testing phase, the software tended to fail recognition on images where it could
122 not adequately locate the iris.
124 \section{Eyelashes}
125 In some images eyelashes can obscure parts of the iris. Detection and removal
126 (marking as bad bits) of eyelashes could potentially improve the detection
127 rate. A method is given in \cite{min2009} for eyelash detection. The method
128 relies on two characteristics of eyelashes: firstly, that they have a relatively
129 low intensity compared to surrounding features, and secondly that the eyelash
130 regions have a large variation in intensity due to the thin shape of the
131 eyelashes (see figure \ref{justaneye}). The method uses these characteristics
132 by combining a standard-deviation filter and a thresholding technique.
134 \begin{figure}
135 \centering
136 \includegraphics[width=0.35\textwidth]{justaneye}
137 \caption{The eyelashes have a relatively low intensity and the eyelash region has high variation in intensity.}
138 \label{justaneye}
139 \end{figure}
141 \section{Eyelids}
142 The implementation of eyelid detection is based on the region obtained from the
143 thresholding technique, as we saw in figure \ref{otsu-eyelids}. The system
144 currently constructs a parabola from three points on the boundary of this
145 region. Accuracy in eyelid detection could potentially be improved by using the
146 Hough technique for parabolas. This again would allow more accurate marking of
147 non-iris regions and hence improve overall recognition rate.
149 %TODO:? \subsection{Gaussian Derivative Encodings}
151 \section{Application Format}
152 Currently the system has a text file for storing iris encodings. This could be
153 improved to mirror a real-world application deployment by interfacing with a
154 database. Although due to the one-to-many searches involved with iris
155 recognition database querying could potentially become a bottle neck.
157 Another area worth exploring is implementing the software with a client/server
158 architecture whereby the iris is encoded client side, and compared server side.
159 Again, this more accurately mirrors real-world deployment of an iris recognition
160 software. This would then require further investigation into security and encryption methods
161 for the system.