Pcasys is the non-graphical fingerprint classifier demo program. It reads a sequence of image files, each depicting one box as scanned from a fingerprint card, and classifies each fingerprint, using a Multi-Layer Perceptron (MLP) or Probabilistic (PNN) Neural Network, to one of six pattern-level classes: Arch, Left loop, Right loop, Scar, Tented arch, and Whorl. The type of classifier MLP or PNN is chosen in the parameters file pcasys/parms/pcasys.prs. Pcasys optionally makes an output file, containing a results line for each fingerprint and a summary at the end showing the error rate and the "confusion matrix", and it optionally writes progress messages to the standard output.
The graphical version, pcasysx, is recommended as being much more interesting than this version. However, pcasys is suitable if (1) the X Window System, which pcasysx requires, is not installed, or (2) greatest classification speed is desired. (The graphical displays take a significant amount of additional time.)
Pcasys will look in the default location pcasys/parms for the default parameter files it needs. There are prototype and weights files in pcasys/weights/{mlp|pnn} that are needed by the MLP and PNN classifiers. If NFIS was installed in a location other than /usr/local/nfis the INSTALL_DIR in include/little.h will need to be changed and the code recompiled. Also, the current default location for the 2700 sample fingerprint images is test/pcasys/data/images. If the user wants to save disk space, these images could be left on a mounted CDROM and a link made from the images directory on the CDROM to the image directory where the software is installed.
A file containing one or more parameter values that are to override the default values. To find out what the parameters are, and as examples of the format of a parameters file, consult the default parameters files that pcasys reads, namely pcasys/parms/oas.prs and pcasys/parms/pcasys.prs which are described in the section PARAMETER FILES. Each line, in the parms file consists of a parameter name followed by a value; a pound sign indicates that the rest of its line is a comment. If pcasys is run with no argument, i.e. not specifying a user parameters file, then it uses the default values of all parameters.
Contains default values of the parameters that affect the making of orientation arrays (oas): these are the parms of the segmentor (sgmnt), the image enhancer (enhnc), the ridge-valley orientation finder (rors), the registration program (r92a), and the registration-implementing pixelwise orientations reaverager (rgar). The values used for these parms when making the oas used in optimizing the classifier should also be used when running the finished classifier. See the mkoas man page for more information about the parameters in this file.
Contains default values of the remaining parameters of pcasys. Also look at pcasys.mlp and pcasys.pnn for examples on using each classifier.
Default settings in pcasys/parms/pcasys.prs
Set classifier as (1) PNN (Probabilistic Neural Net) or (2) MLP (Multi-layer Perceptron).
How many (first) rows of the transform matrix to use, and hence, how many features to make for the feature vector of each incoming fingerprint, and also how many (first) features to use of each prototype feature vector when running the classifier:
File used by the demo to transform the orientation array of an incoming fingerprint into the low-dimensional feature vector that will be sent to the classifier.
Class string used in graphics mode to display the ouput activations. Should be same size as number of outputs (ie. pnn_nclasses or number outputs in mlp_wts file). Must be some combination of "ALRSTW". For PNN, these must be the same classes as used in the prototype files and be in the same order as when the prototype were optimized.
pnn (Probabilistic Neural Net) parameters:
How many first feature vectors to use, from the set of prototypes. The value 24300 corresponds to the entire provided set, corresponding to volumes 1 - 9 "f" rollings of Special Database 14.
How many different classes there are. For the fingerprint pattern-level classification problem, there are 6: A, L, R, S, T, and W.
Overall smoothing factor for the PNN. May be optimized using optosf.
Prototype feature vectors file.
Prototype classes file.
MLP (Multi-layer Perceptron) network parameters:
MLP weights file.
Parameters used by the pseudoridge tracer:
If squared-length of an orientation vector (in the fine grid used by pseudo) is < this value, then the vector is zeroed before the (possible) application of smoothing iterations.
If, after (possible) smoothing iterations, the squared-length of an orientation vector is < this value, then this location is marked as bad, meaning that no pseudoridge is allowed to start here and if one arrives here, tracing stops at this point.
Center-weight for each iteration of smoothing of the orientation grid. An iteration consists of replacing each vector with the weighted average of itself and its four neighbors, with itself getting this much weight and its neighbors equally dividing the remaining weight (sum of weights is 1).
Length of one step in the production of a pseudoridge, which is actually a polygon. A value of 1. corresponds to the spacing between vectors in the (finer) orientation array used by pseudo.
Max allowed tilt of a candidate concave-upward's vertex (point of sharpest turning) from a horizontal that corresponds to exact uprightness. In degrees.
Minimum cumulative turn that each side of concave-upward must have. In degrees.
Limits for the block of starting positions in pseudoridge tracing:
Small limit, vertical. (TOP)
Large limit, vertical. (BOTTOM)
Small limit, horizontal. (LEFT)
Large limit, horizontal. (RIGHT)
Maximum number of steps that tracer ever takes in either of the two directions from starting point. (Controls the amount of memory needed to store a pseudoridge, and more importantly, such a limit is needed to prevent possible infinitely looping pseudridges in some whorls.)
How many iterations of smoothing.
Maximum turn that is allowed to occur in a single step (in degrees). An attempted turn sharper than this causes tracing to stop.
Used by the combine routine.
This is the confidence value combine assigns if pseudo finds a concave-upward (causing hyp class to be whorl) but PNN thinks the print is not a whorl:
PCASYS I/O parameters.
List of fingerprint images to run the demo on. The default list here lists the first 20 fingerprints of the provided demo set, which consists of the 2700 fingerprints of volume 10 "s" rollings of NIST Special Database 14. pcasys/parms/all.txt list all 2700 files.
Output file to be produced. If no output file is wanted, set this to /dev/null.
If n, then if outfile already exists, exit with an error message. If y, then overwrite outfile if it already exists.
If y, then write progress messages to stdout.