reports/final/content/finalproduct.tex

2010-03-19

author
francis
date
Fri Mar 19 09:11:02 2010 +0000
changeset 396
f190851b2dbb
parent 395
7f671b74a3a8
child 397
1260c9917f20
permissions
-rw-r--r--

Swap Final Results and conclusion

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

mercurial