GunduLabs/gaze

Facial authentication for Linux

Gaze はLinux向けの顔認証システムです

What it is(これは何か)
Gaze は、Linux 向けのフルスタックのオンデバイス顔認識システムです。バックグラウンドで動作するデーモン、顔の登録やテストを行うコマンドラインツール、GTK4 グラフィカル UI、そして PAM モジュールを提供し、システムが顔を使ってログイン画面、スクリーンセーバー、sudo 、その他の認証ポイントのロックを解除できるようにします。すべての処理(顔検出、位置合わせ、埋め込み(ArcFace)、ライブネス検出(MiniFASNet-V2))はローカルで行われ、画像や生体データがマシンから送信されることはありません。

主要コンポーネント

Component Role
gazed D-Bus サービス(com.gundulabs.Gaze)を公開するシステムデーモン。カメラキャプチャ、推論、ライブネスチェックを処理します。
gaze(CLI) 顔の登録、認証テスト、保存済みテンプレートの管理、診断(gaze doctor)を実行します。
gaze-gui 同じタスクを視覚的なインターフェースで行う GTK4/Adwaita デスクトップアプリケーション。
pam-gaze ログイン/sudo リクエストをデーモンに転送する PAM モジュール。
デスクトップ拡張機能 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 など)向けのネイティブパッケージと、適切なリポジトリを追加し、デーモン、CLI、GUI、およびセッションに応じたデスクトップ固有の拡張機能をインストールするワンライナーインストーラースクリプトを提供します。
Nix/NixOS ユーザー向けには、flake が gaze、gaze-gui、およびデーモン、D-Bus、Polkit、PAM を自動的に設定する NixOS モジュールを提供します。

設定
設定は /etc/gaze/config.toml にあります。重要なセクションは次のとおりです:

  • inference – 実行プロバイダー(cpu、openvino、vitis)とデバイスタイプを選択します。
  • security – TPM シーリングとキーリング統合を制御するセキュリティレベルを設定します。
  • cameras – RGB カメラを選択し、IR を使用するための暗さのしきい値を設定します。
  • 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/ にはデーモン、CLI、GUI、PAM モジュールがあります)。ビルドには Rust 1.85 以上、just、システムライブラリ(OpenCV、GStreamer、GTK4 など)が必要です。just build-rust コマンドですべてがコンパイルされ、just package <format> でディストリビューション用パッケージが作成されます。

誰が使うべきか

  • ラップトップやワークステーションでパスワードレスログインを希望する Linux パワーユーザー。
  • データをオンプレミスに保持しながら、フリートマシンに顔認証ロック解除を展開する企業。
  • オンデバイスの生体認証パイプラインに興味のある開発者(ONNX モデルと TPM 統合はクレートとして公開されています)。

結論: Gaze は、低レベルのカメラ処理とオンデバイス推論から PAM 統合やデスクトップ環境拡張機能に至るまで、スタック全体をカバーする、本格的な Linux 向け顔認証スイートです。オンデバイスの顔認識とライブネス検出を提供することで AI/ML 領域内に留まりながら、周囲のシステム統合の問題も処理します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト