Skip to content

Commit bd9d227

Browse files
authored
Merge pull request #13 from Vladush/chore/docs-and-ci-improvements
docs: clarify camera support and optimize CI
2 parents b0ff6d7 + 5ebb11b commit bd9d227

3 files changed

Lines changed: 40 additions & 13 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
11
name: CI
22

3+
permissions:
4+
contents: read
5+
36
on:
47
push:
58
branches: [master]
69
tags: ["v*.*.*"]
10+
paths-ignore:
11+
- "**.md"
12+
- "docs/**"
13+
- ".gitignore"
14+
- ".dockerignore"
15+
- "LICENSE"
16+
- ".github/ISSUE_TEMPLATE/**"
17+
- ".github/PULL_REQUEST_TEMPLATE.md"
718
pull_request:
819
branches: [master]
20+
paths-ignore:
21+
- "**.md"
22+
- "docs/**"
23+
- ".gitignore"
24+
- ".dockerignore"
25+
- "LICENSE"
26+
- ".github/ISSUE_TEMPLATE/**"
27+
- ".github/PULL_REQUEST_TEMPLATE.md"
928

1029
jobs:
1130
build-gcc:

‎.github/workflows/release.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
name: Release
22

3+
permissions:
4+
contents: write
5+
36
on:
47
workflow_run:
58
workflows: ["CI"]

‎README.md‎

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22

33
[![CI](https://github.com/Vladush/LinuxCamPAM/actions/workflows/ci.yml/badge.svg)](https://github.com/Vladush/LinuxCamPAM/actions/workflows/ci.yml)
44

5-
> **A personal hobby project to bring seamless face unlock to my Linux laptop.**
5+
> Face unlock for Linux, like Windows Hello™. Any webcam works; IR recommended for best results.
66
7-
LinuxCamPAM provides seamless face unlock for Linux `sudo`, `login`, and `gdm` using OpenCV and AI models (YuNet/SFace). I built it to solve my own need for speed and reliability, supporting hardware acceleration (OpenCL, CUDA) and smart dual-camera configurations (IR + RGB).
7+
LinuxCamPAM provides seamless face unlock for Linux `sudo`, `login`, and login/lock screens (GDM, SDDM, LightDM) using OpenCV and AI models (YuNet/SFace). I built it to solve my own need for speed and reliability, supporting hardware acceleration (OpenCL, CUDA) and smart dual-camera configurations (IR + RGB). Virtually any USB webcam works out of the box.
88

99
## Motivation
1010

11-
I developed this primarily to solve a real-world frustration for my family. My daughter uses a Fujitsu T900 with a complex setup involving a Swiss-French-German external keyboard and a German internal keyboard, while frequently switching between Russian and Ukrainian layouts. Keeping track of which layout is active when typing a complex password became a daily struggle for her (and occasionally for me too!). Face authentication eliminates this friction entirely—no more locked accounts due to the wrong keyboard layout!
11+
I built this to solve a real problem for my family. My daughter's Fujitsu T900 has a Swiss-French-German external keyboard plus a German internal one, and she switches between Russian and Ukrainian layouts. Typing passwords on the wrong layout = locked accounts. Face auth fixes that. Also for myself :-)
1212

13-
With the decision to open source this project, I have dedicated significant effort to ensuring it is hardware and system agnostic—moving beyond just my personal devices to support a wide range of cameras and architectures. I have also invested heavily in comprehensive documentation to make it accessible to everyone.
13+
Since open-sourcing, I've put effort into making it hardware-agnostic and well-documented.
1414

1515
## Features
1616

17-
- **Blazing Fast**: Uses lightweight ONNX models (YuNet detection + SFace recognition).
18-
- **Hardware Acceleration**: OpenCL (AMD via Rusticl, Intel, NVIDIA) with optional CUDA backend (requires CUDA-enabled OpenCV build).
19-
- **Smart GPU Detection**: Automatically detects AMD GPUs and uses Rusticl OpenCL driver. This was added after discovering that Mesa/Clover causes kernel-level GPU crashes on my AMD Radeon 880M. Non-AMD systems use their native drivers; AMD systems without Rusticl gracefully fall back to CPU.
17+
- **Any Webcam Works**: Standard USB or integrated cameras (720p+ recommended). No special hardware required.
18+
- **Enhanced IR Support**: Detects IR cameras and controls emitters for better low-light and anti-spoofing.
19+
- **Hardware Acceleration**: OpenCL (AMD via Rusticl, Intel, NVIDIA) with optional CUDA backend.
20+
- **Smart GPU Detection**: Auto-detects AMD GPUs and uses Rusticl. Non-AMD systems use native drivers; falls back to CPU if needed.
2021
- **Smart Camera Support**:
21-
- **Dual-Camera Security**: Uses IR cameras for liveness/security and RGB for validation, ensuring robust auth even in low light.
22-
- **Auto-Configuration**: Automatically detects your hardware (IR vs RGB) and selects the best authentication policy.
23-
- **Enhanced Enrollment**: HDR capture (multi-exposure merge) when supported, frame averaging for all cameras. Configurable globally via `[Capture]` or per-camera via `[Camera.xxx]` sections.
24-
- **Multi-Embedding Support**: Store multiple face embeddings per user for different lighting conditions (`linuxcampam list`, `train --new`).
25-
- **PAM Integration**: Standard PAM module integrating seamlessly with Debian/Ubuntu.
26-
- **Security First**: Comprehensive [Threat Model & Security Assessment](docs/SECURITY_ASSESSMENT.md) included.
22+
- **Dual-Camera Security**: Uses IR for liveness/security and RGB for validation.
23+
- **Auto-Configuration**: Detects your hardware (IR vs RGB) and selects the best policy.
24+
- **Enhanced Enrollment**: HDR capture when supported, frame averaging for all cameras.
25+
- **Multi-Embedding Support**: Store multiple face embeddings per user for different lighting (`linuxcampam list`, `train --new`).
26+
- **PAM Integration**: Standard PAM module for Debian/Ubuntu.
27+
- **Security First**: [Threat Model & Security Assessment](docs/SECURITY_ASSESSMENT.md) included.
2728

2829
## Installation
2930

@@ -239,3 +240,7 @@ I am excited to see this project grow beyond the hardware I currently possess! *
239240
## License
240241

241242
MIT License
243+
244+
---
245+
246+
*Windows Hello is a trademark of Microsoft Corporation. This project is not affiliated with or endorsed by Microsoft.*

0 commit comments

Comments
 (0)