Fingerprint Identification Overview Introduction

advertisement
Fingerprint Identification
By: Travis R. Gault
Overview
 Introduction
 Features of interest
 Feature Encoding
 Implementations in Industry
 Conclusions
 Lab Overview
 Steps for Classroom Implementation
 References
Introduction
Fingerprints have been used for centuries for
identification purposes
Much like irises, each fingerprint is unique to
individuals
Even identical twins have different
fingerprints
1
Introduction
 There are three fundamental principles of
fingerprints [3].
1. A fingerprint is an individual characteristic and no
two fingers have identical ridge characteristics
2. A fingerprint will remain unchanged during an
individual’s lifetime.
3. Fingerprints have general ridge patterns, making
it possible to systematically classify them.
Features of Interest
 Global Features - are the characteristics that any
human can see with the naked eye
 Basic Ridge Patterns
 Pattern Area
 Delta
 Type Lines
 Ridge Count
 Local Features - or “Minutia Points” are the unique
characteristics of fingerprint ridges that are used for
positive identification.
 It’s possible to have the same global features, but
the local features remain unique.
Features of Interest
 Pattern Area - is the part of the fingerprint that
contains all the global features. However, some
local features may be found outside the pattern
area.
Images taken from [1].
2
Features of Interest
 Core Point - is the approximate center of the
fingerprint, and is used as the reference point for
reading/classifying the print.
 More specifically it is defined as the topmost point on
the innermost upwardly curving ridgeline
 The figure below, taken from [2], shows some
fingerprints and their core point locations
Features of Interest
Type Lines - are the two innermost ridges
that start parallel, diverge, and tend to
surround the pattern area.
Type
Lines
Features of Interest
Delta - is the point on the first bifurcation,
abrupt ending ridge, meeting of two
ridges, dot, fragmentary ridge, or any
point on a ridge at or nearest the center of
divergence of two type lines, located at or
directly in front of their point of
divergence.
3
Features of Interest
Ridge Count - is the number of ridges
between the delta and the core.
This is done by drawing an imaginary line
from the Delta to the Core and each ridge
that touches this line is counted.
Features of Interest
In the figure below, taken from [4], the circle
is the core, the triangle is the delta, the
square is a minutiae-ridge ending and the
diamond is a minutiae-ridge bifurcation. The
orange line is the ridge count line.
Features of Interest
 Local Features
 Ridge Ending - ridge ends
 Ridge Bifurcation - divides into
branches
 Ridge Divergence - diverging of two
parallel lines
 Dot or Island - small ridge
 Enclosure - divides and reunites
 Short Ridge - like a dot/island, but
larger
 Image taken from [5].
4
Features of Interest
Basic Ridge Patterns
Loop - is the most common (~65% of all prints)
Arch - more open curve than a loop
Whorl - ridge that makes a complete circle (~30%
of all prints)
Feature Encoding
 Manual
 Human experts use a combination of visual, textural,
minutiae cues and experience for verification
 Still used in the final stages of law enforcement applications
 Image based
 Utilizes only visual appearance.
 Requires the complete image to be stored (large template
sizes)
 Taken from [5].
Feature Encoding
 Texture based
 Treats the fingerprint as an oriented texture image
 Less accurate than minutiae based matchers since most
regions in the fingerprints carry low textural content
 Minutiae based
 Uses the relative position of the minutiae points
 The most popular and accurate approach for verification
 Resembles manual approach very closely.
 From a software perspective, the minutia are also used to
align the images for database comparisons.
5
Feature Encoding
 Image Based Matching Using Optical Correlation
 Advantages
 Image itself is used as the template
 Requires only low resolution images
 Fast
 Disadvantages
 Image itself is used as the template
 Requires accurate alignment of the two prints
 Not robust to changes in scale, orientation and position
 Taken from [5]
Feature Encoding
 Texture Based Matching
 Advantages
 Uses texture information (lost in optical and
minutiae based schemes)
 Performs well with poor quality prints
 Features are statistically independent from
minutiae and can be combined with minutiae
matchers for higher accuracy
 Disadvantages
 Requires accurate alignment of the two prints
 Varies with translation, orientation and nonlinear distortion
 Less accurate than minutiae based matchers
 Taken from [5]
Feature Encoding
 Minutiae Based Matching
 Advantages
 Invariant to translation, rotation and scale changes
 Very accurate
 Disadvantages
 Error prone in low quality images
 Not robust to non-linear distortion
 Does not use visual and textural cues
 Taken from [5].
6
Feature Encoding
In simple terms, we’re
looking for areas where
ridges stop or intersect
another ridge.
This data is stored and used
for comparisons to other
templates
Image taken from [5].
Implementations
 Binarization Approach
 Used by:
 MINDTCT fingerprint minutiae detection system
 NIST uses this in a lot of implementations
 NBIS - NIST Biometric Image Software
 Done directionally or with template matching to detect minutiae
 Adaptive Flow Orientation Technique
 Binarization is done by peak detection
 But this leads to false positive in areas of poor contrast
 Direct Gray Scale Ridge Following




Based on ridge pursuit
Has low computational complexity
Cannot handle poor contrast prints and images with poor ridge structure
Relies on a good orientation map for ridge pursuit
 Modified from [5].
Implementations
Images taken from [5].
Acquisition
Binarization
Thinning
Minutia Detection
7
Implementations
The biometrics lab
setup uses the
Binarization approach.
Additionally, a variety
of software is freely
available on the web
for C++, C#, Java, and
VB implementations.
Implementations
How successful is Fingerprint Matching?
Typical False Rejection Rates range between
0.03%-1.4% [1,6]
Typical False Acceptance Rates are around
0.01%-0.001% [1,6].
These rates depend on the manufacturer and
the algorithm used
Comparatively, iris FRR is about 0.001% and
FAR is about 1 in billions (basically 0).
Conclusions
 Fingerprinting is still a viable means for biometric
identification, especially in law enforcement, where
fingerprints may be left behind.
 Fingerprints also offer a cheaper solution for day-today activities than iris recognition
 Fingerprints are not as good for high-security
implementation
 More work needs to be done to develop better
methods to compensate for the variations in
fingerprint recording when identifying local features
8
Lab Overview
 Each classmate will submit their right thumbprint
twice
 One set of thumbprints will serve as a gallery
 One set of thumbprints will serve as a test gallery, along
with two additional random prints
 Students will use MATLAB and code examples
provided to encode fingerprint minutiae
 Students will test each print from the test gallery and
shall report on the FAR and FRR.
 Students must also include technical documentation
as well as a small research segment into the field of
fingerprint analysis.
Lab Overview
This lab will be officially distributed on Tues.,
Nov. 12, and will be due no later than Noon
in the CVIP Lab on Dec. 8.
Students must submit all code and supporting
files with the report.
Students must arrange to demo their work.
Steps for Implemetation
6 Steps:
Preprocessing
Binarization
Thinning
Minutiae identification
Minutiae alignment
Database comparisons
9
Preprocessing
 Unless you have a very high quality fingerprint
reader, you’ll need to enhance the image after
cropping
 There are two goals:
 Increase the contrast in the image
 Bridge empty spots in ridges
 Techniques
 Histogram equalization (histeq)
 Gamma correction
 Gabor Filter (gaborfilter)
 Download from:
http://www.mathworks.com/matlabcentral/fileexchange/5237
Histogram Equalization
 The histogram equalization
technique is used to improve
global image contrast.
 However, the disadvantage
is that it may have the
incorrect effect by increasing
background noise while
decreasing the signal of
interest.
 The implementation of this
will depend on the images
rendered by your input
device.
Gabor Filter
 “The Gabor filter is
basically a Gaussian (with
variances Sx and Sy along x
and y-axes respectively)
modulated by a complex
sinusoid (with center
frequencies U and V along
x and y-axes respectively).”
[9]
 This will help bridge the
empty spots along ridges.
10
Binarization
 Next, convert the 8-bit
grayscale images
to 1-bit images
 Select a window block
size (say 32x32)
 Find the average of the
values in the block
 Set values greater than
the average equal 1,
else 0
Thinning
 Next, we must convert the
binary image to a set of lines.
 This process is called thinning.
 MATLAB’s morphological toolbox
facilitates this
 bwmorph( bin_img, ‘thin’, ‘inf’)
Minutiae Detection
 We are primarily interested
in two types of minutia
 Termination Points – where
a ridge ends
 Bifurcation Points – where a
ridge splits
 Now, consider a 3x3 window
in the thinned image (see
right). We are interested in
figures that look like the top
row or rotated versions.
 We are not interested in
images like the bottom row
Bifurcation
Termination
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
Not Interested
Not Interested
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
11
Minutiae Detection
 How do you tell the
difference between
valid and invalid
windows?
 Windows with the center
value set equal to 0 are
of no interest to us.
Not Interested
0
1
0
1
0
0
1
0
0
Not Interested
1
0
1
0
0
0
1
0
0
Minutiae Detection
 How do you distinguish
between bifurcation and
termination points?
 Sum the entries and
subtract 1.
 If the answer is 3, then
it’s a bifurcation point,
 If the answer is 1, then
it’s a termination point
Bifurcation
Termination
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
Not Interested
Not Interested
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
Minutiae Detection
 This is an example
of detecting the
termination points
from a thinned
image taken with
the lab’s finger print
reader.
 Done using MATLAB
12
Minutiae Detection
 This is an example
of detecting the
bifurcation points
from a thinned
image taken with
the lab’s finger print
reader.
 Done using MATLAB
Minutiae Detection
 This is a composite
of both the
bifurcation and
termination points
along with the
original thinned
image.
Minutiae Detection
 After identifying the minutiae as on the previous
slides, there are a lot of spurious minutiae that need
to be removed
 This can be done removing minutiae that occur with
an arbitrary Euclidian distance from one another.
 We need to check the following points’ distances:
 Termination-Termination
 Termination-Bifurcation (and vice versa)
 Bifurcation-Bifurcation
 Coordinates separated by a smaller distance than
specified shall be removed
13
Minutiae Detection
Next Time
On Tuesday:
ROI selection
Minutiae Orientation/Alignment
Gallery comparison
Fingerprint project distributed
Fingerprint acquisition (CVIP Lab)
ROI Selection
 The ROI selection is determined using MATLAB’s morphological toolbox by running the thinned image is through
imclose(), imerode() and imfill().
 The results are shown below.
14
ROI Selection
 The next step is to mask out coordinates outside the ROI.
Graphically, the results are shown below.
Termination Orientation
 Consider a 5x5 square
centered about a
termination point.
 We know the angle of
each border point w.r.t.
the center point.
 When the termination
point intersects the
border, we then know a
rough estimate of the
angle.
135
120
90
60
45
150
30
180
X
0
-150
-30
-135 -120
-90
-60
-45
Termination Orientation
 Example
 Let the red blocks
represent a termination
ridge
 From this, we determine
the angle to be 120
degrees
135
120
90
60
150
180
30
X
0
-150
-135 -120
45
-30
-90
-60
-45
15
Termination Orientation
 Example
 Let the red blocks represent
a termination ridge
 From this, we have two
possible angles: 120 or 135
degrees.
 We must choose which to
use.
 In my code, I use the angle
representing the smallest
distance from the center.
In this case 135.
135
120
90
60
45
150
30
180
X
0
-150
-30
-135 -120
-90
-60
-45
Termination Orientation
 Example
 Let the red blocks
represent a termination
ridge
 From this, we have no
possible angles, which
indicates noise.
 In this case, we remove
the point from the list of
termination minutia.
135
120
90
60
45
150
30
180
X
0
-150
-30
-135 -120
-90
-60
-45
Bifurcation Orientation
 Example
 Let the red blocks represent
a bifurcation ridge and an
unknown ridge.
 We must determine all three
angles, and exclude the
angles from the unknown
ridge.
 To do this, apply bwlabel().
One region will be labeled
with 1’s, the other with 2’s.
 Select the correct region
that by choosing the label
assigned to X
135
120
90
60
150
180
30
X
0
-150
-135 -120
45
-30
-90
-60
-45
16
Bifurcation Orientation
135
 Example
 Remove X and apply
bwlabel() again. In the
second figure, red = 1,
green = 2, blue = 3
 Perform a similar
operation to determine
the three angles by
analyzing each label
(1,2,3).
 Handle multiple angles
for each label as with
termination points or
similarly
120
90
60
150
45
30
180
X
0
-150
-30
-135
-120
-90
-60
-45
135
120
90
60
45
150
30
180
X
0
-150
-135
-30
-120
-90
-60
-45
Orientation Results
 The results of finding
the termination and
bifurcation points is on
the right.
Gallery Comparisons
 General Steps
 1. Select any one minutia from image A and B. This will
serve as the origin in each image.
 2. Use the orientation and location information from the
minutia in image A to transform all minutia in image B,
about it’s origin.
 3. Perform a similarity comparison between the minutia in A
to the transformed minutia in B.
 There are a large variety of algorithms and types available
 You will investigate and select algorithm to use in the project
 4. Repeat for all minutia in B.
 5. Select a new image A to compare against B if the
similarity score is insufficient.
17
Gallery Comparisons
X'-axis
 Graphically, this is what
we are doing w.r.t.
rotating the
coordinates.
Y-axis
 Image taken from [8].
x
θ
E
F
F
E
y
D
Y'-axis
D
X-axis
References
1.
2.
3.
4.
5.
6.
7.
“DigitalPersonaTM White Paper: Guide to Fingerprint Identification.” Voice
Recognition Systems. www.talktoyourcomputer.com
“Frequently Asked Questions.” SecuGen Biometrics Solutions.
http://www.secugen.com/support/faqs.htm
“Fingerprint Techniques Manual.” New Mexico Department of Health, Division
of Health Improvement.
Liu, L.; Dai, T.; Hsin-Chu. “Ridge Orientation Estimation and Verification
Algorithm for Fingerprint Enhancement.” Journal of Universal Knowledge
Management. Vol. 12, Issue 10. Pgs. 1426-1438.
Chikkerur, S. “Online Fingerprint Verification.” Center for Unified Biometrics
and Sensors. University at Buffalo.
“Security Issues.” Affirmative Technologies.
http://www.affirmativeusa.com/security_issues.htm
“FingerPrint Demo.” MathWorks.
http://www.mathworks.com/matlabcentral/fx_files/16728/1/content/FingerPri
nt/html/fingerprint.html
References
8.
9.
10.
Zhili, W. “Fingerprint Recognition.” Department of Computer Science. BS
Thesis. Hong Kong Baptist University.
http://www.comp.hkbu.edu.hk/~vincent/resPaper.htm
“2D Gabor Filter (Ver 1,2,3).” MathWorks.
http://www.mathworks.com/matlabcentral/fileexchange/5237
Kenner, F. “FingerPrint Demo”. Mathworks.
http://www.mathworks.com/matlabcentral/fx_files/16728/1/content/FingerPri
nt/html/fingerprint.html
18
Download