GunduLabs/gaze

Facial authentication for Linux

Gaze – Linux 面部认证

它是什么
Gaze 是一个全栈式、设备端的人脸识别系统,适用于 Linux。它提供了一个在后台运行的守护进程、一个用于注册和测试人脸的命令行工具、一个 GTK4 图形界面以及 PAM 模块,使系统可以使用人脸解锁登录屏幕、屏幕保护程序、sudo 和其他身份验证点。所有处理(人脸检测、对齐、嵌入(ArcFace)和活体检测(MiniFASNet-V2))均在本地进行;图像或生物识别数据不会离开机器。

主要组件

组件 作用
gazed 系统守护进程,公开 D-Bus 服务(com.gundulabs.Gaze)。处理相机捕获、推理和活体检测。
gaze(命令行) 注册人脸、测试身份验证、管理存储的模板、运行诊断(gaze doctor)。
gaze-gui 用于相同任务的 GTK4/Adwaita 桌面应用程序,具有可视化界面。
pam-gaze PAM 模块,将登录/sudo 请求转发给守护进程。
桌面扩展 GNOME Shell、Cinnamon、KDE Plasma、Omarchy、Hyprlock – 将人脸解锁集成到每个环境的锁屏中。
gaze-security 可选的人脸模板 TPM 后端密封功能以及与 GNOME Keyring/KDE KWallet 的集成。

工作原理

  1. 请求通过 PAM 或桌面扩展到达。
  2. gazed 从配置的相机捕获一帧。
  3. 该帧通过一个流程:SCRFD 人脸检测 → 对齐 → ArcFace(ONNX)生成嵌入 → 与存储的嵌入进行比较 → MiniFASNet-V2 活体检测。
  4. 如果匹配分数超过配置的阈值且活体检测通过,则身份验证成功。

安装
该项目为主要 Linux 发行版(Debian/Ubuntu、Fedora、openSUSE、Arch 等)提供原生软件包,并提供一个一行安装脚本,用于添加适当的软件源,安装守护进程、命令行工具、图形界面以及适合您会话的桌面特定扩展。
对于 Nix/NixOS 用户,flake 提供了 gaze、gaze-gui 以及一个 NixOS 模块,自动配置守护进程、D-Bus、Polkit 和 PAM。

配置
设置位于 /etc/gaze/config.toml 中。重要部分包括:

  • inference – 选择执行提供程序(cpu、openvino、vitis)和设备类型。
  • security – 设置控制 TPM 密封和钥匙圈集成的安全级别。
  • cameras – 选择 RGB 相机并设置使用红外时的黑暗阈值。
  • liveness – 启用/禁用防欺诈功能并调整置信度阈值。

典型工作流程

# 注册人脸(系统会提示您直视前方,然后稍微移动)
g gaze add-face default

# 测试登录流程
g gaze auth   # 输出成功/失败和时间信息

也可以使用 gaze-gui 完成相同操作。

性能与硬件加速
默认情况下,Gaze 在 CPU 上运行,但守护进程可以加载 Intel OpenVINO 或 AMD Ryzen AI NPU 的供应商提供的运行时。安装驱动程序后,将运行时放置在 /usr/lib/gaze/runtimes 下,并在配置中设置 execution_provider = "auto"(或 openvino/vitis),然后重启守护进程。gaze doctor --benchmark 命令报告检测、识别和活体推理速度。

安全说明

  • 所有生物识别数据都保留在设备上;嵌入存储在磁盘上,并可密封到 TPM 以获得额外保护。
  • README 建议在高安全环境中保留传统的密码/PAM 方法作为后备方法。

从源代码构建
该项目是一个 Rust 工作区(crates/ 包含守护进程、命令行工具、图形界面和 PAM 模块)。构建需要 Rust 1.85+、just 和系统库(OpenCV、GStreamer、GTK4 等)。just build-rust 命令编译所有内容,just package <format> 创建发行版软件包。

适用人群

  • 希望在笔记本电脑或工作站上实现免密码登录的 Linux 高级用户。
  • 希望在多台设备上部署人脸解锁同时保持数据本地化的企业。
  • 对设备端生物识别流程感兴趣的开发人员(ONNX 模型和 TPM 集成以 crate 形式公开)。

结论:Gaze 是一款真正的、生产级别的 Linux 面部认证套件,涵盖了从底层相机处理和设备端推理到 PAM 集成和桌面环境扩展的整个技术栈。它通过提供设备端人脸识别和活体检测,保持在 AI/ML 领域内,同时处理周围的系统集成问题。

相关

  • 项目
  • 项目
  • 项目
  • 项目