Configuration
Gaze is configured with /etc/gaze/config.toml.
Most users only need to change camera device or security level.
Default config
toml
level = "medium"
[cameras]
rgb = "/dev/video0"
[enrollment]
max_captures_per_face = 8Change security level
level controls model choice and match strictness.
| Level | Detector | Recognizer | Threshold | Notes |
|---|---|---|---|---|
low | SCRFD-500M | MobileFaceNet | 0.30 | Fastest |
medium | SCRFD-500M | MobileFaceNet | 0.40 | Default |
high | SCRFD-10G | ResNet50 | 0.50 | More accurate |
maximum | SCRFD-10G | ResNet50 | 0.60 | Most strict |
custom | n/a | n/a | n/a | See below |
Practical guidance:
medium: best starting point for most laptopshigh: use when false positives are unacceptablelow: use on weaker hardware when speed is critical
Custom level
toml
level = "custom"
detector = "det_10g.onnx"
recognizer = "w600k_r50.onnx"
threshold = 0.55Select camera device
List camera devices:
bash
ls /dev/video*Then set:
toml
[cameras]
rgb = "/dev/video0"If you use an external USB webcam, it may appear as /dev/video1 or higher.
After changing config:
bash
sudo systemctl restart gazedStorage paths
Storage locations are managed by the service setup and are not intended to be changed in config:
- User embeddings:
/var/lib/gaze/users - Downloaded models:
/var/cache/gaze
Models are auto-downloaded on first run if missing.
Enrollment behavior
toml
[enrollment]
max_captures_per_face = 8Increase this if auth is unreliable in varied lighting.
Recommended tuning workflow
- Start with
level = "medium" - Enroll one profile:
gaze add-face default - Test 5 to 10 times using
gaze auth --verbose - If false accepts are too high, switch to
high - If false rejects are too high, run
gaze refine-face default