Fingerprint Matching

advertisement
Fingerprint Matching
Chapter 4.1- 4.3
On-Line Fingerprint Verification
Anil Jain, 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 (NonLinear)
–
Stretches when pushed down
More issues
●
Pressure and Skin condition
–
●
Noise
–
●
Pressure, dryness, disease, sweat, dirt, grease,
humidity
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
PA15
PA27
PB27
PB15
PB05
PA08
PA35
PA02
PB35
PA13
PA45
PA26
PA34
PA24
PA19
PA29
PA14
PA07
PA31
PA28
PA21
PA10
PA42
PA32
PA12
PA20
PA18
PA22
PA16
PA25
PA03
FMR100
19
33
41
77
92
99
118
131
142
218
222
250
331
376
419
424
521
546
572
605
607
616
640
672
712
904
1209
1466
1679
3910
5000
15
28
34
77
146
112
120
134
151
249
305
308
471
517
647
701
727
1188
3195
1558
1077
766
1129
1040
1198
1366
2779
3809
2629
9033
10000
FMR1000
28
56
59
104
187
207
271
180
271
348
496
430
755
848
960
1120
973
2055
7512
3183
1862
888
1601
1503
1636
1817
2917
5357
3296
9659
10000
FMR0
Rej Enroll
38
144
129
129
229
311
421
222
460
1029
627
614
1089
1204
1319
1514
1169
2547
7991
4850
3369
974
1987
1826
2012
2282
3659
6532
4387
9934
10000
Rej Match
0
0
0
0
0
0
0
32
0
0
0
0
0
7
0
0
0
0
0
0
43
0
104
39
7
0
86
0
0
25
0
0
0
0
0
0
0
0
20
0
14
0
0
0
5
0
0
0
0
0
0
63
0
163
93
5
0
40
25
53
181
100000
Enroll
Match
11
212
123
7
48
56
405
81
77
17
52
54
53
57
18
65
68
20
1
48
80
181
49
33
24
13
68
57
116
52
705
197
198
113
22
52
56
165
123
66
48
62
63
65
59
18
66
176
54
315
77
84
181
50
56
28
15
70
65
119
63
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 – 2TTI
–
Difference between pixels
||T||2 + ||I||2 are constant under transformation
Try to maximize correlation – Minimizes
difference
–
CC(T,I) = TTI
–
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
–
TI = 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 < r0
–
Difference between angles < 
–
Tolerance Boxes
●
r0
●

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, mi) returns 1 if they match
●
Matching can be formulated as
–
m mm(map
maximize 
x, y, )(m'P(i)), mi)
x, y, , P
●
i=1
P is an unknown
function which pairs the
minutiae
–
Which minutiae in I corresponds to which in T
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 Ia matches Tb
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 mi in I
–
Foreach mj in T
●
Foreach  in discretized 's
– If I – J < threshold
● Foreach scale in discretized scales
● dx,dy = m – map
i
,scale (mj)
● 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 mi in I
–
Foreach mj in T
●
Reset A
●
Foreach mi2 in I
Foreach mj2 in T
● ,S = Transformation required to turn m 1,m 2 into m 1,m 2
i
i
j
j
● A[,S]++
Remember the mi1and mj1 and S with the highest A value
–
●
●
mi1,mj1 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 prealignment
–
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
Download