MahmoudEsmail404 / FingerMatch

Minutiae-based fingerprint matching implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

# Fingerprint matcher

Python 3.6+ implementation of a fingerprint matching minutiae-based model.

Project status: In progress

## Components status:

Data
------------------------------
Data processing:          DONE
Minutiae extraction:      DONE
Minutiae post-processing: DONE

Matching
------------------------------
Minutiae tuple matching (Tree based): IN PROGRESS
Minutiae BFMatcher score based:       DONE
Softmax based ranking:                TO DO

Infrastructure
------------------------------
Main class deployment: DONE
API Development:       IN PROGRESS
Documentation:         IN PROGRESS
Unit-testing:          IN PROGRESS
Requirements:          DONE


### Prerequisites

- Python 3.6+
- Install required dependencies from requirements.txt


## Execution

- Call FingerMatcher using the preferred matcher: 'tree' (in development) or 'bf'
- Use FingerMatcher functions for desired functionality.

1) loadData(path, image_format)

Loads the given image format data from a given root path. The function recursively iterates the path and loads raw images, applies histogram 	equalisation, binarisation, dot removal, enhancement for ridge smoothing and 	repair. 

2) trainData()

Extracts minutiae from the loaded data based on either Harris edges or the crossing numbers approach (Default). The minutiae and tuple profile of images (tree matching) or the descriptors (BFMatcher)

3) matchFingerprint(image_test, verbose, match_th)

Uses the extracted minutiae from each base image for drawing a comparison between them and the test image given. The matching is done based on the selected model. It can be done either via BFMatcher or via tree matching. match_th describes the threshold for the BFMatcher. Not considered for tree matching at the moment. The function returns the scores list and some information about a match or not based on the given threshold. If no threshold is given, it outputs a boolean prediction.


## Authors

- Dragos Tudor (dragostudoriliuta@gmail.com)

About

Minutiae-based fingerprint matching implementation


Languages

Language:Jupyter Notebook 98.7%Language:Python 1.3%