FingerFlow
Project description
FingerFlow
FingerFlow is an end-to-end deep learning Python framework for fingerprint minutiae manipulation built on top of Keras - TensorFlow high-level API.
In current stable version 1.0.0 following modules are provided:
- extractor - module responsible for extraction and classification of minutiae points from fingerprints
GPU support
FingerFlow supports GPU acceleration on CUDA®-enabled graphic cards.
Software requirements
- Python 3.9 or newer
- CUDA - for TensorFlow GPU acceleration (if missing, CPU will be used for computation)
Installation
Use the package manager pip to install FingerFlow. We reccomend to use it in pip or anaconda enviroment.
Installation in anaconda enviroment:
pip install fingerflow
Modules
Extractor
Module responsible for extraction and classification of fingerprint minutiae points. Extractor is built using MinutiaeNet neural network architecture.
Extractor contains 2 modules:
- MinutiaeNet - module responsible for extracting minutiae points from fingerprint image. Using MinutiaeNet neural network architecture.
- ClassifyNet - module responsible for classifying extraced minutiae points. Architecture based on FineNet module of MinutiaeNet
Neural networks models
- CoarseNet: Googledrive || Dropbox
- FineNet: Googledrive || Dropbox
- ClassifyNet: Googledrive
API
Extractor
Class which provides all functionality for extraction of minutiae points
fingerflow.extractor.Extractor()
Arguments
coarse_net_path
- used for setting path to pretrained model of submodule CoarseNetfine_net_path
- used for setting path to pretrained model of submodule FineNetclassify_net_path
- used for setting path to pretrained model of submodule ClassifyNet
Methods
extract_minutiae(image_data)
- used for extracting minutiae points from input RGB image data. Methods accepts input data in form of numpy array. Function returns numpy ndarray of extracted and classified minutiae points in following form:- x - x coordinate of minutiae point
- y - y coordinate of minutiae point
- angle - direction of minutiae point rotation
- score - minutiae point extraction confidence
- class - type of minutiae point. In FingerFlow 1.0.0 we support following minutiae classes:
- ending
- bifurcation
- fragment
- enclosure
- crossbar
- other
Usage
import cv2
import numpy as np
from fingerflow.extractor import Extractor
extractor = Extractor("coarse_net", "fine_net", "classify_net")
image = np.array(cv2.imread("some_image"))
extracted_minutiae = extractor.extract_minutiae(image)
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fingerflow-0.0.5.tar.gz
.
File metadata
- Download URL: fingerflow-0.0.5.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30ba639078dfb23191fddca0c8978d0ca49abf5b7085043b9b6b5ec2d4d7d247 |
|
MD5 | 7b2ea457a6b439c7f0fb0d0a5c8f403b |
|
BLAKE2b-256 | 013713636a97912dd80465250321e3112466714b8705e1047dade2bf06b12945 |
File details
Details for the file fingerflow-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: fingerflow-0.0.5-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d91a7925d4c494e665cdcae18b2a95148bc29ebbeae5b94cbcfa6678dec327b8 |
|
MD5 | b825ffa2e693cb198ef1aaa86623a91a |
|
BLAKE2b-256 | c9d6eab200dcc7a43dab711b4a320969d24934d0d9b65a9372b2964d344308a3 |