7
International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE) Volume 4, Issue 1, January 2015 14 ISSN: 2278 909X All Rights Reserved © 2015 IJARECE Design and Implementation of Finger Print Core Point Detection on FPGA ManasaBT 1 , Kalpavi CY 2 , Anitha HT 3 123 Visvesvaraya Technological University 123 Department of Electronics and Communication Engineering, Sambhram Institute of Technology, Bangalore 560097 Abstract- Fingerprint recognition is a method of biometric authentication that uses pattern recognition techniques based individual’s high resolution fingerprints images. Singular point recognition is the most vital task of fingerprint image classification operation. There are two types of singular points called core and delta points which are claimed to be sufficient to classify the fingerprints. Most of biometrics based personal identification systems run on high performance computer based platforms, which execute a set of complex algorithms implemented in software. Those solutions cannot be applied to small, low cost and low power embedded systems without floating point arithmetic unit. The proposed work aims at formulating a more accurate core point on fingerprint image and produces a better localization of core point avoiding any false points on a fingerprint image. The method applied is based on the enhanced fingerprint image orientation reliability. Algorithm has been developed in Matlab and to reduce the computation time and to implement it on Hardware some of the modifications has been done on original algorithm such as complex trigonometric functions executed with the help of Cordic algorithm, and division and multiplications with bit shift operations. The algorithm has been coded in Verilog and implemented on Nexys3 Digital Circuit Board with development platform based on the Xilinx Spartan 6 LX16 FPGA. Keywords Fingerprint, Cordic Algorithm, Gradient Calculation, Orientation Estimation, Core Point. I. INTRODUCTION Finger print have been used as a method of recognizing individuals due to the favorable characteristics. In recent years, as the importance of information security is highly demanded, finger prints are used for the applications related to user identification and authentication. At a universal level the finger print pattern displays the area that ridge lines assume unique shapes. Such an area or region with distinctive pattern of curvature, bifurcation, and termination is known as a singular region and is classified into core point and delta point. The singular points are the points where the orientation field is discontinuous. The core is defined as the point where orientation of the ridges tends to diverge and Deltas are the points where orientation of the ridges tends to converge. Sometimes core points are defined as the points where innermost ridge loops are at their sharpest. Delta points are the points from which the patterns i.e., loop, delta and whorl deviate. The finding of the singular points (cores and deltas) is an important and challenging task in automatic finger print classification and identification. Core position can be used for direction registration [1] and image adjustments [2]. These changes reduce the influence of dislocation of the finger print on the image and increase the correctness of the recognition system. The number of cores and delta and the relative position between these points are used for finger print classification and recognition [3] and in turn improves the robustness of the system in presence of changes introduced by dislocation and revolution on the image. Figure shows both types of singular points. Human finger prints can be classified as Arch, TentArch, Left Loop, Right Loop and Whorl. This grouping is very important for huge database system because the identification of the type of finger print is performed as a first step and successively the input finger print is only matched against finger prints belonging to the same type. This leads to a dramatic reduction of the search space. At global level, the ridge line flow delineates a pattern similar to one of those shown in figure below. Singular points called loop (core) and delta (denoted as squares and triangles, respectively in figure), act as control points around which the ridge lines are “wrapped”. Singular points and coarse ridge line shape are useful for finger print classification and indexing. External finger print shape, frequency image andorientation image also belong to the set of structures that can be detected at the global level.

Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

Embed Size (px)

Citation preview

Page 1: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

14 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

Design and Implementation of Finger Print Core Point Detection on FPGA

ManasaBT1 , Kalpavi CY

2, Anitha HT

3

123 Visvesvaraya Technological University

123 Department of Electronics and Communication Engineering,

Sambhram Institute of Technology,

Bangalore 560097

Abstract-

Fingerprint recognition is a method of biometric

authentication that uses pattern recognition techniques based

individual’s high resolution fingerprints images. Singular

point recognition is the most vital task of fingerprint image

classification operation. There are two types of singular

points called core and delta points which are claimed to be

sufficient to classify the fingerprints. Most of biometrics

based personal identification systems run on high

performance computer based platforms, which execute a set

of complex algorithms implemented in software. Those

solutions cannot be applied to small, low cost and low

power embedded systems without floating point arithmetic

unit.

The proposed work aims at formulating a more accurate

core point on fingerprint image and produces a better

localization of core point avoiding any false points on a

fingerprint image. The method applied is based on the

enhanced fingerprint image orientation reliability.

Algorithm has been developed in Matlab and to reduce the

computation time and to implement it on Hardware some of

the modifications has been done on original algorithm such

as complex trigonometric functions executed with the help

of Cordic algorithm, and division and multiplications with

bit shift operations. The algorithm has been coded in

Verilog and implemented on Nexys3 Digital Circuit Board

with development platform based on the Xilinx Spartan 6

LX16 FPGA.

Keywords – Fingerprint, Cordic Algorithm, Gradient

Calculation, Orientation Estimation, Core Point.

I. INTRODUCTION

Finger print have been used as a method of recognizing individuals due to the favorable characteristics. In recent years, as the importance of information security is highly demanded, finger prints are used for the applications related to user identification and authentication. At a universal level the finger print pattern displays the area that ridge lines assume unique shapes. Such an area or region with distinctive pattern of curvature, bifurcation, and termination is known as a singular region and is classified into core point and delta point. The singular points are the points where the orientation field is discontinuous.

The core is defined as the point where orientation of the ridges tends to diverge and Deltas are the points where orientation of the ridges tends to converge. Sometimes core points are defined as the points where innermost ridge loops are at their sharpest. Delta points are the points from which the patterns i.e., loop, delta and whorl deviate.

The finding of the singular points (cores and deltas) is an important

and challenging task in automatic finger print classification and

identification. Core position can be used for direction registration

[1] and image adjustments [2]. These changes reduce the influence

of dislocation of the finger print on the image and increase the

correctness of the recognition system. The number of cores and

delta and the relative position between these points are used for

finger print classification and recognition [3] and in turn improves

the robustness of the system in presence of changes introduced by

dislocation and revolution on the image. Figure shows both types

of singular points.

Human finger prints can be classified as Arch, TentArch,

Left Loop, Right Loop and Whorl. This grouping is very

important for huge database system because the

identification of the type of finger print is performed as a

first step and successively the input finger print is only

matched against finger prints belonging to the same type.

This leads to a dramatic reduction of the search space.

At global level, the ridge line flow delineates a pattern

similar to one of those shown in figure below. Singular

points called loop (core) and delta (denoted as squares and

triangles, respectively in figure), act as control points around

which the ridge lines are “wrapped”. Singular points and

coarse ridge line shape are useful for finger print

classification and indexing. External finger print shape,

frequency image andorientation image also belong to the set

of structures that can be detected at the global level.

Page 2: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

15 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

Finger print patterns as they appear at a coarse level: a) left

loop, b) right loop, c) whorl, d) arch and e) tented arch;

square denote loop-type singular points and triangles delta-

type singular points.

II.PROPOSED ALGORITHM

(i) Obtain the fingerprint image from fingerprint

reader.

(ii) Determine the x and y magnitudes of the gradients

Gx and Gy at each pixel.

(iii) Estimate local orientation using least square

contour method and removal of noise using

Wiener2 filter with the help of MatLab functions

(iv) Find the direction of gravity of progressive

blocks.

(v) Fine tune the orientation field.

(vi) The blocks with slope values ranging from 0 to

pi/2 are located. Then a path is traced down until

we come across a slope that is not ranging from 0

to pi/2 and that block is marked.

(vii) The block that has the highest number of marks

will compute the slope in negative y direction and

output on x and y position which will be the core

point. These are implemented in HDL, and

synthesized using Xilinx tool, and obtained bit file

is dumped into FPGA kit and result is seen on the

display unit which is connected to kit.

As shown in above figure, fingerprint images are

captured using fingerprint reader and it is converted

into hex file using MatLab functions. And

orientation flow is estimated using least square

method and fine tune using binarization stage 1 and

2 is done to avoid any spurious core points and

irregularities occurred because of noise. At the end

core point is detected and its x and y coordinates

are displayed on the display unit.

Detailed description about the block diagram

Fingerprint Reader

It uses optical scanning skill, which is a process starts when we place our finger on a glass plate. The scanner has its own light source, naturally an array of light emitting diodes, to brighten the ridges of the finger. It generates the image with darker areas representing more reflected light (the ridges of the finger) and lighter areas representing less reflected light (the valleys between the ridges).

The fingerprint is optically scanned directly from finger and

the subsequent image is focused onto a small chip. The chip

transforms the focused image into a digital file that can be

processed, stored and compared with other finger print images.

Convert Image to hex file

Convert RGB (RED GREEN BLUE) to gray image using MATLAB functions:

(i) In this block using MatLab functions RGB (true color) image is converted in to gray scale intensity by eliminating hue and saturation information while retaining the luminance. (Hue: refers to specific tone of color, saturation: refers to purity or intensity of color, luminance or brightness: refers how much white or black is contained within a color.

(ii) Gray scale image is one which each pixel can be viewed as a single sample containing intensity information.

(iii) It is the result of light at each pixel in a single band of the electromagnet spectrum.

(iv) I = rgb2gray ( ), converts RGB values to gray scale values by forming a weighted sum of the R, G and B components. (0.2989 *R + 0.5870 *G + 0.1140 *B).

Gradient Calculation:

(i) Gradient of an image measures how it is changing. It provides two pieces of data. The magnitude of the gradient tells us how quickly the image is changing. While the direction of the gradient conveys us the direction in which the image is changing most rapidly.

(ii) Since the gradient has a direction and a magnitude, it is to encode this information in a vector.

Page 3: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

16 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

(iii) The image gradient is important in boundary detection because images often change most quickly at the boundary between objects.

(iv) This is done by computing the image derivative in the x and y directions with the help of MatLab functions

(v) [GxGy] = gradient (image); which returns the x and y components of the two dimensional number gradient. Gx = ∂(image) / ∂x Gy = ∂(image) / ∂y.

Orientation Estimation And Noise Filtering Using Wiener2 Filter:

(i) Orientation flow is estimated using least square contour alignment method. The important advantage of this method is that the obtained values are continuous.

(ii) As the gradients are the orientations at pixel scale, the orientation of ridge stays orthogonal to average phase angle of changes pixels value indicated by gradients.

(iii) The orientation of an image block is determined by averaging the square gradients to avoid the orientation ambiguity.

(iv) Wiener2 filter is a 2D adaptive noise removal filter. It is a low pass filter which filters a grayscale image that has been degraded by constant power additive noise. Wiener 2 estimates the local mean and variance around each pixel.

µ = 1/ NM ∑n1n2€η (a(n1,n2)) and σ 2 = ∑n1n2€η (a

2(n1,n2) - µ

2) and

b(n1,n2) = µ + (σ2- v

2/ σ2) (a(n1,n2) - µ) where v

2 isthe

noise variance. If noise variance not given, wiener2 uses the average of the local estimated variances.

a. Vy = orientnum = wiener2 (2* Gx*Gy,[3 3] );

b. Vx = orientdenom = wiener2 ((Gx^2)-(Gy^2),[3 3]), obtained as hex files.

Further blocks in block diagram as shown in Fig are implemented by writing code in HDL language. To estimate the local orientation, some of the trigonometric functions has to be calculated, but as far Verilog HDL language is concerned no such functions are available, hence in our project we have used CORDIC algorithm to calculate these functions.

CORDIC Algorithm:

In my project CORDIC algorithm is used to calculate trigonometric functions such as Tan

-1(θ), Sin (θ), Cos (θ).

CORDIC: Coordinate Rotation Digital Computer:

(i) It calculates the trigonometric functions of sine, cosine, magnitude, and phase to any desired precision[10].

(ii) CORDIC revolves around the idea of rotating the phase of a complex number by multiplying it by a succession of constant values. However the multiplier can all be power of 2, thus in binary arithmetic they can be done using just shifts and adds, no actual multiplier is needed.

(iii) When hardware multiplier is unavailable eg. In a microcontroller or when we want to save the gates required to implement one, eg. in FPGA.

Local Orientation, Finetuning and Detection of Core Point

Diffusions are useful for image processing because they provide a suitable way of smoothing noisy data, examining images at multiple scales, and enhancing discontinuities.

The direction of gravity of progressive blocks is then determined, using the equations.

As we recognize that singular points are the points where the

orientation field is discontinuous, hence orientation plays a vital

role in estimating the core point on a finger print image.

Henceforth, we need another mechanism to fine tune the

orientation field so as to avoid any false core points and the

irregularities that has occurred because of noise. The orientation

field for coarse core point is then fine-tuned by adjusting

orientation using the following:

Hence we calculate the value θ, which is the orientation value of the image.

The blocks with slope values ranging to 0 to 90o are located. Then

a path is traced down until we meet a slope that is not ranging from

0 to 90o and that block is marked. The block that has the highest

number of marks will compute the slope in negative y direction

and output on x and y position which will be the core point.

Page 4: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

17 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

(i) As shown in flow chart above,A and B values are the direction of gravity of progressive blocks which is determined with the help of oriennum and orienden.Initially processor waits for enable signal from cram memory, once it is high , starts calculating the address and reads data from the address memory and then add the data with previous data and check the counter register, if values matches with count register exists from the loop as A and B values.

(ii) With the help of A and B values tan inverse is found using cordic algorithm and fine tuning is done with the help of above mentioned equations 2.

(iii) After finding θ values ,binarize the whole image, which means point out the address less than 90

o as

one in the memory location simultaneously calculate its sine and cosine values with the help of cordic algorithm.

(iv) And calculate the direction in which each block is moving Xdir and Ydir with the help of Bi ,Bj and Sine and Cosine values and called as binarise1 memory.

(v) In flow chart shown in above figure main aim is to detect the core point and its software implementation is shown.

(vi) Once again Bi, Bj are required and these values are stored in temporary variables x and y,Bi and Bj values will become address for Xdir and Ydir memory, Content of Xdir and Ydir pointed by Bi and Bj will become address for binarize 1 and few conditions are checked in order to trace down the path until slope is encountered which is not ranging from 0 to 90

o.

Flow Chart of core point conditions

Flow chart with Displaying X and Y values

(vii) Next step is to find the block which has the highest

number of marks as shown in shown in above flow chart.

Block with highest number of marks is calculated, its

address is obtained and its theta value is calculated and X

and Y positions are found out by finding cosine and sine

values of theta. And it is displayed as a black dot on the

display unit with the fingerprint image.

Hardware setup and steps to download code into kit:

Connect the fingerprint reader to laptop via USB port as shown in figure below

b) A red light appears on the fingerprint reader which indicates that it has been connected properly and its device driver software is working properly.

c) After placing finger on the fingerprint reader, fingerprint image is captured and stored in the laptop

d) Now captured image is converted into hex file using MatLab software.

e) These hexes file acts as input to Xilinx tool, and converted into bit format.

Page 5: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

18 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

f) And this bit file is downloaded into FPGA Spartan 6 kit via micro usb port

g) The core point for the respective fingerprint is seen on the TFT display unit which is connected to kit via VHDC connector

EXECUTION AND RESULTS

In my project fingerprint is captured with help of Digital

Persona U.are.U

4500 Reader. Finger is placed on the glowing window and the reader quickly scans our fingerprint automatically and provides image in JPEG format. As shown figure below

Fingerprint Reader Output

MatLab software is used to convert the JPEG image to gray scale image and also used to obtain hex files. Two hex files are generated. One is used to obtain the simulation result and the other one used for implementation on FPGA kit. Figure shown below with MatLab code and Fingerprint image taken from reader.

MatLab code with fingerprint image as input

The Hex file generated using MatLab is given as input to the code return in Verilog and simulated in ModelSim 10.2c version. Hex file is shown in figure below

Hex file

Now this hex file is given as input to ModelSim 10.2c version. Codes are written in such a way that core point is obtained as X and Y coordinates. As shown in Figure below

ModelSim output with Xand Y coordinates

Now this Xand Y coordinates are used to locate core point in fingerprint image. This can be done with the help of MatLab software. As shown in

Page 6: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

19 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

figure above and Core point marked with red dot on fingerprint image as shown in Figure below

Loading resultant X and Y in to the original image

Core point

ModelSim output is used to verify the output obtained on Hardware TFT display unit. This can be done by considering another hex file. Hexfile which is needed should be obtained in a format as described in figure below

Hex file

This hex file is used as input to Xilinx tool and programming bit file is generated and dumped into the kit and output is seen on TFT display unit connected to Nexys3 Board. As shown in imagebelow

Core point detected on TFT display unit.

Synthesis report

Figureshows the usage of the flip flops, logic blocks and memory for the core point detection design. From the summary table it can be seen that the utilization percentage of the flip flops is only 11%. Also, the utilization percentage of the LUT is equal to 73%. And memory is only 1%.This is because in this project to store the hex files and orientnum memory, external inbuilt memory on the Nexys 3 board called Cellular Ram is used.

Experiments were conducted on nearly 100 fingerprint images. Algorithm showed 90% accuracy on different fingerprint images. The judgment of accepted core point was eye observed. Of those 100 images, the algorithm fails 10 images in locating the core point. Major fails are according to the poor image quality

CONCLUSION, FUTURE SCOPE AND ITS APPLICATION

Page 7: Design and Implementation of Finger Print Core Point ...ijarece.org/wp-content/uploads/2015/01/IJARECE-VOL... · of complex algorithms implemented in software. Those ... power embedded

International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE)

Volume 4, Issue 1, January 2015

20 ISSN: 2278 – 909X All Rights Reserved © 2015 IJARECE

Conclusion

The proposed technique used in this project can localize the fingerprints at a good achievement. Experiments have been performed on several fingerprints from different fingers... The results have been obtained in MODELSIM and in the DISPLAYUNIT and cross verified in MATLAB, the core point positions henceforth obtained are used to narrow down the search when using a huge database of fingerprint images in applications like biometrics security, forensics etc.. But the algorithm failed its core point detection for images having a very poor quality and those fingerprints which are too oily or wrinkled.

Future Scope

Algorithm used in my project helps us to consistently and precisely locate the singular points in fingerprint images. The method applied is based on the enhanced fingerprint image orientation reliability. Our future work will focus on developments in locating the secondary singular points of fingerprint images and classifying the fingerprints based upon the location of the singularities so that the computational time for matching fingerprints in a huge database may reduce.

Applications

Fingerprint Classification

Fingerprint Identification

Fingerprint Verification

Fingerprint Authentication

Biometric security systems

Forensic lab

REFERENCES

[1] KeokanlayaSihalath, SomsakChoomchuay, and Kazuhiko Hamamoto,“Core Point Identification with Local Enhancement”, JCSSE, May 13-15, 2009(Vol. 1)

[2] Mohammed S. Khalil, Dzulkifli Muhammad, Muhammad K. Khan and Khaled Alghathbar, “Singular Point Detection using Fingerprint Orientation Field Reliability” , International Journal of Physical Sciences Vol. 5(4), pp. 352- 357, April 2010

[3] Wang Feng, Chen Yun , Wang Hao, Wang Xiu-you “Fingerprint Classification Based on Improved Singular Points Detection and Central Symmetrical Axis” , 2009 International Conference on Artificial Intelligence and Computational Intelligence

[4] Filipe Magalhães, Hélder P. Oliveira, Aurélio C. Campilho, “A New Method for the Detection of Singular Points in Fingerprint Images” , 978-1- 4244-5498-3/09©2009 IEEE

[5] Galton F., Fingerprint, McMillan, London, 1892.

[6] Henry E., “Classification and uses of fingerprints” , Rout ledge, London, 1900.

[7] Weiwei Zhang, YangshengWang , “Core-Based Structure Matching Algorithm of Fingerprint Verification” , National Laboratory of Pattern Recognition, Institute of Automation,Chinese Academy of Sciences

[8] TomohikoOhtsuka, Daisuke Watanabe, Hiroyuki Aoki1, “Fingerprint Core And Delta Detection By Candidate Analysis” , MVA2007 IAPR Conference on Machine Vision Applications, May 16-18, 2007, Tokyo, Japan

[9] S.Chikkerur, C. Wu and Govindaraju, “A Systematic Approach for Feature Extraction in Fingerprint Images”, ICBA 2004.

[10] Sine/Cosine using CORDIC Algorithm Prof. Kris Gaj Gaurav Doshi, Hiren Shah

[11] Ray and Andraka, 2011 Ray Andraka. A Survey of CORDIC Algorithms for FPGA based Computers. Andraka Consulting Group, Inc, North Kingstown, RI02852.

[12] Nexys3™ Board Reference Manual Revision: January 7, 2013

[13] Async/Page/Burst CellularRAMTM 1.5 MT45W8MW16BGX (DATA SHEET FOR CRAM)

[14] VmodTFT™ Reference Manuall Revision: November 11, 2011

AUTHOR PROFILE

I have completed B.E (Electronics and Communication Engineering) in 2007 and M.Tech (VLSI Design and Embedded System) in 2014.I also have 3.5 years of teaching experience in engineering colleges. My interest includeASIC Design, CMOS VLSI Design, RTOS, Low Power VLSI Design, Advanced Microcontroller (ARM) .