Identity Verification (KYC) — OCR & Face Match

Two production AI services that power ID-card OCR, document-authenticity detection and biometric face matching for banking and finance customer onboarding: IDOCR and IDBM.

Identify-Turkey (id24.tr) In production — Banking/KYC REST API · JWT TSE Documentation & Certification
Identity verification: ID-card OCR and biometric face matching

Project Info

  • Role: Developer — IDOCR & IDBM (AI/CV modules)
  • Client: Identify-Turkey — id24.tr KYC platform
  • Scope: ID OCR + MRZ, authenticity detection, biometric face match
  • Integration: Flask REST API (JWT), Docker/Kubernetes microservices
  • Status: Live (in production)

Overview

I built two independent microservices that form the AI core of a KYC (Know Your Customer) identity-verification platform. IDOCR reads the front and back of a national ID card and extracts its fields (ID number, name/surname, date of birth, validity, serial number, MRZ); detects whether an image is an ID and its orientation; and verifies document authenticity through security features. IDBM is a biometric face-matching service that compares a selfie against the ID photo, and additionally provides face analysis and landmark extraction. Both run in production as encrypted, JWT-protected REST APIs on Docker/Kubernetes.

End-to-end: beyond model development and service delivery, I also managed the TSE documentation and certification process; the solution is used in banking customer-verification flows.

IDOCR — ID OCR & Authenticity Detection

  • ID Detection & Orientation: YOLO-based detection of whether an image is an ID and whether it is the front or back side.
  • Field OCR: Extraction of ID number, name/surname, date of birth, validity, gender and serial number from the front (YOLO region detection + Tesseract OCR).
  • MRZ Reading: Back-side MRZ parsing and cross-validation against the front-side fields.
  • Authenticity / Security Features: Hologram and MLI detection on the front, guilloche detection on the back.

IDBM — Biometric Face Matching

  • Face Match (1:1): Selfie ↔ ID-photo comparison; distance- and threshold-based match decision.
  • Multiple Models & Metrics: ArcFace, Facenet512, VGG-Face, SFace, etc.; cosine / euclidean_l2 metrics with per-model tuned thresholds.
  • Face Detection & Landmarks: Face detection and landmark extraction via RetinaFace, MTCNN and MediaPipe.
  • Face Analysis: Age, gender and emotion estimation; ONNX conversion for performance.

Tech Stack

Python Flask YOLO (Ultralytics) Tesseract OCR OpenCV PyTorch DeepFace TensorFlow dlib MediaPipe ONNX JWT Docker Kubernetes PostgreSQL Gunicorn

Deployment & Operations

  • Serving: Gunicorn + Flask; Docker images, scalable Kubernetes deployment.
  • Security: JWT-based authentication and end-to-end encryption.
  • Compliance: TSE documentation and certification for banking/KYC requirements.