Document OCR
Reads the fields off an identity document and scores them one field at a time, not as one blob of text. PaddleOCR classic by default, VL a config switch away.
- ✓Field-level character error rate is the metric
- ✓MIDV-2020 arrives through the fetch scripts, never through git
- ✓A stub backend says why it fell back instead of returning a quiet zero
Forgery detection
Scores a document as authentic or tampered, and sweeps the threshold instead of publishing one flattering operating point. ForgeryNet weights, on Hugging Face.
- ✓TPR and F1 across a threshold sweep, with the published threshold stated
- ✓Document-disjoint split, so eval IDs never appear in training forgeries
- ✓The optional TruFor backend is research-only, so its weights stay unpublished
Face compare
Matches the portrait on a document against a selfie, with detection and embedding split into steps you can inspect. YuNet finds the face, SFace compares it.
- ✓Sensitivity and accuracy across a threshold sweep
- ✓ONNX weights from redrob-labs/redrob-verify-face
- ✓Pairs are built during ingest, so the next run sees the same pairs
Identity aggregate
Pulls a developer identity together from public profiles and measures what the caller actually waits for, slowest upstream included.
- ✓End-to-end latency, not per-call microbenchmarks
- ✓JMeter drives the load for the latency test
- ✓Four services, one shared /v1/meta preflight contract