Skip to main content

Identification (1:N)

Identification answers "who is this?" — the complete process of recognising a person from a live capture by searching the probe against a gallery of enrolled identities and returning the best match(es) above a score threshold, or none. No identity is claimed up front.

How it works​

Identification is a full pipeline, not a single call:

Matching operates on templates — compact binary representations of the biometric sample (for scale: a face template in the SFE Toolkit is 522 bytes) — so the application's gallery holds templates rather than images.

Liveness is the security check. Where the use case calls for it, passive liveness typically runs before template extraction and matching: if a probe fails liveness, abort and don't match a spoofed input. Depending on the integration it can also run after matching. See Liveness.

Modalities​

The same feature is implemented by several SDKs, each covering different modalities. Pick by the modality you need and where matching runs:

SDKRunsFaceIrisPalmFingerprint
SFE ToolkitOn-device✓✓✓—
Biometric Identification ServiceServer✓—✓—
IDKitOn-device———✓
Enrollment SDKDesktop / server / Android✓✓—✓

Notes:

  • SFE Toolkit face, palm and iris templates are 522 bytes.
  • Proprietary fingerprint template size is ~2KB.
  • Enrollment SDK covers face, iris and fingerprint (no palm).

SFE Toolkit implementation​

On the SFE Toolkit (face, palm, iris), each pipeline step maps to a capability — follow a link for the per-capability detail:

Pipeline stepFacePalmIris
DetectionFace DetectionPalm detectionIris detection
Landmarks / keypointsFace LandmarksPalm landmarks—
Quality / attributesFace QualityPalm Attributes—
Template extractionFace Template ExtractionPalm Template ExtractionIris Template Extraction
1:N identificationFace IdentificationPalm IdentificationIris Identification

Passive liveness is a separate feature — see Liveness.

IDKit implementation​

IDKit covers the fingerprint modality. Its pipeline steps map to:

Pipeline stepIDKit capability
Quality / presenceFingerprint quality and presence
Template extractionTemplate extraction
1:N identificationIdentification (one-to-many)

Fingerprint capture and enrollment are handled by the Enrollment SDK.

Enrollment SDK implementation​

On the Enrollment SDK (face, iris, fingerprint), each pipeline step maps to a function:

Pipeline stepFaceIrisFingerprint
DetectionFaceDetector::DetectIrisDetector::DetectPrintExecutor::AlgoSegment / NeuralSegment
Landmarks / keypointsFaceExecutor::GetKeypoint——
Quality / attributesOFIQFaceIrisExecutor::IrisQualityPrintExecutor::CalculateNFIQ2
Template extractionApplicant::AddFaceApplicant::AddIrisICSExtractor::Extract · Applicant::AddPrint
1:N identificationIndexedModalitiesGallery::IdentifyModalitiesIndexedModalitiesGallery::IdentifyModalitiesIndexedModalitiesGallery::IdentifyModalities

Full signatures: API Reference.

Key considerations​

  • Gate on quality before liveness and extraction. Reject low-quality captures early, and check the extracted template (not just the image) — an acceptable image can still yield a weak template.
  • Tune the threshold to your FMR/FNMR target on representative data; vendor/example values are illustrative, not production security settings. Only candidates at/above the matching-score threshold are returned.
  • Gallery size vs latency — 1:N cost grows with gallery size; size the compute (threads / instances) to your latency target.
  • Enroll several samples per person and match by the best per-identity score — robust to pose, lighting, and ageing.
  • Keep the extraction algorithm/version consistent between gallery and probe; templates are only comparable within one algorithm family.
  • Validate on the platform and data you deploy — quantized edge models don't reproduce desktop/server float results exactly; revalidate FAR/FRR and liveness operating points per target.