Vous êtes sur la page 1sur 38

Fingerprint Matching

Chapter 4.1- 4.3



On-Line Fingerprint Verification
Anil J ain, Fellow, IEEE, Lin Hong, and Ruud Bolle, Fellow, IEEE

Presented by Chris Miles


Fingerprint Matching
Compare two given fingerprints T,I
Return degree of similarity (0->1)
Binary Yes/No
T -> template, acquired during enrollment
I -> Input
Either input images, or feature vectors
(minutiae) extracted from them
Issues involved with matching

extremely difficult
problem
Displacement
Rotation
Partial Overlap
Not completely in image
Distortion (Non-
Linear)
Stretches when pushed down
More issues
Pressure and Skin condition
Pressure, dryness, disease, sweat, dirt, grease,
humidity
Noise
Dirt on the sensor
Feature Extraction Errors
State of the Art
Many algorithms match high quality images
Challenge is in low-quality and partial matches
20% of the problems (low quality) at FVC2000
caused 80% of the false non-matches
Many were correctly identified at FVC2002
though
Approaches
Correlation-based matching
Superimpose images compare pixels
Minutiae-based matching
Classical Technique Most popular
Compare extracted minutiae
Ridge Feature-based matching
Compare the structures of the ridges
Everything else
FVC2002
EER FMR100 FMR1000 FMR0 Rej Enroll Rej Match Enroll Match
PA15 19 15 28 38 0 0 11 197
PA27 33 28 56 144 0 0 212 198
PB27 41 34 59 129 0 0 123 113
PB15 77 77 104 129 0 0 7 22
PB05 92 146 187 229 0 0 48 52
PA08 99 112 207 311 0 0 56 56
PA35 118 120 271 421 0 0 405 165
PA02 131 134 180 222 32 20 81 123
PB35 142 151 271 460 0 0 77 66
PA13 218 249 348 1029 0 14 17 48
PA45 222 305 496 627 0 0 52 62
PA26 250 308 430 614 0 0 54 63
PA34 331 471 755 1089 0 0 53 65
PA24 376 517 848 1204 7 5 57 59
PA19 419 647 960 1319 0 0 18 18
PA29 424 701 1120 1514 0 0 65 66
PA14 521 727 973 1169 0 0 68 176
PA07 546 1188 2055 2547 0 0 20 54
PA31 572 3195 7512 7991 0 0 1 315
PA28 605 1558 3183 4850 0 0 48 77
PA21 607 1077 1862 3369 43 63 80 84
PA10 616 766 888 974 0 0 181 181
PA42 640 1129 1601 1987 104 163 49 50
PA32 672 1040 1503 1826 39 93 33 56
PA12 712 1198 1636 2012 7 5 24 28
PA20 904 1366 1817 2282 0 0 13 15
PA18 1209 2779 2917 3659 86 40 68 70
PA22 1466 3809 5357 6532 0 25 57 65
PA16 1679 2629 3296 4387 0 53 116 119
PA25 3910 9033 9659 9934 25 181 52 63
PA03 5000 10000 10000 10000 0 100000 705 501
Correlation-based Techniques
T and I are images
Sum of squared Differences
SSD(T,I) = ||T-I||
2
= (T-I)
T
(T-I) = ||T||
2
+ ||I||
2
2T
T
I
Difference between pixels
||T||
2
+ ||I||
2
are constant under transformation
Try to maximize correlation Minimizes
difference
CC(T,I) = T
T
I
Can't be used because of displacement / rotation
Maximizing Correlation
I
(x,y,)
Transformation of I
Rotation around the origin by
Translation by x,y
S(T,I) = max CC(T,I
(x,y,)
)
Try them all take max
Correlation Results
Doesn't Work
Non-Linear distortion is significant and not
accounted for
Skin Condition / Pressure cause brightness /
contrast and thickness to vary significantly
Difference correlation
Check max/min correlation values
Matches show greater range
Computationally Expensive (try them all)
Divide and Conquer
Identify local regions in the image
Pieces of the whole
Interesting regions
Match them
Sum correlations to find global correlation
Check difference of transforms for each region
Consolidation
Computation Improvements
Correlation Theorem
Spatial Correlation = point wise mutation in fourier
domain
TI = F
-1
(F *(T) x F(I))
Resultant image has values = correlation for
translating to those points
No rotation
Very large computation improvement
Computational Improvements
Multi resolution hierarchical approaches
Fourier-Mellin
Gives rotational invariance
Other steps reduce accuracy
Divide and Fourier
Partition into local regions
Match them against each other
Border overlap
Much faster
Optical Fingerprint Matching
Lenses to derive the Fourier transform of the
images
Joint transform correlator for matching
Very expensive
Complex
Immature
Minutiae-based Methods
Classical Technique
T, I are feature vectors of minutiae
Minutiae = (x,y,)
Two minutiae match if
Euclidean distance < r
0
Difference between angles <

Tolerance Boxes
r
0


Alignment
Displacement
Rotation
Scale
Distortion-tolerant transformations
More transformations
higher degree of freedom for matcher
More false matches
Formulation
M''
j
= map(m'
j
)
Map applies a geometrical transformation
mm(m''
j
, m
i
) returns 1 if they match
Matching can be formulated as
maximize mm(map
x, y,
)(m'
P(i)
), m
i
)
P is an unknown function which pairs the
minutiae
Which minutiae in I corresponds to which in T
m
i=1
x, y, , P
P
Pairs the minutiae
If P(i) = j
j is i's mate
Most likely pair
If P(i) = null
i, from T has no mate in I
If no i matches a j, that j has no mate
Each minutiae has a maximum of one mate
Trivial if alignment is known
Point Pattern Matching
Alignment is rarely known
Cast as point pattern matching
Angular component is only a small difference
Techniques
Relaxation
Algebraic and operational research solutions
Tree search (pruning)
Search (Energy Minimization)
Hough Transform
Matching
Relaxation
Maintain confidence levels between all possible
matchings
How likely we think I
a
matches T
b
Iteratively
Calculate the consistencies the transformations
required for those matches
Adjust the confidence levels of points that agree
with other points
Decrease others
Iterative -> slow
Algebraic and Operational Research
Solutions
Use algebraic methods
Requires very restrictive assumptions
Exactly aligns under affine transformation
N = M
All minutiae perfectly identified
Assignment problems
Bipartite graph matching
Tree Search (Pruning)
Search the tree of
possible matches
If A matches B, then C
matches F, then D
matches K
More assumptions
M=N
No outliers -> All
minutiae must match
Search (Energy Minimization)
Cast as a general search problem
Search towards the optimal set of matches
Fitness is a function of consistency
Can use any general search technique
GA
Simulated Annealing
Hough Transform
Brute force search over possible Pairings / rotations / scalings
Foreach m
i
in I
Foreach m
j
in T
Foreach in discretized 's
If
I

J
< threshold
Foreach scale in discretized scales
dx,dy = m
i
map
,scale
(m
j
)
A[dx,dy,theta,scale]++
Whichever A is highest is the closest transformation
Can then find pairings easily
Hough Transform
Improvements
Vote on neighboring bins / smooth the bins, to
get more robust answers
Parallelize on custom hardware
Hierarchical discretization
Chang et al 1997
Find the principle pair and a course transformation
with respect to it that matches the most points
Calculate pairing
Use the pairing to calculate exact alignment
Principle Pair
Brute force for the segment, 2 pts, which can be
best mapped to a corresponding segment in T
Foreach m
i
in I
Foreach m
j
in T
Reset A
Foreach m
i
2 in I
Foreach m
j
2 in T
,S = Transformation required to turn m
i
1,m
i
2 into m
j
1,m
j
2
A[,S]++
Remember the m
i
1and m
j
1 and S with the highest A value
m
i
1,m
j
1 are the principle pair and S is the course transformation
Segment Matching
Udupa, Garg, Sharma 2001
Looking for matching segments of similar
lengths
Foreach, determine transforms to match them
Try to match remaining minutiae
Check consistencies of best matches
Final score is a combination of the number of
mated pairs, the fraction of consistent
alignments, and the topological correspondence
Minutiae match with pre-alignment
Idea pre-align T before storage in database
Align each I just once against the global orientation
Reduces computation in identification systems
Absolute pre-alignment
Orient everything in a common direction
No reliable system to do this
Difficult to detect core, or even basic orientation
Relative pre-alignent
Align I to for each T seperately
No computation savings
M82 Fbi
Do course absolute pre-
alignment
Center the image around the core
location
Orient it with ridges to the left/right
averaged facing up
Find principal pairs
Look at minutiae around the center
Find the best matching pair ->
Principle
Calculate course transformation,
deformation tensor
Avoiding Alignment
Ordinary Person - You should
go to work
Philosopher - Why?
Intrinsic coordinate system
Instead of using global coordinate
system orient them with respect to
the ridge patterns
Minutiae are defined with respect
to this
Transformation / rotation does not
change their relative location
Problems partitioning the image
into the local coordinate systems
Ridge Relative Pre-alignment
Jain, Hong, Bolle 1997
Store minutiae along with
information about the
ridge attached to it
Oriented along minutiae
orientation
Normalized to ridge frequency
Compare with other ridges
until you find a good
match
Take as principle pair
Comparing ridges
Convert minutiae in T,I to polar coordinates with
respect to the reference minutiae
Reference minutiae = the one with the ridge
Order them into a list


Check how many insertions / deletions /
transformations are necessary to match the lists
Variant
Match distances and relative angles of sampled
points
Results
Results

Vous aimerez peut-être aussi