30-10-2014, 03:43 PM
Fingerprint recognition using MATLAB (using minutiae matching)
1408098097-finalpresentation1st.ppt (Size: 2.27 MB / Downloads: 25)
Introduction
Personal identification is to associate a particular individual with an identity
To ensure the services are accessed by a legitimate user
Traditional methods could be compromised
Lack of security
What are biometrics?
We all have unique personal attributes
Biometrics are individual physiological characteristics
It’s basically pattern
-recognition that
makes a personal
identification
Why biometrics?
Your password can be stolen, your face can’t!
More reliable than traditional
More secure
Saves time
Fingerprints as biometrics
The major features in a print are called minutiae
Basic minutiae: ending
& bifurcation
Algorithm Level Design
Minutiae matcher:
Specify reference minutiae
Image alignment
Minutiae match
Preprocessing/ Image enhancement
Most important stage of project
There are lots of different ways to filter an image
The project was originally going to use edge detection
Function of histogram equalization
For a grayscale image {x}
let ni be the number of occurrences of gray level i. Then the probability of an occurrence of a pixel of level i in the image is:
‘L’ is total number of gray levels in the image
‘n’ is total number of pixels in the image
‘px(i)’ is the image's histogram for pixel value i
Fast Fourier transform
The Fourier transform is done to find the frequency of the pixel
So the output would be an image in the frequency domain
The image is divided into blocks in order to enhance a specific block by its dominant frequencies
so, the process is to multiply the FFT of the block by its magnitude a set of times
Preprocessing/ Image binarization
This step is done to convert a 256-level image to a 2-level image
It’s done to differentiate image pixels from background
Because of variations in contrast, locally adaptive thresholding is used
First, the image is divided into blocks (16x16)
The mean intensity value is calculated for each block
Assume gray value of each pixel=g;
if g > Mean(block gray value) , set g = 1;
Otherwise g = 0
Preprocessing/ Image segmentation
Only a certain Region of Interest (ROI) is useful to be recognized for each fingerprint image
To extract the ROI, a two-step method is used; block direction estimation and ROI extraction
Block direction estimation
Get gradient x (gx),gradient y (gy)
Estimate the according to:
ROI extraction (Morphological Method)
Close (shrink images and eliminate small cavities)
Open (expands images and remove peaks introduced by background noise)
Feature extraction/ Image thinning
To eliminate the redundant pixels of ridges till the ridges are just one pixel wide
Morphological approaches:
bwmorph(binaryImage,'thin',Inf)
This process is done by turning pixels off according to these conditions:
If there is at least 1 switch from on to off among boundary pixels
Not all 8-neighborhood pixels are on
Not a center nor ending pixel
Filter by other Morphological operations to remove some H breaks and isolated points
In this step, any single points (single-point ridges or single-point breaks) in a ridge are eliminated and considered processing noise
Feature extraction/ Minutiae marking
The concept of Crossing Number (CN) is used
CN is calculated by investigating the 8-neighborhood of each central pixel pixel (p) in order to determine the count of crossover occurrences
For a 3x3 window:
If p=1 and has only 1 one-value neighbor, then the central pixel is a ridge ending
If p=1 and has exactly 3 one-value neighbors, then the central pixel is a ridge branch
i.e. for a pixel P, if Cn(P) = = 1 it’s a ridge end and if Cn(P) = = 3 it’s a ridge bifurcation
(Cn being the number of 1-valued neighboring pixels)
Minutiae match/ Alignment
To match 2 prints, determine their reference minutiae (most similar pair/at 0.8 threshold) using similarity equation:
S = mi=0xiXi/[mi=0xi2Xi2]^0.5
where (xi~xn) and (Xi~XN ) are the set of minutia for each fingerprint image respectively
m is minimal one of the n and N value (n & N are total number of minutiae in each print)
Now, the reference minutia is the origin point of the coordinate system, and the x & y coordinates are found using its orientation angle.
All other minutiae are then aligned to the new coordinate system, and component of their vectors can be found using the transform matrix:
Minutiae match/ Matching
Adaptive matching is used, not all parameters are exactly same
Achieved by placing a bounding box around each template minutia
If the minutia to be matched is within the rectangle box and difference between them is very small, then the two minutiae are regarded as a matched minutia pair
System evaluation (FRR & FAR)
This step is done using the False Reject Rate (FRR) and the False Accept Rate (FAR)
(%) FAR=(FA/N)*100
Where FA= number of incidents of false acceptance
& N=total number of samples
(%) FRR=(FR/N)*100
Where FR=number of incidents of false rejections
As we can see from the results, the best percentage of match to be chosen as a threshold for a match/non-match comparison is 80%
Applications
There are many applications known and yet to be developed such as:
Prescription fulfillment
Time and Attendance
Finance and Banking
account access
Law Enforcement