TABLE OF CONTENTS 1. INTRODUCTION 1 2. INSTALLATION GUIDE 4 2.1 Software Installation 4 2.2 Data and Testing Directories 5 3. PACKAGES 7 3.1 PCASYSU""Fingerprint Pattern Classification 7 3.2 MINDTCTU""Minutiae Detection 9 3.2.1 Definition of Minutiae 9 3.2.2 Latent Fingerprints 11 3.3 AN2KU""Standard Reference Implementation 12 3.4 IMGTOOLSU""General Purpose Image Utilities 13 4. SYSTEMS 15 4.1 PCASYS 15 4.1.1 Algorithmic Description 16 4.1.1.1 Segmentor[src/lib/pca/sgmnt.c; sgmnt()] 16 4.1.1.2 Image Enhancement 19 4.1.1.3 Ridge-Valley Orientation Detector[src/lib/pca/ridge.c; rors(), rgar()] 21 4.1.1.4 Registration [src/lib/pca/r92a.c; r92a()] 23 4.1.1.5 Feature Set Transformation [src/lib/pca/trnsfrm.c; trnsfrm()] 26 4.1.1.5.1 Karhunen-Loe`ve Transform 26 4.1.1.5.2 Regional Weights[src/bin/optrws/optrws.c] 27 4.1.1.5.3 Combined Transform [src/bin/mktran/mktran.c] 28 4.1.1.6 Probabilistic Neural Network Classifier [src/lib/pca/pnn.c; pnn()] 29 4.1.1.7 Multi-Layer Perceptron Neural Network Classifier 31 4.1.1.8 Auxiliary Classifier: Pseudo-ridge Tracer[src/lib/pca/pseudo.c; pseudo()] 31 4.1.1.9 Combining the Classifier and Pseudo-ridge Outputs 32 4.1.2 Computing Features 33 4.1.2.1 Make the Orientation Arrays 34 4.1.2.2 Make the Covariance Matrix 34 4.1.2.3 Make the Eigen values and Eigenvectors 34 4.1.2.4 Run the Karhunen-Loe`ve Transform 34 4.1.3 Training the Neural Networks 34 4.1.3.1 Optimizing the Probabilistic Neural Network 35 4.1.3.1.1 Optimize the Regional Weights 35 4.1.3.1.2 Make the Transform Matrix 35 4.1.3.1.3 Apply the Transform Matrix 36 4.1.3.1.4 Optimize the Overall Smoothing Factor 36 4.1.3.2 Training the Multi-layer Perceptron Neural Network 36 4.1.4 Running PCASYS 39 4.1.4.1 PCASYS DataFiles 39 4.1.4.2 Commands 39 4.1.4.2.1 Classifier Demos 39 4.1.4.2.2 Training (Optimization) Commands 39 4.1.4.2.3 Utility Commands 40 4.1.4.3 Running the Classifier 40 4.1.4.3.1 Graphical and Non-graphical Versions 40 4.1.4.3.2 Default Parameters and Specifying Parameters 40 4.1.4.3.3 Output File 40 4.1.5 Classification Results 41 4.2 MINDTCT 44 4.2.1 InputANSI/NISTFile [src/lib/an2k/fmtstd.c; read_ANSI_NIST_file()] 45 4.2.2 Generate Image Quality Maps [src/lib/lfs/maps.c; gen_image_maps()] 45 4.2.2.1 Direction Map[src/lib/lfs/dft.c; dft_dir_powers()] 45 4.2.2.2 LowContrast Map [src/lib/lfs/block.c; low_contrast_block()] 49 4.2.2.3 LowFlow Map [src/lib/lfs/maps.c; gen_initial_maps()] 51 4.2.2.4 HighCurve Map [src/lib/lfs/maps.c; gen_high_curve_map()] 52 4.2.2.5 Quality Map [src/lib/lfs/quality.c; gen_quality_map()] 53 4.2.3 Binarize Image [src/lib/lfs/binar.c; binarize_V2()] 54 4.2.4 Detect Minutiae [src/lib/lfs/minutia.c; detect_minutiae_V2()] 55 4.2.5 Remove False Minutiae [src/lib/lfs/remove.c; remove_false_minutia_V2()] . 56 4.2.5.1 Remove Islands and Lakes [src/lib/lfs/remove.c; remove_islands_and_lakes()]..56 4.2.5.2 Remove Holes [src/lib/lfs/remove.c; remove_holes()] 57 4.2.5.3 Remove Pointing to Invalid Block 57 4.2.5.4 Remove Near Invalid Blocks 58 4.2.5.5 Remove or Adjust Side Minutiae 59 4.2.5.6 Remove Hooks[src/lib/lfs/remove.c; remove_hooks()] 60 4.2.5.7 Remove Overlaps [src/lib/lfs/remove.c; remove_overlaps()] 60 4.2.5.8 Remove Too Wide Minutiae [src/lib/lfs/remove.c; remove_malformations()] 61 4.2.5.9 Remove Too Narrow Minutiae [src/lib/lfs/remove.c; remove_pores_V2()] 62 4.2.6 Count Neighbor Ridges [src/lib/lfs/ridges.c; count_minutiae_ridges()] 63 4.2.7 Assess Minutia Quality [src/lib/lfs/quality.c; combined_minutia_quality()] 63 4.2.8 Output ANSI/NISTfile [src/lib/an2k/fmtstd.c; write_ANSI_NIST_file()] 64 5. REFERENCES 66 APPENDIX A. MLP TRAINING OUTPUT 69 A.1Explanation of the output produced during MLP training 69 A.1.1Pattern-Weights 69 A.1.2Explanation of Output 70 A.1.2.1Header 70 A.1.2.2Training Progress 71 A.1.2.2.1Second progress lines 71 A.1.2.2.2First progress lines 72 A.1.2.2.3Pruning lines(optional) 75 A.1.2.3Confusion Matrices and Miscellaneous Information (Optional) 76 A.1.2.4Final Progress Lines 79 A.1.2.5Correct-vs.-Rejected Table(Optional) 79 A.1.2.6Final Information 81 APPENDIX B. REFERENCE MANUAL 82 (see man pages) LIST OF TABLES Table1. NFIS utilities listed by package 5 Table2. PNN Confusion matrix 43 Table3. MLP Confusion matrix 43 LIST OF FIGURES Figure1.Hierarchical organization of testing directory. 6 Figure2.Example fingerprints of the six pattern-level classes 8 Figure3.Minutiae: bifurcation(squaremarker) and ridge ending(circlemarker) 9 Figure4.Minutiae orientation. 10 Figure5.Latent fingerprint(left) with matching tenprint(right) 11 Figure6.Fingerprint used to demonstrate the fingerprint classification process( s0025236.wsq) 16 Figure7.Steps in the fingerprint segmentation process. 17 Figure8.The sample fingerprint after segmentation. 19 Figure9.Sample fingerprint after enhancement. 21 Figure10.Pattern of slits(i=1-8) used by the orientation detector 21 Figure11.Array of local average orientations of the example fingerprint 23 Figure12.Left: Orientation array Right: Registered orientation array. 26 Figure13.Absolute values of the optimized regional weights. 28 Figure14.PNN output activations for the example fingerprint. 30 Figure15.MLP output activations for the example fingerprint 30 Figure16.Left: Pseudo-ridges traced to find concave-upward lobe. Right: Concave-upward lobe that was found. 32 Figure17.Error versus reject curves for PNN and MLP classifiers and hybrid combinations 43 Figure18.Minutiae detection process. 44 Figure19.Adjacent blocks with overlapping windows. 46 Figure20.Window rotation at incremental orientations 47 Figure21.DFT waveform frequencies. 48 Figure22.Direction map results 49 Figure23.Lowcontrast map results. 50 Figure24.Lowflow map results. 51 Figure25.Highcurve map results. 52 Figure26.Quality map results. 53 Figure27.Rotated grid used to binarize the fingerprint image 54 Figure28.Binarization results. 54 Figure29.Pixel pattern used to detect ridge endings 55 Figure30.Pixel patterns used to detect minutiae 56 Figure31.Removal of islands and lakes 56 Figure32.Removal of holes. 57 Figure33.Removal of minutia pointing to an invalid block. 57 Figure34.Removal of minutia near invalid blocks. 58 Figure35.Removal or adjustment of minutiae on the side of a ridge or valley. 59 Figure36.Removal of hooks. 60 Figure37.Removal of overlaps. 61 Figure38.Removal of too wide minutiae 61 Figure39.Removal of too narrow minutiae. 62 Figure40.Minutiae results. 65