https://github.com/frederickroman/signature_verifier
Signature verifier. It uses DCT to extract the signature's features and then classifies them using SVM.
https://github.com/frederickroman/signature_verifier
dct image-classification image-processing matlab signal-processing signature-verification spectrogram svm svm-classifier
Last synced: 8 months ago
JSON representation
Signature verifier. It uses DCT to extract the signature's features and then classifies them using SVM.
- Host: GitHub
- URL: https://github.com/frederickroman/signature_verifier
- Owner: FrederickRoman
- Created: 2019-07-05T23:07:10.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-07-06T03:35:29.000Z (almost 7 years ago)
- Last Synced: 2025-09-11T07:05:47.495Z (9 months ago)
- Topics: dct, image-classification, image-processing, matlab, signal-processing, signature-verification, spectrogram, svm, svm-classifier
- Language: MATLAB
- Homepage:
- Size: 3.7 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# signature_verifier
Accompanying code for signature verifier paper https://drive.google.com/open?id=1Wwn6fvrIwcTcaHXqtMNBB-nsAil3S00q
## A few notes
Handwriting is an important form of personal
authentication and authorization, and is used to certify
important documents, including but not limited to:
passports, visas, paychecks, etc.
Therefore, this computer tool was developed to learn a
personís signature from sample pictures, and then classify
future examples as either authentic or forged.
## Prerequisites
- MATLAB Version 7.10.0.499 (R2010a) (Though any version from 2010 onwards will probably work)
- SVM light Version: 6.02
## Instructions to run the code:
1) Open in Matlab and navigate to parent folder of this document
2) Include the entire project in the path
- Right click on Signature_Verification_Project -> Add to path -> Selected Folders and Subfolders
3) Open the Util folder
4) Drag svm_classify.exe and svm_learn.exe to the Util folder
5) All you need to do to run the code is to open one of the "Main" script and press the run button.
- Main_SVM.m - runs linear hard SVM with the best model found
- Main_knn_neighbor.m - runs knn using nearest neighbor for classification
- Main_knn_centroid.m - runs knn using centroid for classification
(Optional) If you want to change the feature space from the default (pHash) to percetual Hash (average hash)
comment line 47 (the pHash line) and
uncomment line 46 (the perceptual hash line)
If later on you want to reverse this all you need to is to comment 46 and uncomment 47.
## Results:
Real Signature from training data set
DCT (Discrete Cosine Transform) on a typical signature. The image energy scale of signatures shows greater frequency content in the lowest frequencies (top left corner), even more so than a typical image.
Reconstructed grayscale after filtering out less energetic frequencies
Signature verifier results