The feature extractor may be used to extract pores, minutia-constrained ridge contour points, edgeoscopic features, and minutiae from a fingerprint image. For a detailed explanation of the feature extraction process, see the Feature Extraction section in the [Technical_Report].
Templates for each feature type are written in a format compatible with the NBIS Bozorth matcher. The process flow is as follows:
If a directory of images is specified in the command line, steps 1-5 are repeated for each image.
(the executable)
* ibg-mig-0.1.jar
mindtct
executable
Note: see the configuration page for information on setting the path to the
mindtct
executable.
The command syntax is as follows:
java –jar nij-extractor.jar pathname1 dpi pathname2 [pathname3] [OPTIONS]
where:
is the path to a fingerprint image or directory of fingerprint images
* dpi
is the resolution in DPI of the fingerprint image(s)
* pathname2
is the path to write all of the templates, diagnostic images and quality files
* pathname3
(optional) is the path to the config file (see section on configuration parameters below)
and
[OPTIONS]
are any of the flags specified below. If no options are specified, the input image is simply preprocessed. More than one extraction option can be used to extract multiple feature types from an image (e.g.
**–p**
and
**–m**
can be used together to create a pore template and a minutia template per image). A space must exist between any flags used.
The command
java –jar nij-extractor.jar /tmp/samples 2000 /tmp/output ./conf/extractor.conf -a
entered on a single line would execute the following steps:
/tmp/output
if it did not already exist;
* open the configuration file located at
./conf/extractor.conf
and set the appropriate parameters;
* extract all features from each
.bmp
and
.jpg
image located in
/tmp/samples
;
* write templates for pores, ridges, edges and minutia for each image to
/tmp/output
; and
* write quality files for pore and ridge contours to
/tmp/output
.
The following flags may be used in a command:
extracts pores and writes them to a template for each image
* -r
extracts ridge contour points and writes a subset of those points (in neighborhoods of minutiae) to a template for each image
* -m
Extracts minutiae and writes them to a template for each image
* -e
Extracts edgescopy and writes them to a template for each image
* -a
Extracts all feature classes writes them to templates for each image
Each feature extraction process has a set of associated configuration parameters. Where possible, these parameters are defined on a per-dpi basis as to allow resolution-independent extraction. These dpi-dependent parameters can be overridden with specific values by adding the appropriate keys to the configuration file. [L3TK_Feature_Extractor_Configuration] lists the configuration keys and contains a sample configuration file.
The feature extractor supports grayscale and RGB images in either bitmap or jpeg formats. A directory of images may contain files of each format. If an image cannot be opened for processing, the image is skipped and the extractor attempts to load the next image. If you receive an error regarding heap space (such an error generally appears as the exception:
java.lang.OutOfMemoryError: Java heap space
), the input image is likely too large to be processed. To resolve this, increase the heap size by including the
-Xmx<max_heap_size>
argument. For example, the command
java -Xmx256m -jar nij-extractor.jar [args]
would increase the max heap size to 256MB.
As all configuration parameters are set with respect to resolution in dpi, any image between 500dpi and 4000dpi can be processed using the feature extractor. However, all default configuration parameter values were set for maximum effectiveness with 2000 dpi images and some parameters did not scale up as precisely as expected in small-scale A3791 testing. To alleviate potential problems with resolutions greater than 2000dpi, the block sizes need to be increased to prevent inaccuracies in sliding window contrast adjustment and estimation of low ridge flow orientation. The Mexican hat variance parameter also needs to be altered as the current convolution operation results in an undesired increase in noise. With these changes the feature extraction process should be capable of producing templates fit for matching.
The extraction process for several of the feature types require data produced during other extraction processes (e.g. to extract edgeoscopic features, the ridges must first be extracted). In these cases, if the verbose option is selected in the configuration file you may see these processing steps occur, but a template for the extraneous feature type(s) will not be saved. Likewise, diagnostic images (if permitted by the configuration file) may be saved for the additional processing steps as they were necessary to extract the desired features.
Wiki: L3TK_Feature_Extractor_Configuration
Wiki: Technical_Report