这是一个基于 Electron + Next.js + Hybrid AI (MediaPipe + ArcFace) 构建的高性能、完全离线的桌面端人脸识别考勤应用。
- 双引擎架构:结合 MediaPipe(前端快速检测/活体)与 ArcFace(后端高精度识别),兼顾速度与准确率。
- 完全离线:数据与模型均存储在本地,保护隐私,无网络依赖。
- 活体检测:内置眨眼检测 (EAR) 算法,有效防御照片/视频攻击。
- 自动化考勤:识别成功自动打卡,支持抓拍存档与考勤记录导出。
- Node.js: v18 或更高版本
- 包管理器: pnpm (主项目), npm (Electron子项目)
- 操作系统: macOS (推荐 M1/M2), Windows, Linux
本项目采用混合依赖管理策略,请严格按照以下步骤安装。
第一步:安装前端依赖 (根目录)
pnpm install第二步:安装 Electron 依赖
注意:Electron 目录下必须使用 npm 以确保原生模块打包正确。
cd electron
npm install
cd ..运行脚本自动下载所需的人脸检测与识别模型。
pnpm run download:models启动包含热重载的开发模式:
pnpm run dev:build应用启动后,直接进入 Face Attendance 页面即可体验完整功能。
请按顺序执行以下命令生成生产环境安装包。
编译 Next.js 静态资源:
pnpm run build将前端资源复制到 Electron 容器:
npx cap copy electron进入 Electron 目录,编译 TypeScript 并生成应用包:
cd electron
# 编译主进程代码
npx tsc
# 打包为 macOS 应用 (.app)
npx electron-builder build --mac --dir -c ./electron-builder.config.json -p never
# (可选) 打包为安装镜像 (.dmg)
# npx electron-builder build --mac dmg -c ./electron-builder.config.json -p never打包完成后,可执行文件位于 electron/dist/mac-arm64/ (Apple Silicon) 或 electron/dist/mac/ (Intel) 目录下。
app/attendance- 前端核心业务 (React/Next.js)hooks/useCamera.ts- 摄像头控制逻辑hooks/useFaceDetection.ts- MediaPipe 前端检测逻辑
electron/- 桌面主进程src/face/native-face.ts- ArcFace 后端推理引擎 (ONNX)entitlements.mac.plist- macOS 硬件权限授权文件
public/models- AI 模型文件
MIT