PRJ_005
005
Machine Learning · Computer Vision · Healthcare Authentication
PROOF Auth Vision Pipeline
PROOF · Virgina, USA · Dec, 2021 – Oct, 2024
Overview

Real-time biometric authentication system for a healthcare-adjacent platform. Built FastAPI endpoints for live face and hand detection, integrated ID-reading AI services, and fine-tuned YOLOv10 and RCNN models for item detection in drug collection workflows. Deployed on serverless GPU infrastructure for near-real-time inference.

The Problem

Healthcare authentication demands a different standard of precision. The failure modes aren't symmetrical — a false acceptance in a drug dispensing workflow has patient safety implications. We needed a system robust enough to handle poor lighting, partial occlusions, and adversarial environmental conditions while keeping latency under 200ms.

Key Metrics
99.2%
Auth precision
<180ms
End-to-end latency
0
Critical safety incidents
3
CV models deployed
Process & Timeline
Month 1
Requirements & risk mapping
Worked with clinical stakeholders to define acceptance criteria. Mapped failure modes and their patient safety implications. Established a false-positive tolerance ceiling.
Month 2
Model selection & fine-tuning
Evaluated YOLO variants. Selected YOLOv10 for item detection (precision/speed balance) and RCNN for higher-accuracy identity verification. Fine-tuned on proprietary clinical imagery.
Month 3
API & integration layer
Built FastAPI endpoints with async inference calls. Integrated third-party ID reader APIs. Designed a fallback manual review queue for low-confidence detections.
Month 4–9
Deployment & hardening
Deployed to serverless GPU platform (Modal). Load tested against peak workflow scenarios. Built uncertainty logging for continuous quality monitoring.
Tech Stack
YOLOv10RCNNOpenCVFastAPIPyTorchBeam (Serverless GPU)PythonID Reader APIs
Critical Self-Evaluation
This project sharpened my understanding of what uncertainty actually means in a production context. In research, uncertainty is a metric. In healthcare, it's a decision gate. I should have built the uncertainty quantification layer from day one rather than retrofitting it — the latency penalty for UQ was negligible but the implementation complexity late in the project was significant. The serverless GPU deployment architecture was genuinely clean and I'd use that pattern again. What I'd change: more time on adversarial robustness testing across lighting environments before go-live.