
專案概述: EvoFace 是一套專為企業落地設計的「邊緣運算 AI 臉部辨識考勤系統」。本系統以 InsightFace 為辨識核心,完整涵蓋從前端打卡終端 (PySide6) 到員工自助查詢入口 (Streamlit) 的雙平台架構,並將複雜的三班制與跨日打卡邏輯自動化,提供一站式的企業出勤解決方案。
專案願景: 摒棄傳統依賴昂貴 GPU 伺服器與雲端 API 的 AI 應用思維,本專案致力於解決「AI 技術落地」的真實工程挑戰。透過深度優化邊緣運算與底層架構,EvoFace 成功在普通商用 CPU 設備上實現流暢的高負載辨識,大幅降低企業導入 AI 的建置門檻。
核心目標:
零接觸與嚴格防弊: 整合異質模型與 MiniFASNet 活體偵測,徹底杜絕傳統感應卡代刷與手機翻拍漏洞,確保考勤 100% 真實。
高併發極致流暢: 導入非同步多執行緒 (QThread) 與資料庫讀寫分離 (SQLite WAL Mode),解決尖峰時刻千人排隊打卡導致的系統卡頓與鎖死 (Locking) 痛點。
動態適應與免維護: 獨創自適應權重熱更新 (Hot-Update) 機制,系統能自動學習員工換髮型或戴眼鏡等外貌變化,實現「越用越準」的長期穩定性。
在千人規模的製造業或排班制企業中,傳統打卡系統常面臨以下挑戰,而 EvoFace 提供了根本性的技術解法:
痛點一:代打卡防弊困難 ➡️ [解法] 異質模型活體防偽 不再依賴單一模型,整合 MediaPipe 與 InsightFace 進行精準特徵比對,並掛載 MiniFASNet 活體偵測引擎,徹底防堵照片或螢幕翻拍攻擊。
痛點二:尖峰打卡導致系統卡頓 ➡️ [解法] 非同步架構與併發控制 針對上下班尖峰時刻,導入 QThread (RecognitionWorker) 徹底分離 AI 運算與 UI 渲染;同時啟用 SQLite WAL 模式,讓前台百人連續刷臉與後台人資撈取報表可「零延遲」同步進行。
痛點三:外貌變化導致辨識率下降 ➡️ [解法] 動態特徵熱更新 (Hot-Update) 獨創自適應權重演進機制,系統會自動學習員工日常的微小外貌變化,即時將新特徵熱更新至記憶體,降低後續維護成本。
痛點四:初期員工建檔耗時費力 ➡️ [解法] 證件照無痛註冊 (Zero-Setup) 打破需「全體排隊現場拍照」的限制,系統具備跨場景特徵擷取能力,人資僅需匯入員工既有證件照即可完成建檔,實現零干擾導入。
相較於單純呼叫開源模型 API,本專案更著重於「演算法落地」的軟體工程實踐與使用者體驗:
邊緣推論輕量化 (Edge Inference): 將龐大的深度學習模型全面轉換為 ONNX Runtime 格式。在純 CPU 環境下,依然能將「人臉追蹤 ➡️ 活體偵測 ➡️ 特徵比對」的完整 Pipeline 壓制在毫秒級別。
防誤判與雙軌備援機制 (Context-Aware & Fallback Logic):
猶豫機制與密碼備援 (Ambiguity & Password Fallback): 當候選人相似度差距過小 (<0.05) 或落入模糊信心度 (>0.4) 時,系統啟動防護拒絕放行,並自動彈出「工號與密碼」輔助驗證視窗,確保極端環境下現場動線不斷。
智慧冷卻 (Debounce): 精準識別已打卡但仍在鏡頭前逗留的員工,自動進入倒數冷卻期,避免傳統系統瘋狂彈出「重複辨識」的錯誤提示。
極端情境排除與 UX 優化 (Edge-Cases & UX): 內建影像鏡像翻轉與語音回饋 (Voice Feedback)。同時具備防呆機制,能自動偵測「距離過遠 (FACE_TOO_SMALL)」與「多人入鏡 (MULTIPLE_FACES)」並給予即時 UI 提示。
模組化關注點分離設計 (Separation of Concerns): 採用嚴謹的物件導向 (OOP) 架構,將核心引擎 (Core Engine)、圖形介面 (GUI) 與資料庫操作 (DB CRUD) 徹底解耦,大幅提升可維護性。
本系統採 Desktop/Web 雙平台架構,兼顧現場終端機效能與跨網段查詢便利性:
核心 AI 演算法:
特徵提取:InsightFace (ArcFace) (512 維向量矩陣比對)
活體防偽:Silent-Face (MiniFASNet)
臉部追蹤:Google MediaPipe
軟體工程與高併發架構:
多執行緒控制:Producer-Consumer Pattern, PySide6 QThread
資料庫併發優化:SQLite (Write-Ahead Logging Mode)
模型加速部署:ONNX Runtime
前端介面與資料管理:
打卡終端與管理後台:PySide6
員工自助查詢入口:Streamlit (建構區域網 Web Portal)
EvoFace 不僅是技術展示,底層更內建了完整的企業商業邏輯:
免現場拍照的無痛建檔 (Frictionless Onboarding): 憑藉 InsightFace 強大的泛化能力,系統能精準比對員工的 2D 靜態證件照與現場 3D 動態人臉,替企業省去巨額的初期建檔行政成本。
三班制與跨日考勤引擎: 原生支援早班、晚班、大夜班邏輯,完美解決製造業常見「16:00 上班、隔日 01:00 下班」的跨日打卡判定難題。
賦能人資自動化: 管理後台支援考勤紀錄一鍵匯出為 Excel,無痛銜接企業薪資軟體;Web 端則開放員工自助查詢,大幅降低人資日常行政負擔。
商用完整度與架構效能驗證 (Commercial Viability & Architecture Validation):
本專案跳脫了單純的「模型 API 呼叫」框架,成功建構出涵蓋邊緣辨識、活體防偽、到 Web 查詢後台的完整考勤生態系。在架構效能上,透過 QThread 非同步處理與 SQLite WAL 讀寫分離,搭配 ONNX 模型輕量化,EvoFace 成功證明了「高精度 AI 不必然依賴高昂硬體」。在一般商用 CPU 環境下,系統不僅實現了毫秒級的連續流暢辨識,徹底消除 UI 卡頓,更完美融合了跨日排班與密碼備援等真實企業邏輯。這充分驗證了 EvoFace 是一套兼具「底層效能深度」與「商用落地廣度」的高穩定即戰力產品。
未來迭代方向 (Roadmap):
雲端原生與容器化: 預計將管理後台與 Web 服務導入 Docker 容器封裝,並結合 GitLab CI/CD 實現自動化部署。
分散式資料架構: 計畫支援 PostgreSQL 雲端資料庫串接,以滿足跨廠區、多網點的集團式集中考勤管理需求。
💻 GitHub 開源原始碼: https://github.com/chenkuanchung/evoface-attendance
💼 個人網頁: https://chenkuanchung.github.io/