06021606

Upload: ashish-mogra

Post on 14-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 06021606

    1/6

    2011 I

    for Fing

    Data & Software Engineering

    Jl. G

    Abstract Real time fingerprint identificatio

    non-alphanumeric content matching shouldn

    its speed factor. Real production-quality imp

    equipped with specific machine architectu

    factor. On this research, we focus on achiev

    common machine with respect to fingerprint

    We explore the possibility to optimize

    fingerprint minutiae-based feature extrac

    process. Hypothetically, in general using par

    faster than using sequential process. Ta

    multicore processor technology, optimization

    fingerprint feature extraction is conducted us

    by processor cores. We have identified

    implement parallel process on 29 differen

    executed once or more.

    We compare result of average execution t

    feature extraction using parallel and sequent

    of Database 1 of Fingerprint Verification Co

    2004. The experiment confirms the hyp

    consistent result, i.e. faster about 57%, 55%

    tested database.

    Keywords extraction, feature, fingerpr

    minutiae

    I. INTRODUCTIONFingerprint feature extraction is one o

    besides fingerprint matching, that estab

    identification system. A fingerprint ide

    recognizes an individual by searching th

    template database for a match. It con

    comparisons to establish if the individualdatabase and if so, returns the identifier

    reference that matched. In an identificationestablishes a subjects identity (or determi

    is not enrolled in the system database)

    having to claim an identity [1].

    Daily activities of a fingerprint ide

    comprised of enrolment and identification

    in Fig. 1. It demands real time result. So

    optimize its speed (with respect to its accu

    of its main stages up.

    ternational Conference on Electrical Engi

    17-19 July 2

    arallel Processing

    rprint Feature Extract

    . Indrawan

    1

    , B. Sitohang

    2

    , S. Akbar

    3

    esearch Division, School of Electrical Engineering a

    nesha No. 10 Bandung, West Java, [email protected]

    [email protected]@informatika.org

    n based on original

    t compromise with

    lementation usually

    e to optimize this

    ng higher speed on

    ccuracy factor.

    execution time of

    ion using parallel

    allel process will be

    ing advantage of

    of execution time of

    ing parallel process

    the possibility to

    routines that are

    ime of a fingerprint

    al process on Set B

    test 2000, 2002, and

    othesis and gives

    , and 60% for each

    int, identification,

    f the main stages,

    lish a fingerprint

    ntification system

    entire enrolment

    ucts one-to-many

    is present in theof the enrolment

    system, the systemes that the subject

    ithout the subject

    ntification system

    tself, as illustrated

    it is important to

    racy) by tuning all

    Fig. 1 Fingerprint Identification Sys

    Most of the works to o

    identification system come fro

    that raises classification/inde

    optimize speed precedes th

    important role during daily wosystem, especially on batch

    enrolment or ten-print identific

    accumulate time for their featur

    II. FINGERPRINT FEOn this paper, we use Source

    Vanak [2], for our parallel procfeature extraction. The algo

    modular design, which provid

    future enhancement and adaptat

    Fig. 2 Fingerprint minutiae

    neering and Informatics

    11, Bandung, Indonesia

    ion

    d Informatics, ITB

    tem: a) Enrolment; b) Identification

    timize speed of fingerprint

    m fingerprint matching stage

    ing strategy. Our work to

    t stage, which would play

    rk of fingerprint identificationrocessing of many ten-print

    tion since ten fingerprints will

    e extraction.

    TURE EXTRACTION

    AFIS, open source AFIS by R.

    essing analysing of fingerprintithm adopts MINDTCT [3]

    s a framework for supporting

    ion of the technology.

    extraction modular design

    J1 - 1

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

  • 7/30/2019 06021606

    2/6

    III.PARALLEL PROCESSING USING PROCESSOR CORESIn 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 -- becauseit 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 thread-

    safe 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. Incontrast, 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 areoften 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 tendsto 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 FEATUREEXTRACTION

    Our parallel processing for fingerprint feature extraction

    seems work mostly among data parallelism since many pixel

    or pixel-block data can be partitioned and processedindependently. 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.

  • 7/30/2019 06021606

    3/6

    TABLEIOVERVIEW OF MAIN WORKS USING PARALLEL PROCESSING

    No. Algorithm

    1 File to memory transfer of image gray level info

    2 Transformation of gray level info to ridge height info

    3 Pixel-block mapping construction

    4 Histogram analysing, smoothing, masking, and equalizing

    5 Ridge-orientation detection and smoothing

    6 Image binerization and smoothing7 Inner masking construction

    8 Skeleton construction based-on ridge and valley image

    Next more explanation will expose the usage of parallel

    processing on fingerprint feature extraction.

    A.Input Fingerprint FileThe simplest parallel processing applied at the beginning of

    fingerprint feature extraction process, i.e. during transferfingerprint 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.

    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 MapsPixel-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. 5 Data block structure: a) its smoothing with overlapping windows; b) its

    threaded block construction process

    One additional consideration must be made when usingblocks. 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 ImageThrough 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. 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 termsegmentation is generally used to denote the separation of

    fingerprint area (foreground) from the image background.

    Separating the background is useful to avoid featuresextraction in noisy areas that is often the background.

  • 7/30/2019 06021606

    4/6

    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).

    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. 9 Threaded process to detect minimum contrast: a) absolute; b) relative

    Beside above methods on histogram contrast manipulation,

    the next pixel level processes intended to kill some errors incontrast detection by majority vote (Fig. 10).

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

    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 bebetter 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. 11 Threaded local histogram equalization

    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 histogramdenotes 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 neighborhoodcentered 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 alwaysmultiply 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.

  • 7/30/2019 06021606

    5/6

    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 aneighborhood 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. 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. 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 tand works by setting the pixels whose gray-level is

    lower than tto 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 algorithmfrom previous step, but this time we give it angle offset that

    makes the smoothing algorithm work along lines orthogonal

    to local ridge orientation.

    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 nextfingerprint skeleton construction.

    Fig. 15 Threaded inner masking process

    D.Detect MinutiaeFingerprint 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

  • 7/30/2019 06021606

    6/6

    that basically removes border pixels (detec

    binary operations on pixels) in a loop untilis left. Also there is constructed helper

    fingerprint as a set of minutiae connecte

    ridges which is called skeleton. Each ridge

    list of pixels. Ridge tracer algorithm

    minutiae as pixels with 3 or more neighbor

    pixels that connect minutiae and also

    minutiae.

    E.Remove False MinutiaeFor accurate fingerprint skeleton cons

    important algorithms to remove false/spur

    islands and lakes, holes, hooks, and overlap

    Islands and lakes are somewhat larger th

    in the friction skin and they are often

    therefore, they typically will have a pair opoints detected at opposite ends. A hole is

    an island or lake, only smaller, and the lo

    one minutia point on it. A hook is a s

    protrudes off the side of a ridge or v

    typically has two minutiae of opposite typiece of ridge and the other in a smalrelatively close to each other. An overlap i

    a ridge or valley. A break in a ridge ca

    endings to be detected, while a break in a v

    bifurcations.

    Fig. 17 Various false minutiae a) island; b) lake; c) h

    F.

    Output Minutiae InformationFinally, minutiae collection algorithm fi

    previously constructed fingerprint skeleton

    no parallel processing here. For the

    extraction process, we give small portion he

    Fig. 18 Minutiae collection proc

    V. EXPERIMENT RESULTWe compare result of average exe

    fingerprint feature extraction using paral

    process on machine with processor AMDGHz and RAM 4 GB. As tested database

    Database 1 (collected by using small-size a

    sensors) of Fingerprint Verification Conte

    2002 [7], and 2004 [8]. Each database con

    images.

    ted through simple

    only one-pixel lineclass that models

    by a network of

    in the skeleton is a

    recognizes initial

    s then iterates over

    merges adjacent

    ruction, there areous minutiae, like

    (Fig. 17).

    n the size of pores

    lliptical in shape;

    candidate minutiaefined similarly to

    op need only have

    pike or spur that

    lley. This feature

    e, one on a smalll valley, that area discontinuity in

    uses 2 false ridge

    lley causes 2 false

    le; d) hook; e) overlap

    ds all minutiae in. Actually there is

    ake of complete

    re.

    ss

    ution time of a

    lel and sequential

    riple Core @ 2.20, we use Set B of

    d low-cost optical

    t (FVC) 2000 [6],

    ains 80 fingerprint

    Fig. 19 Comparison of Parallel vs. Se

    The experiment result (Fi

    execution time per fingerprint

    extraction algorithm usingsequential process. It gives con

    result -- through three attempts

    500 ms, and 800 ms difference

    2000, FVC 2002, and FVC 200

    VI.CONCNot all implemented parall

    paper because they exist on s

    algorithm. On exposed algor

    parallel process really useful t

    or pixel level data processing.

    This paper highlights utilizafingerprint feature extraction b

    parallel process for fingerprint

    than using sequential process o

    The experiment result confi

    consistent result, i.e. faster abo

    tested database above.

    ACKNOWL

    This research has been supp

    Technology (ITB) under Insti

    Program 2010 with Contract

    ITB/SPK/2010. We wish to th

    discussion to make this paper a

    REFER

    [1] D. Maltoni, D. Maio, A. K.Fingerprint Recognition, 2nd ed,

    [2] R. Vanak. (2009) SourceAFISAvailable: http://sourceforge.net/

    [3] C. I. Watson, et all, User's Gui(NBIS), National Institute of Sta

    USA, 2001.

    [4] J. Albahari. (2011) Parallel ProgAvailable: http://www.albahari.c

    [5] R. C. Gonzalez, R. E. Woods,Jersey: Prentice Hall, 2002

    [6] D. Maio, et all,FVC2000: FingeTransactions on Pattern Analysi

    pp. 402412, 2002.[7] D. Maio, et all, FVC2002

    Competition, Proc. 16th Int'l C

    811-814, Aug. 2002.[8] D. Maio, et all,FVC2004: Third

    Proc. Int'l Conf. Biometric Authe

    quential Process of Extraction Stage

    . 19) shows faster average

    roduced by fingerprint feature

    arallel process rather thansistent average execution time

    -- and produce about 400 ms,

    on tested Database 1 of FVC

    , respectively.

    LUSIONS

    el processes exposed on this

    upporting algorithm for main

    ithms, it clearly shows that

    speed up heavily pixel block

    tion of parallel processing forased on hypothesis that using

    eature extraction will be faster

    multicore processor.

    rms the hypothesis and gives

    t 57%, 55%, and 60% for each

    EDGMENT

    orted by Bandung Institute of

    tution Research Improvement

    Number 1112/K01.16/INST-

    ank to R. Vanak [2] for great

    complished.

    NCES

    Jain, S. Prabhakar, Handbook of

    New York: Springer Verlag, 2009.

    homepage on SourceForge. [Online].

    projects/sourceafis/

    e to NIST Biometric Image Softwarendards and Technology, Gaithersburg,

    amming on Threading in C#. [Online].om/threading/part5.aspx

    igital Image Processing, 2nd ed, New

    rprint Verification Competition, IEEE

    Machine Intelligence, vol. 24, no. 3,

    : Second Fingerprint Verification

    onf. Pattern Recognition, vol. 3, pp.

    Fingerprint Verification Competition,

    ntication, pp. 1-7, July 2004.