Building AI Face Verification for Employee Attendance
Why Opperiq's face/selfie verification service caches its models instead of reloading them per request, and how that decision shapes the mobile attendance flow.
Why attendance needed identity verification
Standard geofenced check-in — confirming an employee is at the right location — doesn't confirm who is actually checking in. For field-operations clients running payroll off attendance data, that gap matters. Opperiq addresses it with an AI-powered face/selfie verification step layered on top of geofenced attendance in the React Native field app.
YOLOv8 for detection, InsightFace for verification
The verification pipeline uses YOLOv8 to detect and localize a face in the selfie frame, then InsightFace to generate and compare a facial embedding against the employee's enrolled reference. Splitting detection and verification into two purpose-built models, rather than one general-purpose model doing both, keeps each step accurate for what it's actually responsible for.
Why model caching mattered
Loading a YOLOv8 or InsightFace model from disk on every verification request is slow enough to make a mobile attendance flow feel broken — employees checking in at shift start don't tolerate a multi-second spinner. The service keeps both models cached in memory after the first load, so subsequent verification requests skip model initialization entirely and only pay the cost of running inference on the new frame.
This is a common pattern in production computer-vision services: the model-loading cost is fixed and front-loadable, while inference cost per request should be the only variable cost a user actually experiences.
Where verification fits in the larger platform
Verification results feed directly into Opperiq's tenant-scoped attendance records, which in turn feed payroll. The AI step isn't a standalone feature — it's a gate in front of a data pipeline that finance teams depend on, which is why correctness and latency both mattered more than they would for a novelty feature.