-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample-config.yaml
More file actions
80 lines (77 loc) · 5.2 KB
/
Copy pathexample-config.yaml
File metadata and controls
80 lines (77 loc) · 5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# FaceID configuration — copy to config.yaml and adjust.
# config.yaml is gitignored: it contains your MQTT credentials.
frigate:
# Either Frigate's open API (port 5000) or its authenticated one (8971, https).
# For 8971 add user/password below; see README "Connecting to Frigate".
url: http://192.168.1.10:5000 # your Frigate base URL
# user: faceid # optional — only for the authenticated port 8971
# password: secret # a viewer account can read; sub_label write-back needs admin
# verify_tls: false # Frigate ships a self-signed certificate by default
mqtt:
host: 192.168.1.2 # your MQTT broker (same one Frigate uses)
port: 1883
user: mqtt-user
password: "mqtt-password"
faceid:
port: 8600 # web UI / API port
# MQTT topic prefix + client id — change only when running multiple instances
mqtt_prefix: faceid
# Cosine-similarity thresholds (ArcFace embeddings):
# >= match_threshold -> recognized (published + Frigate sub_label)
# < unknown_threshold -> definitely a stranger
# in between -> uncertain; goes to the review queue only
match_threshold: 0.50
unknown_threshold: 0.35
# A match score is the mean of the top-k most similar reference photos of a person.
# Higher resists a single lucky photo, but drags down people whose references cover
# many angles — their own less similar photos pull the mean. Measure before changing:
# scripts/measure-recognition.py --top-k N. On one real gallery, 1 nearly doubled
# correct recognitions over 3 with no misassignments.
match_top_k: 3
max_faces_per_person: 40 # soft cap; the most redundant photo is set aside
trimmed_keep: 10 # how many set-aside photos to keep per person (0 = delete)
dedupe_threshold: 0.65 # default sensitivity of the "remove duplicates" action
hires_enroll: true # fetch review-queue faces from the recording instead of
# the detect snapshot — typically twice the face size
clip_fallback: true # when the snapshot holds no face AT ALL, scan the
# recording. Frigate picks its snapshot by highest
# PERSON score, which is often the moment someone
# turns away — measured here, only ~21% of snapshots
# had a usable face. Runs once per event, only for
# events that produced nothing, on its own thread.
clip_fallback_frames: 12 # frames sampled across the clip
clip_fallback_min_det: 0.65 # stricter than the snapshot path (0.55): with twelve
# frames to choose from you can afford to be picky
ignore_threshold: 0.50 # similarity at which a face counts as ignored
# (defaults to match_threshold when unset)
max_ignore_anchors: 0 # cap on AUTO-learned ignore anchors per group
# (0 = unlimited). Drops the most redundant one,
# never a manually added anchor — deleting by age
# would let ignored people resurface.
ignore_learning: true # learn new looks of ignored people as extra anchors
min_face_px: 48 # minimum face size in the snapshot (pixels)
det_size: 640 # detection input size (higher = better far faces, slower)
max_attempts: 6 # recognition attempts per Frigate event
frigate_topic_prefix: frigate # must match `mqtt.topic_prefix` in Frigate's config
poll_interval: 0 # seconds; >0 also polls Frigate's event API.
# Catches events MQTT never announces — notably
# ones created through Frigate's API (e.g. a
# camera's own person detection used as a
# reliability bridge). 30 is a sensible value.
retry_seconds: 2.5 # min. seconds between attempts on the same event
cluster_eps: 0.55 # DBSCAN cosine distance for grouping unknowns in the UI
# review UI: unknown faces with a best-match score >= this get grouped into a
# "Looks like <person>" suggestion with the dropdown pre-selected. Keep below
# match_threshold so borderline faces are pre-sorted without weak-match noise.
suggest_threshold: 0.40
set_sub_label: true # write recognized names back to Frigate events
presence_window: 120 # camera sensor shows everyone seen within this window (s)
# process events only from these cameras (empty = all cameras)
cameras: []
# cameras that get a Home Assistant discovery sensor (sensor.faceid_<camera>)
discovery_cameras: [front_door, garden]
# optional HTTP Basic Auth for the web UI + API (recommended for standalone
# installs; leave empty to disable — the HA add-on is protected by ingress)
auth:
user: ""
password: ""