EE435: Biometric Signal Processing Project 12 (Final Project): Hand Geometry System

advertisement
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)
Related documents
Download