本仓库提供两层能力:
- 人脸认证引擎(Python):
faceauth_engine/ - Linux 集成组件(Rust/C):
faceauthd、pam_faceauth.so、faceauth-polkit-agent、faceauth-settings
faceauth_engine/:模块化引擎face_recognition_enhanced.py:完整参考实现(含 GUI 演示流程)faceauthd/:D-Bus daemon(Rust)pam/:PAM 模块(C)faceauth-polkit-agent/:GTK polkit agent(Rust)faceauth-settings/:GTK 设置界面(Rust)deploy/:systemd / D-Bus / desktop 部署文件models/:模型目录(已创建,可直接放模型)data/:数据库/运行数据目录
由于 GitHub 不适合上传大模型压缩包,仓库内已预留 models/ 目录。
请把模型放到以下固定路径(与默认配置一致):
models/w600k_mbf.onnx(MobileFaceNet embedding)models/liveness.onnx(活体模型)models/deploy.prototxt(DNN 人脸检测)models/res10_300x300_ssd_iter_140000.caffemodel(DNN 人脸检测)
默认配置见:faceauth_engine/config.py。
python -m venv .venv
source .venv/bin/activate
pip install opencv-python numpy onnxruntimefrom faceauth_engine import FaceAuthEngine
engine = FaceAuthEngine()
ok = engine.enroll("alice")
result = engine.authenticate() # PASS / UNKNOWN / NOT_LIVE / ERROR
print(ok, result)python -m faceauth_engine --enroll alice
python -m faceauth_enginecargo build --workspace会构建:
faceauthdfaceauth-polkit-agentfaceauth-settings
make -C pam生成:pam/pam_faceauth.so
若报缺少
dbus-1或pam头文件,请先安装开发包(如libdbus-1-dev、libpam0g-dev)。
cargo run -p faceauthdpython -m faceauth_engine将 deploy/ 中的文件安装到系统路径:
deploy/faceauthd.servicedeploy/io.secureface.FaceAuth.servicedeploy/secureface-polkit-agent.desktop
并按你的发行版规范安装二进制到对应目录(例如 /usr/libexec/secureface/)。
- detect face
- select largest face
- align to 112x112
- normalize [-1,1]
- run embedding model
- run liveness model
- compare with database (dot product)
- apply threshold logic
返回值严格为:
PASSUNKNOWNNOT_LIVEERROR