Returning user: sign in with your face — if the server recognizes you, we skip registration and licence and go straight to calibration.
New user: if you are not recognized (or you skip sign-in), we open registration → licence → rest of the flow.
Use http:// for the API. Serve over HTTP (not file://) for camera access.
Removes your driver record from MongoDB so login will not recognize you and you can run registration + licence again.
Endpoint: POST /api/demo/reset-driver (disable in production with DEMO_RESET_ENABLED=0).
We try to match your face to an existing account. If you are recognized, we skip registration and the licence step (you already have a profile). To force new user + licence capture, use Skip — new registration below, or open this page in a private window.
No login response yet.
New driver: your name must match what will appear on the licence. Use the live preview above — look at the camera until you see your face, then register (the server needs a clear face photo on this step, not the licence card).
Point the webcam at your physical licence card (not a face selfie). The server runs detection + OCR, then matches name/age.
Tips (latency & flicker): Fill most of the frame, hold the card flat and very still, avoid glare and motion blur. YOLO runs every frame; OCR may use Azure Document Intelligence or local engines — allow a few seconds per attempt; status may show “processing” until a stable read.
Server response
Waiting for licence WebSocket…
Runs automatically after licence check. You can retry if something failed.
Optional: enter your driver_id so the stream includes registered name and licence validity / expired from the database. Leave blank to rely on face recognition only (HUD may show "Unknown" until a match).