Signature Recognition and validation System with forgery detection

Published by Nikhil Kumar on

Signature is a basic biometric trait of a human being used for human identity including finger recognition, face recognition, and voice recognition. Signature verification can be classified as offline(static) and online(dynamic). This project is an offline based one and works by using correlation techniques and signature pre-processing i.e., thinning, resizing, rotating and cropping. A sample image with a fixed resolution is pre-processed and then compared with the whole database using the correlation technique. This technique is suitable for various applications such as bank transactions, passports with good authentication results etc.


What is Signature?

A signature is a grouping of characters or a person’s name written in a distinctive way as a form of identification. Signature comes under behavioral biometrics. Signature is the main mechanism both for authentication and authorization in official transactions, the need for proficient automated.system for signature verification has increased. A person’s signature is considered and treated as the legal and common means for verifying the identity of an individual.

How can we use a signature for authentication?

By using signature recognition. Signature recognition is the process of authenticating the person’s identity by checking his signature against samples which are previously collected. We are using offline base signature verification system.


The project is divided into three main phases.

1.Signature Acquisition
2.Signature Pre Processing
• Resizing Image
• Color Inversion
• Thinning Image
• Feature Extraction
3.Signature Verification

1.Signature Acquisition:

Input should be of resolution 335 x 190. If an image exceeds predefined resolution then calculating of correlation coefficient would be difficult since database images have the resolution of 335 x 190 and to calculate correlation coefficient we should have images with the same resolution.

2.Signature Preprocessing:

A)Resizing Image:   

No resizing is required because all the acquired signatures are in size of 335 x 190. If any anomaly is found, it will be resized to the required size.

B)Color Inversion:

Since signature images don’t utilize the whole spectrum of RGB values they can be converted into the grayscale image.  This is done for easy extraction of the signature curve in the feature extraction process.

C)Thinning image:
The width of signature strokes is totally reduced, by which resulting image will have smaller strokes. Now the image is all set to undergo feature extraction.

D)Feature Extraction:

In this phase, the x and y-axes positions of black pixels are stored are separately stored. Center of gravity of the curve is calculated. The obtained new curve is moved to the origin with respect to the center of gravity. Then the Eigenvector is found on which the signature is residing using the minimum Eigenvalue. The angle between the Eigenvector and the X-axis is found which is the angle of the signature.

The signature is now rotated along the found angle using the rotation of axes and it is stored in the new curve. A boundary box is created around the signature. The resulting image will have rotated signature.

3.Signature Verification:

The correlation coefficient between the resultant image and the images in the database which were also undergone the same process as the input image is calculated. We will set a threshold value up to which the correlation coefficient should exist. The image with the value greater than the threshold is displayed with the name of the person. The above whole process is done with the help of a graphical user interface which is user-friendly.

Output in GUI

When we run code GUI output will be

After selecting the browse option it opens a folder to select the image

Select the image for example here we selected a sample image from the database we have

The user is identified

The image is present in the database then it will show the users name

If any wrong image is given then it will give signature not detected

The user is not identified.

It can identify forgery too. To get whole application code please visit my github

1 Comment

Naib khan · June 27, 2021 at 2:43 pm

Sir thanks really helpful
in python languages
if possible

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.