(NFIS) NISTIR 6813 Michael D. Garris(firstname.lastname@example.org) Craig I. Watson(email@example.com) R. Michael McCabe(firstname.lastname@example.org) Charles L. Wilson(email@example.com) National Institute of Standards and Technology Bldg. 225, Rm. A216 100 Bureau Drive, MailStop 8940 Gaithersburg, MD 20899-8940
ACKNOWLEDGEMENTS We would like to acknowledge the Federal Bureau of Investigation who provided funding and resources in conjunction with NIST to support the development of this fingerprint image software. NOTE TO READER This document provides guidance on how the NIST Fingerprint Image Software(NFIS) is installed and executed. Its content and format is one of user's guide and reference manual. Some algorithmic overview is provided, but more complete descriptions are found in the cited references.
M.D. Garris, C.I. Watson, R.M. McCabe, and C.L. Wilson
ABSTRACT This report documents a fingerprint image software distribution developed by the National Institute of Standards and Technology(NIST) for the Federal Bureau of Investigation (FBI). The software technology contained in this distribution is aculmination of a decades worth of work for the FBI at NIST. Provided are a collection of application programs, utilities, and sourcecode libraries. These are organized into four major packages:
This sourcecode distribution is written in "C", and has been developed to compile and execute under the Linux operating system using the GNU gcc compiler and gmake utility. The source code may also be installed to run on Win32 platforms that have the Cygwin library and associated tools installed. A Reference Manual describing each program in the distribution is included at the end of this document.
Keywords: ANSI/NIST, FBI, fingerprint, image, JPEG, minutiae detection, neuralnetwork, pattern classification, WSQ, wavelet scalar quantization
This report documents a fingerprint image software distribution developed by the National Institute of Standards and Technology(NIST) for the Federal Bureau of Investigation (FBI). Its content and format is one of user's guide and reference manual. While some algorithmic overview is provided, the cited references contain more complete descriptions of how fingerprint software technologies work. As background, the FBI has been utilizing computer technology to help capture, store, and search fingerprint records since the late 70's. In the early 90's, they began developing a system to enable the electronic exchange of fingerprint records and images by law enforcement agencies and to handle electronic transactions with these agencies. This new system is called the Integrated Automated Fingerprint Identification System(IAFIS) and it is currently in operation in Clarksburg, West Virginia.
IAFIS has been primarily designed to process fingerprints that have been captured at a booking station of a jail or that are being submitted for a civilian background check. These types of fingerprints are typically taken by inking and rolling the finger tip onto a paper fingerprint card or captured from the surface of a live scan device. Traditionally these fingerprints have been referred to as tenprints, as all ten fingers are typically captured. Over the years, the FBI has accumulated more than 40,000,000 fingerprint cards on file, and they handle upto 60,000 fingerprint-related requests a day. This demand originated from the need to support criminal investigations, but through the successful development and deployment of technology to meet this demand, legislation continues to be passed progressively increasing the demand for conducting civilian checks and clearances. The workload, which was once 80% criminal and 20% civilian, is quickly approaching 50% criminal and 50% civilian, and demand is projected to rapidly grow. In light of this situation, the FBI must continue to pursue the development and exploitation of new technologies, and NIST is partnered with the FBI in support of this pursuit. NIST has a long-standing relationship with the FBI. Researchers at NIST began work on the first version of the FBI's AFIS system back in the late 60's. Over the years, NIST has conducted fingerprint research, developed fingerprint identification technology and dataexchange standards, developed methods for measuring the quality and performance of fingerprint scanners and imaging systems, and produced databases containing a large repository of FBI fingerprint images for public distribution.-
The software technology contained in this distribution is aculmination of a decades worth of work for the FBI at NIST. Provided are a collection of application programs, utilities, and sourcecode libraries. These are organized into four major packages( PCASYS, MINDTCT, AN2K, and IMGTOOLS).The first two are software systems.
The firstpackage, PCASYS, is a pattern classification system designed to automatically categorize a fingerprint image as an arch, left or right loop, scar, tented arch, or whorl. Identifying a fingerprint's class effectively reduces the number of candidate searches required to determine if a fingerprint matches a print on file. For example, if the unknown fingerprint is an arch, it only needs to be compared against all arches on file. These types of "binning" strategies are critical for the FBI to manage the search in go fits fingerprint repository. Section3.1 describes this package in greater detail, and Section4.1 provides an algorithmic overview and functional description of the PCASYS system.
The second package, MINDTCT, is a minutiae detection system. It takes a fingerprint image and locates features in the ridges and furrows of the friction skin, called minutiae. Points are detected where ridges end or split, and their location, type, orientation, and quality are stored and used for search. There are 100 to 200 minutiae on a typical tenprint, and matching takes place on these points rather than the 250,000 pixels in the fingerprint image. Section 3.2 describes this package in greater detail, and Section 4.2 provides an algorithmic overview and functional description of the MINDTCT system. Techniques of fingerprint pattern classification and minutiae detection typically share some functionality. For example, both applications typically derive and analyze ridge flow within a fingerprint image.  This is true of PCASYS and MINDTCT, and both conduct image binarization of the fingerprint as well. It should be noted that these systems were developed independently of each other, so although these processing steps are in common, different algorithms are applied in each. Further study is required to determine if one system's algorithmic approach is better than the other. The most significant contribution NIST has made to the FBI, and to the fingerprint and law enforcement communities at large, is the development of the ANSI/NIST-ITL1-2000" Data Format for the Interchange of Fingerprint, Facial, Scar Mark & Tattoo(SMT) Information" standard.  This standard defines a common file format, available to law enforcement agencies in the U.S. since 1986, for the electronic exchange of fingerprint images and related data.  Today, it supports other types of images as well, including palmprints, mugshots, scars, and tattoos. This standard has been adopted by all major law enforcement agencies in the U.S., including the FBI, and has strong support and use internationally. IAFIS is implemented on this data interchange standard. For the purposes of abbreviation, this standard will be referred to in this documentation as the "ANSI/NIST" standard.
The third package, AN2K, contains a suite of utilities linked to a reference library implementation of the ANSI/NIST-ITL1-2000 standard. These utilities facilitate reading, writing, manipulating, editing, and displaying the contents of ANSI/NIST files. Section 3.3 describes this package in greater detail.
The last package, IMGTOOLS, is a large collection of general-purpose image utilities. Included are image encoders and decoders supporting Baseline JPEG, Lossless JPEG, and the FBI's specification of Wavelet Scalar Quantization(WSQ). There are utilities supporting the conversion between images with interleaved and non-interleaved color components; colorspace conversion between RGB and YCbCr; and the format conversion of legacy files in NIST databases. Section 3.4 describes this package in greater detail.
The sourcecode in this distribution has been developed using the GNU project's gcc compiler and gmake utility.  The software has been tested under LINUX, SGI Irix, and under WindowsNT using the Cygwin library  and associated tools. The baseline JPEG code in src/lib/jpegb uses the Independent JPEG Group's compression/decompression code. For details on its copyright and redistribution, see the included file src/lib/jpegb/README. All other code was public domain, and any portion of it could be used without restrictions because it was created with U.S. government funding. The original software was produced by NIST, an agency of the U.S. government, and by statute is not subject to copyright in the United States. Recipients of this software assume all responsibilities associated with its operation, modification, and maintenance. To request a copy of the public domain version software free of charge on CD-ROM, please send an email request to the nist authors. When the project was placed on sourceforge and various reorganization, cleanups, autoconfing, and other work occured; the author(me) of this new work decided to not place his new work under the public domain. His work is availible under a combination of GNU LGPL, and/or MPL licenses. This work still contains much that should still be considered as being in the public domain, however to avoid infringing on my copyrights please ask for the original version from NIST, if for some reason the LGPL and/or MPL is too restrictive for your purposes..
In this document, Section 2 provides instructions for installing and compiling the distribution's sourcecode; Section 3 discusses each package in greater detail; Section 4 presents an overview of the algorithms used in the PCASYS and MINDTCT systems; and manual pages are included in the Reference Manual in APPENDIX B. Sourcecode references have been provided throughout this document to direct the reader to specific files and routines in the distribution. The sourcecode should be considered the ultimate documentation. Technical questions are welcomed and any problems with this distribution should be directed to the authors via email. Any updates to this software will be posted for downloading at http://www.itl.nist.gov/iad/894.03.
Specific software products and equipment identified in this paper were used in order to adequately support the development of the technology 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 software or equipment identified is necessarily the best available for the purpose.