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 – 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 < 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