Live demo · ID verification

Is that really you?
Five seconds to find out.

Record a short clip and the demo checks whether your face matches the photo on a specimen driver's license, and whether it is a real, moving face rather than a photo. Face detection and recognition run on CPUs that Chalk deploys from a single Python file.

Verify yourself

Press Use my face to put your photo on a specimen license, then Record and turn your head when prompted. Pick a sample license instead to see a mismatch. Frames are compared in memory and never stored.

yunet + sfaceOpen in new tab

How it works

Two questions decide the verdict: is this the same person as the photo, and is it a live person in front of the camera? Each has its own score and threshold.

Find the faces

YuNet locates the face on the license and in each of 15 frames sampled from your 5-second clip, along with five landmarks: eyes, nose tip and mouth corners.

Compare identities

SFace aligns each face on its landmarks and turns it into a 128-number embedding. Cosine similarity against the license face is scored on the most frontal frames.

Check for a real head

Across the clip, the nose should move toward one eye and then the other as you turn. A flat photo held up to the camera barely moves it, so it fails liveness.

Getting started

Deploy your own in three commands

Clone the example, log in, and run the deploy script. Chalk builds the image with both models baked in, starts a two-CPU replica, and prints a URL that serves this exact demo in a few minutes.

The API takes one license image and a handful of frames, so the same deployment can sit behind an onboarding flow, a support tool, or a fraud model as one more feature.

chalk-ai/id-verification
git clone https://github.com/chalk-ai/id-verification
cd id-verification

# Or export CHALK_CLIENT_ID and CHALK_CLIENT_SECRET.
chalk login

# Builds the image, starts a CPU replica, prints your demo's URL.
./deploy.py

What Chalk handles

The models are the interesting part. Everything around them is the part Chalk does for you.

No GPU required

Detection and recognition run on two CPUs with OpenCV. Fifteen frames take about half a second.

Images from Python

Image.debian_slim().pip_install(...) builds the container with both models baked in. No Dockerfile, no registry to manage.

Private by construction

Frames are compared in memory and discarded with the response. The server logs scores and timing, never images.

Runs in your cloud

The replica runs in your Chalk environment, so faces never pass through a third-party API.

Explainable decisions

Every verdict comes with the similarity score, the threshold, the head-turn range and per-frame results.

Five files, open source

The server, page, deploy script, sample portraits and a command-line client are Apache-2.0 on GitHub.

This is a demo, not an identity product. The head-turn check stops a still photo, not a video replay or a deepfake, and face recognition accuracy varies across people, cameras and lighting. Use faces only with consent and follow the biometric privacy laws that apply to you.

Put identity signals next to your features

Face match, liveness, device and behavior signals feed the same fraud and risk models. Talk to an engineer about serving them in your cloud.