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