chris.giteaandClaude Sonnet 5 4b379d6001 feat(recognition): make face detection quality thresholds user-tunable
Faces coming back too small or too low quality had no lever to pull:
YuNet's own confidence floor was hardcoded, and no minimum face size or
sharpness check existed anywhere in the pipeline. Three new
recognition preferences (min-face-size-fraction, min-detection-confidence,
min-sharpness), visible/editable in Settings, filtered once in
MediaRecognitionService.detect() so they apply regardless of which
engine produced the region. Every default preserves current behaviour
exactly (confidence default matches YuNet's existing 0.6 floor, the
other two default to disabled) -- strictly opt-in.

Sharpness is a variance-of-Laplacian score on the face crop, resized to
a fixed canonical size first so it stays comparable across differently
sized faces -- no new dependency or model, reuses the image already
decoded for detection.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JzvA5ySQUsYrMUTj7sHxFA
2026-09-16 23:08:42 -04:00
2026-08-22 17:52:02 -04:00
2026-08-22 11:54:20 -04:00
2026-08-22 11:54:20 -04:00
2026-08-22 11:54:20 -04:00
2026-08-08 23:21:21 -04:00
2026-07-26 18:49:07 -04:00
2026-07-26 18:49:07 -04:00
S
Description
No description provided
54 MiB
Languages
Java 97.4%
CSS 1.5%
Python 0.9%
JavaScript 0.2%