signature identification matlab synopsis
TRANSCRIPT
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.
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.
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.
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.
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.
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.
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
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
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..
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
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.
12
Figure 5.3. “NNtoolbox GUI in MATLAB.”
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
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
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
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.
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);
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];
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
20
monitor the accounts with dynamic signature verification algorithms, abrupt changes
in signatures may be detected, indicating potential fraud.
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