Sie sind auf Seite 1von 6

J1 - 1

2011 In nternational Conference on Electrical Engi ineering and Informatics 17-19 July 20 011, Bandung, Indonesia

Parallel Processing P for Finge erprint Feature Extraction


G Indrawan1, B. Sitohang2, S. Akbar3 G.
Data & Software Engineering Research R Division, School of Electrical Engineering an nd Informatics, ITB Jl. Ga anesha No. 10 Bandung, West Java, Indonesia
gdindrawan@gmail.com benhard@stei.itb.ac.id 3 saiful@informatika.org
2 1

Abstract Real time fingerprint identificatio on based on original non-alphanumeric content matching shouldn nt compromise with its speed factor. Real production-quality imp plementation usually equipped with specific machine architectur re to optimize this factor. On this research, we focus on achievi ing higher speed on common machine with respect to fingerprint accuracy a factor. We explore the possibility to optimize execution time of tion using parallel fingerprint minutiae-based feature extract process. Hypothetically, in general using parallel process will be king advantage of faster than using sequential process. Tak multicore processor technology, optimization of execution time of sing parallel process fingerprint feature extraction is conducted us by processor cores. We have identified the possibility to t routines that are implement parallel process on 29 different executed once or more. We compare result of average execution time t of a fingerprint feature extraction using parallel and sequenti ial process on Set B of Database 1 of Fingerprint Verification Con ntest 2000, 2002, and 2004. The experiment confirms the hyp pothesis and gives consistent result, i.e. faster about 57%, 55%, and 60% for each tested database. Keywords minutiae extraction, feature, fingerpr rint, identification,

Fig. 1 Fingerprint Identification Sys stem: a) Enrolment; b) Identification

Most of the works to op ptimize speed of fingerprint identification system come fro om fingerprint matching stage that raises classification/index xing strategy. Our work to optimize speed precedes tha at stage, which would play important role during daily wo ork of fingerprint identification system, especially on batch processing p of many ten-print enrolment or ten-print identifica ation since ten fingerprints will accumulate time for their feature extraction. II. FINGERPRINT FEA ATURE EXTRACTION On this paper, we use Source eAFIS, open source AFIS by R. Vanak [2], for our parallel proc cessing analysing of fingerprint feature extraction. The algor rithm adopts MINDTCT [3] modular design, which provide es a framework for supporting future enhancement and adaptat tion of the technology.

I. INTRODUCTION f the main stages, Fingerprint feature extraction is one of besides fingerprint matching, that estab blish a fingerprint identification system. A fingerprint identification system e entire enrolment recognizes an individual by searching the template database for a match. It cond ducts one-to-many comparisons to establish if the individual l is present in the database and if so, returns the identifier of the enrolment reference that matched. In an identification system, the system nes that the subject establishes a subjects identity (or determin is not enrolled in the system database) without w the subject having to claim an identity [1]. Daily activities of a fingerprint identification system i as illustrated comprised of enrolment and identification itself, in Fig. 1. It demands real time result. So o it is important to optimize its speed (with respect to its accu uracy) by tuning all of its main stages up.

Fig. 2 Fingerprint minutiae e extraction modular design

978-1-4577-0752-0/11/$26.00 2011 IEEE

III. PARALLEL PROCESSING USING PROCESSOR CORES In recent times, CPU clock speeds have stagnated and manufacturers have shifted their focus on increasing core counts. This is problematic because standard single-threaded code will not automatically run faster as a result of those extra cores. Leveraging multiple cores is easy for most server applications, where each thread can independently handle a separate client request, but is harder on the desktop -- because it typically requires that we take our computationally intensive code and do the following [4]: Partition it into small chunks. Execute those chunks in parallel via multithreading. Collate the results as they become available, in a threadsafe and performance manner. Although all above can be done with the classic multithreading constructs, its awkward -- particularly the steps of partitioning and collating. A further problem is that the usual strategy of locking for thread safety causes a lot of contention when many threads work on the same data at once. There are two strategies for partitioning work among threads: data parallelism and task parallelism. When a set of tasks must be performed on many data values, we can parallelize by having each thread perform the same set of tasks on a subset of values. This is called data parallelism because we are partitioning the data between threads. In contrast, with task parallelism we partition the tasks; in other words, we have each thread perform a different task. In general, data parallelism is easier and scales better to highly parallel hardware, because it reduces or eliminates shared data (thereby reducing contention and thread-safety issues). Also, data parallelism leverages the fact that there are often more data values than discrete tasks, increasing the parallelism potential. Data parallelism is also conducive to structured parallelism, which means that parallel work units start and finish in the same place in our program. In contrast, task parallelism tends to be unstructured, meaning that parallel work units may start and finish in places scattered across our program. Structured parallelism is simpler and less error-prone and allows us to farm the difficult job of partitioning and thread coordination (and even result collation) out to libraries. IV. PARALLEL PROCESSING FOR FINGERPRINT FEATURE
EXTRACTION

Our parallel processing for fingerprint feature extraction seems work mostly among data parallelism since many pixel or pixel-block data can be partitioned and processed independently. These kinds of data exist throughout main work flow as described in Fig. 2. Fig. 3 gives more detail of main work flow of fingerprint feature extraction. Implicitly, most of its stages consist of work that potentially can be parallelized. Explicitly, two appeared threads on the main work flow represent two parallel works for detection of minutiae ending and bifurcation based on fingerprints ridge and valley image. It related to minutiae ending/bifurcation duality that will be explained on the next part of this paper.

Fig. 3 Main work flow of fingerprint minutiae extraction

Table 1 gives overview of work using parallel processing based on detail of main work flow of fingerprint feature extraction given by Fig. 3.

TABLE I
OVERVIEW OF MAIN WORKS USING PARALLEL PROCESSING

No. 1 2 3 4 5 6 7 8

Algorithm File to memory transfer of image gray level info Transformation of gray level info to ridge height info Pixel-block mapping construction Histogram analysing, smoothing, masking, and equalizing Ridge-orientation detection and smoothing Image binerization and smoothing Inner masking construction Skeleton construction based-on ridge and valley image
Fig. 5 Data block structure: a) its smoothing with overlapping windows; b) its threaded block construction process

Next more explanation will expose the usage of parallel processing on fingerprint feature extraction. A. Input Fingerprint File The simplest parallel processing applied at the beginning of fingerprint feature extraction process, i.e. during transfer fingerprint images gray-level information from file to the memory. There is process for transferring such information from 1-d array to 2-d array as illustrated by Fig. 4a.

One additional consideration must be made when using blocks. It must be determined how to handle the edges of the image. The dimensions of the image will likely not be an even multiple of blocks, and the windows surrounding blocks along the perimeter of the image may extend off the image. C. Binarize Image Through pixel-block scheme, histogram processing and ridge orientation detection precede image binarization. The histogram of a digital image with gray levels in the range [0, L - 1] is a discrete function h(rk) = nk, where rk is the kth gray level and nk is the number of pixels in the image having gray level rk. Local histogram per block was extracted as illustrated in Fig 6a. Smoothing local histogram for each block was conducted by adding its histograms pixels number of each gray level, with correspondence value from histogram of neighbor blocks (Fig 6b).

Fig. 4 a) Threaded transfer of gray-level information of fingerprint image (300x300 pixels) on memory; b) Threaded transformation of gray-level information into fingerprint 3-D structure information [1]

Fig. 4b describes parallel processing routine for transforming gray-level information into information that represent fingerprint as a 3D structure with real ridges/hills and valleys. For example, after transformation, pixel[x,y] with gray-level equal to 0 will contain altitude/height of a hill, i.e. 255 means maximum height which is obvious ridge. B. Generate Image Maps Pixel-block structure constructed to locally analyze the fingerprint, the image is divided into a grid of blocks. All the pixels within a block are assigned the same results. Several considerations must be made when using a block-based approach. First, it must be determined how much local information is required to reliably derive the desired characteristic. This area is referred to as the window. The characteristic measured within the window is then assigned to each pixel in the block. It is typically desirable to share data used to compute the results assigned to neighboring blocks. This way some of the image that contributed to one blocks results is included in the neighboring blocks results as well. This helps minimize the discontinuity in block values as we cross the boundary from one block to its neighbor. This smoothing can be implemented using a system where a block is smaller than its surrounding window, and windows overlap from one block to the next (Fig. 5a).

Fig. 6 a) Threaded local histogram process; b) Threaded smoothing local histogram with respect to its neighbour blocks

Histograms are the basis for numerous spatial domain processing techniques. Histogram manipulation can be used effectively for the next image segmentation and enhancement process. Fig. 7 shows masking process for segmentation. The term segmentation is generally used to denote the separation of fingerprint area (foreground) from the image background. Separating the background is useful to avoid features extraction in noisy areas that is often the background.

Beside above methods on histogram contrast manipulation, the next pixel level processes intended to kill some errors in contrast detection by majority vote (Fig. 10).

Fig. 10 Threaded process to kill errors in contrast detection by majority vote

Fig. 7 The whole masking process

Masking process starts by clipping contrast where some upper/lower area of brightness histogram is not included in contrast calculations to eliminate some noise (Fig. 8).

Image enhancement process is histogram equalization, i.e. a method in image processing of contrast adjustment using the image's histogram. This method usually increases the global contrast of many images, especially images with close contrast values. Through this adjustment, the intensities can be better distributed on the histogram. This allows for areas of lower local contrast to gain a higher contrast. Histogram equalization accomplishes this by effectively spreading out the most frequent intensity values (Fig. 11).

Fig. 8 Threaded local contrast clipping process

An image with low contrast has a histogram that will be narrow and will be centered toward the middle of the gray scale [5]. Otherwise, high-contrast image cover a broad range of the gray scale and the distribution of pixels is not too far from uniform, with very few vertical lines being much higher than the others. Next, to separate fingerprint from background, absolute minimum contrast detection is used based on certain expected area width as shown by Fig. 8. There is also relative contrast detection based on ratio of local and global absolute contrast (Fig. 9).

Fig. 11 Threaded local histogram equalization

Fig. 9 Threaded process to detect minimum contrast: a) absolute; b) relative

After image enhancement, orientation detection routine will computes local ridge orientation (Fig. 12) using its local histogram. The presence of a significant peak in a histogram denotes an oriented pattern, whereas a flat or near-flat histogram is characteristic of an isotropic signal. A white block in the background indicates no local ridge orientation. Orientation array will contain byte-encoded ridge orientation angle for every block in the image. The local ridge orientation at a pixel [x, y] is the angle xy that the fingerprint ridges, crossing through an arbitrary small neighborhood centered at [x, y], form with the horizontal axis. Orientation field is in rather strange units. Normally angle is 0 ... 2. Orientation however doesn't care whether it is up or down, so it is only 0 ... . In order to use full 0 ... 2 interval, we always multiply the orientation angle by two. This creates strange angle, but it is very practical to have orientation in 0 ... 2 range. We use it to convert the orientation angle to vector. Vector representation of angles is useful, because vectors are easy to add up and average, especially when each vector has different weight.

Instead of computing local ridge orientation at each pixel, we estimate the local ridge orientation at discrete positions (this reduces computational efforts and still allows estimates at other pixels to be obtained through interpolation). The fingerprint orientation image (also called directional image), is a matrix whose elements encode the local orientation of the fingerprint ridges. Each element ij, corresponding to the node [i, j] of a square-meshed grid located over the pixel [xi, yj], denotes the average orientation of the fingerprint ridges in a neighborhood of [xi, yj]. An additional value rij is often associated with each element ij to denote the reliability (or consistency) of the orientation. The value rij is low for noisy and seriously corrupted regions and high for good quality regions in the fingerprint image.

Fig. 14 Binarization process

Additional algorithms merges binary smoothing output into binary image. The process basically looks for an odd 1 in neighborhood of 0s or for an odd 0 in neighborhood of 1s. Also there is algorithm to remove unwanted checkerboard-like situations in binary image. Checkerboard-like pixel quad will create one ridge and one valley crossing each other diagonally when thinned. Inner masking process outputs part of binary image area (inside border in Fig. 15) that will be processed by the next fingerprint skeleton construction.

Fig. 12 Threaded ridge orientation detection

Along with orientation detection result, ridge equalization takes equalized image and performs smoothing on every pixel, then returns the smoothed image (Fig. 13). Smoothing is not the same everywhere. Smoothing is always performed along a line parallel to ridge orientation in the block that contains the smoothed pixel. This has the effect of making ridge structure easier to see for the algorithm.
Fig. 15 Threaded inner masking process

Fig. 13 Threaded ridge equalization from equalized image

Based on previous process, now we want to binarize the image (Fig. 14). The simplest approach uses a global threshold t and works by setting the pixels whose gray-level is lower than t to 0 and the remaining pixels to 1. But here, we cannot binarize using such simple threshold (e.g. 50% brightness), because brightness levels vary in parts of the image. We need some measure of local brightness produced by "orthogonal" image processing. Local brightness is computed as average intensity of pixels lying along a line orthogonal to local ridge orientation (effectively lying on ridge cross-section). This average is in fact what smoothing algorithm computes, so we just reuse the smoothing algorithm from previous step, but this time we give it angle offset that makes the smoothing algorithm work along lines orthogonal to local ridge orientation.

D. Detect Minutiae Fingerprint skeleton construction takes two threads for ridge- and valley- based minutiae extraction (Fig. 3) because of ridge ending/bifurcation duality. Fig. 16a shows a portion of the fingerprint binary image where the ridge lines appear as dark traces on a light background with its two ridge endings (1, 2) and one bifurcation (3). At the other side, Fig. 16b shows on its negative image, the corresponding minutiae take the same positions, but their type is exchanged: ridge endings now appear as bifurcations and vice versa. This property is known as ridge-ending/bifurcation duality.

Fig. 16 The ridge ending/bifurcation duality in a) a binary image and b) its negative image (i.e., dark and bright pixels are swapped).

Inside fingerprint skeleton construction many process happened. There is algorithm to thin ridges in binary image

that basically removes border pixels (detected through simple binary operations on pixels) in a loop until only one-pixel line is left. Also there is constructed helper class that models d by a network of fingerprint as a set of minutiae connected ridges which is called skeleton. Each ridge in the skeleton is a list of pixels. Ridge tracer algorithm recognizes initial rs then iterates over minutiae as pixels with 3 or more neighbor pixels that connect minutiae and also merges adjacent minutiae. E. Remove False Minutiae truction, there are For accurate fingerprint skeleton const important algorithms to remove false/spuri ious minutiae, like islands and lakes, holes, hooks, and overlap (Fig. 17). an the size of pores Islands and lakes are somewhat larger tha in the friction skin and they are often elliptical e in shape; therefore, they typically will have a pair of f candidate minutia points detected at opposite ends. A hole is defined d similarly to an island or lake, only smaller, and the loop need only have s or spur that one minutia point on it. A hook is a spike protrudes off the side of a ridge or va alley. This feature typically has two minutiae of opposite typ pe, one on a small piece of ridge and the other in a smal ll valley, that are relatively close to each other. An overlap is s a discontinuity in a ridge or valley. A break in a ridge ca auses 2 false ridge endings to be detected, while a break in a va alley causes 2 false bifurcations.
Fig. 19 Comparison of Parallel vs. Se equential Process of Extraction Stage

The experiment result (Fig g. 19) shows faster average execution time per fingerprint produced p by fingerprint feature extraction algorithm using parallel p process rather than sequential process. It gives con nsistent average execution time result -- through three attempts -- and produce about 400 ms, e on tested Database 1 of FVC 500 ms, and 800 ms difference 2000, FVC 2002, and FVC 2004 4, respectively. VI. CONC CLUSIONS Not all implemented parallel processes exposed on this paper because they exist on supporting s algorithm for main algorithm. On exposed algor rithms, it clearly shows that parallel process really useful to o speed up heavily pixel block or pixel level data processing. ation of parallel processing for This paper highlights utiliza fingerprint feature extraction based b on hypothesis that using parallel process for fingerprint feature f extraction will be faster than using sequential process on n multicore processor. The experiment result confi irms the hypothesis and gives consistent result, i.e. faster abou ut 57%, 55%, and 60% for each tested database above. ACKNOWL LEDGMENT This research has been supp ported by Bandung Institute of Technology (ITB) under Institution Research Improvement Program 2010 with Contract Number 1112/K01.16/INSTITB/SPK/2010. We wish to thank to R. Vanak [2] for great ccomplished. discussion to make this paper ac REFERE ENCES
[1] [2] [3] D. Maltoni, D. Maio, A. K. Jain, S. Prabhakar, Handbook of Fingerprint Recognition, 2nd ed, , New York: Springer Verlag, 2009. R. Vanak. (2009) SourceAFIS homepage on SourceForge. [Online]. Available: http://sourceforge.net/ /projects/sourceafis/ C. I. Watson, et all, User's Guid de to NIST Biometric Image Software (NBIS), National Institute of Sta andards and Technology, Gaithersburg, USA, 2001. J. Albahari. (2011) Parallel Progr ramming on Threading in C#. [Online]. Available: http://www.albahari.com/threading/part5.aspx R. C. Gonzalez, R. E. Woods, Digital D Image Processing, 2nd ed, New Jersey: Prentice Hall, 2002 D. Maio, et all, FVC2000: Finge erprint Verification Competition, IEEE Transactions on Pattern Analysis s Machine Intelligence, vol. 24, no. 3, pp. 402412, 2002. D. Maio, et all, FVC2002: Second Fingerprint Verification Competition, Proc. 16th Int'l Conf. C Pattern Recognition, vol. 3, pp. 811-814, Aug. 2002. D. Maio, et all, FVC2004: Third d Fingerprint Verification Competition, Proc. Int'l Conf. Biometric Authe entication, pp. 1-7, July 2004.

Fig. 17 Various false minutiae a) island; b) lake; c) ho ole; d) hook; e) overlap

F. Output Minutiae Information nds all minutiae in Finally, minutiae collection algorithm fin previously constructed fingerprint skeleton n. Actually there is no parallel processing here. For the sake s of complete extraction process, we give small portion he ere.

Fig. 18 Minutiae collection proce ess

V. EXPERIMENT RESULT cution time of a We compare result of average exec fingerprint feature extraction using parallel and sequential process on machine with processor AMD Triple T Core @ 2.20 GHz and RAM 4 GB. As tested database e, we use Set B of Database 1 (collected by using small-size an nd low-cost optical sensors) of Fingerprint Verification Contes st (FVC) 2000 [6], 2002 [7], and 2004 [8]. Each database cont tains 80 fingerprint images.

[4] [5] [6] [7] [8]

Das könnte Ihnen auch gefallen