reports/final/content/finalproduct.tex

2010-03-19

author
francis
date
Fri Mar 19 09:09:52 2010 +0000
changeset 395
7f671b74a3a8
parent 393
352b1179b4f7
child 396
f190851b2dbb
permissions
-rw-r--r--

Other stuff

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

mercurial