SourceAFIS CLI
SourceAFIS CLI is a command-line interface for SourceAFIS libraries (Java, .NET). At the moment, it can benchmark algorithm accuracy, template footprint, and implementation speed. It also includes tools that aid in development of SourceAFIS, specifically transparency data logging and output checksums.
Running
In order to benchmark SourceAFIS on particular hardware, clone the repository on the target machine and execute it.
git clone https://github.com/robertvazan/sourceafis-cli-java.git cd sourceafis-cli-java mvn compile exec:java -Dexec.args="benchmark"
Give it a few minutes to download data and populate caches. You should then see benchmark report.
Dataset EER FMR100 FMR1K FMR10K High quality 2.23% 3.66% 5.80% 7.50% All 8.59% 13.1% 18.3% 22.0% Dataset Serialized Memory Minutiae High quality 468 B 10.8 KB 35 All 466 B 10.8 KB 35 Operation Iterations Gross Net Thread Mean Min Max Sample Median SD Geom.mean GSD extraction 4,426 109 fp/s 113 fp/s 28.4 fp/s 35.3 ms 5.48 ms 172 ms 4,426 32.3 ms 16.2 ms 32.7 ms 1.45x identification 2,023,702 49.6 Kfp/s 52.1 Kfp/s 13.0 Kfp/s 76.7 us 31.0 ns 20.6 ms 6,819 71.1 us 85.3 us 67.1 us 2.02x verification 50,051 1.25 Kfp/s 1.25 Kfp/s 312 fp/s 3.21 ms 79.0 ns 80.5 ms 6,709 1.76 ms 4.41 ms 1.83 ms 3.15x deserialization 2,108,962 52.8 Kfp/s 53.0 Kfp/s 13.2 Kfp/s 75.5 us 983 ns 16.6 ms 6,667 52.7 us 69.0 us 56.0 us 2.11x
Parameters
SourceAFIS CLI accepts a number of subcommands and options. You can enumerate them by executing the CLI with no arguments.
mvn compile exec:java
SourceAFIS CLI will show information about every subcommand and option.
SourceAFIS CLI for Java
Available subcommands:
version
Report version of SourceAFIS library being used.
benchmark
Measure algorithm accuracy, template footprint, and implementation speed.
benchmark accuracy
Measure algorithm accuracy.
benchmark speed
Measure algorithm speed.
benchmark speed extraction
Measure speed of feature extraction, i.e. FingerprintTemplate constructor.
benchmark speed identification
Measure speed of identification, i.e. calling match() with non-matching candidate.
benchmark speed verification
Measure speed of verification, i.e. creating FingerprintMatcher and calling match() with matching candidate.
benchmark speed deserialization
Measure speed of template deserialization.
benchmark footprint
Measure template footprint.
checksum
Compute consistency checksum of all algorithm outputs.
checksum templates
Compute consistency checksum of templates.
checksum scores
Compute consistency checksum of similarity scores.
checksum extraction
Compute consistency checksum of extractor transparency data.
checksum probe
Compute consistency checksum of transparency data generated when preparing probe for matching.
checksum comparison
Compute consistency checksum of transparency data generated during comparison of probe to candidate.
log extraction <dataset> <key>
Log extractor transparency data for given key.
log probe <dataset> <key>
Log transparency data for given key while preparing probe for matching.
log comparison <dataset> <key>
Log transparency data for given key during comparison of probe to candidate.
export grayscale
Convert sample images to grayscale.
purge
Remove cached data except downloads.
Available options:
--home <path>
Location of cache directory.
Default: /home/rv/.cache/sourceafis
--normalize
Log normalized transparency data instead of raw data obtained from the library.
--baseline <path>
Compare with output of another SourceAFIS CLI. Path may be relative to cache directory, e.g. 'java/1.2.3'.
Subcommand name is passed to SourceAFIS CLI as part of command-line arguments.
The following example will run subcommand "benchmark accuracy".
mvn compile exec:java -Dexec.args="benchmark accuracy"
Library version
You can view version of the currently used SourceAFIS library by executing "version" subcommand.
mvn compile exec:java -Dexec.args="version"
SourceAFIS CLI will identify the underlying SourceAFIS library.
3.17.1