Retour aux projets
Enterprise

ABIS: Biometric Identification System

A production biometric identification system I architected and built on proven open-source components, delivering enrollment, 1:1 verification and 1:N identification at a fraction of the cost of commercial ABIS platforms.

dotnet C# PostgreSQL Biometrics
ABIS: Biometric Identification System

Overview

ABIS is a biometric identification system for fingerprint and face recognition that I architected and largely built. It covers the full identity lifecycle: enrolling people with their biometrics, verifying a claimed identity one-to-one, identifying an unknown sample one-to-many against the database, and detecting duplicates. It is a system in production use with real clients, so this page describes the engineering rather than any deployment specifics.

Why it exists

Commercial ABIS platforms are powerful but expensive. They are sold by a handful of established vendors under heavy proprietary licensing, which puts serious biometric identification out of reach for many organizations. The goal of ABIS was to deliver the same core capability, enrollment, verification and 1:N identification, at a fraction of that cost, without compromising quality.

The approach was deliberate: rather than reinvent the hard science, build on proven, battle-tested open-source components (SourceAFIS for fingerprints, ArcFace on ONNX for faces, PostgreSQL with pgvector and vector search for scale) and engineer them into one coherent, production-grade system. The result is a self-hostable ABIS that removes the proprietary licensing premium while offering the features teams actually need.

The engineering challenge

Biometric identification is unforgiving. It has to be accurate, fast at population scale, and airtight on some of the most sensitive data there is. The core problems:

  • 1:N identification at scale. Comparing one sample against an entire population is expensive. ABIS uses vector search (Qdrant in production, USearch in development) to narrow a large gallery down to a shortlist of candidates before running exact biometric matching, so identification stays fast without giving up accuracy.
  • Multimodal biometrics. Fingerprints (SourceAFIS) and faces (ArcFace via ONNX) have different matching behavior and thresholds. The system handles each modality on its own terms and combines them.
  • Accuracy you can measure. A dedicated evaluation harness measures matching accuracy so thresholds are tuned on evidence, not guesswork.
  • Sensitive data, serious security. Biometric identity data demands strict access control and traceability: JWT authentication, granular per-action permissions rather than coarse roles, and full audit logging of who did what.

Key capabilities

Biometric operations

  • Enrollment of people with fingerprints and/or face images
  • 1:1 verification to confirm a claimed identity
  • 1:N identification to find a person from a single sample
  • Automatic duplicate detection during enrollment

Adjudication

  • A review workflow for flagged duplicates, with record merging to keep the gallery clean

Third-party integration

  • A scoped API (API key plus per-action permissions) so external systems can register applicants and request verifications or identifications
  • An operator capture flow to collect biometrics and complete those requests
  • Results pushed back asynchronously through webhooks, delivered by background jobs

Security and administration

  • JWT authentication
  • Granular permission system with reusable role templates
  • Full audit trail across operations

Architecture and tech

  • .NET 9, feature-based architecture (Auth, Enrollment, Adjudication, Biometrics, Infrastructure)
  • PostgreSQL 16 with pgvector for storage and vector columns
  • Vector search: Qdrant in production, USearch in development
  • Fingerprint matching: SourceAFIS
  • Face recognition: ArcFace on ONNX Runtime
  • Background jobs: Hangfire (webhook delivery, asynchronous processing)
  • Delivery: Docker, Kubernetes, CI on GitHub Actions, monitoring stack
  • A dedicated evaluation project for measuring biometric accuracy

My role

I am the architect and lead developer of ABIS. I designed the system end to end and wrote the large majority of the codebase, working alongside a team. That spans the biometric pipelines for fingerprint and face, the vector-search layer and the 1:N identification strategy, the enrollment and adjudication workflows, the third-party integration API and webhook delivery, and the security model of granular permissions and audit. The work is ongoing.