GunduLabs/gaze

Facial authentication for Linux

Gaze는 Linux용 얼굴 인증 시스템입니다

개요
Gaze는 Linux를 위한 풀스택 온디바이스 얼굴 인식 시스템입니다. 백그라운드에서 실행되는 데몬, 얼굴 등록 및 테스트를 위한 명령줄 도구, GTK4 그래픽 UI, PAM 모듈을 제공하여 시스템이 얼굴을 사용하여 로그인 화면, 화면 보호기, sudo, 기타 인증 지점의 잠금을 해제할 수 있도록 합니다. 모든 처리(얼굴 감지, 정렬, 임베딩(ArcFace), 라이브니스 감지(MiniFASNet-V2))는 로컬에서 이루어지며, 이미지나 생체 데이터가 기계를 떠나지 않습니다.

주요 구성 요소

구성 요소 역할
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 도메인에 속하면서 주변 시스템 통합 문제도 처리합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트