Keywords

1 Introduction

Fingerprint analysis is done on the many standard databases available online [1]. This work is focused on creating a fingerprint database extracted from the collected real-time fingerprint images. This database is called the real-time database. The fingerprints are collected from a group of students of Silicon Institute of Technology, Bhubaneswar, through a fingerprint sensor from five basic classes of the Henry system. The fingerprint images are captured via available fingerprint sensors in the market. So a collection of 50 fingerprints sensed from five basic classes are stored, and the database finally in terms of extracted features is created for further processing tasks. In this work, the arch and tented arch (class 4 and class 5) are considered as one class as class4 to avoid misclassification. So here the database consists of 4 classes of fingerprints. A subset of the samples is present in Fig. 1.

Fig. 1
figure 1figure 1

a Real-time database of 50 fingerprints. b Real-time database images of left loop fingerprints. c Real-time database images of right loop fingerprints. d Real-time database images of whorl fingerprints. e Real-time database images of arch fingerprints. f Real-time database images of tented arch fingerprints

In Fig. 1a–f, we can see the different classes of fingerprints given with respect to their class value. Scrutinizing this pattern at various levels discloses various types of characteristics that are global feature and local feature. The features are collected in terms of feature vectors of each individual fingerprint.

2 Feature Extraction

The ‘Feature’ is the minute physical detail present in the fingerprint in the form of ridges and furrows which define the category of fingerprint in terms of class details. Each fingerprint is different from the other with these minute details which need to be extracted using different methods to identify the fingerprint [2, 3]. The process of drawing out the hidden attributes from the 2-dimensional image is called feature extraction.

A fingerprint can be described by using quantitative measures associated with the pattern flow or oriented textures called features of a fingerprint [4]. Analysis of the oriented texture is an important aspect of research in practical applications. Farrokhina et al. [5] described the Gabor filter bank method that can be used to describe the global representation of texture by the image decomposition method. Daugman et al. [6] have represented the translated and scale-invariant texture representation for human iris using the Gabor wavelet coefficient method, but it was not considered to be an efficient one, as it is not rotation-invariant. Prabhakar et al. [7] presented a method for fingerprint texture representation by extracting the reference point, and the region surrounding the reference point is further divided into cells [8]. The information contained in each cell is further extracted using spatial frequency channels and represented in an ordered fashion called features. The steps involved in the Gabor filter bank using spatial frequency representation of features are as shown in Fig. 2 [9]:

Fig. 2
figure 2

Feature extraction process

  • Image Acquisition (fingerprint capture process),

  • Normalization and segmentation of the pixels of the fingerprint image,

  • Orientation field estimation from the normalized image,

  • Estimation of the core point from the orientation field,

  • Circular division of the selected portion of the image, and

  • Gabor filtering of the sectors in different angular directions.

The collection of features in all angles to form the feature vector or fingercode [10].

During feature extraction, we have followed the following steps in this research. Here, a generic technique is proposed for representing fingerprint texture that lies in collecting one (or more) invariant points of reference of the texture following its orientation field [7, 11]. The core point or point of reference is divided into six sectors. Those six sectors are again sub-divided into six subsectors in each sector forming 36 subsectors. Each sector is then analyzed for the information present in the spatial frequency channels. Features are collected from the subsectors and used as the representation of the fingerprint class [12]. Now, these representations of features represent the local information of the tessellated sector that reflects the invariant characteristics of the global relationships present in the local fingerprint patterns.

The following steps are used in the proposed feature extraction algorithm.

First, the core point (center point) which is also called the reference point is defined, and taking this point as the center, the surrounding region is spatially tessellated into sectors.

Then, convert the tessellated image in the form of component images that describes the ridge structure, and from the component images generate the feature vector combining the sectors.

2.1 Feature Code Generation

The steps of the feature code generation algorithm are as follows.

Select a reference point or core point for spatial tessellation (circular in our case) around the reference point taking it as the center. It is called our region of interest (ROI). Divide the ROI into a set of component sub-images, to preserve global ridge and furrow structures called sectors. Calculate the standard deviation in each sector to create the code [13, 14].

2.2 Core Point Location

The orientation field is smoothened in the local neighborhoods and defined as O’. Initialize E, an image which contains the sine components of the smoothened orientation field

$$\mathrm{E}\left(\mathrm{i},\mathrm{j}\right)=\mathrm{sin}\left({\mathrm{O}}^{\mathrm{^{\prime}}}\left(\mathrm{i},\mathrm{j}\right)\right)$$
(1)

For every pixel in E(i, j), integrate pixel intensities into regions R1 and R2 as shown in Fig. 4 and assign the corresponding pixels by the value of their difference.

$$\mathrm{A}\left(\mathrm{i},\mathrm{j}\right)=\sum_{\mathrm{R}1}\mathrm{E}\left(\mathrm{i},\mathrm{j}\right)-\sum_{\mathrm{R}2}\mathrm{E}\left(\mathrm{i},\mathrm{j}\right)$$
(2)

Now the maximum value is calculated and is defined as the core point (Fig. 3).

Fig. 3
figure 3

Detected core point (red dot)

Fig. 4
figure 4

Regions for integrating pixel intensities

2.3 Tessellation

Tessellation is a process of dividing the circular extracted orientation field into different equal-area sectors as shown in Fig. 5. It is mainly used to make the fingerprint features rotation-invariant [7, 15]. The equations show the formula to achieve tessellated output.

Fig. 5
figure 5

Tessellated fingerprint image

$${S}_{i}=\left\{\left(x, y\right)|\begin{array}{c}b\left({T}_{i}+1\right)\le r\le b\left({T}_{i}+2\right), {\theta }_{i}\le \theta \le {\theta }_{i+1},\\ 1\le x\le N, 1\le y\le M\\ \end{array}\right\}$$
(3)

where

\({T}_{i}=idivk\),

\({\theta }_{i}=\left(imodk\right)\left(\frac{2\pi }{k}\right)\),

\(r=\sqrt{{\left(x-{x}_{c}\right)}^{2}+{\left(y-{y}_{c}\right)}^{2}}\), \(\theta ={\mathrm{tan}}^{-1}\left(\frac{y-{y}_{c}}{x-{x}_{c}}\right)\)

2.4 Filtering

The Gabor filtering is done in the frequency domain, which can be represented by the following expression:

$$\mathrm{G}\left(\mathrm{x},\mathrm{ y};\mathrm{f},\uptheta \right)=\mathrm{exp}\left\{-\frac{1}{2}\left[\frac{{\mathrm{x}}^{2}}{{\updelta }_{\mathrm{x}}^{2}}+\frac{{\mathrm{y}}^{2}}{{\updelta }_{\mathrm{y}}^{2}}\right]\right\}\mathrm{cos}\left(2\mathrm{\pi f}{\mathrm{x}}^{\mathrm{^{\prime}}}\right)$$
(4)

Figure 6 shows the output of the Gabor filter for different angle orientations. For the pixels in sector Si, the normalized image is defined as

Fig. 6
figure 6

Output of Gabor filters of window 33 × 33 pixels ab 45° c 90°, and d 135°

$${N}_{i}\left(x,y\right)=\left\{\begin{array}{c}{M}_{0}+\sqrt{\frac{\left({V}_{0}\right)\times {\left(I\left(x,y\right)-{M}_{i}\right)}^{2}}{{V}_{i}}}, ifI\left(x,y\right)>{M}_{i}\\ \\ {M}_{0}-\sqrt{\frac{\left({V}_{0}\right)\times {\left(I\left(x,y\right)-{M}_{i}\right)}^{2}}{{V}_{i}}}, otherwise\end{array}\right.$$
(5)

where M0 and V0 are desired mean and variance values, respectively [16, 17]. In this work, we have taken M0 and V0 to be 100. Mi and Vi can be determined as follows:

$${M}_{i}=\frac{1}{{n}_{i}}\sum_{k=1}^{ni}{I}_{k}(x,y)$$
(6)
$${V}_{i}=\frac{1}{{n}_{i}}\sum_{k=1}^{ni}{({I}_{k}\left(x,y\right)-{M}_{i})}^{2}$$
(7)

where Ik(x,y) is the kth pixel in sector Si.

The normalization is done sector-wise. Normalized and filtered images are shown in Fig. 7.

Fig. 7
figure 7

a Normalized image b Image component of 0° c Image component of 45° d Image component of 90° e Image component of 135°

2.5 Feature Vector

Each sector \(S_i\) is further sub-divided into six subsectors. So for the given six sectors, we have thus 36 subsectors. The core point acts as one subsector and the region outside the circular region is also considered as another subsector. So together it forms 38 subsectors for which the component images in four angle directions (0°, 45°, 90°, 135°) is calculated. The feature vector or feature code defines the standard deviation \(F_{i\theta }\) of the collected component images for sector Si and is given as

$${F}_{i\theta }=\sqrt{\sum_{{k}_{i}}{\left({C}_{i\theta }\left(x,y\right)-{M}_{i\theta }\right)}^{2}}$$
(8)

where ki represents the number of pixels present in Si and Miθ represents the mean pixel intensity present in Ciθ (x, y). Since we have considered the innermost circle as one sector and the region lying outside the ROI as another sector, the 152-dimensional feature vectors are created as shown in Fig. 8.

Fig. 8
figure 8

Features of different fingerprint images

3 Statistical Analysis of the Dataset

Statistical analysis is the method of collecting, exploring, and presentation of large data for discovering different patterns in the form of trends [6, 18]. This analysis process is used for research and other Government as well as industrial applications for decision-making, for example, mean defines the average value where standard deviation defines the spread of the values. Basically, standard deviation shows the spread of the data toward high or low values. A high value represents more spreading and low values represent the numbers close to average. The margin of error is double the standard deviation. Researchers have considered that the values that are bigger than two or three times of the standard deviation are important values [3, 19]. The statistical analysis of the fingerprints is given in Table 1.

Table 1 Statistical features showing mean and variance of feature code

Table 1 shows the collected mean and standard deviation values collected from the feature vector for different angle orientations and finally for total feature vector.

The mean and standard deviation plots are used to check the variation of mean in different groups of data as done by the analyst. Mean plots are used with ungrouped data to determine the change in mean value with time. From Fig. 9, we can see that the mean plot of different angular orientations is almost the same whereas the total feature vector combining the angles is changing continuously. Mean plots are used along with standard deviation plots. The mean plot checks for a shift in location whereas, the standard deviation plot checks for shifts in scale. Also, Fig. 10 reflects the change in variance with the shift in scale value for the feature vectors.

Fig. 9
figure 9

Statistical Features (mean) of different angle oriented fingerprint feature code in 9a to 9e. a Mean of 0 degree features. b Mean of 45 degree features. c Mean of 90 degree features. d Mean of 135 degree features. e Mean of total feature vector

Fig. 10
figure 10

Statistical Features (variance) of different angle oriented fingerprint feature code in 10a to 10e. a Variance of 0 degree features. b Variance of 45 degree features. c Variance of 90 degree features. d Variance of 135 degree features. e Variance of total feature vector

4 Conclusion

Here, we have performed the feature extraction of real-time fingerprint images using the Gabor filter bank method. Here, each fingerprint is divided into 6 sectors which are again divided into six equal divisions to form 36 subsectors. These 36 subsectors including the core-point as one subsector and the outside region as one subsector form 38 subsectors and each subsector is again passed through the Gabor filter bank for four different angles of 0, 45, 90, and 135 degrees. Each angle shows the extracted feature in that direction and combining the four angular features the feature vector or finger code is formed. This generated finger code is used for classification using different classification algorithms.