Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

3.

Hand Features for Biometric


Authentication
Fingerprint, palmprint & finger-knuckle print are the biometric
traits found on human hand. These biometric traits are rich in
texture, and this information can be extracted to generate a feature
vector [1], [3], [4]. We need to capture the data first and then pre-
process the data. These stages are common in almost every
biometric trait and in case of fingerprint, palmprint and finger-
knuckle print they tend to be similar [1], [3], [8], [9], [59], [60],
[97], [102]. We discuss biometric systems based on these traits

3.1 Fingerprint Recognition Systems

A fingerprint is the representation of the epidermis of a finger: it


consists of a pattern of interleaved ridges and valleys [1], [30].
Fingertip ridges evolved over the years to allow humans to grasp
and grip objects. Like everything in the human body, fingerprint
ridges form through a combination of genetic and environmental
factors. In fact, fingerprint formation is similar to the growth of
capillaries and blood vessels in angiogenesis [1]. The genetic code
in DNA gives general instructions on the way skin should form in a
developing fetus, but the specific way it forms is a result of random
events (the exact position of the fetus in the womb at a particular
moment, and the exact composition and density of surrounding
amniotic fluid). This is the reason why even the fingerprints of
identical twins are different [188].
In fact, fingerprint based biometric systems are so popular that
they have almost become the synonym of biometric systems [39].
Although significant progress has been made in designing automatic
fingerprint authentication systems over the past 30 years, a number
of design factors (lack of reliable minutiae extraction algorithms,
difficulty in quantitatively defining a reliable match between
fingerprint images [189], poor fingerprint classification algorithms)
create bottlenecks in achieving the desired performance [1].

3.1.1 Design of a Fingerprint Verification System


An automatic fingerprint identity authentication system has four
main design components: Acquisition, Preprocessing (Template
Generation), Feature extraction, and Matching.

44
3.1.1.1 Fingerprint Acquisition
There are two primary methods of capturing a fingerprint image:
inked (off-line) and live scan (ink-less) [1], [39]. An inked
fingerprint image is typically acquired in the following way: a
trained professional obtains an impression of an inked finger on a
paper, and the impression is then scanned using a flat-bed
document scanner. The live scan fingerprint is a collective term for
a fingerprint image directly obtained from the finger without the
intermediate step of getting an impression on a paper. Acquisition
of inked fingerprints is cumbersome; in the context of an identity-
authentication system, it is both infeasible and socially unacceptable
for identity verification. The most popular technology to obtain a
live-scan fingerprint image is based on the optical frustrated total
internal reflection (FTIR) concept [190].

Fig. 3.1. A Variety of Fingerprint Sensors with Different Specifications.


(e.g., sensing technology, image size, image resolution, image quality,
etc are now available). These sensors have been embedded in computer
peripherals and other devices to facilitate user authentication [1].

A number of other live-scan imaging methods [1], [3], [29] are


now available, based on ultrasound total internal reflection, optical
total internal reflection of edge-lit holograms, thermal sensing of
the temperature differential (across the ridges and valleys), sensing
of differential capacitance, and noncontact three-dimensional
scanning. Different kinds of fingerprint sensors are shown in Fig.
3.1. For the research we have used a biometric sensor capable of
live finger detection. Futronics FS88 fingerprint scanner is FBI
specifications [43] compliant and it is an optical fingerprint scanner.
A methodology based on Component Object Model (COM) is

45
proposed for interfacing sensor with the computer to capture
fingerprint images [192]. For our research we are using an optical
scanner for reading fingerprints. We are using Futronics FS88 USB
compatible scanner as shown in Fig 3.2. The FS88 fingerprint
scanner uses advanced CMOS sensor technology and precise
optical.

Fig. 3.2. Futronics FS88 Optical Fingerprint Scanner

The results for fingerprint scan using Futronics FS88 & designed
interface is shown in Fig. 3.3.

(a) (b)

Fig. 3.3. Fingerprints scanned by Futronics FS88 using given Interface

Fig. 3.3 & 3.4 show some live fingerprint scans. Good quality
fingerprints are shown in Fig. 3.3 (a) & (b), if the person has not
cleaned the finger or if the finger is wet due to sweating then it will
result in dry or wet fingerprints as shown in Fig 3.4 (a) & (b)
respectively. Dry fingerprints have unclear edges and wet
fingerprints have smudged edges in both the cases feature

46
extraction is difficult and this gives rise to error rate. The captured
fingerprints are subjected to preprocessing.

(a) (b) (c)

Fig. 3.4. Different Quality Fingerprints (a) Dry Fingerprint (b) Wet
Fingerprint (c) Good Quality Fingerprint
First two fingerprints are poor as the ridge structure is distorted, Dry
fingerprints have very weak ridges and wet fingerprints have smudged
edges they lead to failure in feature extraction resulting in low accuracy.

3.1.1.2 Preprocessing & Template Generation


In order to match the fingerprints we need to form
Representation (Template) of fingerprint image. This is a machine-
readable representation completely captures the invariant and
discriminatory information in a fingerprint image. The utility of the
systems using such representation schemes, however, may be
limited due to factors like brightness variations, image quality
variations, scars, and large global distortions present in the
fingerprint image because these systems are essentially resorting to
template matching strategies for verification. Further, in many
verification applications, terser representations are desirable, which
preclude representations that involve the entire grayscale profile
fingerprint images. Some system designers attempt to circumvent
this problem by restricting that the representation is derived from a
small (but consistent) part of the finger [48]. This is called as
Region of Interest (ROI) which will be used for feature extraction.
The Automatic Fingerprint Recognition Systems needs a clear
noise free fingerprint in order to process it for minutiae detection or
correlation [1], [8], [43], [45]. The fingerprint must be
preprocessed to remove the effect of noise, effect of dryness,

47
wetness of the finger and difference in the applied pressure while
scanning the fingerprint.
The preprocessing is a multi-step process. Fingerprint
Preprocessing Steps [1], [3], [62] are as follows:
1. Smoothening Filter.
2. Intensity Normalization.
3. Orientation Field Estimation.
4. Fingerprint Segmentation.
5. Ridge Extraction/ Core point Detection.
6. Thinning / ROI Extraction.
The list given above is exhaustive but depending on the application
and captured data subset of this may be used.
Smoothening & Intensity Normalization

Smoothening Filter and Intensity normalization are very common


image processing techniques. We use a Gaussian low pass filter of
size 3*3 to remove effect of noise if required. As the scanner used
is giving images of high quality we can bypass the low pass filtering.
Depending on lighting conditions, pressure applied while scanning
and cleanliness of the scanner surface the image intensity changes.
Before extracting feature vector from the fingerprint image, we
normalize the region of interest in each sector separately to a
constant mean and variance. We divide the input image in non-
overlapping sectors of size W*W pixels. Normalization [36] is done
to remove the effects of sensor noise and finger pressure
differences. Let I(x, y) denote the gray value at pixel (x, y), Mi and
Vi, the estimated mean and variance of sector Si, respectively, and
Ni(x, y), the normalized gray-level value at pixel (x, y). For all the
pixels in sector Si, the normalized image is defined [36] as:

V0 *( I ( x, y) M i ) 2
Ni ( x, y) M 0 If I(x,y) > Mi
Vi

V0 *( I ( x, y) M i ) 2
Ni ( x, y) M 0 Otherwise (3.1)
Vi

48
This method gives output as shown in Fig 3.5, we have selected M0
=100, V0=100, and applied the method discussed above for the full
image.

Fig. 3.5. Result of Intensity Normalization

Every pair shows original and normalized fingerprint, resultant


fingerprint have uniform brightness irrespective of original image.
Orientation Field Estimation

Orientation field gives the local ridge direction information.


Orientation estimation step gives the direction of ridge in terms of
local gradient of fingerprint image segment. This operation is
performed block wise (W*W Size Block typically 16*16 pixels) [59],
[193], [194], [195], [196]. This step gives orientation field of the
fingerprint, which can be used for band pass filtering [193], [194]
or Gaussian filtering [195]. This is one of the important and an
inevitable stage as further processing depends on the estimated
orientation field. Ridge extraction is performed by frequency
selective filtering of fingerprint image in the direction of gradient.
This is performed by Gabor filtering. Other approach involves
Gaussian Filtering along the ridge lines [195] or overall Gaussian
filtering by a kernel of varying size and local binarization [32]. As
discussed earlier for feature extraction we need ridge structure; to

49
obtain reliable ridge structure, most widely used approach is to go
through the gradients of grey intensity [197]. There are some other
methods available in literature like filter-bank based approach,
spectral estimation, waveform projection, however the gradient
based method provide better results [36], [197].
Gradient based technique also have variations, researchers have
proposed different ways to estimate orientation form gradients. W.
Lee et al. have proposed a simple technique based on direct
calculation of orientation based on gradient in [198]. In [197],
[199] authors have discussed orientation estimation based on Eigen
values of local structure tensor. Bazen [200] has discussed PCA &
Structure tensor based Orientation estimation algorithm based on
gradients. In [197] authors have proposed a modified technique
based on gradient calculation which exploits the fact that the
orientation field tend to be continuous in the neighboring regions.
They have put an algorithm which assigns the orientation of central
point based on the orientation of neighboring blocks at four corners
and their field strength (also called as coherence). Hong [193] et al.
discussed a mechanism to achieve a smoother orientation field by a
continuous vector field approach. They use an averaging filter to the
continuous vector filed calculated from the local gradient angle.
Both the approaches give reasonably good approximation of the
orientation field. Fig. 3.6 (a) shows such a scenario. In [193], to
calculate the orientation of block ‘C’, continuous vector field of
neighboring 5*5 blocks is considered and averaged. In [197]
authors use blocks shown in Fig 3.6 (b) , Blocks 1,2,3,4 are used to
estimate the orientation of center block ‘C’.

(a) (b)

Fig. 3.6. Blocks under Considerations (a) Central Block (b) Neighborhood
Block as used in [197].

The basic concept behind both the approaches is that to achieve


smoother orientation by using information from neighboring blocks.
This helps to tolerate the imperfections caused by the noise and

50
dryness of finger. We have proposed an algorithm for orientation
field estimation based on optimized neighborhood averaging [201].
Next we discuss the proposed technique.
A. Pre-Requisites of Proposed Scheme

A gradient indicates gradual change of grey level. A typical


gradient is shown in Fig. 3.7. The gradient direction is shown by
arrows. The ridge is perpendicular to the gradient. The fingerprint is
divided in to W*W blocks. For Each block we estimate the gradient
angle θ, also called as orientation field angle. This gives the
orientation field of the fingerprint.

Fig. 3.7. Grey Scale Gradient Block

We have calculated gradient using a 3*3 Sobel mask for


horizontal and vertical gradient calculation. Actually as shown in Fig.
3.7 the ridges may have two edges in a selected block, and hence
the calculated gradient vectors at both sides of ridge are opposite to
each other, the opposite gradients at both sides of a ridge are likely
to cancel each other. To solve this problem we use a method used
in [197] that involves doubling the gradient angles before the
averaging. This method involves calculation of squared gradient.
The gradient vectors can be denoted as [gx, gy]T. Because of the
doubling process the gradient angle (φ + Л) becomes (2φ +2Л).
Practically 2φ is the angle of squared gradient vectors [gsx, gsy]T
that has the following relation with [gx, gy]T , hence we can write
using trigonometric identities [197].

g sx g 2 cos 2 g 2 (cos 2 sin 2 ) g x2


g sy g 2 sin 2 g 2 (2sin cos ) 2gx g y
(3.2)

The averaged squared gradients [ g sx , g sy ] in a block of size W*W


can therefore be calculated by

51
g sx ( g x2 g y2 )
g sx W W
(3.3)
g sy g sy 2gx g y
W W

Now,

g xx g x2 (3.4)
W

g yy g y2 (3.5)
W

g xy gx g y
W
(3.6)
The terms in above mentioned equations (gxx, gyy & gxy) are
estimates for variance & cross-covariance of gx & gy, averaged over
window ‘W’. We divide the input fingerprint image into equal size
blocks of WxW pixels, and average over each block independently.
The direction of orientation field is calculated as follows

W W
2 g x (i, j ) g y (i, j )
1 1 i 1 i 1
W tan W W (3.7)
2 2 2 2
( g (i, j ) g (i, j ))
x y
i 1 i 1

The desired range of θW is between [0, Л]. This is perpendicular to


gradient direction and gives direction of ridge in that block. In order
to measure the reliability of estimation we also calculate one more
parameter called coherence [197], [200], which indicates strength
of the averaged gradients, coherence is given by

( g xx g yy ) 2 4 g xy2
CohW (3.8)
g xx g yy
B. Block Numbering
If we go for the orientation calculation by Eqn. (3.2) to (3.7) the
resultant orientation is not smooth. To make it proper schemes are
proposed in [193], [197] here we propose another scheme which
address the same problem. We divide the fingerprint image in to
blocks of size W X W pixels. To find orientation of a specific block
we consider neighborhood area of surrounding 8 blocks. Then we
define total 25 locations for the neighborhood blocks to find the

52
orientation and estimate the orientation of central blocks using this
25 neighborhood orientation, we also analyze the feasibility of using
less number of blocks for faster calculations. The blocks are given
ID’s (Identification Numbers) from 1 to 25; their locations are
shown in Fig. 3.8. The block under consideration for estimating
orientation is Block No. 9.

Fig. 3.8. Neighborhood Blocks Locations

Using this scheme gives following clear advantages over previous


schemes.
1. We can analyze the neighborhood in a better way, by
considering more number of blocks in close vicinity of central
block (Block No. 9). In [193] authors use 5*5 neighborhood
for averaging (using smoothening filter) continuous vector
field, actually only 8 blocks are in close vicinity (Block No . 1
to 8). In [197] authors consider only 4 blocks (Blocks
16,18,19,21 in our case) and use field strength for orientation
estimation.
2. Closer estimation is possible as the orientation of central block
is closer to the blocks in closer vicinity; Block Nos.16 to 21
give this advantage.
At the same time we have to consider the increase in the
computation, which is actually high for evaluating gradients of 25
locations. Here we propose an optimization scheme which will
reduce the calculations by recursively reusing values of gradients

53
calculated. When the overall image is considered the calculations
are reduced by the optimization scheme is proposed, and
calculation time required is suitable for real-time applications. In the
next section we discuss the algorithm in detail.
C. Proposed Orientation Estimation Algorithm

In the proposed scheme we exploit the advantage of placement


of blocks. When we consider central block No. 9 and its neighbor’s
No. 1 to 8, these neighbors are also coming in the vicinity of other
bocks neighborhood with different block ID, hence if we calculate
orientation of block no 1 to 8, some part of this can be copied
(reused) to the orientation set of specific neighbor, without
recalculation. In Fig. 3.9 we describe this condition. Consider block
‘A’ & ‘B’ which have an overlapping neighborhood. Block No.3 of A is
also block No. 1. of ‘B’, similarly the other pairs are (A5, B4), (A8,
B6). It means that three values from ‘A’ neighborhood can be used
in B’s neighborhood. This is a simple scenario, if we consider
immediate neighbor of ‘A’ which is block No. 5 of ‘A’, then we can
use actually six values corresponding to overlapping blocks.

Fig. 3.9. Overlapping Neighborhood

We exploit this fact and generate a look-up table which is the


heart of algorithm; this look-up table lists all 25 locations of blocks
and gives the detail of set of neighboring block ID’s to be updated.
For each block we need 25 values of neighboring orientations, but
for all the blocks we do not actually calculate 25 values, rather than
we go for the values which are not calculated in the neighborhood,
because of this fact the algorithm performs faster despite of
considering more blocks.
The look-up table is given in Table 3.1. The table gives
information about the neighboring block update. Block ID is the
number of block (position) w.r.t. the block under consideration
(Block No. 9 or Central Block), Update ID is the nth position in the
orientation set to be updated for corresponding block number

54
(Value 4 in column of Block No.2 means updating 4th orientation for
BlockNo.2).
Table 3.1
Look-Up Table for Neighborhood Update

Update ID 1 2 3 4 5 6 7 8 9

Center of Block Central


Block ID
(CX,CY) Block

1 i-16, j-16 9 4 2 1

2 i, j-16 5 9 4 3 1 2

3 i+16, j-16 5 9 2 3

4 i-16, j 7 6 9 2 1 4

5 i+16,j 8 7 9 3 2 5

6 i-16, j+16 7 9 4 6

7 i, j+16 8 6 5 9 4 7

8 i+16, j+16 7 5 9 8

9 i, j 8 7 6 5 4 3 2 1 9

10 i-8, j-16 13 12 11 10

11 i+8,j-16 13 12 10 11

12 i-8, j 15 14 13 11 10 12

13 i+8, j 15 14 12 11 10 13

14 i-8, i+16 15 13 12 14

15 i+8, j+16 14 13 12 15

16 i-8, j-8 21 19 18 16

17 i, j-8 20 17

18 i+8, j-8 21 19 16 18

19 i-8, j+8 21 18 16 19

20 i, j+8 17 20

21 i+8, j+8 19 18 16 21

22 i-16,j-8 20 19 17 22

23 i+16,j-8 25 20 17 23

24 i-16,j+8 20 17 22 24

25 i+16,j+8 20 23 17 25

55
Consider the first row, suppose that we are calculating 25 values for
a block with center co-ordinates (i, j), which becomes Block No. 9.
When we calculate gradient of Block No. 1 by procedure given in
next part, first we update central block with Update ID 1, and next
we reuse this value to add to orientation set of Block No. 1, 2 and 4
with update ID 9, 4 and 2. Hence 9th, 4th and 2nd Block Orientation
for Block No. 1, 2 and 4 need not be calculated again. Using this
optimized mechanism as we calculate 25 values for a block,
simultaneously we update neighboring 84 orientations besides its
own set of 21 orientations.
Optimized Neighborhood Averaging Algorithm:

1. Read the fingerprint image from source, either file or


fingerprint scanner. We get the M X N pixels size image. (We
have used 320 X 480 Size Image)
2. Normalize the image by performing grey level Contrast
stretch, Mean and Variance normalization.
3. Divide the image into W X W size blocks. Total (M/W X N/W)
blocks are possible. We are using block size of 16 X 16 Pixels,
hence we get 20X30=600 Blocks.
4. Prepare the look up table in a 2D array. For each block
prepare Orientation Flag Array (ORF) of size 25 elements. This
flag is set when orientation is calculated or updated using
Look-up table.
5. For a central block with co-ordinates (i,j), Calculate the
orientation angle θ for neighboring Block No. 1 to 25. Check
the orientation flag If ORF=1, then bypass calculation, Go for
next block.
6. For each block in the neighborhood, update corresponding
blocks in Update ID reading from Look-up table. Repeat this
procedure for all 25 neighborhood locations. When the
orientation is added to the specific blocks set of orientation,
set the corresponding ORF=1. (ORF=1, indicates that
orientation has been calculated for current ID).
7. Subsequently for each block before calculating the orientation
check the orientation flag (ORF) and proceed.
8. Repeat steps 5 to 7 for all blocks in fingerprint image.
9. For each block assign the orientation value by averaging
selected number of orientation for neighboring 25 locations.

56
All 25 values can be considered or some selection can be
made.
10. Display the orientation map. Proceed for next step of pre-
processing.
Wang et al. [197] have used the block with maximum coherence
(Eqn. 3.8), to assign orientation to the central block, in a set of four
neighboring blocks. This algorithm is a special case of proposed
algorithm, if we use only block. No.16, 18, 19 and 21 for orientation
estimation it becomes the same as proposed in [197] only we have
to consider block with high field strength (Coherence Value). As we
are using more blocks we use averaging which gave better results.
We have also studied using different combinations of blocks to
estimate orientation, as well as our algorithm is compared with
existing techniques [193], [197]. This is discussed in next section.
D. Results

This algorithm is implemented on MS Visual Studio 2005 platform,


using Visual C# 2.0. The program was tested on AMD Athlon 64
processor running at 1.8 GHZ with 1.5GB DDRII RAM, operating
system is Windows XP SP3. Block size considered is 16 X 16 pixels.
We have tested three main algorithms,
1. Orientation Estimation using Squared Gradients only [193],
[197].
2. Orientation Estimation using Continuous Vector Field [193].
3. Proposed Optimized Neighborhood Averaging Algorithm.
The scheme proposed by Wang et al. [197] can be treated as a
special case for estimating algorithm using block number 16, 18,
19, 21 and assigning orientation of maximum field strength block to
the center block.
For testing purpose we have used FVC 2000, 2002 & 2004
Databases [202], [203], we have also used optical fingerprint
scanner Futronics FS88 for real-time application. Some scanned
fingerprints images were also used for testing. We show the results
for FS88, FVC2000, and FVC2002 DB Images.
Proposed Algorithm was tested with following variations
1.All 25 Blocks - with averaging
2. Block Nos. - 9,10,11,12,13,14,15,16,17,18,19,20,21- with
averaging
3.Block Nos. - 9,12,13,16,17,18,19,20,21 - With Averaging

57
4.Block Nos. - 9,12,13,16,17,18,19,20,21 - With Contiuous Vector
Field[193]
The algorithm with Option #3 gave best results as these block
are in close vicinity of central block and the orientation tend to be
continuous over this set or blocks, Option #4 combines our
technique with the smoothening filter approach on continuous
vector field [193], did not gave significant improvement. Table 3.2
shows the results. It can be observed that only using Squared
Gradients (SQG) the results are poor; the field is having fluctuations
and distortions. Second Column shows result of using CVF and
Smoothening filter [193], the results are good, field estimation is
much better, but when the optimized neighborhood averaging is
used the results have one clear advantage, that is the field is much
smoother than [193]. This fact is highlighted in Fig. 3.10. The field
inside the box for optimized neighborhood averaging (a) is much
smoother than other two approaches (b), (c).

Fig. 3.10. Orientation Field Formations (a) Squared Gradient only (b)
Contentious Vector Field (c) Optimized Neighborhood Averaging
Field in (a) is not Smooth and as compared to the orientation shown in
(b) field in (c) is much smoother.

The last column in Table 3.2 indicates field strength (calculated


block wise) for Squared Gradients (SQG), CVF as (A) & Optimized
Neighborhood Averaging (ONA) as (B). As we are averaging the
orientation in the neighborhood we can see that the field strength is
also averaged, the coherence map is much smoother indicating
smoother orientation and this map is just to indicate the averaging
operation effect. We do not change any of the fingerprint
characteristics.

58
Table 3.2

Comparison of Orientation Fields with Calculation Time Required

Continuous Optimized
Squared Gradient Coherence
Fingerprint Vector Field Neighborhood
[193], [197] Map
[193] Averaging

(a)

FS88
Optical
Scanner
Image
63ms 62 ms 515 ms
(b)

(a)

FVC 2000
DB1 78ms 79ms 703 ms
(b)

(a)

FVC 2002 62ms 63ms 562ms


DB1 (b)

59
As we are using more blocks for calculation the time required for
calculation is higher for our algorithm (ONA). We show the
comparison for timing requirement considering all 25 blocks, i.e.
maximum load. Still the maximum timing was found in the range of
503-750 milliseconds as compared to 55-70 milliseconds for
previous approaches. When only 9 blocks are used (Option # 3) this
timing reduces to 200-400 milliseconds. This fact indicates that
though our algorithm takes more time for execution, still it is
attractive for real time applications.
Here we have discussed a mechanism for orientation field
estimation for a fingerprint image. The proposed an algorithm
calculates orientation using gradients and performs neighborhood
averaging for smoother orientation field. This scheme reuses
calculated orientations by copying values in appropriate location,
using a unique look-up table. Though more blocks are used as
compared to existing schemes the execution time is still attractive
for real-time application. Achieved orientation field gives better
estimation by closely approximating actual values, though
tremendous increase in quality is not found we get considerable
improvement over the existing methods, as the existing methods
are also proposing performance improvement over conventional
mechanism. Scheme proposed in [197] is a special case of proposed
algorithm. This algorithm can be integrated with existing fingerprint
preprocessing techniques to achieve performance improvement.
Fingerprint Segmentation

Segmentation is an important step in fingerprint image


enhancement [29]. The segmentation separates Region of Interest
(ROI) from background. Maltoni et al. [29] have discussed a mean
and variance based technique. Which gives good results for good
quality fingerprints but for low contrast images the results are poor.
Another approach is based on gradient direction and coherence
[204], [205]. This technique is modified by M. Akram et al. in
[206], they are using modified gradient based approach. F. Alonso
et al. [207] proposed an enhanced Gabor filter based fingerprint
segmentation algorithm [207]. The techniques in [206], [207] give
good results for segmentation. One thing observed is both the
techniques use empirical threshold for segmentation, which is either
based on observation or a trial and error process. Here we present a
method for segmentation which decides threshold automatically.
This feature makes current algorithm attractive for real-time

60
applications, and reduces errors due to change in background
condition, change in scanning device, difference in applied finger
pressure etc.

(a) (b)

Fig. 3.11. Fingerprint Segmentation (a) Input image (b) Segmentation


Output

A typical segmentation result is shown in Fig.3.11, the input image


is shown in Fig. 3.11(a), the result of segmentation is shown in Fig.
3.11.(b). As we can see the noisy background is completely
removed and clear ROI is obtained.
A. Gabor Filtering
Fingerprint images present a strong orientation tendency and
have a well-defined spatial frequency in each local neighborhood
that does not contain singular point(s) like minutiae. The parallel
ridge structure possessing spatial frequency is shown in Fig. 3.12.

Fig. 3.12. Ridge Structure possessing spatial frequency

Gabor filters are bandpass filters which have both orientation


selective and frequency selective properties and have optimal joint
resolution in both spatial and frequency domains [193], [208],
[209]. By applying properly tuned Gabor filters to a fingerprint
image, the true ridge and furrow structures can be greatly
accentuated. These accentuated ridges and furrow structures
constitute an efficient representation of a fingerprint image. An
even symmetric Gabor filter has the following general form in the
spatial domain [193].

61
1 x2 y2
h(x, y, , f ) = exp{- }cos(2 fx )
2 x2 2
y
(3.9)

Where x x cos y sin , and y x sin y cos


This filter consists of a Gaussian envelope (of parameters σx and σy)
modulated by a sinusoid of frequency f along the direction of the xθ
axis. The angle θ allows rotating the direction of the response.
Example of 2D Gabor filter is shown in Fig. 3.13.

Fig. 3.13. 2D Gabor Filter Response in Spatial Domain

Since local ridge structures of fingerprints can be modeled as


oriented sinusoids along a direction normal to the local ridge
orientation[193], [207], this filter performs very well in segmenting
oriented ridge zones and noisy non-oriented background zones. The
frequency f can be set as the inverse of the average inter-ridge
distance. The value of θ is given by

(k 1)
k (3.10)
m
k = 1. . . m,
Where m denotes the number of orientations (currently m = 8). For
each image block of size W ×W centered at (X,Y), with W even, we
extract the Gabor Magnitude [207] as follows for k = 1, . . . ,m:
( W / 2) 1 ( W / 2) 1

g(X , Y , k , f , x , y ) | I ( X x0 , Y y 0 ) h ( x0 , y 0 , k , f , x , y ) |
x0 W /2 y0 W /2
(3.11)

Where, I(x, y) denotes the gray level of the pixel (x, y). As a result,
we obtain m Gabor features for each W ×W block of the image. In
blocks with ridge pattern, the values of one or several Gabor
features will be higher than the others (those values whose filter
angle is similar to the ridge angle of the block). If the block is noisy

62
or having non-oriented background, the m values of the Gabor
features will be similar. Therefore, the standard deviation ‘Sd’ of the
m Gabor features allows to segment foreground and background. If
‘Sd’ is less than a given threshold, the block is labeled as
background block; otherwise the block is labeled as foreground
block. This technique has been implemented in [207]. They have
used overlapping block structure for enhancing the performance.
The threshold for standard deviation is a crucial factor, which is
decided manually. We use the Gabor magnitude feature in our
algorithm as discussed in [207], but extend the algorithm for
deciding the threshold automatically [45].
B. Otsu’s Thresholding
Otsu’s Thresholding method is mainly used in segmenting object
from background [210], [211]. The threshold is determined from
the histogram of the image. This method is based on minimizing
within class variance and maximizing between class variance of grey
levels. The object pixels come in one class and the background pixel
come in another class as shown in Fig. 3.14.

Fig. 3.14. Typical Histogram of Image With Object and Background

Consider that we have an image with L gray levels and its


normalized histogram (for each gray-level value i, P(i) is the
normalized frequency of i). Assuming that we have set the
threshold at T, the normalized fraction of pixels that will be
classified as background and object will be:

T 1 L 1
qb (T ) P(i) , qo (T ) P(i) (3.12)
i 0 i T

It should be noted that qb (t ) qo (t ) 1 .

63
Grey level mean and variance

Next step is to calculate grey level mean and variance for the
background and object pixels. Grey level mean for background will
be given by
T 1
iP(i)
i 0 1 T1
b (T ) T 1
iP(i) (3.13)
qb (T ) i 0
P(i)
i 0

For the object pixels it is given by


L 1
iP(i)
i T 1 L1
o (T ) L 1
iP(i) (3.14)
qo (T ) i T
P(i)
i T

The mean grey level for whole image (Grand Mean) is


L 1
iP(i) L 1
i 0
L 1
iP(i) (3.15)
i 0
P(i)
i 0

The variance of the background and object will be given by


T 1
(i b )2 P(i)
2 1 T1
b (T ) i 0
T 1
(i b ) 2 P(i) (3.16)
qb (T ) i 0
P(i)
i 0

L 1
(i o )2 P(i)
2 1 L1
o (T ) i T
L 1
(i o )2 P(i) (3.17)
qo (T ) i T
P(i)
i T

The grey level variance for whole image will be


L 1
2
(T ) (i ) 2 P(i) (3.18)
i 0

Within-class and Between-class variance

Within-class is given by

64
2 2 2
W (T ) qb (T ) b (T ) qo (T ) o (T ) (3.19)

Between-class variance is as follows


2 2 2
B (T ) qb (T )( b (T ) ) qo (T )( o (T ) ) (3.20)

It can be shown that


2 2 2
(T ) W (T ) B (T ) (3.21)

Determining the threshold

Since the total variance σ does not depend on T, the T minimizing


(T ) will be the T maximizing (T ) .
2 2
W B
2
We consider maximizing B (T ) , it can be rewritten as
2 [ (T ) qb (T )]2
B (T ) (3.22)
qb (T )qo (T )
To select the optimum threshold we start from the beginning of
the histogram and test each gray-level value for the possibility of
2
being the threshold T that maximizes B (T ) .
In this paper we have used this method to the Gabor Magnitude
feature histogram. It contains fingerprint’s region of interest (ROI)
as one class and the background as another class. One thing to be
noted is that we are not applying this method to the fingerprint
histogram but it is applied to the Gabor magnitude histogram. This
is discussed in next section where the algorithm is described.
C. Segmentation Using Gabor Magnitude

This algorithm is proposed for segmentation of fingerprints. As


these traits have unique ridge structures having certain spatial
frequency, we apply Gabor filter in 8 directions as discussed
previously, this gives the Gabor Magnitude using which we perform
segmentation. Gabor Magnitude is high for fingerprint region and
the low for the background. The algorithm has following steps.
1. Read the input image from the source.
2. Normalize the image grey levels (Eqn. 3.1)
3. Divide the image into W*W Blocks, Find Gabor Magnitude’s
Standard Deviation ‘Sd’ for each block, this gives 2-Dimensional
Gabor Magnitude Feature Map GM(i,j) (We have used W=16
pixels & GM(i, j)= standard deviation of Gabor magnitude of
respective block).

65
4. Scale the Gabor Feature Map values to fit in the range of [0-
255]. This is performed to generate a Gabor Magnitude
Histogram with Possible Range of [0-255]. We find GMmin, GMmax
of the Gabor Magnitude GM(i,j) , We get the scaled values as
follows
GM (i, j ) GM min
GM Scaled (i, j ) 255 (3.23)
GM max
5. Generate histogram for Scaled Gabor feature map GM Scaled (i, j ) .
6. Generate threshold for scaled Gabor feature map using Otsu’s
Threshold method as discussed above.
7. Generate a segmentation mask M for the image block M(i,j)=1,
means corresponding block(i,j) is object block (Region of Interest
ROI) else it is background block. Set all values in M to zero.
8. If GM Scaled (i, j ) Threshold the mark block (i,j) in input image as
background, M(i,j)=0 else mark it as foreground (ROI) M(i,j)=1.
9. Remove isolated holes (Zeros) in Segmented foreground (ROI)
by filling operation on the mask M(i,j) (Marking such blocks as
foreground). Morphological closing also can be performed on the
mask.
10. Display segmented image by displaying block with segmentation
mask M(i,j)=1( ROI blocks) .
We demonstrate this algorithm by applying it to a fingerprint
image. We use a fingerprint image of 320 X 480 pixels size as
scanned by the Futronics FS88 fingerprint Scanner. Fig. 3.15(a)
shows the normalized input image, Fig. 3.15(b) Shows
corresponding Gabor magnitude feature map. Red spots indicate
maximum values, otherwise brighter the block, higher is the
magnitude, and background blocks have very low values indicated
by black background.
Fig. 3.15(c) indicates the segmented fingerprint. This is
performed by calculating threshold from histogram shown in Fig.
3.15(d) by Otsu’s Method. The calculated threshold is 29 for current
case. We have tested this algorithm on various types of input
images. The results for these are discussed in the next section.

66
(a) (b) (c)

(d)

Fig. 3.15. Segmentation Process (a) Normalized Input Image (b) Gabor
Magnitude Feature Map (c) Segmented Fingerprint (d) Histogram for
Gabor Magnitude Feature map (Threshold value is 29)

D. Results

This algorithm is implemented on MS Visual Studio 2005 platform,


using Visual C# 2.0. The program was tested on AMD Athlon 64
processor running at 1.8 GHZ with 1.5GB DDRII RAM, operating
system is Windows XP SP3. For testing the algorithm performance
we have considered following classes of input data. This algorithm
was tested on 781 different fingerprints form following databases.
1. FVC 2000 Fingerprint Database (243 Images).
2. FVC 2002 Fingerprint Database (320 Images).
3. FVC 2004 Fingerprint Database (320 Images).
4. Fingerprint Images scanned by Futronics FS88 Optical
fingerprint scanner (Grayscale, 500dpi-320*480 Pixels, 257
Images).
5. Fingerprints taken on paper with black ink and scanned at 500
dpi (40 Images).
Testing summary is given in Table 3.3. & the results for fingerprints
are shown in Table 3.4. The last column shows the output for

67
current algorithm. The algorithm performs better than existing
techniques. The performance of modified gradient based method is
also good, but the threshold is highly varying and good quality
output is obtained by several tries. The threshold cannot be a fixed
value for any of these methods as it is clearly seen in the Table 3.4.
The unique advantage of current algorithm is that the threshold is
automatically decided and need not to be calculated manually, this
technique is also using a corrective mechanism by filling isolated
blocks caused by noisy areas. This is also having impact on quality
of segmented fingerprint. Fig 3.16 shows Graphical view of the
Segmentation Accuracy.
Table 3.3
Comparison of Segmentation Results
Accurately Accurately Poorly Poorly
Execution
Sr. Algorithm Segmented Segmented Segmented Segmented
Time ms
Number % Number %

Gabor
1 207/220 94 13/220 06 234
Automatic

2 Mean & 153/180 85 27/180 15 15


Variance
Direction
3 157/191 82 34/191 18 93
Based
4 Modified 173/190 91 17/190 09 1003
Gradients

Fingerprint Segmentation Methods Performance Comparison

100 94 91
90 85 82
80
70
60
50
40
30
15 18
20 9
10 6
0
Accurately Segmented % Poorly Segmented %
Gabor Automatic Mean & Variance Direction Based Modified Gradients

Fig. 3.16. Performance Comparison for Different Segmentation


Systems. Proposed Gabor Automatic Segmentation System has higher
Segmentation Accuracy (94%), Modified Gradients based
segmentation is also having good accuracy (91%) but it is slower.

68
Table 3.4
Fingerprint Segmentation Results
Input Image Mean Variance Direction Based Mod Gradient based Gabor Automatic
method [35] [200], [205] [206] Thresholding [45]

FS88 (500dpi)
T=40 T=0.340 T=300 T=29
Time=10ms Time =98ms Time = 970ms Time = 203ms

FVC2000
T=29
T=25 T=0.240 T=1 70
Time = 270ms
Time=10ms Time=50ms Time = 531ms

FVC 2002
T=25 T=0.500 T=120 T=33
Time=20ms Time=93ms Time = 980ms Time = 225ms

FVC 2004 T=20 T=100 T=29


T=0.170
Time=15ms Time=62ms Time = 687ms Time = 230ms

Scanned Finger T=10 T=0.300 T=12 T=29


500dpi Time=15ms Time=47ms Time=625ms Time = 280ms

Fingerprint by Ink on
Paper 500dpi T=40 T=0.200 T=28 T=29
Time=15ms Time=62ms Time = 828ms Time = 259ms

69
The processing time is also compared for the above methods; we
also compare the Gabor magnitude segmentation [35] with our
method. The results are shown in Table 3.3. The proposed
algorithm takes average 234ms for one fingerprint, as Gabor filter
requires complex calculation and we are using overlapped method
[35], the mean and variance based method is fastest method. This
can be a tradeoff between the performance and speed. Though the
algorithm needs more execution time the performance is best in the
class and timings are comparable with the modified gradient based
method. We can see that proposed segmentation method is
accurate and fast enough for real time systems.
The segmented fingerprint will be used for feature extraction as
we have clear fingerprint ridge structure available and the noisy
background is removed. We are interesting correlation based
fingerprint systems. Such systems have to find a core point or a
consistent registration point over a fingerprint. We discuss core
point detection method in the next section.
Core point Detection
In case of correlation based techniques, rather than detecting
minutiae, we go for global matching of ridge valley structure, here
we try to match the texture of fingerprint. Such techniques are
robust but less accurate [1], [3], [48], [80], [82]; but for matching
the global ridge structure, we need a consistent point for aligning
the fingerprints. This point is called as Registration Point, the
fingerprints have various ridge structures present on them, out of
which the core points can be detected and used as Registration
Point. In case of the fingerprint which don’t have core point we go
for detection of point with high curvature regions or Low Coherence
Strength. An example of Core point is shown in Fig. 3.17.
Jain et al. [36] have described a fingerprint matching system
based on Gabor filters, which uses circular tessellation around the
core point and extracts Gabor magnitude in 8 directions, this is used
as a feature vector, similar approach which uses a filter bank of
Gabor filters, they are using a set of filters to extract the fingerprint
feature vectors and this is used for the training of classifier.
Cavusoglu et al. [48] have proposed a robust approach which
operates on grey levels of fingerprint and calculates global feature
vector taking registration point at the reference. Success of all
these approaches is based on accurate determination of the core
point (Registration Point). We have developed a core point

70
detection technique based on multiple features derived from
fingerprints ridge structure.

Fig. 3.17. Two Fingerprints of Same Finger Showing the Core Point

A. Proposed Technique

The proposed technique is based on multiple features extracted


from a fingerprint the feature set includes
1. Coherence of Grayscale Gradient.
2. Poincare Index.
3. Angular Coherence.
4. Orientation Field Mask.
Using such multiple set of features makes the process robust and
accurate. We now discuss this technique in detail.

1. Coherence of Grayscale Gradient [197]

The Coherence is already discussed in section 3.1.1.2. We have


used the coherence information to find field strength of gradient
field generated by the ridge structure. The coherence is given by
Eqn. 3.8. The coherence value is low at the high curvature regions,
the core points are mainly high curvature regions hence this
property is very useful to find the location of core point.
We use the coherence map to calculate neighborhood averaged
coherence, in a region of 3X3 block neighborhood, this gives
smoother coherence map. The actual coherence and averaged
coherence is shown in Fig. 3.18, Red region indicate high

71
coherence, yellow and blue region indicate decreasing coherence.
The regions around core point have low value.

(a) (b) (c)

Fig. 3.18. (a) Original Fingerprint (b) Coherence Map (c) Neighborhood
Averaged Coherence Map

2. Poincare Index [29], [36]

Poincare index is also used for core point localization. We first


estimate the orientation field ‘O’ using the previously discussed
Optimized Neighborhood Averaging (ONA). Orientation field ‘O’ is
defined as an N x N image, where O(i, j) represents the local ridge
orientation at pixel (i, j). The Poincare index at pixel (i, j) enclosed
by a digital curve, which consists of a sequence of pixels that are on
or within a distance of one pixel apart from the corresponding
curve, is computed as discussed in [36] as follows:

1 N 1

Poincare(i, j ) * (k ) (3.24)
2 k 0

(3.25)

(k ) O( x (k ' )* y (k ' )) O( x (k )* y (k )) (3.26)

k' (k 1) mod N (3.27)

Where Ψx(.) and Ψy(.) are the x and y coordinates of closed


digital curve with NΨ Pixels.

72
This index gives presence of core point by evaluating orientation
angle over a closed digital curve. We first detect presence of core
point using the unique mask that operates on orientation field
(discussed in the next section) and then find Poincare index in the
selected 7X7 Block size. The Poincare index is high at high
curvature point or the core, the map of Poincare index at selected
part is shown below, this map is used to improve accuracy of core
point detection. This is shown in Fig. 3.19, where the actual core
point region and corresponding Poincare index map is shown. It
shows that in the core point region Poincare index is high.

Fig. 3.19. Selected Region and Corresponding Poincare Index Map,


Yellow Region Indicate High Poincare Index

3. Angular Coherence [40]

We sum cosine component of difference between orientation


angle of center block and the neighborhood of 5X5 blocks of
orientation image, the sum of cosine component is low at the core
point as the difference is high and the normal region where the
orientation is uniform the sum is high as all blocks tend to have
similar orientation. O(Cx, Cy) is the block under consideration O(i,j)
is the block in the 5X5 neighborhood. This is shown in Fig. 3.20.

C cos(O(Cx , C y ) O(i, j )) (3.28)


WxW

Fig. 3.20. Cosine Component of Angular Difference, Blue Square


Indicate Minimum Value in the Region

73
4. Orientation Field Mask [212]

This feature is used to locate the core point region. This method
is based on the fact that the core points are having specific pattern
of the orientation field, the patterns appear like a loop formed in the
region of core point. We are using a mask which gives maximum
magnitude of convolution in the region of core point.

(a) (b)

Fig. 3.21. Orientation Field at the Core Point (a) Core Point (b) Loop
Formed by the Orientation Field

An example of orientation field in the region of core point is


shown in Fig. 3.21. The angle in the region 1, 3 have range of (45
to 90 degrees) and the angles in the regions 2,4 have range of (0
to 45 degrees). If any such pattern exists in a fingerprint it can be
treated as a core point. We are using a mask which is empirically
generated to locate such pattern in the orientation field and
convolution with the orientation map gives maximum response at
the location of core point or loop type regions. The mask is a 9 X 9
dimensional array shown below in Fig.3.22. After applying this mask
at each element of the orientation map we get a magnitude which
corresponds to the nature of orientation field around that point for a
point O (i, j) in the orientation loop field this field strength is given
by
x W /2 y W /2
Loop Field Strength OM [ x, y ] O[i x, j y] (3.29)
x W /2 y W /2

Where W is the mask size (W=9 in our case), we have developed


this unique mask after observation of orientation fields of various
fingerprints, this mask efficiently locates a complete loop if present
in a fingerprint and locates the region of high curvature in case of
the fingerprints which don’t have core point. The loop field strength

74
is calculated for each element in the orientation map and next step
is to threshold this magnitude array.

1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
OM 0 0 0 0 0 0 0 0 0
1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1 1
Fig. 3.22. Orientation Field Mask

5. Proposed Core Point Detection Algorithm [212],[213]

Considering all above discussed features, we propose a formal


algorithm which combines them to estimate the core point location.
The core point detection mechanism proposed works in two main
stages.
1. Detect possible core point (Singularity) region. We mainly
consider Finger core but the mask used gives presence of
Arch in the form of high curvature ridges also.
2. Detect a single point in the region by weighted sum of
features discussed above. This step decides presence of core
point as a center of a 16X16 Pixels window.
The algorithm for core point detection is given as follows:
1. Read the fingerprint Image.
2. Preprocess & Segment the fingerprint image to remove errors
due to non-uniform pressure and illumination while scanning
of the fingerprint.
3. Estimate the orientation field by optimized neighborhood
averaging.
4. Calculate the Gradient Field Coherence, Poincare index,
Angular Coherence features & normalize these feature vectors
to a 0 to 1 range.
5. Calculate loop field Strength (Eqn. 3.29) at each point in the
orientation field, using the developed orientation field mask.
6. Normalize the loop field strength array in a range of 0 to 1.

75
7. Threshold the loop field strength array to locate the core
point, this threshold for our method ranges in the order of
(.34 to .45). Take the centroid of the region if it consists more
than one block.
8. If more than one core points regions are located then take the
region towards upper end or take centroid.
9. Separate 5X5 block size (Each block of size 16X 16 Pixels
considered here) area of the Fingerprint & its corresponding
parameters.
10. Using These Parameters determine the exact core point
location by weighted sum as discussed below. This first stage
(Step 1 to 9) gives the core point region as shown below in
Fig. 3.23.
11. We copy the region into a 5X5 size array and evaluate above
discussed features for the regions. Final core point is decided
by weighted sum of the above parameters for core point the
coherence & cosine component sum should be minimum and
Poincare index should be maximum, hence we find final region
weighted sum as
Core[x, y] = Coherence[x, y] + Angular Coherence [x, y] -
Poincare[x, y] (3.30)
This gives final region is shown in Fig. 3.24. The final region map is
shown as core point region, we select the minimum value from this
map as the core point block, the red block in the final map shows
selected core point in Fig 3.24 (c). Fig 3.24(a) shows the Feature
vectors and final Core point block.
B. Results
This algorithm is implemented on MS Visual Studio 2005 platform,
using Visual C# 2.0. The program was tested on AMD Athlon 64
processor running at 1.8 GHZ with 1.5GB DDRII RAM, operating
system is Windows XP SP3. Block size considered is 16 X 16 pixels.
For testing purpose we have used FVC 2000, 2002 & 2004
Databases [202], we have also used optical fingerprint scanner
Futronics FS88 for real-time application. The application was mainly
designed for Futronics FS88 Scanner with 500dpi fingerprint image
with resolution of 320*480 Pixels. The fingerprint data using FS88
scanner was collected from 60 individuals per subject 10

76
fingerprints from two thumbs. For testing the database was
unconstrained, i.e. it contained normal, dry & wet fingerprints.

Fig. 3.23. (a) Selected Fingerprint (b) Thresholded Orientation Point


Mask Output (c) Selected Core Region (d) Coherence Feature for 5X5
Region (b) Angular Coherence Feature (d) Poincare Index Feature

Fig. 3.24. (a) Core Point Feature Vectors (b) Selected Fingerprint (c)
Fingerprint with Marked Core Point

77
The fingerprints were of all type, having clear core as well as
without core, having arch or high curvature region. Overall the
conditions were random. One extra set is created for fingerprints
containing clear core point as shown in Fig. 3.24 (b). Total 200 tests
were performed on collected fingerprints and the results are as
follows.
Table 3.5
Core point Detection Test Results
Fingerprints
FS88 FVC
Parameter with clear
Database 2002,2004
Core point
Accuracy % 84 68 98
Average Error (Pixels) 5.57 6.13 2.50
Average Execution Time (ms) 500ms 490ms 520ms

Different test cases are shown in Table 3.6. We have tested this
algorithm on different types on fingerprints, mainly Fingerprints
having clear core points (Case 1 & 4), Fingerprints having High
Curvature region but no clear core point (Case 5) and Fingerprints
having weaker curvature region (Case 2 & 3).
We can see that in case of clear core point the region is
concisely given by orientation field mask output, finally the core
point detection is accurate observed average pixel error is 2.5
pixels (distance from actual core point).
In case of fingerprints with high curvature regions but no core
point we have to decide location of high curvature point. In
case 5 we can see that the orientation field mask output shows
a broader region. Average pixel error was observed in the
range of 4-6 pixels depending on the database used.
In case of fingerprints having no core point and have weaker or
low curvature region, even dry fingerprints. It becomes very
difficult to find the registration points, we have to rely on
coherence field strength only or depending on quality of
fingerprint we select the centroid. In such cases the average
pixel error is very high > 6 pixels and even algorithm fails. We
are using centroid of the fingerprint if the algorithm fails to
detect the core point.
Finally the area surrounding the selected Registration point
(Core point) is selected for feature extraction. We are selecting
144X144 pixels region as ROI.

78
Table 3.6
Core Point Detection Results for Different Fingerprints
Orientation Core point
Segmented Field Mask Feature Vector Segmented Core
Coherence Map
Fingerprint Output Thresholded point region
(Thresholded) Output

(1)

(2)

(3)

(4)

(5)

79

You might also like