signature identification matlab synopsis

21
1 Objective The aim of this project is to study and design an Efficient Signature Identification system in MATLAB. Project objectives are listed as follows: To study and understand Signature Identification system using neural network. To design a model for an ideal Signature Identification system. To enhance the model for a high-speed Signature Identification system. To develop a program in MATLAB based on the designed model. To create a database set of signature images. To validate and test the Signature Identification system. To perform tests for program optimization and accuracy. To demonstrate an effective and Signature Identification system.

Upload: aditya-mehar

Post on 24-Apr-2015

1.627 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Signature Identification MATLAB Synopsis

1

Objective The aim of this project is to study and design an Efficient Signature Identification

system in MATLAB. Project objectives are listed as follows:

• To study and understand Signature Identification system using neural network.

• To design a model for an ideal Signature Identification system.

• To enhance the model for a high-speed Signature Identification system.

• To develop a program in MATLAB based on the designed model.

• To create a database set of signature images.

• To validate and test the Signature Identification system.

• To perform tests for program optimization and accuracy.

• To demonstrate an effective and Signature Identification system.

Page 2: Signature Identification MATLAB Synopsis

2

Abstract

Automatic recognition of signatures is a challenging problem which has received

much attention during the recent years due to its many applications in different fields.

Signature identification is one of those challenging problems and up to date, there is

no technique that provides a robust solution to all situations and different applications

that signature identification may encounter.

It is a hard problem to decide whether two signatures given as scanned binary images

are written by the same person or not. Our major project gives a complex strategy to

solve this problem including the preprocessing of the scanned image, conversion from

RGB to Gray scale, cropping the images, image resize, reshaping of images and a

decision process using a back propagation neural network model. Signature

Identification focuses on still images, which can be broadly grouped into image-based

and feature-based approaches.

Signature identification is commonly used in applications such as human-machine

interfaces, automatic access control systems, security purposes which involve

comparing an image with a database of stored signatures in order to identify the

signature. This project involves the design and development of an efficient signature

identification system. The pattern recognition algorithm designed for this project is

based on general architecture of Signature identification systems. Program source

code and simulation is executed in MATLAB.

Page 3: Signature Identification MATLAB Synopsis

3

Chapter-1 Introduction

The problem of signature identification basically means to decide whether or not a

current test signature corresponds to a given reference signature. HUMANS recognize

each other according to their various characteristics for ages. We recognize others by

their face when we meet them and by their voice as we speak to them. Identity

verification (authentication) in computer systems has been traditionally based on

something that one has (key, magnetic or chip card) or one knows (PIN, password).

Things like keys or cards, however, tend to get stolen or lost and passwords are often

forgotten or disclosed. To achieve more reliable verification or identification we

should use something that really characterizes the given person. Biometrics offer

automated methods of identity verification or identification on the principle of

measurable physiological or behavioral characteristics such as a signature or a voice

sample. These characteristics should not be duplicable, but it is unfortunately often

possible to create a copy that is accepted by the biometric system as a true sample.

Signature authentication technology uses the dynamic analysis of a signature to

authenticate a person. The technology is based on measuring speed, pressure and

angle used by the person when a signature is produced. This technology uses the

individual's handwritten signature as a basis for authentication of entities and data. An

electronic drawing tablet and stylus are used to record the direction, speed and

coordinates of a handwritten signature. There is no encryption or message

confidentiality offered yet with signature dynamics, but more modern examples use

one-way hash functions to encrypt the signature dynamics and data and append it to

the document being signed. In one iteration, Created by Topaz Systems, the signature

actually disappears from view if the document is tampered with after signature.

Page 4: Signature Identification MATLAB Synopsis

4

Chapter-2 Problem Domain

Signature identification has become a popular area of research in computer vision,

mainly due to increasing security demands and its potential, commercial and law

enforcement applications. It is a very challenging problem and up to date and there is

no technique that provides a robust solution to all situations and different applications

that signature identification may encounter specially in the Banking field where the

faster method for identification of signature is required. Hence, this project focuses on

developing a technique that provides a solution for an efficient Signature

Identification system in different applications.

Page 5: Signature Identification MATLAB Synopsis

5

Chapter-3 Literature survey

A number of biometric methods have been introduced, but few have gained wide

acceptance. Before we discuss about our approach, we have concentrated on some

techniques to gather knowledge. In 2001 Adrian Perrig introduces the BiBa signature

scheme. BiBa signature scheme is a new signature construction that uses one-way

functions without trapdoors. The most important features of BiBa signature scheme is

a low verification overhead and a relatively small signature size. In comparison to

other one-way function based signature schemes, BiBa has smaller signatures and is

at least twice as fast to verify (which probably makes it one of the fastest signature

scheme to date for verification). BiBa stands for Bins and Balls signature a collision

of balls under a hash function in bins forms the signature.

In the year of 2004 Sascha Schimke, Claus Vielhauer, Jana Dittmann in the

Proceedings of the 17th International Conference on Pattern Recognition they

discussed about the problem of authenticating for on-line signature. They are

explained a method for on-line signature authentication.

Use of Artificial neural networks in pattern recognition is a popular technique. Neural

network based invariant character recognition system using double back propagation

model has proposed, the model consists of two parts. The first is a preprocessor,

which is intended to produce a translation, rotation and scale invariant representation

of the input pattern. The second is a neural net classifier. The outputs produced by the

preprocessor at the first stage are classified by this neural net classifier trained by a

learning algorithm called double back-propagation. The recognition system was tested

with ten numeric digits (0-9). The test included rotated, scaled and translated version

of exemplar patterns. An artificial neural network is trained to identify similarities and

patterns among different handwriting samples. Artificial neural network techniques

have also proven helpful in the preprocessing that must take place before a

handwriting sample can be considered suitable input for an artificial neural network.

Another major research is the integration of a feed-forward back propagation neuronal

network.

Page 6: Signature Identification MATLAB Synopsis

6

Chapter-4 Project Methodology

The methodology of this project is based upon information collected and processed

the study and research phase. The technique to be applied for the design and

implementation of the Signature identification systems is as follows:

• Data gathering of signature images of subjects from a digital camera.

• Pre-processing of face images in Adobe Photoshop.

• Importing face images into MATLAB.

• Design of a Feed-Forward Back Propagation Neural Network in MATLAB.

• Input face images into FF Artificial Neural Network (ANN).

• Training the neural network and simulating it for different input images.

• Testing and validation of the program and technique.

• Creating a user-friendly program in MATLAB from the source code.

Page 7: Signature Identification MATLAB Synopsis

7

Chapter-5 Block Diagram & Description

Figure 5.0.Generic representation of a Signature Identification system

5.1 Back Propagation Algorithm The generalized delta also known as back propagation algorithm is explained here

briefly for feed forward Neural Network (NN). The explanation here is intended to

give an outline of the process involved in back propagation algorithm. The NN

explained here contains three layers. These are input, hidden, and output Layers.

During the training phase, the training data is fed into to the input layer. The data is

propagated to the hidden layer and then to the output layer. This is called the forward

pass of the back propagation algorithm. In forward pass, each node in hidden layer

gets input from all the nodes from input layer, which are multiplied with appropriate

weights and then summed. The output of the hidden node is the nonlinear

transformation of this resulting sum. Similarly each node in output layer gets input

from all the nodes from hidden layer, which are multiplied with appropriate weights

and then summed. The output of this node is the non-linear transformation of the

resulting sum. The output values of the output layer are compared with the target

output values. The target output values are those that we attempt to teach our network.

The error between actual output values and target output values is calculated and

propagated back toward hidden layer. This is called the backward pass of the back

propagation algorithm. The error is used to update the connection strengths between

nodes, i.e. weight matrices between input-hidden layers and hidden-output layers are

updated. During the testing phase, no learning takes place i.e., weight matrices are not

changed. Each test vector is fed into the input layer. The feed forward of the testing

data is similar to the feed forward of the training data.

INPUT

An image is passed to the system for classification. Images vary in format, size and resolution.

PRE-PROCESS

The signature is pre-processed to remove unwanted noise from light and the environment. The image also resized, threshold and normalized.

CLASSIFIER

The classifier decides whether the signature belongs to the training images or not based on the information learned during training.

OUTPUT

The output indicates whether the original input signature is identified or not or matches with the training signatures or not

Page 8: Signature Identification MATLAB Synopsis

8

5.2 Training Signatures: The signatures from four different persons are taken in

a blank page. Five set of each signature is taken from each person, so we have total of

20 training signatures. These are shown below:

Figure 5.2. Showing Training Signatures

Page 9: Signature Identification MATLAB Synopsis

9

5.3 Signature Preprocessing: In the preprocessing of signatures involves the various operations performed on

signature images before fed to the artificial neural network for training.

Following are the preprocessing operations performed on the training signatures in

MATLAB:

1. Image Read i.e. Load data to MATLAB.

2. Convert to Gray Scale

3. Resize

4. Reshape

5. Double

6. Create Database.

5.3.1 Image Read: Read image from graphics file Syntax A = imread (‘filename’);

Description

A = imread (‘filename’) reads a grayscale or color image from the file

specified by the string filename. If the file is not in the current folder, or in a

folder on the MATLAB path, specify the full pathname.

5.3.2 Convert to Gray Scale: The RGB color image is then converted to Gray Scale.

Syntax

I = rgb2gray (RGB)

Description

I = rgb2gray(RGB) converts the true color image RGB to the grayscale

intensity image I. rgb2gray converts RGB images to grayscale by

eliminating the hue and saturation information while retaining the

luminance..

Page 10: Signature Identification MATLAB Synopsis

10

Class Support

If the input is an RGB image, it can be of class uint8, uint16, single, or

double. The output image I is of the same class as the input image. If the

input is a color map, the input and output color maps are both of class

double.

5.3.3 Resize: Enlarge or shrink image sizes

Syntax

B = imresize(A, scale) B = imresize(A, [mrows ncols])

Description

B = imresize(A, scale)

It returns image B that is scale times the size of A. The input image A can

be a grayscale, RGB, or binary image. If scale is between 0 and 1.0, B is

smaller than A. If scale is greater than 1.0, B is larger than A.

5.3.4 Reshape: Reshape array, to convert parallel data into serial data of image matrix.

Syntax

B = reshape(A,m,n) B = reshape(A,m,n,p,...) B = reshape(A,[m n p ...])

Description

B = reshape(A,m,n) returns the m-by-n matrix B whose elements are taken

column-wise from A. An error results if A does not have m*n elements.

5.3.5 Double: To convert a uint8 or uint16 indexed image to double.

Syntax

Page 11: Signature Identification MATLAB Synopsis

11

B = double (A);

Description

In a true color image of class double, the data values are floating-

point numbers in the range [0, 1]. In a true color image of class uint8,

the data values are integers in the range [0, 255], and for true color

images of class uint16 the data values are integers in the range [0,

65535].

5.3.6 Create Database: A database is created with “Imwrite” command.

Syntax

imwrite(A,filename,fmt) imwrite(X,map,filename,fmt)

Description

imwrite(A,filename,fmt) writes the image A to the file specified by filename in the format specified by fmt.

5.3.7 NNTOOL: It is the neural network toolbox in MATLAB for training of Signature Database.

As Shown in the Figure.

Purpose

Open Network/Data Manager

Syntax

nntool

Description

nntool opens the Network/Data Manager window, which allows you to

import, create, use, and export neural networks and data.

Page 12: Signature Identification MATLAB Synopsis

12

Figure 5.3. “NNtoolbox GUI in MATLAB.”

Page 13: Signature Identification MATLAB Synopsis

Guide is “Graphical User Interface design environment” is Open GUI Layout Editor

Syntax

guideguide('filename.fig')guide('fullpath')guide(HandleList)

Description

Guideto create or edit GUIs interactively.

Guidepreviously created GUI or create a new one using one of the provided templates.

Guide('filename.fig')is on the MATLAB path.

Figure

13

Chapter-6 GUIDE

Guide is “Graphical User Interface design environment” is Open GUI Layout Editor in MATLAB

Syntax

guide guide('filename.fig') guide('fullpath') guide(HandleList)

Description

Guide initiates the GUI design environment (GUIDE) tools that allow you to create or edit GUIs interactively.

Guide opens the GUIDE Quick Start dialog where you can choose to open a previously created GUI or create a new one using one of the provided templates.

Guide('filename.fig') opens the FIG-file named filename.figis on the MATLAB path.

Figure 6.1 Showing GUI creator in MATLAB.

Guide is “Graphical User Interface design environment” is Open GUI Layout Editor

initiates the GUI design environment (GUIDE) tools that allow you

opens the GUIDE Quick Start dialog where you can choose to open a previously created GUI or create a new one using one of the provided

filename.fig for editing if it

Page 14: Signature Identification MATLAB Synopsis

6.1 GUIDE Tools Summary

The GUIDE tools are available from the Layout Editor shown in the figure below.

The tools are called out in the figure and described briefly below. Subsequent sections

show you how to use them.

14

GUIDE Tools Summary

The GUIDE tools are available from the Layout Editor shown in the figure below.

The tools are called out in the figure and described briefly below. Subsequent sections

show you how to use them.

Figure 6.2: GUIDE Tools

The GUIDE tools are available from the Layout Editor shown in the figure below.

The tools are called out in the figure and described briefly below. Subsequent sections

Page 15: Signature Identification MATLAB Synopsis

15

Chapter-7 Software requirements 1. Matlab (R2009b) 2. Adobe Photoshop 7.0 (for Preprocessing)

Chapter-8 Flowchart

Figure 8.1 Illustrates the flowchart proposed for the design of the Signature Identification system, based on the methodology.

Signature Image

Signature

Preprocessing

Feed-Forward

Back Propagation Neural Network

Result

Page 16: Signature Identification MATLAB Synopsis

Chapter-9 GUIDE for

The Figure below showing the proposed GUI for Signature Identification

And it is still under the Development Process.

Figure

16

GUIDE for Signature Identification System

The Figure below showing the proposed GUI for Signature Identification

And it is still under the Development Process.

Figure 9.1: Guide for Signature Identification System

Signature Identification System

The Figure below showing the proposed GUI for Signature Identification System.

Page 17: Signature Identification MATLAB Synopsis

17

Chapter-10 Software Programming

11.1 Reading Images:

A11=imread('A1.jpg'); A12=imread('A2.jpg');

A13=imread('A3.jpg'); A14=imread('A4.jpg');

A15=imread('A5.jpg'); B11=imread('B1.jpg');

B12=imread('B2.jpg'); B13=imread('B3.jpg');

B14=imread('B4.jpg'); B15=imread('B5.jpg');

C11=imread('C1.jpg'); C12=imread('C2.jpg');

C13=imread('C3.jpg'); C14=imread('C4.jpg');

C15=imread('C5.jpg'); D11= imread('D1.jpg');

D12=imread('B2.jpg'); D13=imread('B3.jpg');

D14=imread('B4.jpg'); D15=imread('B5.jpg');

11.2 Converting to Grayscale:

A11=rgb2gray(A11); A12=rgb2gray(A12);

A13=rgb2gray(A13); A14=rgb2gray(A14);

A15=rgb2gray(A15); B11=rgb2gray(B11);

B12=rgb2gray(B12); B13=rgb2gray(B13);

B14=rgb2gray(B14); B15=rgb2gray(B15);

C11=rgb2gray(C11); C12=rgb2gray(C12);

C13=rgb2gray(C13); C14=rgb2gray(C14);

C15=rgb2gray(D15); D11=rgb2gray(D11);

D12=rgb2gray(D12); D13=rgb2gray(D13);

D14=rgb2gray(D14); D15=rgb2gray(D15);

11.3Reshaping the data:

A11=reshape(A11,64,1); A12=reshape(A12,64,1);

A13=reshape(A13,64,1); A14=reshape(A14,64,1);

A15=reshape(A15,64,1); B11=reshape(B11,64,1);

B12=reshape(B12,64,1); B13=reshape(B13,64,1);

B14=reshape(B14,64,1); B15=reshape(B15,64,1);

Page 18: Signature Identification MATLAB Synopsis

18

C11=reshape(C11,64,1); C12=reshape(C12,64,1);

C13=reshape(C13,64,1); C14=reshape(C14,64,1);

C15=reshape(C15,64,1); D11=reshape(D11,64,1);

D12=reshape(D12,64,1); D13=reshape(D13,64,1);

D14=reshape(D14,64,1); D15=reshape(D15,64,1);

11.4Converting to Double:

A11=double(A11); A12=double(A12);

A13=double(A13); A14=double(A14);

A15=double(A15); B11=double(B11);

B12=double(B12); B13=double(B13);

B14=double(B14); B15=double(B15);

C11=double(C11); C12=double(C12);

C13=double(C13); C14=double(C14);

C15=double(C15); D11=double(D11);

D12=double(D12); D13=double(D13);

D14=double(D14); D15=double(D15);

11.5 Creating Database for training:

P= [A11 A12 A13 A14 A15 B11 B12 B13 B14 B15 C11 C12

C13 C14 C15 D14 D15];

11.6 Creating Target Vectors:

T= [000 000 000 000 000 001 001 001 001 001 100 100 100 100

100 111 111 111 111];

Page 19: Signature Identification MATLAB Synopsis

19

Chapter-11 Result

The signature is identified after giving training to the neural network and the output of

the neural network will be generated corresponding to the target vectors. The output

value when more closer to the corresponding target value. Then the signature

corresponding to that target value will be shown and hence the person will be

identified. The graphical user interface (GUI) in the project and the programming in

the call back of every pushbutton will perform the corresponding function and will

show us the details of identified person.

Chapter-12 Applications

There is a tradeoff between security and convenience. An unlocked car with the keys

in the ignition is very convenient to use, but also easy to steal. Banks who issue credit

cards want their customers to use their cards frequently, while minimizing their

exposure to fraud. In general, once a credit card is issued, credit transaction practices

lean toward giving the buyer the benefit of the doubt, as a moderate amount of fraud

is preferable to lost business and frustrated customers that results if the authentication

process is too burdensome or stringent. So, credit card use generally does not require

photo ID; card possession and a modest attempt to approximate the signature on the

card are typically sufficient to purchase merchandise.

Signature in Retail

Reliable authentication and authorization are increasingly becoming necessary for

many commonplace activities such as boarding an aircraft, crossing international

borders, entering a secure physical location, and performing financial transactions.

Biometrics is a useful method to verify identity.

Identity Theft

Identity theft occurs when a thief assumes the identity of an individual, usually by

collecting personal information on the victim, such as name, address, date of birth,

Social Security number, and credit card number, and uses this information to bill

charges to the victim’s name. The signature on the back of a credit card will not deter

an identity thief who requests and signs a new card. However, by electronically

Page 20: Signature Identification MATLAB Synopsis

20

monitor the accounts with dynamic signature verification algorithms, abrupt changes

in signatures may be detected, indicating potential fraud.

Page 21: Signature Identification MATLAB Synopsis

21

REFERENCES

[1] J. F. Vélez, Á. Sánchez , and A. B. Moreno, “Robust Off-Line Signature

Verification Using Compression Networks And Positional Cuttings”, Proc. 2003

IEEE Workshop on Neural Networks for Signal Processing, vol. 1, pp. 627-636, 2003.

[2] Sansone and Vento, “Signature Verification: Increasing Performance by a Multi-

Stage System”, Pattern Analysis & Applications, vol. 3, pp. 169–181, 2000.

[3] E. J. R. Justino, F. Bortolozzi and R. Sabourin, “Off-line Signature Verification

Using HMM for Random, Simple and Skilled Forgeries”, ICDAR 2001, International

Conference on Document Analysis and Recognition, vol. 1, pp. 105--110. 2001

[4] B. Zhang, M. Fu and H. Yan, “Handwritten Signature Verification based on

Neural ‘Gas’ Based Vector Quantization”, IEEE International Joint Conference on

Neural Net-works, pp. 1862-1864, May 1998.

[5] M. Arif and N. Vincent, “Comparison of Three Data Fu-sion Methods For An Off-

Line Signature Verification Prob-lem”, Laboratoire d’Informatique, Université de

François Rabelais, 2003

[6] A. Chalechale and A. Mertins, “Line Segment Distribu-tion of Sketches for

Persian Signature Recognition”, IEEE Proc. TENCON, vol. 1, pp. 11–15, Oct. 2003

[7] C.Cortes and V.Vapnik, “Support-vector networks. Machine Learning”, vol. 20,

pp.:273-297, Nov. 1995.

[8] V.N.Vapnik, “The Nature of Statistical Learning Theory”, Springer, 1995.

WEBLINKS:

[9] http://www.epadlink.com/ ePad POS Electronic Signature Solution Interlink Electronics [10] http://www.wacom.com/productinfo/4x5.cfm Wacom Intuos2 4x5 Product

Information, Wacom Technology Corporation