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