Page 1 of 9

N I S T I R 7 3 0 0

NIST FINGERPRINT

IMAGE QUALITY (NFIQ)

COMPLIANCE TEST

E l h a m Ta b a s s i
NFIQ Compliance Test

Page 2 of 9

N I S T I R 7 3 0 0

NIST FINGERPRINT

IMAGE QUALITY (NFIQ)

COMPLIANCE TEST 

Elham Tabassi

Image Group

Information Technology Laboratory

February 2005

U.S. DEPARTMENT OF COMMERCE

Carlos M. Gutierrez, Secretary

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

William Jeffery, Director
NFIQ Compliance Test

Page 3 of 9

N F I Q C O M P L I A N C E T E S T

Elham Tabassi

National Institute of Standards and Technology

Gaithersburg, Maryland

Abst ract 

In August 2004 NIST published a novel measure of fingerprint image quality, which is

designed to predict performance of minutia-based fingerprint matching systems. The

definition and methodology of NIST Fingerprint Image Quality (NFIQ) is documented

in [1] and its implementation is publicly available; but subject to US export control

laws as part of NIST Fingerprint Image Software 2 (NFIS2) distribution [2]. This

document provides a self administered compliance test that tests if an installation of

NFIQ from NFIS2 distribution produces the same results as the original

implementation of NFIQ that was developed, tested and published by NIST in August

2004.

I. Int roduction 

The term compliance describes the ability to act according to a set of rules or

requests. In this case, we want to study the degree of similarity between any

installations of NIST Fingerprint Image Quality (NFIQ) software from NFIS2

distribution [2] to the original implementation developed, tested, and published by

NIST (original NIST NFIQ). Thereby we studied the NFIQ’s sensitivity / variability

when compiled and installed on different platforms. We compiled NFIQ from NFIS-2

CD-ROM on Windows XP1, Windows 2000, MAC OS X, and Red Hat Linux. We

found the NFIQ numbers for 84,000 fingerprint images computed on each of the

platforms listed above and the ones computed by the original implementation of NFIQ

to be identical. That means NFIQ implementation is not sensitive to platforms.

Therefore, we conclude that an installation of NFIQ, from NFIS2 CD-ROM, is

compliant with the original NIST NFIQ implementation if the quality number assigned

by both is the same. We provide a test program and a set of 1,145 images from

Special Dataset 29 [3] with their original NIST NFIQ numbers to test compliance of an

installation of NFIQ from NFIS2. NFIQ Compliance test suite can be downloaded from

fingerprint.nist.gov/NFIS.

1 - Disclaimer – These procedures were developed for the Department of Justice in

accordance with section 303 of the Border Security Act, codified as 8 U.S.C. 1732. Specific

hardware and software products identified in this report were used in order to conduct the

tests described in this document. In no case does such identification imply recommendation

or endorsement by the National Institute of Standards and Technology, nor does it imply that

the products and equipment identified are necessarily the best available for the purpose.
NFIQ Compliance Test

Page 4 of 9

This test has been designed to test the compliance of an installation of NFIQ from

NFIS CD-ROM with the original NIST NFIQ, however, it is applicable to the cases that

NFIQ source code is modified (for example for improved speed). If this compliance

test fails for a modified version of NFIQ, NIST will consider testing the compliance of

the modified version at NIST on a case-by-case basis.

The rest of this document is organized as follows. We detail robustness of NFIQ

implementation to platforms in section 2. This precedes the main goal of this

document in section 3, which discusses NFIQ compliance test procedures.

Conclusions follow in section 4.

II. Testing NFIQ’s sensitivity / variability to platforms 

The question arises that whether compiling NFIQ on platforms different than what it

was developed originally will affect its outcome. The original NFIQ implementation

was compiled on a Pentium IV Red Hat 7.2 Linux with gcc version 2.96. We

compiled and installed NFIQ software from the NFIS2 CD-ROM [2] on several

conventional platforms and compared the NFIQ numbers for 84,000 fingerprints of

different fingers (right / left index and thumb), different impressions (rolled and flat),

captured with different devices at different operational settings. In all cases, the

quality numbers computed by the installation of NFIQ on different platforms were

identical to the ones computed by the original NFIQ implementation. That means any

installation of NFIQ from NFIS2 distribution on environments similar to ones tested

shall produce same NFIQ numbers as the original NIST NFIQ implementation. A

description of the platform test parameters follows.

i. Compiler

It is important to note that on all platforms tested, we compiled NFIQ using different

versions of gcc, the GNU Compiler Collection, which can be downloaded for free from

http://gcc.gnu.org. The original NFIQ implementation was compiled using gcc 2.96.

ii. Operating Systems

We compiled and installed NFIQ on Microsoft Windows 2000, and Microsoft Windows

XP by first installing the free, publicly available Cygwin library and associated tools

(www.cygwin.com). We also compiled and installed NFIQ on Mac OS X, and Red Hat

8.0 Linux. The original NFIQ’s platform was Red Hat 7.2 Linux.

iii. Hardware

Machines used for this test had Intel Pentium III, Mobile Pentium IV, Intel Xenon, and

PowerPC G4 processors. The original NFIQ was developed on a Pentium IV

machine. Table 1 summarizes the platform parameters. The last row shows the

platform used at NIST to develop NFIQ.
NFIQ Compliance Test

Page 5 of 9

OS PLATFORM ARCHITECTURE MANUFACTUR

E/MODEL

COMPILER

Windows XP Mobile Pentium 4 Toshiba gcc 3.4.5

Windows 2000 Pentium III Dell OptiPlex gcc 3.3.3

Mac OS 10.3.6 Macintosh PowerBook G4 PowerPc G4 gcc 3.3

Red Hat Linux 8.0 Xenon Dell precision gcc 3.2

Red Hat Linux 7.2 Pentium IV Dell gcc 2.96

Table 1. Platforms, and compilers used to test NFIQ robustness. The last row (in red) shows

the platform used at NIST to develop NFIQ.

iv. Data

Fingerprint images from TXDPS and VISIT_POE data sets of SDK tests [4] were

used to test NFIQ’s sensitivity / variability to platforms. As it is shown in Table 2, this

data is a reasonable mixture of different finger positions, and impression types. It is

important to note that these data are for internal NIST testing only because it is

sensitive but unclassified (SBU) government use only and cannot be publicly

released.

For all the platforms listed in Table1, NFIQ numbers computed for the 84,000

fingerprints listed in Table 2 were compared with NFIQ numbers computed by the

original NIST NFIQ implementation. In all cases, the computed NFIQ numbers were

identical to the original NIST NFIQ implementation. Given the size and diversity of

data in Table 2, we conclude that any installation of NIST Fingerprint Image Quality

Software compiled with gcc on the platforms listed in Table 2 shall result in the same

NFIQ number for a given image. Therefore, an installation of NFIQ Software, from

NFIS2 CD-ROM, is compliant with the original NIST implementation of NFIQ if the

quality number assigned by both is identical. To that end, we are providing a selfadministered NFIQ compliance test suit to test compliance of any installation of NFIQ

to the original NIST NFIQ implementation.

III. NFIQ Compliance Test Suite 

The main purpose of this document is provide tools to check if an installed version of

NIFQ from NFIS2 CD-ROM produces the same results as the original NIST NFIQ

implementation. As discussed in the previous section, we extensively tested NFIQ’s

sensitivity to other platforms and found it quite robust to the environments tested.

That means a proper installation of NFIQ shall produce exact same results as the

original NIST NFIQ implementation. NFIQ compliance test suite

(NFIQ_Compliance_Test_Suite.tar) is provided to check the compliance of an

installation of NFIQ from the NFIS2 distribution to the original NIST implementation. It

is a self-administered test, which can be downloaded from fingerprint.nist.gov/NFIS. It

contains a test program, and a set of fingerprint images in ANSI/NIST format from
NFIQ Compliance Test

Page 6 of 9

SD29 along with their original NFIQ numbers for comparison. An installation of NFIQ

DATA SET SIZE IMPRESSION FINGER

POSITION

TXDPS 6000 Rolled – inked Right thumb

TXDPS 6000 Rolled – inked Left thumb

TXDPS 6000 Rolled – inked Right index

TXDPS 6000 Rolled – inked Left index

TXDPS 6000 Plain – inked – segmented from slap Right thumb

TXDPS 6000 Plain – inked segmented from slap Left thumb

TXDPS 6000 Plain – inked segmented from slap Right index

TXDPS 6000 Plain – inked segmented from slap Left index

VISIT_POE 18000 Plain – live scan Right index

VISIT_POE 18000 Plain – live scan Left index

Table 2. Description of platforms test data

is compliant with the original NIST NFIQ implementation if it computes identical

quality numbers for images in the compliance_testset with the original NIST NFIQ

numbers that are provided as part of the test suite.

An explanation of NFIQ Compliance Test Suite components follows.

1. NFIQ_compliance_testset

This directory contains 1,145 images from SD29 [3], which are provided for

compliance test. There are 392 rolled and 753 flat impressions of right/left

thumb/index/middle fingers.

2. compliance_testset_nfiq.txt

This file contains the NFIQ numbers for images in the NFIQ_compliance_testset

directory, which are computed by the original NFIQ implementation. We refer to

these as the original NFIQ numbers.

3. run_compliance_test.csh 

Script to test compliance. It gets the full path to the local NFIQ installation (binary to

be tested) as input. The script computes NFIQ numbers for the images in the

NFIQ_compliance_testset, and generates the file my_nfiq_numbers.txt. It then 

checks for any differences between the computed NFIQ numbers
NFIQ Compliance Test

Page 7 of 9

(my_nfiq_numbers.txt) and the original NFIQ numbers in compliance_testset_nfiq.txt

and reports whether or not the two are identical.

It also computes and prints a cross-tabulation of occurrence frequencies of the

original and computed NFIQ numbers. Each column of the matrix represents the

instances in my_nfiq_numbers.txt (i.e. the computed NFIQ numbers), while each row

represents the instances in compliance_testset_nfiq.txt (i.e. original NFIQ numbers).

For compliance, all off-diagonal elements shall be zero. The benefit of this crosstabulation is that it is easy to examine the cases that an installation of NFIQ mislabels

one class of NFIQ as another.

To run NFIQ_Compliance_Test_Suite, first have to untar it:

> tar –xvf NFIQ_Compliance_Test_Suite.tar 

Then run the script

> ./run_compliance_test.csh <path_to_local_NFIQ(binary)>

Figure 1. shows a successful compliance test.

The main focus in designing this compliance test was to test the compliance of an

installation of NFIQ from NFIS CD-ROM, but this test is also applicable to cases

where NFIQ source code has been modified, for example to improve speed.

However, satisfying absolute agreement between a modified version of NFIQ and

original NFIQ (diagonal confusion matrix of Figure 1) might be overly limiting, and

some small degree of tolerance should be allowed, i.e. instead of absolute

agreement, a confidence interval should be specified on the diagonal elements of the

confusion matrix of Figure 1. Since our tests (see section II) did not show any

variations, we cannot estimate the confidence intervals. However, if this compliance

test fails for a modified version of NFIQ, NIST will consider testing the compliance of

the modified version at NIST on a case-by-case basis. Interested parties can contact

the author to further discuss the possibility of testing the compliance of their modified

version of NFIQ at NIST.

4. Conclusion

We have addressed NFIQ’s robustness to other platforms. We have provided a selfadministered NFIQ Compliance Test Suite that test if an installation of NFIQ from

NFIS2 distribution is compliant with the original implementation of NFIQ that was

developed, tested and published by NIST in August 2004 (original NIST NFIQ). The

test suite contains a test program, and test data along with their original NFIQ

numbers for comparison. An installation of NFIQ is compliant with the original NIST

NFIQ implementation if for all images in the test data set, it computes identical NFIQ

numbers with the original NIST NFIQ numbers. NFIQ Compliance Test Suite can be

downloaded from fingerprint.nist.gov/NFIS. For cases that this compliance test fails

due to modification in NFIQ source code, the author should be contacted for possible

compliance test at NIST.
NFIQ Compliance Test

Page 8 of 9

> tar –xvf NFIQ_Compliance_Test_Suite.tar

> ./run_compliance_test.csh /usr/local/nfis2_2/bin/nfiq 

NFIQ COMPLIANCE TEST STARTS NOW

Files my_nfiq_numbers.txt and compliance_testset_nfiq.txt are identical

Confusion Matrix for my_nfiq_numbers.txt and compliance_testset_nfiq.txt

number of samples = 1145

row = compliance_testset_nfiq.txt

col = my_nfiq_numbers.txt

1 2 3 4 5 Total

----------------------------------------

1| 350 0 0 0 0 350

2| 0 350 0 0 0 350

3| 0 0 342 0 0 342

4| 0 0 0 61 0 61

5| 0 0 0 0 42 42

----------------------------------------

Total|350 350 342 61 42 1145

NFIQ COMPLIANCE TEST OF (/usr/local/nfis2_2/bin/nfiq) COMPLETED

Figure 1. A successful NFIQ compliance test

References

[1] E. Tabassi, C. L. Wilson, C. Watson. NIST Fingerprint Image. Quality NISTIR

7151.

[2] M.D. Garris, C.I. Watson, R.M. McCabe, C.L. Wilson. User’s guide to NIST

fingerprint image software. NISTIR 6813. http://fingerprint.nist.gov/NFIS/index.html

[3] C. Watson. NIST Special Database 29 Plain and Rolled Images from Paired
NFIQ Compliance Test

Page 9 of 9

Fingerprint Cards, NIST, November 2001. http://www.nist.gov/srd/nistsd29.htm

[4] C. Watson, A. Wilson, K. Marshall, M. Indovina, R. Snelick. Studies of one-to-one

fingerprint matching with vendor SDK matchers. NISTIR 7119

Acronyms

NFIS2 NIST Fingerprint Image Software 2 

NFIQ NIST Fingerprint Image Quality

SD29 Special Dataset 29

Original NIST NFIQ The original implementation of NFIQ developed, tested, and

published by NIST in August 2004