An implementations of fingerprint recognition algorithm

cuevas1208, updated 🕥 2022-12-08 05:20:07

Fingerprint recognition algorithms

comparation guide

fingerprint

Summary

This repository proposes a fingerprint recognition chain based on based on generic algorithms and tools for filtering images. The results are retrieved and validated using Python.

Prerequisites

  • python 3.7
  • python opencv

How to use it

install requirement

pip install --user --requirement requirements.txt

Run fingerprint detection. Finegerprint_pipline.py will process images from './sample_inputs/' and results will be store at './output/'

python finegerprint_pipline.py

Dataset

Dataset ussed for this project can be found in this LINK

Algorithm Pipeline

The techniques of fingerprint recognition image enhancement are based on Gabor Filters process, normalization, segmentation of ridge region, morphological thinning and estimation of the local orientation of ridges in a fingerprint.

pipeline

Results

The following image shows pipeline results at each step

Ending (Green) - Bifurcation (Blue) - Delta (Red) - Loop (Orange) - Whorl (Pink)

results

Reference

Issues

Bump certifi from 2019.3.9 to 2022.12.7

opened on 2022-12-08 05:20:07 by dependabot[bot]

Bumps certifi from 2019.3.9 to 2022.12.7.

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/cuevas1208/fingerprint_recognition/network/alerts).

Bump pillow from 6.2.0 to 9.3.0

opened on 2022-11-22 04:32:26 by dependabot[bot]

Bumps pillow from 6.2.0 to 9.3.0.

Release notes

Sourced from pillow's releases.

9.3.0

https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

Changes

... (truncated)

Changelog

Sourced from pillow's changelog.

9.3.0 (2022-10-29)

  • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

  • Initialize libtiff buffer when saving #6699 [radarhere]

  • Inline fname2char to fix memory leak #6329 [nulano]

  • Fix memory leaks related to text features #6330 [nulano]

  • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

  • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

  • Fixed set_variation_by_name offset #6445 [radarhere]

  • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

  • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

  • Added ExifTags enums #6630 [radarhere]

  • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

  • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

  • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

  • Added GPS TIFF tag info #6661 [radarhere]

  • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

  • Do not attempt normalization if mode is already normal #6644 [radarhere]

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/cuevas1208/fingerprint_recognition/network/alerts).

TypeError: 'numpy.float64' object cannot be interpreted as an integer

opened on 2022-11-07 06:17:29 by obularajud

0%| | 0/80 [00:10<?, ?it/s] Traceback (most recent call last): File "finegerprint_piplineold.py", line 75, in results = fingerprint_pipline(img) File "finegerprint_piplineold.py", line 41, in fingerprint_pipline gabor_img = gabor_filter(normim, angles, freq) File "/home/pi/Desktop/saas/7777/jupyter Note books Works/2022/11/Git/fingerprint_recognition-master/utils/gabor_filter.py", line 43, in gabor_filter array = np.linspace(-block_size,block_size,(2*block_size + 1)) File "<array_function internals>", line 6, in linspace File "/usr/local/lib/python3.7/site-packages/numpy/core/function_base.py", line 120, in linspace num = operator.index(num) TypeError: 'numpy.float64' object cannot be interpreted as an integer

Issue At raspberry pi 4(Runing python3.9)

opened on 2022-11-07 06:15:17 by obularajud

0%| | 0/80 [00:10<?, ?it/s] Traceback (most recent call last): File "finegerprint_piplineold.py", line 75, in results = fingerprint_pipline(img) File "finegerprint_piplineold.py", line 41, in fingerprint_pipline gabor_img = gabor_filter(normim, angles, freq) File "/home/pi/Desktop/saas/7777/jupyter Note books Works/2022/11/Git/fingerprint_recognition-master/utils/gabor_filter.py", line 43, in gabor_filter array = np.linspace(-block_size,block_size,(2*block_size + 1)) File "<array_function internals>", line 6, in linspace File "/usr/local/lib/python3.7/site-packages/numpy/core/function_base.py", line 120, in linspace num = operator.index(num)

error: OpenCV(4.6.0) /tmp/pip-wheel-8c7uejek/opencv-python_88dbbad412c5416b992ae69de26299d6/opencv/modules/imgproc/src/morph.simd.hpp:841: error: (-213:The function/feature is not implemented) Unsupported data type (=4) in function 'getMorphologyFilter'

opened on 2022-11-07 06:06:20 by obularajud
 10 #cv.imwrite('JupiterBase01.png', results)

/home/pi/Desktop/saas/7777/jupyter Note books Works/2022/11/Git/fingerprint_recognition-master/finegerprint_pipline.py in fingerprint_pipline(input_img) 29 30 # ROI and normalisation ---> 31 (segmented_img, normim, mask) = create_segmented_and_variance_images(normalized_img, block_size, 0.2) 32 33 # orientations

/home/pi/Desktop/saas/7777/jupyter Note books Works/2022/11/Git/fingerprint_recognition-master/utils/segmentation.py in create_segmented_and_variance_images(im, w, threshold) 49 # smooth mask with a open/close morphological filter 50 kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE,(w2, w2)) ---> 51 mask = cv.morphologyEx(mask, cv.MORPH_OPEN, kernel) 52 mask = cv.morphologyEx(mask, cv.MORPH_CLOSE, kernel) 53 error: OpenCV(4.6.0) /tmp/pip-wheel-8c7uejek/opencv-python_88dbbad412c5416b992ae69de26299d6/opencv/modules/imgproc/src/morph.simd.hpp:841: error: (-213:The function/feature is not implemented) Unsupported data type (=4) in function 'getMorphologyFilter' Pi 3,4 Persion

error: OpenCV(4.6.0) /tmp/pip-wheel-8c7uejek/opencv-python_88dbbad412c5416b992ae69de26299d6/opencv/modules/imgproc/src/morph.simd.hpp:841: error: (-213:The function/feature is not implemented) Unsupported data type (=4) in function 'getMorphologyFilter'

opened on 2022-11-07 05:58:39 by obularajud

error: OpenCV(4.6.0) /tmp/pip-wheel-8c7uejek/opencv-python_88dbbad412c5416b992ae69de26299d6/opencv/modules/imgproc/src/morph.simd.hpp:841: error: (-213:The function/feature is not implemented) Unsupported data type (=4) in function 'getMorphologyFilter'

Hardware : Raspberry pi 4 , Python3.7 and 3.9 Following Error

Manuel Cuevas

ML/Software Engineer [email protected] guidetomlandai.com

GitHub Repository