level of the neural network is used to determine the fingerprint’s image quality value. There are
five quality levels with 1 being the highest quality and 5 being the lowest quality.
Please note that NFIQ has been designed to assign a level of quality to a grayscale fingerprint
image. It was not designed to distinguish fingerprint images from all possible non-fingerprint
images, and it will not necessarily assign non-fingerprint image types to the worst quality level
five.
A detailed description of the NFIQ algorithm is included in Section 5.3.
3.4. AN2K7 – Standard Reference Implementation
The AN2K package is a reference implementation of the ANSI/NIST-ITL 1-2007 standard.[30]
This package contains utilities for reading, writing, and manipulating the contents of ANSI/NIST
data files. These files are comprised of a sequence of data fields and image records. Source
code is provided to parse ANSI/NIST files into memory, manipulate designated fields, and write
the sequence back to file. The utility an2k7tool does this in batch mode. Logical data units
are referenced on the command line, and the specified contents may be printed, inserted,
substituted, or deleted from the file.
Alternatively, two other utilities are provided to support interactive editing of the contents of an
ANSI/NIST file. The command an2k7totxt converts the textual content of an ANSI/NIST file
into a formatted text report, and any binary data (including images) are stored to temporary files
and externally referenced in the text report. In this way, the text report can then be loaded into
any common text editor and ASCII information can be added, deleted, or changed. When all
edits are complete, the command txttoan2k7 is run on the edited version of the text report,
externally referenced binary data files are incorporated, and a new ANSI/NIST file is written.
One of the many types of records in an ANSI/NIST file is the Type-9 record designed to hold
minutiae data for fingerprint matching. Currently there is no global consensus on how
fingerprint minutiae should be numerically represented. Different fingerprint systems use
different sets of attributes and representation schemes. To manage this, the fields of the Type-9
record have been divided into blocks, where each block is assigned to a registered vendor, and
the vendor defines how he will represent his minutiae data. In the standard, the first 4 fields of
the Type-9 record are mandatory and must always be filled. Fields 5 through 12 are fields in the
standard defined by NIST to hold among other things, the fingerprint’s core, delta, and minutiae
locations, along with neighbors and intervening ridge counts. The FBI's IAFIS is assigned fields
13 through 23. The definition of these fields is specified in the FBI's Electronic Fingerprint
Transmission Specification (EFTS).[37]
Unfortunately, these two blocks of fields are different. Two utilities are provided in the AN2K7
package to facilitate the conversion between these blocks of fields in a Type-9 record. The
command an2k7toiaf translates the minutiae data stored in NIST fields 5-12 into the
FBI/IAFIS fields 13-23. The command iaftoan2k7 reverses the process. An X Windows
ANSI/NIST file image previewer is included in the package. The utility dpyan2k7 is designed
to parse an ANSI/NIST file, locating and displaying each image in the file to a separate window.
In addition, if any minutiae are included in a corresponding Type-9 record, then the minutiae
points are plotted on top of the fingerprint image.