API SpecificationOverviewThe Slap Fingerprint Segmentation Evaluation 2004 will investigate the accuracy of fingerprint image segmentation systems for use with multi-finger slap images. The segmentation application to be tested is assumed to run on Windows 2000 or Red Hat Linux 7.2, on x86 platforms. Other options must be approved by the Test Liaison. The application must have a command-line interface as specified in this document; no other user interface is permissible. The segmentation application must be capable of taking as input either a Wavelet Scalar Quantization (WSQ) compressed slap image, or an uncompressed raw slap image, and outputting up to four uncompressed raw segmented images, each corresponding to one of the individual fingers pictured in the slap. It is recommended that the segmentation application return segmentation quality values, indicating the likelihood that that image was correctly segmented. 1 Application Inputs1.1 Slap Image FilesThe segmentation application must be capable of processing multi-finger slap images stored either in
These formats are defined further below. 1.1.1 Resolution and DimensionsAll images for this test shall employ 500 PPI resolution (horizontal and vertical). In almost all cases, the dimensions of slap images are within the maxima defined by ANSI/INCITS 381[2]: width less than 83.8 mm (3.3 in), and height less than 76.2 mm (3.0 in). In a few cases, the dimensions may exceed those values, up to a maximum of 101.6 mm (4.0 in), or 2000 pixels. 1.1.2 Slap Image FilenamesMulti-finger slap image files shall be specified in the command line either by relative pathnames, or fully-qualified pathnames. Unix-style forward slashes (“/”) shall be used, not Windows-style backward slashes (“\”). For example,
The root filename is defined as the filename without the path or extension. For example,
Filenames will be limited to alphanumeric characters and underscores (i.e. they will not contain blanks). Symbolic links or Windows shortcuts will not be used. 1.1.3 WSQ File FormatWSQ files are compliant with the document WSQ Gray-Scale Fingerprint Image Compression Specification.[4] NIST has public domain WSQ tools in NIST Fingerprint Image Software (NFIS). [1] A variety of commercial vendors of WSQ tools can easily be found by doing an Internet search, e.g. for "wsq compression software." 1.1.4 Raw File FormatRaw 8-bit grayscale image files are canonically encoded with black equal to 0, white equal to 255, etc.; stored left to right, top to bottom, with one 8-bit byte per pixel. The number of bytes in a file is exactly the image height * image width, as measured in pixels; there is no header. 1.2 Input ParametersThe following information shall be provided as parameters to the segmentation application:
The parameters (if present) will always be in the stated order. Parameters will be separated by spaces or tabs. 1.3 Example Command-line UsageThe following are examples of how the input parameters may be specified to the segmentation application (using “Unix-like” command-line usage syntax). In the following examples, items within “[ ]” are optional. The application should be named “segment” (Linux) or “segment.exe” (Windows). Usage:
or
2 Application Outputs2.1 Segmented Image FilesFor each slap image file that is input, up to four separate segmented image files may be produced, depending upon the number of individual fingers that the segmentation system is able to find in the slap image. Unless otherwise specified by the application input parameter, Output Path, the segmented image files shall be written to the current execution directory. 2.1.1 Segmented Image File FormatSegmented images shall be stored in uncompressed, raw 8-bit (one byte per pixel) grayscale format and shall preserve the original resolution (PPI) of the slap image. The segmented image shall be encoded canonically (black equal to 0, white equal to 255, etc.) and stored left to right, top to bottom. 2.1.2 Segmented Image FilenamesSegmented image files shall be written with the root filename (as defined in 1.1.2 Slap Image Filenames) concatenated with _{seg_pos} followed by _{finger_pos} and the extension .raw.
Finger_pos shall be written as two digits with a leading zero (if necessary). For example,
Note that if the position code cannot be determined by the segmentation application, it shall set finger_pos equal to 0, for example,
2.1.3 DimensionsIt is assumed that the output files are unlikely to have width or height greater than 1.5 inches (750 pixels), but any width or height up to 4 inches (2000 pixels) is permissible. Output files with width or height less than 0.1 inches (50 pixels) will be ignored during analysis. 2.2 Meta-information FilesAlong with outputting a set of (up to four) segmented image files for a single slap image, the segmentation application shall also produce a single meta-information file for each segmented image. Unless otherwise specified by the application input parameter, Output Path, the meta-information files shall be written to the current execution directory. The meta-information file is stored with a filename equal to the segmented image filename (see 2.1.2 Segmented Image Filenames) with the extension .nsm replacing .raw. For example,
The meta-information file shall contain a series of attribute-value pairs, formatted one per line. Minimally it must contain the following attribute-value pairs:
The following attribute-value pairs may be output by the segmentation system, but are not required. We request that these be output if practical.
For example,
2.3 Error Codes and HandlingThe segmentation application shall exit with a return code of zero on success. The participant must provide documentation of all (non-zero) error or warning codes (see section 3.3, Documentation). The application should include error/exception handling so that in the case of a crash, the return code is still provided to the calling shell. We request that the following return codes be used:
All errors, warnings and informational messages shall be limited to output displayed via standard output or standard error. No GUI-type dialog windows are permitted. 3 Software and Documentation3.1 Application type and platformThe application provided shall be command-line driven, and capable of being run in non-interactive “batch mode.” No graphical user interface (GUI) is permitted. Test participants shall provide NIST with binaries only (i.e. no source code) for their segmentation application. Testing of segmentation systems will be performed on commercial, off-the-shelf PCs. Applications running on Red Hat Linux 7.2 or Microsoft Windows 2000 are preferred; other operating systems must be approved by the Test Liaison. 3.2 InstallationSegmentation software must install and run easily to be evaluated. It is recommended that the application shall be immediately executable without use of an installation program. Please contact the Test Liaison if an installation program is absolutely necessary. The application shall be executable on any number of machines without requiring additional machine-specific license control procedures or activation. It is preferred that the application be packaged as a single executable file. If external libraries (such as DLLs) are necessary, they should work from the application directory, and not require installation in another location. 3.3 DocumentationComplete documentation of application usage shall be provided, and shall detail any additional functionality or behavior beyond what is specified in this document. The documentation must define all error and warning codes. The documentation must define the range of segmentation quality values, at least to the extent of defining the minimum and maximum values. If thresholds are known, they should be documented: e.g. “values above 0.8 are almost always correctly segmented, and values below 0.2 are almost always incorrect”. 3.4 SpeedSoftware that runs excessively slowly cannot be evaluated. On average, segmentation software should take much less than ten (10) seconds to segment a slap image (using a 1ghz Pentium III). Due to resource limitations, software that takes longer than that may not be evaluated. Processing speed will be noted but will not be a primary evaluation criterion. 3.5 Sample Data and ResultsParticipants must test their software using the SlapSeg04 Sample data, and email these results to the Test Liaison for validation before sending software to NIST for evaluation. References[1] NIST Fingerprint Image Software (NFIS) [2] American National Standard for Information Technology - Finger Image-Based Data Interchange, ANSI/INCITS 381-2004, May 13, 2004, www.incits.org [3] R. M. McCabe, "ANSI/NIST-ITL 1-2000 Data Format for the Interchange of Fingerprint, Facial, and Scar Mark & Tattoo (SMT) Information" [4] WSQ Gray-Scale Fingerprint Image Compression Specification, IAFIS-IC-0110 (V3) Criminal Justice Information Services Division, Federal Bureau of Investigation, December 1997 |
SlapSeg04 LinksOther related links
|