- Notifications
You must be signed in to change notification settings - Fork59
Optical live-scan and ink fingerprint image quality assessment tool
License
usnistgov/NFIQ2
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
National Institute of Standards and Technology (NIST)Fingerprint Image Quality (NFIQ) is software that links imagequality of optical and ink plain impression 500 pixel per inch fingerprints to operationalrecognition performance. This allows quality values to be tightly defined andthen numerically calibrated, which in turn allows for the standardization neededto support a worldwide deployment of fingerprint sensors withuniversally-interpretable image qualities. NFIQ 2 quality features are formallystandardized as part ofISO/IEC 29794-4.This repository serves as a formally-recognized reference implementation of the2024 international standard.
Pre-built versions of the NFIQ 2 library and standalone executable for manyplatforms are available to download on theGitHub Releases page.
In 2004,NIST developed the first open source and publicly available fingerprint quality assessment tool,NFIQ.NFIQ 2 is a revision of that tool.Advances in fingerprint technology since 2004 necessitated an update to NFIQ.As such, development of NFIQ 2 was initiated in 2011 as collaboration betweenNIST and Germany'sFederal Office for Information Security (BSI)andFederal Criminal Police Office (BKA), as well as research and development entitiesMITRE,Fraunhofer IGD,Hochschule Darmstadt (h_da), andSecunet.Subsequent development efforts and improvements have been supported by expertsfromISO/IEC JTC 1/Subcommittee 37and thecommunity.
NFIQ 2 provides a higher resolution quality score in the range of [0-100], adheringto the international biometric sample quality standardISO/IEC 29794-1:2024 (as opposed to the original NFIQ's 5-1),lower computation complexity, and support for quality assessment on mobile platforms.
NFIQ 2 is formally recognized as a reference implementation of the normativemetrics presented inISO/IEC 29794-4:2017 and was updatedin sync as version 2.3 with the second edition revision effort,ISO/IEC 29794-4:2024.
Operationally, NFIQ has increased the reliability, accuracy, and interoperability of fingerprint recognitionsystems by identifying the samples that are likely to cause recognition failure.
If you would like more information, please read theNFIQ 2 ReportandISO/IEC 29794-4:2024.
Building the NFIQ 2 library requires the following dependencies, included inthis repository as git submodules:
If building the standalone command-line executable, additional dependencies arerequired, included in this repository as git submodules:
- Biometric Evaluation Framework (public domain license)
- Requires other non-bundled dependencies, please see theREADME.
- NIST Fingerprint Image Resampler (public domain license)
- RequiresOpenCV, which is required by NFIQ 2 library.
Important
Unless you areactively developing code for NFIQ 2, wehighly suggestyou download fromReleasesinstead of attempting to compile.
Note
You mustrecursively clone the repository to retrieve git submodules(i.e., donot use the GitHub ZIP file download).
git clone --recursive https://github.com/usnistgov/NFIQ2.gitcd NFIQ2mkdir buildcd buildcmake .. -DBUILD_NFIQ2_CLI=OFFcmake --build.
Important
Unless you areactively developing code for NFIQ 2, wehighly suggestyou download fromReleasesinstead of attempting to compile.
Note
You mustrecursively clone the repository to retrieve git submodules(i.e., donot use the GitHub ZIP file download).
git clone --recursive https://github.com/usnistgov/NFIQ2.gitcd NFIQ2mkdir buildcd buildcmake ..cmake --build.
Standard CMake arguments are interpreted.
- On Windows, change architectures with
-A x64
or-A Win32
- On macOS, use the environment variable
CMAKE_OSX_ARCHITECTURES
to builda universal binary. Ensure that all dependencies are built universally aswell. - Change generators with
-G
- Change build types with
-DCMAKE_CONFIGURATION_TYPES
or-DCMAKE_BUILD_TYPE
- On Windows, change architectures with
Dependencies for
libbiomeval
must be satisfied.- On Windows with Visual Studio, this is done withvcpkg, which will require passingthe vcpkg
CMAKE_TOOLCHAIN_FILE
andVCPKG_TARGET_TRIPLET
optionsto CMake.- For example, a 64-bit Release-only build with the default VisualStudio generator might look like:
cmake .. -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_CONFIGURATION_TYPES=Release -A x64cmake --build . --config Release
- For example, a 64-bit Release-only build with the default VisualStudio generator might look like:
- If building a macOS universal binary, be sure all dependencies areuniversal as well. If installed via MacPorts, ensure the
+universal
variants are used.
- On Windows with Visual Studio, this is done withvcpkg, which will require passingthe vcpkg
Builds for other OS can typically find dependencies on the system withoutintervention.
Originally, all major versions of OpenCV were supported by NFIQ 2. Due to thelimited testing resources as well as slight differences in results betweenversions, NIST has chosen to rely on the latest release of OpenCV 4 as of thiswriting.Using a different version of OpenCV may result in unstable NFIQ 2scores and is not supported. Future updates to OpenCV versions should run theconformance test and larger sequestered tests without differences.
- macOS:
- Xcode 10 and later does not support 32-bit applications. In order to buildNFIQ 2 for 32-bit macOS, use Xcode 9.4.x.
The CMake builds supports the following options:
BUILD_NFIQ2_CLI
(default:ON
)- Whether or not to build the standalone command-line executable.
EMBED_RANDOM_FOREST_PARAMETERS
(default:OFF
)- Whether or not to embed random forest parameters into the library.
EMBEDDED_RANDOM_FOREST_PARAMETER_FCT
(default:0
)- Friction ridge capture technology code for embedded random forestparameters. Only valid if
EMBED_RANDOM_FOREST_PARAMETERS
isON
.
- Friction ridge capture technology code for embedded random forestparameters. Only valid if
If you found a bug and can provide steps to reliably reproduce it, or if youhave a feature request, pleaseopen an issue. Otherquestions may be addressed to theNIST project maintainers.
NFIQ is released in the public domain. See theLICENSEfor details.
About
Optical live-scan and ink fingerprint image quality assessment tool