Hi!
First, thanks for FaceID. I'm using FaceID 0.9.1 with Frigate 0.17 and Home Assistant.
I have a use case where fast recognition is important: when several people approach the entrance together, I use the FaceID MQTT sensor in Home Assistant to identify who entered.
I noticed a case where FaceID recognized some people in the group quickly, but another person was recognized much later.
Looking at the FaceID log, I found what appears to be the reason.
For example, one event showed:
- snapshot face size: 39 px
min_face_px: 48
- result: face rejected as too small
Later, the recording fallback found a much better frame:
- face size: 91 px
- detection confidence: 0.86
- match:
Evgenii (0.502)
So the recording contained a perfectly usable face, but it became available to recognition much later than I need for real-time Home Assistant automations.
My current relevant settings are:
min_face_px: 48
det_size: 640
max_attempts: 6
clip_fallback: true
poll_interval: 0
- Frigate detect stream: 1280x720 @ 10 fps
- separate high-quality main stream is used by Frigate for recording
Would it be possible to add an optional live high-resolution fallback?
The idea would be:
- Receive the normal Frigate event/snapshot.
- Try the normal fast recognition path.
- If a face is detected but rejected because it is smaller than
min_face_px (or perhaps if no usable face is found after N attempts), do not wait for the normal recording fallback.
- Immediately fetch/grab a higher-resolution frame from the camera/Frigate main stream or current recording.
- Run face detection/recognition on that frame.
- Continue using the existing behavior if the high-resolution attempt also fails.
Conceptually:
Normal path:
Frigate event
→ snapshot/person crop
→ face >= min_face_px
→ recognition
Proposed fallback:
Frigate event
→ snapshot/person crop
→ face < min_face_px
→ immediately get high-resolution frame
→ detect face
→ recognition
In my case this could potentially turn:
39 px face
→ rejected
→ wait/retries
→ recording fallback
→ 91 px face
→ recognized
into:
39 px face
→ too small
→ live high-res fallback
→ larger face
→ recognized immediately
I would prefer this over simply lowering min_face_px, because recognizing very small faces may reduce recognition reliability. The high-resolution fallback could preserve the current quality threshold while improving recognition latency.
It could perhaps be configurable, for example:
live_hires_fallback: true/false
live_hires_fallback_after_attempts: 1
- optional camera allowlist
- optional cooldown to avoid excessive CPU/network load
Do you think this is technically possible with the current Frigate integration?
If FaceID already has a mechanism that can achieve the same result, I'd also appreciate advice on the recommended configuration.
Thanks!
Hi!
First, thanks for FaceID. I'm using FaceID 0.9.1 with Frigate 0.17 and Home Assistant.
I have a use case where fast recognition is important: when several people approach the entrance together, I use the FaceID MQTT sensor in Home Assistant to identify who entered.
I noticed a case where FaceID recognized some people in the group quickly, but another person was recognized much later.
Looking at the FaceID log, I found what appears to be the reason.
For example, one event showed:
min_face_px: 48Later, the recording fallback found a much better frame:
Evgenii(0.502)So the recording contained a perfectly usable face, but it became available to recognition much later than I need for real-time Home Assistant automations.
My current relevant settings are:
min_face_px: 48det_size: 640max_attempts: 6clip_fallback: truepoll_interval: 0Would it be possible to add an optional live high-resolution fallback?
The idea would be:
min_face_px(or perhaps if no usable face is found after N attempts), do not wait for the normal recording fallback.Conceptually:
Normal path:
Frigate event
→ snapshot/person crop
→ face >= min_face_px
→ recognition
Proposed fallback:
Frigate event
→ snapshot/person crop
→ face < min_face_px
→ immediately get high-resolution frame
→ detect face
→ recognition
In my case this could potentially turn:
39 px face
→ rejected
→ wait/retries
→ recording fallback
→ 91 px face
→ recognized
into:
39 px face
→ too small
→ live high-res fallback
→ larger face
→ recognized immediately
I would prefer this over simply lowering
min_face_px, because recognizing very small faces may reduce recognition reliability. The high-resolution fallback could preserve the current quality threshold while improving recognition latency.It could perhaps be configurable, for example:
live_hires_fallback: true/falselive_hires_fallback_after_attempts: 1Do you think this is technically possible with the current Frigate integration?
If FaceID already has a mechanism that can achieve the same result, I'd also appreciate advice on the recommended configuration.
Thanks!