Due: 11/13/15 at 11:59PM Eastern Time
Objective: Distinct from the face recognition pipeline we examined in the first two assignments, iris recognition incorporates several elements from image processing and computer vision including segmentation, filtering, signal coding and hamming distance calculation. Using a set of iris data collected at Notre Dame, we will step through the enrollment and matching process for a well-known implementation of a Daugman-like algorithm. By the end of this assignment, you will be able to identify good and bad iris pairs, representing a number of different factors we have discussed in class.
Grading: You will be graded based on the code you develop, plus your answers to the following questions. Similar to the last two assignments, you will not be graded on iris recognition performance, but rather on the analysis of its capabilities. This assignment is worth 175 points.
Task 1: Setup environment and download code
Task 2: Download the data
Question 1: Take a look at the images in the data set. What potential problematic conditions mentioned in class can you find?
Task 3: Enrollment
Tip #1: Depending on your version of MATLAB, you may need to re-arrange the file layout to fix broken function call dependencies.
Question 2: From the diagnostic images, find some examples of poorly segmented irises. Given what you learned about the segmentation algorithm from Masek's thesis, why do you think these problems are occuring?
Task 4: Matching
Tip #2: The last argument to gethammingdistance.m is the number of filters used to encode the templates. If you have not changed any of the encoding parameters hardcoded in createiristemplate.m, this argument will be "1".
Question 3: Calculate the mean and standard deviation for the genuine and impostor score distributions. By how much do they differ?
Task 5: Analysis of Distributions
Question 4: Now that you have seen the overlap between the the genuine and impostor distributions, would you characterize this data set as being easy or difficult?
Question 5: Find the lowest scoring genuine pair. Why do you think this pair matched well?
Question 6: Find the highest scoring genuine pair. Why do you think this pair matched poorly?
Question 7: Find the lowest scoring impostor pair. Why do you think this incorrect pairing matched well?
Question 8: Find the highest scoring impostor pair. Why do you think this incorrect pairing showed good separation?
Question 9: Based on your knowledge from the lectures in Unit 4, and any additional research you've performed for this assignment, what do more recent implementations of iris algorithms do to compensate for the problems you've encountered here?
Deliverables. Submit the following files to receive full credit for this assignment:
Have questions about this assignment? Ask them! If globally applicable, your question and its answer will be posted to the course website for others to see.
Tip #3: Start early! If you run into trouble with your development early on, having ample time for debugging will help.
Q: Do we have to write any pre-processing or normalization code before enrollment?
A: No. You can rely on the pre-processing routines of Libor Masek's enrollment code.
Q: Is there a mistake in the documentation of the gethammingdistance.m function? The provided function usage appears to be for the template generation function.
A: Yes, this is a mistake in the header. The description of the parameters is correct though, and you can figure out the usage by looking at the function call in the code.
Q: Can I submit my assignment after the deadline?
A: We will consider late submissions. However, there will be a penalty of 10 points per day you are late, which will be automatically subtracted from your total score.