diff --git a/02-architecture/BIOMETRIC_ENGINE_ARCHITECTURE.md b/02-architecture/BIOMETRIC_ENGINE_ARCHITECTURE.md index e2a20bc..77c7156 100644 --- a/02-architecture/BIOMETRIC_ENGINE_ARCHITECTURE.md +++ b/02-architecture/BIOMETRIC_ENGINE_ARCHITECTURE.md @@ -279,7 +279,7 @@ Nice to have. Server-side alternatives exist for all of these. |-----------|---------------|-----------------| | `PassiveLivenessDetector` | Texture/color/moire liveness scoring | Server-side liveness via `biometric-processor` is the primary authority. Client-side is supplementary. Gabor convolution is expensive; defer to Phase 3. | | `EmbeddingComputer` | ONNX face embeddings | Server-side DeepFace embedding via REST API. **Note:** MobileFaceNet was removed per ADR 0003 (2026-04-18); the active client path is geometry-512 (landmark-based fallback). | -| `CardDetector` | ONNX YOLO card detection | Server-side YOLO (current production path) | +| `CardDetector` | ONNX YOLO card detection | None — client-only in production; the server-side YOLO card path was removed (web-app #111) | --- diff --git a/09-auth-flows/01-PLATFORM_CAPABILITY_MATRIX.md b/09-auth-flows/01-PLATFORM_CAPABILITY_MATRIX.md index 96d6bed..61764cf 100644 --- a/09-auth-flows/01-PLATFORM_CAPABILITY_MATRIX.md +++ b/09-auth-flows/01-PLATFORM_CAPABILITY_MATRIX.md @@ -147,10 +147,10 @@ FIVUCSAS supports **5 client platforms** and **10 authentication methods** acros #### Card Detection (ID Document Scan) - **Input**: Camera captures image of physical document - **Platforms**: All camera-equipped devices -- **Dependencies**: Biometric Processor API (`/api/v1/card/detect` - YOLO-based) -- **Processing**: Server-side (image classification + OCR) +- **Dependencies**: In-browser ONNX YOLOv8n (client-side detection, web-app #111); Biometric Processor API only for OCR/MRZ on the captured crop +- **Processing**: Client-side detection/classification; server-side OCR only - **Enrollment**: Capture front/back of ID document, extract and verify data -- **Offline Capable**: No (requires biometric processor) +- **Offline Capable**: Detection yes (client-side ONNX runs without server); OCR/MRZ extraction still requires the biometric processor --- diff --git a/09-auth-flows/03-ENROLLMENT_FLOWS.md b/09-auth-flows/03-ENROLLMENT_FLOWS.md index b42295a..3f8df93 100644 --- a/09-auth-flows/03-ENROLLMENT_FLOWS.md +++ b/09-auth-flows/03-ENROLLMENT_FLOWS.md @@ -653,7 +653,7 @@ Step 1: Document Photo Capture - Capture front of ID document Step 2: Document Classification - - POST /api/v1/card/detect (biometric processor, YOLO-based) + - In-browser YOLOv8n ONNX detection (client-only, web-app #111; no server round-trip) - Detect document type: passport, national ID, driver's license, etc. Step 3: Data Extraction diff --git a/plans/CLIENT_SIDE_ML_PLAN.md b/plans/CLIENT_SIDE_ML_PLAN.md index a176632..e91a3e4 100644 --- a/plans/CLIENT_SIDE_ML_PLAN.md +++ b/plans/CLIENT_SIDE_ML_PLAN.md @@ -43,7 +43,7 @@ The server has no GPU. All heavy ML **inference for auth decisions** stays serve | Voice VAD | **Primary** (Phase 4, this plan) | — | In progress | | Voice embedding | — | **Only** (Resemblyzer 256-dim) | Server only, V2 may revisit | | Voice 1:1 verify | — | **Only** | Server only | -| Card detection | **Primary** (YOLOv8n ONNX / WASM) | Fallback | Wired, awaiting model file (Phase 3) | +| Card detection | **Only** (YOLOv8n ONNX / WASM, in-browser) | — | Live — client-only; server fallback removed (web-app #111). True 12.3 MB YOLOv8n delivered + integrated (web-app #109, biometric-processor #116) | | Card OCR + MRZ | — | **Only** | Server only | | Proctoring gaze / deepfake / object | — | **Only** | Server only | @@ -80,10 +80,10 @@ Live in browser. No action needed. Model bundled with MediaPipe runtime. | Property | Value | |---|---| | Format | ONNX (WASM) | -| Size | ~6.2 MB | +| Size | ~12.3 MB (true YOLOv8n, opset 12) | | Input | 640×640 RGB (letterboxed) | | Output | Bounding boxes + class | -| Role | Real-time client overlay; crop sent to server for OCR + MRZ. Server fallback on missing model. | +| Role | Real-time client overlay + detection (client-only); crop sent to server for OCR + MRZ. No server fallback for detection (removed, web-app #111). | ### 4.5 Passive Liveness — MobileNet-v3 Anti-Spoof Currently heuristic (texture/moire/color) in `PassiveLivenessDetector.ts`. No neural model. Phase 5 will wire it into a gating threshold or demote it — no new model purchase required. @@ -105,7 +105,7 @@ Currently heuristic (texture/moire/color) in `PassiveLivenessDetector.ts`. No ne "base_url": "https://app.fivucsas.com/models", "files": [ {"name": "mobilefacenet.onnx", "sha256": "", "bytes": 4915200}, - {"name": "yolo-card-nano.onnx", "sha256": "", "bytes": 6500000}, + {"name": "yolo-card-nano.onnx", "sha256": "", "bytes": 12300000}, {"name": "silero-vad.onnx", "sha256": "", "bytes": 1850000} ] } diff --git a/presentations/SPRING_2026_FINAL_PRESENTATION.md b/presentations/SPRING_2026_FINAL_PRESENTATION.md index 0752d16..3a233e5 100644 --- a/presentations/SPRING_2026_FINAL_PRESENTATION.md +++ b/presentations/SPRING_2026_FINAL_PRESENTATION.md @@ -567,7 +567,7 @@ function App() { | High | Widget dogfooding — use own widget in web-app login | In Progress | | High | Mobile app backend integration tests | URLs configured | | Medium | SMS gateway (Twilio) production activation | Code ready | -| Medium | Client-side ONNX card detection (replacing server YOLO) | In Progress | +| Medium | Client-side ONNX card detection (replacing server YOLO) | Done (web-app #111; server YOLO card path removed) | | Low | ISO/IEC 30107 compliance certification | Future | | Low | Full WebAuthn attestation (CBOR) | Research | | Future | iOS app UI implementation | Framework ready |