Signature verification systems are an essential part of most business practices. A significant amount of time and skillful resources could be saved by automating this process. This project demonstrates the implementation of an end-to-end signature verification system for bank check.
YOLOv5 uses the user selected banknote's check for extraction of signatures. Although this process performs well on documents in the real world, it can encounter difficulties due to noise such as printed text or stamps. A CycleGAN-derived method for cleaning noise is incorporated as well. Afterward, Siamese networks are employed to confirm if the cleaned data is fake or authentic.
The project works in three phases:
-
The bank check image is processed using openCV after the user selects it for verification. then YOLOv5 model will be run to identify and crop the check parts present in the image, such as its signature and account number. After this, data from the bank check is extracted using easyocr.(The Yolo model is trained using a custom dataset built from bank check images. The data in this dataset has been annotated using roboflow)
-
When signatures are collected on real-world documents, noise artifacts like stamps and seals, text printed on the document, and lines can appear. These artifacts might affect the verification process. A CycleGAN model will be used to generate noise-free signatures from noisy images. This notebook (cycleGan/ganCleaning.ipynb) contains code to generate noisy images and to convert the dataset to CycleGAN input format.
-
In the final phase of the process, the siamease model will verify the correspondence between the noise-free signatures generated by cyclegan and the signatures that matches to the check account number in the database.and determine whether the check is fake or authentic.
We used the Django framework to create a website for deployment.
https://drive.google.com/file/d/13948C5ItkJOHFLWi7awMC8HOD55tf-50/view?usp=share_link