Research Manual
Fingerprint Recognition
Supervisor: Nigel Whyte
Student: Dayu Chen
Student ID: C00131022
Submit date: 2010-11-26
Content
Abstract
1.Introduction
2.Existing Fingerprint recognition system
2.1.Forensic Latent Criminal Justice AFIS-Lite System
2.2.CUBS Matlab Toolbox for Fingerprint Verification
2.3.Fingerprint recognition demo software
3.Fingerprint acquisition
3.1.Getting fingerprint with digital camera
3.2.Getting fingerprint with fingerprint scanner
3.2.1.Portable Dual Fingerprint Live Scanner
3.2.2.Secugen Hamster plus-USB Fingerprint Scanner
3.3.Brief description of fingerprint image type
4.Pre-processing algorithm
4.1.Normalization
4.2.Orientation estimation
4.3.Segmentation
4.3.1.Normal method of image segmentation (using Histogram-based methods)
4.3.2.Edge detection
4.4.Ridge extraction
4.5.Thinning
5.Recognition (Feature extraction and matching)
5.1.Fingerprint minutiae representation
5.2.Minutiae extraction
5.2.1.Using a 3X3 template mask base on the binary thinned fingerprint image
5.2.2.Using 3X3 mask base-on neural network
5.3.Minutiae Matching
5.3.1.Approach based on alignment
5.3.2.Approach based on local minutiae
5.4.Additional problem
5.4.1.False minutia removal
5.4.2.Classifier
6.Implementation
6.1.Programming language
6.2.Database
7.Conclusion
7.1.My fingerprint recognition system
7.2.Scanner
7.3.Pre-processing
7.4.Recognition
7.5.Implementation
Reference
Abstract
Fingerprint is an approach for human identification, because of its uniqueness. Fingerprint recognition is using for compare two fingerprints, in order to make sure that these fingerprints came from the same finger. This report is written for researching some topics about fingerprint recognition system. It includes researching exist application, fingerprint scanner, fingerprint image pre-processing algorithm, recognition method and some implementation techniques (e.g. programming language, database and tool).
1.Introduction
Fingerprint is one of the most well-know and publicized biometrics to identify a human, because it is unique. Different people have different fingerprints. Fingerprint has been used as an identification approach for a long time. Fingerprint recognition means provide an automated method of verifying a match between two human fingerprints. Today, Fingerprint recognition is widely used in human life. For example, in security identify a human for accessing a building or accessing a system. Some personal laptop provides a fingerprint recognition function to allow a user login.
History of fingerprint recognition [10][25]
Fingerprint has been used for human identification for a long time. Human used fingerprint as their signatures. By 246 BCE, Chinese officials impressed their fingerprints into the important documents. [25] The modern fingerprint recognition techniques were invited in the late 16th century. Henry Fauld, a man who first scientifically suggested the individuality and uniqueness of fingerprints. At the same time, Herschel asserted that he had practiced fingerprint identification for about 20 years. After this, foundation theory of modern fingerprint identification had been established in this century. In the late 19th century, Sir Francis Galton conducted an extensive study of fingerprints. He provided the features for fingerprint classification in 1888.This is the earliest identification of fingerprint feature. The discovery of uniqueness of fingerprints led to fingerprints recognition method invitation. In 1899, Edward Henry provided an advance method in fingerprint identification. This is an important method in fingerprint recognition history. We called it “Henry system”. In the early 20th century, fingerprint recognition was formally accepted as a personal identification method by many countries. For example: Garda station, law enforcement agencies. Fingerprints became a standard procedure in forensics. Today, fingerprint recognition is widely used. It not only be used in law enforcement, but also be used in personal security (e.g. some personal laptop includes fingerprints recognition system for access verification. Some buildings also have fingerprint recognition for accessing. Some school using fingerprints recognition system in exam for student verification).
2.Existing Fingerprint recognition system
Fingerprint recognition system is a computer application that executes fingerprint recognition processing. This system’s main technique includes image processing and Pattern recognition. There are two main functions in fingerprint recognition: the first one is that: user can store fingerprint information to a database; the fingerprint is processed before storing. Another one is that: user can compare two fingerprints (one is stored in database, and one is input by fingerprint device. All fingerprints have been processed before.) System will show the result to user.There is some similar applications about fingerprint recognition system:
- Forensic Latent Criminal Justice AFIS-Lite System[1]
Forensic Latent Criminal Justice AFIS-Lite System is a multi-tasking fingerprint identification system for the low volume user. In this software, fingerprint image is captured by a high resolution flat bed scanner. (Figure 1)
Figure 1: Forensic Latent Criminal Justice AFIS-Lite System
Functions of Forensic Latent Criminal Justice AFIS-Lite:
Capture fingerprint image from a scanner. It is a high quality image.
Central Server control Functions: Fingerprint is stored with database, and user can manage the system data in database (e.g. searching, deleting and updating).
Image Matcher: Fingerprint recognition and searching the database.
Workstation Functions: Image processing and encoding. Analyst review (identify/Non-Identify determination)
2.2.CUBS Matlab Toolbox for Fingerprint Verification[2]
CUBS Matlab Toolbox for Fingerprint Verification is a fingerprint recognition application that contains matlab interface. This application provides two functions only (Feature Extraction and Fingerprint recognition); each function has an independent interface.
Functions of CUBS Matlab ToolBox:
Feature Extraction: In this function, system provides a user interface for fingerprint feature extraction. System will do the pre-processing and highlight the features in the user interface. (Figure 2) It also allows user to manually identify new minutiae or remove spurious ones.
Figure 2CUBS Matlab Toolbox for Fingerprint Verification: ToolBox
Fingerprint recognition: In this function, system also will provide a user interface for fingerprint recognition. System does the fingerprint recognition, and shows the result to user. Different type of features will be highlighted with different colors (Figure3)
Figure3CUBS Matlab Toolbox for Fingerprint Verification: ToolBox
2.3.Fingerprint recognition demo software[3]
Fingerprint recognition demo software is fingerprint recognition application. Its function includes the whole processing about fingerprint recognition (Figure 4).
Figure 4Fingerprint recognition demo software
Functions of fingerprint recognition demo software:
Capture fingerprint: System can capture fingerprint from optical scanner. It also can get the fingerprint from the external file.
Pre-process the fingerprint image: system can do the pre-processing and feature extraction. System will show the feature to user in the user interface.
Saving fingerprint: System can save the fingerprint.
Recognition: Fingerprint verification and identification.
3.Fingerprint acquisition
How to get a fingerprint image is the first question in this system. This is the basic step of fingerprint recognition. System will not executing without a fingerprint image. There are some different ways to get the fingerprint: optical, capacitive, ultrasound and thermal. Optical sensors are the most common sensor today. This section will focus on twoapproaches about fingerprint acquisition: One is using digital camera, another one is using fingerprint scanner.
1.
2.
3.
3.1.Getting fingerprint with digital camera
In this approach, I researched an essay;it provides a function to capture fingerprint images with a mobile camera. I think it can make a low project cost, and getting the fingerprint image more easily than getting from scanner, but it also has a problem. It cannot do preprocessing with the traditional preprocessing algorithm. “Some characteristics of fingerprint images captured with mobile cameras are quite different from those obtained by conventional touch based sensors. For example, mobile camera images are colored while conventional touch-based sensors produce only black and white images. Also, the backgrounds, or non-finger regions, in mobile camera images are very erratic depending on how the image captures place and time”[4]. I think it will make more complex for the project. I also did some tries in this approach (Figure 5 and Figure 6). Fingerprint is not very clear in this approach, so I think it is very difficult to do the pre-processing with these images.
Figure 5getting fingerprint with digital camera
Figure 6getting fingerprint with digital camera
Extension [5]
There is an interesting way to get the image with a digital camera. I can get a black-white image (Figure 7). It has six steps: 1, rub the side of a pencil on a piece of paper. 2 rub finger on the patch where you rubbed with the pencil. 3 get a friend to get a piece of tape. 4 put finger on the tape. 5 take the tape off. 6 put the tape on a paper, and then take a photo with a camera. I don’t like this way. It is too childish;however it can get a nice image.
Figure 7 Extension way: Getting fingerprint with digital camera
3.2.Getting fingerprint with fingerprint scanner
Getting fingerprint with fingerprint scanner is a popular approach. It can get a standard image for pre-processing, but it leads to a high project cost. I have researched some different fingerprint scanner. In my opinion, fingerprint scanner should include these goals, so it is suitable for my project:
Getting a fingerprint image.
Image is un-preprocessing: I found some fingerprint scanners had embedded a recognition system, I think these kinds of scanners are not suitable for my project.
Can link to computer: I am developing computer software, so it is necessary to link to computer.
Not too big
Cheap
There are two fingerprint scanners which Ihave researched:
3.2.1.Portable Dual Fingerprint Live Scanner(Figure 8) [6]
This scanner is small and it can link to computer. There are some features which are provided in its website:
Auto capture by sensing finger placement
Slippage detection for rolls
Halo effect and ghost image elimination
Image quality check
Automatic segmentation of two finger slaps
Sequence check in rolls and slap acquisition
International standard image compression, format and interfaces
Figure 8Portable Dual Fingerprint Live Scanner
Figure 9 is an image example of this scanner.
Figure 9: sample image
Description of Portable Dual Fingerprint Live Scanner
I think this scanner is expensive, however it is small, can link the computer with USB. It also has some strong point. For example it supports more than one fingerprint be scanned at the same time.
3.2.2.Secugen Hamster plus-USB Fingerprint Scanner(Figure 10) [7]
This scanner incorporates the latest in optical sensor capability, using patented SEIR technology, to provide a robust and highly reliable biometric platform that can be used in applications supporting biometric authentication, verification and scanning.There are two features which I preference: “Free Demo application to capture and save fingerprint as an image file”and “supports: Fingerprint recognition, fingerprint verification, fingerprint authentication, fingerprint scanning & fingerprint matching applications”.
Figure 10Secugen Hamster plus-USB Fingerprint Scanner
Description of Secugen Hamster plus-USB Fingerprint Scanner
This scanner is small and USB connection. It looks like more suitable for my project. It is not expensive, but it has a weakness point. It seems only can capture one fingerprint at the same time.
3.3.Brief description of fingerprint image type
After research, I found that most type image can be pre-processing. Typically, JPEG and BMP are more popular. Some application use JPEG and some use BMP. There is a specialtype; it also can be used in fingerprint recognition. It is SVG [8]. With this reason, I think I also can get the fingerprint image source from the internet.
I think I also need to think about the pixels of an image, because it has relationship with image data. Almost fingerprint scanner has their output standard. We don’t need to consider about the image compression. Almost fingerprint scanner will do it automatically.
4.Pre-processing algorithm
Pre-processing is the second step in Fingerprint recognition system. It is the most important step in this system. The fingerprint image is not suitable for recognition after we get the image from fingerprint device. There are some reasons will lead to this problem: When person is scanning finger, pressure of the finger will lead to an unclear image. If the finger is not clean, it also will make some noisy points in the fingerprint image. Per-processing is a process that making the image easy for recognition. (E.g. cleaning noisy point and making a clear image)
Description of fingerprint image representation:
Typically, a fingerprint image includes two parts: Foreground and background. Foreground means the part which includes clear ridge. In background, there is no ridge or the ridge is unclear. We cannot avoid the background. Each fingerprint image will have these two parts. Background makes a big influence to fingerprint recognition. The main task of pre-processing is cleaning noisy point of the image and separate background and foreground.
The traditional operation of fingerprint preprocessing includes: Normalization, Orientation estimation, segementation, ridge extraction and thinning.
4.1.Normalization[9]
Fingerprint image is captured by fingerprint scanner. This kind of image only has two colors (black and white), but gray level in this image is not the same. (Because pressure of finger or some reason from fingerprint scanner.) It is necessary to normalize the gray level of the image. With this step, we can make a normalize image for the following operation. The normalized image is defined as the follows mathematics formula (Figure 11):
Figure 11 Normalization mathematics formula
In this formula, I(I,j) means the gray level of point (i, j). M0 and VAR0 are the desired mean and variance values. “Normalization is a pixel-wise operation. Itdoes not change the clarity of the ridge and valley structures. The main purpose of normalization is to reduce thevariations in gray-level values along ridges and valleys,which facilitates the subsequent processing steps.”[9] Figure 12 shows an example of image normalization.
Figure 12: Sample of normalization. (a) Input image. (b) Normalized image
4.2.Orientation estimation[10]
An orientation field represents the directionality of ridges in the fingerprint image. It is a very important role in fingerprint image analysis. This step is a basic step for minutiaeextracted. It also prepare for image segmentation.“Fingerprint image is typically divided into a number of non-overlapping blocks (e.g. 32x32 pixels) and an orientation representative of the ridges in the block is assigned to the block based on an analysis of grayscale gradients in the block. The block orientation could be determined from the pixel gradient orientations based on, say, averaging, voting, or optimization.” [10] The following steps show the processing of orientation estimation:
Divide the input fingerprint image into blocks of size WxW.
Compute the gradients Gx and Gy at each pixel in each block.
Estimate the local orientation at each pixel (i, j) using the equations in figure 13:
Figure 13 Formula of local orientation estimation at each pixel
Where W is the size of the local window; Gx and Gy are the gradient magnitudes in x and y directions, respectively.
Compute the consistency level of the orientation field in the local neighborhood of a block(i, j) with the following formula in figure 14:
Figure 14 Formula for compute the consistency level of the orientation filed
If the consistency level is above a certain threshold Tc, then the local orientations around this region are re-estimated at a lower resolution level until C(i, j) is below a certain level.
This is the algorithm of orientation estimation. [10]
Figure 15 shows the orientation field:
Figure 15 orientation field after orientation estimation
4.3.Segmentation
Image segmentation is a basic way for fingerprint image enhancement. We cannot extract features from a fingerprint image without image enhancement, because without image segmentation, some important features will not present clearly, some unimportant features will present, some features maybe present twice. All these will lead to a difficult feature extraction. Segment is a way for keeping the useful image information and removes the un-useful image information. Image segmentation is typically used to locate objects and boundaries in images.
4.3.1.Normal method of image segmentation (using Histogram-based methods)
There are some methods for image segmentation: Clustering methods, compression-based methods, Histogram-based methods etc. In these methods, Histogram-based method is the most efficient method. “Histogram-based methods are very efficient when compared to other image segmentation methods because they typically require only one pass through the pixels. In this technique, a histogram is computed from all of the pixels in the image, and the peaks and valleys in the histogram are used to locate the clusters in the image. Color or intensity can be used as the measure.”[18]
In this method, image has been divided into several blocks. Using a gray level wavelet histogram to presents each block gray level, so that, we can determine how many blocks are useful (How many blocks are in the accepting gray level). With this method, we can keep the useful information part in the image, but it has a disadvantage. Its disadvantage is that it may be difficult to identify significant peaks and valleys in the image. In this technique of image classification distance metric and integrated region matching are familiar.
4.3.2.Edge detection
Edge detection is another way for image segmentation. It is more complex, but more accurate.
“Edge detection is a fundamental tool in image processing and computer vision, particularly in the areas of feature detection and feature extraction, which aim at identifying points in a digital image at which the image brightness changes sharply or more formally has discontinuities”[11]
In fingerprint, edge is the boundary between two regions with relatively distinct gray level properties. Through edge detection, we can reduce amount of data and throw away information which is not used for fingerprint analysis. It also can keep the information which is important for image. The idea underlying most edge-detection techniques is on the computation of a local derivativeoperator such as “Roberts”, “Prewitt”, “Canny” or “Sobel” operators.