Skip to content
Engineering•August 5, 2026•2 min read

How Facenox Matches Face Templates Locally

How Facenox stores face templates in SQLite and matches enrolled members using in-memory comparisons.

Facenox Engineering
Facenox Engineering
Engineering
Share:
How Facenox Matches Face Templates Locally

Facenox separates template storage from face matching. SQLite stores local records, including encrypted face templates. The recognizer loads templates into memory and compares them with an embedding produced from a detected face.

Correction, October 23, 2026: The earlier article described SQLite-based vector search and published latency, memory, and competitor comparisons without reproducible supporting artifacts. Those figures and the SQLite execution claim have been withdrawn.

Storage is not the matching engine

The recognizer maintains a cache that maps person identifiers to embeddings. The matching function builds or accepts a matrix of stored vectors and compares query vectors using NumPy's np.dot(q_matrix, db_matrix.T).

It selects the highest similarity and checks it against the configured threshold. If the score is below that threshold, the function returns no match. Matching can also be scoped to allowed person identifiers.

Matching time is only part of a check-in

A camera frame must be captured and processed. Face detection, liveness checks, embedding inference, matching, and attendance recording have different costs.

A measurement of vector comparison alone cannot establish end-to-end check-in time. Results depend on the computer, camera pipeline, model configuration, number of templates, and other work running on the device.

How to measure a deployment

Record the software and model versions, hardware, template count, and settings. Separate first-run initialization from repeated operation. Measure the complete check-in workflow as well as individual stages, and report a distribution of results rather than only the fastest run.

Use the same hardware, settings, and workload when comparing results.

Why local matching matters

The computer can recognize enrolled members and record attendance without waiting for a Cloud recognition request. When connected, Cloud receives synced records for browser review and reporting.

See the matching functions and recognizer cache.

Facenox updates

Get product and engineering updates

Request email updates about Facenox releases, local face recognition, and Cloud sync.

Record locally. Review with Cloud.

Download the free desktop app to record attendance. Connect Facenox Cloud to review synced records and reports from your browser, even for one office.