Face-based Time-Tracking on Luckfox Pico
Chấm công Khuôn mặt Edge Luckfox Pico
Offline time-tracking for a 200-worker factory — recognize <300ms on a sub-$8 SoC.
Problem
Industrial site with no stable wifi; legacy fingerprint clocks failed often (wet/dirty hands). 3-5 minute drift per worker per day → painful month-end payroll reconciliation.
Architecture
USB 720p cam → Luckfox Pico (RV1106 NPU 0.5 TOPS) → MTCNN detect (8 ms) → ArcFace embedding INT8 RKNN (220 ms) → cosine match local 1,200-face DB → SQLite log → 4G dongle sync hourly. Tiny 0.96" OLED shows name + time.
Stack & rationale
- Luckfox Pico ($8): 256 MB RAM fits ArcFace INT8 + 1,200-face DB.
- ArcFace over FaceNet: better angular margin for high-FAR tolerance.
- C++ firmware: no Python GC pauses, predictable latency.
Results
- Recognition: 180-280 ms, FAR <0.001 (1,200 faces × 5 angles tested)
- 8 months of continuous run, 0 downtime > 5 min
- ~3 hours/month saved for accounting
- Cost per device: $22 (vs commercial $180+)
Lessons
Low-end NPU is enough for <2000 faces. Lighting consistency matters more than a fancy camera — diffuse LED ring is enough.
Security & Compliance
- Secure boot + signed firmware: only Ed25519-signed binaries can run on the device.
- mTLS between edge and gateway; cert rotation every 90 days.
- No SSH in production firmware — OTA updates only, via signed channel.