public class FingerprintMatcher extends Object
FingerprintMatcher
maintains data structures that improve matching speed at the cost of some RAM.
It can efficiently match one probe fingerprint to many candidate fingerprints.
New matcher is created by passing probe fingerprint template to index(FingerprintTemplate)
on an empty fingerprint matcher instantiated with FingerprintMatcher()
constructor.
Candidate fingerprint templates are then passed one by one to match(FingerprintTemplate)
.
FingerprintTemplate
Constructor and Description |
---|
FingerprintMatcher()
Instantiate an empty fingerprint matcher.
|
Modifier and Type | Method and Description |
---|---|
FingerprintMatcher |
index(FingerprintTemplate probe)
Build search data structures over probe fingerprint template.
|
double |
match(FingerprintTemplate candidate)
Match candidate fingerprint to probe fingerprint and calculate similarity score.
|
FingerprintMatcher |
transparency(FingerprintTransparency transparency)
Enable algorithm transparency.
|
public FingerprintMatcher()
FingerprintTemplate
passed to match(FingerprintTemplate)
.
You can call index(FingerprintTemplate)
to index probe fingerprint
and match(FingerprintTemplate)
to match it to some candidate fingerprint.index(FingerprintTemplate)
public FingerprintMatcher transparency(FingerprintTransparency transparency)
FingerprintTransparency
instance.transparency
- target FingerprintTransparency
or null
to disable algorithm transparencythis
(fluent method)FingerprintTransparency
public FingerprintMatcher index(FingerprintTemplate probe)
match(FingerprintTemplate)
to compare fingerprints.
This method is heavy in terms of RAM footprint and CPU usage.
Initialized FingerprintMatcher
should be reused for multiple match(FingerprintTemplate)
calls in 1:N matching.
probe
- probe fingerprint template to be matched to candidate fingerprintsthis
(fluent method)match(FingerprintTemplate)
public double match(FingerprintTemplate candidate)
candidate
parameter is matched to probe fingerprint previously passed to index(FingerprintTemplate)
.
Returned similarity score is a non-negative number that increases with similarity between probe and candidate fingerprints.
Application should compare the score to a threshold with expression (score >= threshold)
to arrive at boolean match/non-match decision.
Threshold 10 corresponds to FMR (false match rate) of 10%, threshold 20 to FMR 1%, threshold 30 to FMR 0.1%, and so on.
Recommended threshold is 40, which corresponds to FMR 0.01%. Correspondence between threshold and FMR is approximate and varies with quality of fingerprints being matched. Increasing threshold rapidly reduces FMR, but it also slowly increases FNMR (false non-match rate). Threshold must be tailored to the needs of the application.
This method is thread-safe. Multiple threads can match candidates against single FingerprintMatcher
.
candidate
- fingerprint template to be matched with probe fingerprint indexed by this FingerprintMatcher
index(FingerprintTemplate)
Copyright © 2018. All rights reserved.