Skip to content

Commit 6d1a975

Browse files
committed
Adding IrisRecognition to README
1 parent 0a2ad7c commit 6d1a975

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

edp2139_jtm2217_nab2217_IrisRecognition.README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,31 @@ bicubic interpolation, subtracting this estimate from the normalized image, and
2020
image through histogram equalization on 32x32-sized blocks. However, we found that performance was
2121
better by simply performing histogram equalization once on the image as a whole.
2222

23+
### IrisReconition.py
24+
25+
**<span style="color: red;">Run Instructions</span>**
26+
In order to run this file, please
27+
* Insert the CASIA database as a folder named "database" into the `iris-recognition` directory.
28+
* In your command line (ensuring that you are in the `iris-recognition` directory), run the command `python IrisRecognition.py`.
29+
* After these two steps are performed, the outputs will be tables printed in the console and figures that will open automatically.
30+
31+
The IrisRecognition.py file contains the following functions:
32+
33+
`main()`
34+
35+
* This function does not accept any arguments, but runs the entire project.
36+
37+
This function follows the below logic:
38+
* Processes all of the images, and stores them into training and test sets. In order to obtain the class labels, the images IDs are extracted by taking the first 3 digits of each image file name.
39+
* In the following order, `IrisLocalization.py`, `ImageNormalization.py`, `ImageEnhancement.py`, and `FeatureExtraction.py` are all run. This essentially serves as a processing pipeline where the irises are first localized, normalized, enhanced, then converted to a 1D feature vector. More detailed descriptions for each of these files are contained below.
40+
* These four files are run on both the training and the test sets.
41+
* If these four files have already been run once, there is no need to do it again. The function will simply load in pre-saved feature vectors for both the train and the test sets, obtained from running the pre-processing pipeline the first time.
42+
* Next, an LDA model is fit to the training set (both the reduced and non-reduced feature vectors). We use these models to perform dimensionality reduction on the training set, as well as the test set so that there is no information leakage.
43+
* For each distance type (L1, L2, and cosine) the reduced feature vectors in the training set are assigned to the iris with the closes match based on similarity. This is done by running the functions contained in `IrisMatching.py`, which are described in further detail below.
44+
* For each number of dimensions we wanted to try reducing to [30, 60, 80, 100, 107], as well as for each distance type (L1, L2, and cosine) the reduced feature vectors in the training set are assigned to the iris with the closes match based on similarity. This is done by running the functions contained in `IrisMatching.py`, which are described in further detail below. For the test set, similarity scores, class labels, and Correct Recognition Rates are stored in lists for plotting later.
45+
* Performance evaluation for Correct Recognition Rate is performed by running functions from `PerformanceEvaluation.py` on the stored lists of metrics. A more detailed description of the functions contained in this file are detailed below.
46+
* Performance evaluation for False Match Rate and False Non Match Rate is performed by running functions from `PerformanceEvaluation.py` on the stored lists of metrics. A more detailed description of the functions contained in this file are detailed below.
47+
2348

2449
### FeatureExtraction.py
2550
The FeatureExtraction.py file contains the following functions:

0 commit comments

Comments
 (0)