EE435: Biometric Signal Processing Project 12 (Final Project): Hand Geometry System Assigned: Mon 4/14/14 Due: Mon 5/05/14 This project is the design and testing of a hand geometry recognition system. It is a culmination of the things you’ve learned in the course, including pattern recognition, image processing, and biometrics. I. Hand Geometry System 1. In this project, you will be provided a training set and a test set of hand geometry images. From the course website or from the Google drive (in the “For Midshipmen” folder), download the file called “EE435-FinalProjectHandGeometryDatabase.zip”. This is a zip file containing a database of hand geometry images, including a training set of 250+ images, and a test set of 250+ images. Each image has been captured when the hand was placed on the same rigid board with fixed pegs to guide hand placement. In all images, the pegs are in the same location. Use the fact that these pegs are in the same location in each image however you see fit. 2. Using the standard approach to hand geometry recognition (Section 5.4 of the textbook), determine a set of features you will use for recognition, and design an algorithm that will take any of the input hand geometry images and extract these features. For each hand, the feature measurements should be used to create a pattern vector, and recognition would be based on some distance measure between any two pattern vectors. Your system will either recognize an input hand (and provide the subject number of the presented hand), or not recognize the hand. 3. Your project must include a database and three functions: FeatureExtract, CompareHands and HandID. Usages: y=FeatureExtract(x) % Used to extract features from a hand input: x is a hand…it is your design decision as to what x should be: either a file name of a hand image, or an image array, etc. output: y is a one-dimensional vector that contains the values of the features that your algorithm uses. If your algorithm uses M features, this vector should have M components. error checking: Whatever you choose x to be, you should make a check to ensure that the input is correct. If not, the output should be null and an error message displayed. y=CompareHands(x1,x2) % Used to compare two hands inputs: x1 and x2 are both output vectors of the FeatureExtract function. output: y is a similarity score derived by comparing hands x1 and x2, perhaps the distance between the two. error checking: the inputs should be of the correct type and dimensions. If not, the output should be null and an error message displayed. y=HandID(x,db) % Used to make an identification decision input: x is the filename of a hand image (a string) that you wish to identify. Input db is your hand database, created from your training set. output: the subject number (a string) from the database that matches the input, or 0 if the hand is not identified. error checking: the input filename x should exist in your MATLAB path (use the exist function to verify). If not, the output should be null and an error message displayed. Using your FindHand and FeatureExtract functions on the training images provided, you will create a database of known hands. The known subjects’ features AND subject numbers must be contained in the database. How you organize your database is completely up to you, but it will be used by your HandID function in order to make recognition decisions. You can either: come up with one template pattern vector for each subject; or come up with a pattern vector for each hand image. The help comments for this function should specify how the database is organized (e.g., each row represents a known hand, etc.). 4. In order to determine if a hand is NOT one that is in the database, you should determine a suitable distance threshold. Once an algorithm is designed, test it using all of the hands in the training set, and tweak the algorithm to maximize accuracy. Tweaking the algorithm may include varying the number of features and/or what features are used. After the algorithm is finalized, test it on the test set (using the training set database), and determine accuracy. In general, hand geometry is not the most accurate of biometrics, and you should not expect your system to work perfectly. For the final project, you must present a PowerPoint presentation during the final exam period on Monday, May 5, 2014 at 0755. You must also submit a 2-3 page formal report for the project, which will be due by the end of the final exam period (before you go on leave). The format for this report is specified on the course website (the IEEE 2-column format), along with an example that you might use to copy/paste into. More details on the expectations for the presentation will follow. Make a folder on the Google drive called “Final Project” The deliverables for this project are: -Final presentation, which includes (but is not limited to)— o a slide with an image of a hand that shows what features you used o a slide that describes the overall process you developed, perhaps a block diagram w/explanations o a slide that explains how your algorithm processes one of the given hand images to extract the features o a slide that describes your decision rule and system performance -Softcopy of final presentation (on Google drive) -Softcopy formal report (on Google drive) -Hardcopy of functions’ code -Soft copy of functions AND database used for HandID (in MATLAB, save the database as a .mat file)… (on Google drive)