Menu

L3TK_Feature_Extractor

Michael Chaberski

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].

Process Flow

Templates for each feature type are written in a format compatible with the NBIS Bozorth matcher. The process flow is as follows:

  1. The image is opened and preprocessed.
  2. Desired features are extracted based upon the specified flags.
  3. Extracted features are written to template files.
  4. Extracted quality data is written to quality files.
  5. Diagnostic images are written as specified by the configuration file.

If a directory of images is specified in the command line, steps 1-5 are repeated for each image.

Execution

Required Files

  • Included
    • nij-extractor.jar

(the executable)
* ibg-mig-0.1.jar

  • External Dependencies
    • NBIS
      mindtct
      

executable
Note: see the configuration page for information on setting the path to the

mindtct

executable.

Syntax

The command syntax is as follows:

java jar nij-extractor.jar pathname1 dpi pathname2 [pathname3] [OPTIONS]

where:

  • pathname1

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:

  • create the directory
    /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

.

Options

The following flags may be used in a command:

  • -p

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

Configuration Parameters

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.

Supported Image Formats

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.

Supported Image Resolutions

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.

Processing Prerequisites

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.

[Category:User's_Guide] [Category:Feature_Extractor_Guide]


Related

Wiki: L3TK_Feature_Extractor_Configuration
Wiki: Technical_Report

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.