I. Introduction a. For my project I am attempting to build some code that does fingerprint verification. In order to do this have decided to use a system of point based matching or Minutiae matching that I described in my earlier persentation. II. Summary of the steps a. there are a number of modules needed in order to do Fingerprint verification. b. Converting the image into a useful form c. binarization d. thinning e. minutiae extraction f. making the points rotation, translation, and scale invariant g. minutiae matching h. most of the steps are needed in order to preprosess the images so that the userful information can be extracted and compared. i. there is also the problem of actually obtaining some prints I have chosen most of the algorithms and programs that I will use to impliment each of these steps. While comercial and research systems probably use some more sophisticated methods. These will be good given the time constaints III. The Images (show some of the images produced) a. The images that I will use at first will come from fingerprint generators 1. Sfinge created by the Department of Computer Science University of Bologna 2. Fingerprint Creator designed by Optel (polish company) 3. both produce black and white bitmaps 4. show the sample images b. If I can get the fingerprint scanner to work I might also use images form there (these would be jpg) c. another source of images would be the NIST image databases from which one can get a few free sample images. IV. Conversion: (show some converted text) a. I have yet to get a conversion program to work here b. Eammon Keogh has converted a few sample bitmaps into ASCII for me c. Show the text that is produced V. Binarization: (show image of three prints) a. this is the process of converting grey scale to binary or black and white images b. Not needed for bitmaps since already balc c. To do this use threasholding techniques d. each pixel will be compared to a threashold/average and if it is above the threshold it will be made black otherwise it will be made white e.this should make the ridges black and the valleys white as the there is usaully a disinct color difference between the idges and the valleys on greyscale images. f. several ways to find the threshold: 1. average all of the greys of the points 2. average points in a segment used for the thresholding of that segment - take into account color changes and darker segments VI. Thinning (draw structuring elements on the board) (show some images of thinned prints) a. the process of making all of the ridges one pixel wide b. I will use an algorithm described on the Image Processing Learning Resources website. c. The algorithm works through the pixels of an image using a set of 'structuring elements' to decide which of the pixels to d. The program looks at each dark pixel that has one or more light neighbors. e. If the pixel and its 8 nieghbors matches one of the structuring elements shown in figure 1, the point is removed unless its removal will disconnect a previously connected line. f. The structuring elements are rotated 90 degrees for each successive pass. g. The interations continue until passes with the structuring elements do not produce a change. 0 0 0 1 1 1 1 0 0 1 1 0 1 h. this methods sometimes produces short spikes that that do not follow the contpurs of the original image i. to deal with this one uses two other structuring elemts that prune away the spikes: 0 0 0 0 1 0 0 0 0 0 0 1 0 0 j. one can only use these for a few passes or it will erode away the entire image VII. Minutiae extraction: (show some image of minutiae marked and closeup of bifurication and ending) a. after inarization and thinning it is a remarkably simple proceedure b. only looking for the positions of bifurications and ridge endings c. One basically goes through the image pixel by pixel and compare the black pixels to their eight neighbors d. if it has only one black neighbor it is a ridge ending e. three black nighbors means it is a bifurication VIII. scale translation and rotation invariant: (images of core and delta) a. basically you have a set of points and can make them scale and translation invariant as if a set of points b. scale and translation invariance is accomplished by subtracting the mean from each point and dividing by the standard deviation c. rotationally invariant is much more difficult: 1. In order to do this one must be able to find two features common to both the new and the stored prints that can be used to align them. 2. these points are usually: a. The core, a point on a fingerprint where a ridge curves back on itself in a loop or whorl, b. the delta is a point where the ridges diverge to form the global pattern 3. These points are used because there are only one or two of each of these types of minutiae in each print that contain these features [2]. Thus, one knows that if the prints do match, that one has the same point on each print. 4. A line is found between the core and the delta of each print. Then the all of the minutiae points on each print are rotated until the line between the core and delta are aligned IX Minutiae Matching a. I am using an algorithm for this developed by Eammon Keogh called Nearest Neighbor b. This algorithm basically sums the differnce between the points on two prints c. For this algorithm one matches each of the minutiae on the new print with its nearest neighbor on the stored print. d. The distance between each point and its nearest neighbor is summed X. Things that I will be looking for. a. what sum is optimal for the matching algorithms b. compare the false acceptance and false rejection rates b. Will this combination of algorithms work??? XI. Schedule of events a. I am actually working on the pieces of this out of order b. I started with the matching module which has been completed and needs to be tested with real fingerprint data c. I am currently working on the thinning algorithm. d. Next I will work on the minutiae extraction code. e. I will put off Binarization as I am currently working with binary bitmaps f. I will also put off making it rotationally invariant as that will take a while and I am willing to assume that on a small mounted scanner like the fingerTIP scanner people will be careful to put their finger upright on the scanner g. Last I have also set aside a few weeks for testing and analyzing the results