feat: Implement empirical confidence calibration for face matching

This commit introduces a new confidence calibration system that converts DeepFace distance values into actual match probabilities, addressing previous misleading confidence percentages. Key changes include the addition of calibration methods in `FaceProcessor`, updates to the `IdentifyPanel` and `AutoMatchPanel` to utilize calibrated confidence, and new configuration settings in `config.py`. The README has been updated to document these enhancements, ensuring users see more realistic match probabilities throughout the application.
This commit is contained in:
tanyar09
2025-10-27 13:31:19 -04:00
parent f44cb8b777
commit d6b1e85998
9 changed files with 271 additions and 49 deletions
+2 -2
View File
@@ -276,7 +276,7 @@ class PhotoTagger:
# Identify mode: filter out both database and session identified faces
if not is_identified_in_db and not is_identified_in_session:
# Calculate confidence percentage
confidence_pct = (1 - face['distance']) * 100
confidence_pct, _ = self.face_processor._get_calibrated_confidence(face['distance'])
# Only include matches with reasonable confidence (at least 40%)
if confidence_pct >= 40:
@@ -285,7 +285,7 @@ class PhotoTagger:
# Auto-match mode: only filter by database state (keep existing behavior)
if not is_identified_in_db:
# Calculate confidence percentage
confidence_pct = (1 - face['distance']) * 100
confidence_pct, _ = self.face_processor._get_calibrated_confidence(face['distance'])
# Only include matches with reasonable confidence (at least 40%)
if confidence_pct >= 40: