Signature Recognition Project

Mihai Costin Manolescu

Abstract: This paper refers to a signature recognition algorithm based on a new feature extraction method. This low complexity algorithm can be run effectively on low-end hardware (8 bit microprocessors) and requires under 400 bytes for each signature representation. The recognition algorithm is based on a neural networks with about 350 nodes and which can be trained with 4-10 signature samples. Experimental results indicate a score above 0.9 for genuine signatures and below 0.7 for forgeries.


Many of the applications for identity authentification use a password or a pin code. Other types of authentification (signature, face, eye, amprent recognition) are more complicated and computationally expensive, making them inatractive for wide public use.

The signature recognition is the process of verifying the writer's identity by checking the signature against samples kept in a database. The result of this process is usually a number between 0 and 1 which represents a fit ratio (1 for match and 0 for mismatch). The threshold used for confirmation/rejection decision depends on the nature of the application.

The aim of this project is to develop a signature verification system based on very low end processors, suitable for commercial use. It is essential for these applications to keep both the computing complexity and the data amount used for verification as small as possible. The small data size is very important for fast data transfers in network applications and/or cheap digital storage on personal cards. The time for checking the new signature is critical because this is the time seen by the user. However, the learning time is less important since the training for one person occurs only once.

Signature verification systems

A signature verification system has five components:

Proposed implementation

Here are listed the key steps used in this implementation:

Test Results

The algorithm was tested with over 10 different people. The neural network was able to learn and identify all signatures.

A number of 4 to 6 samples were presented as good signatures for training. A small number is convenient from the user interface point of view. As the number of samples grows the accuracy of the algorithm increases. The learning time on a Pentium/100 was between 2 and 25 seconds. The feed-forward time (the time needed to test a signature) is less than 47 us (micro seconds). The accuracy can be improved also by using some false signatures for training (i.e. presenting forgeries as learning data). In these tests only genuine samples were used.

The trained network was tested with other signatures. All the genuine signatures scored above 0.9 match; the fakes ones (somebody signed as another person) were scored under 0.7, so the distance between the good signatures and the forgeries is clear.

As illustration, several test results are presented. The sample signatures are shown in the upper half of the page. In the bottom half are presented new signatures compared with the learned one; each one has the match ratio in the upper right corner.

Test0  · Test1  · Test2  · Test3

The reader's comments and feedback are welcomed and appreciated.

ps: whoever you are and whatever you think about what's in this pages it will be really nice (for me) to get some words from you. i know that literatue about this is very difficult to find and the page was visited few thousands times; but it looks like the people are shy.

Mihai Manolescu
Wed Aug 21 12:00:18 PDT 1996