backend/config.py - Added MIN_AUTO_MATCH_FACE_SIZE_RATIO = 0.005 backend/services/face_service.py - Multiple changes: Added load_face_encoding() function (supports float32 and float64) Added _calculate_face_size_ratio() function Updated find_similar_faces() to filter small faces Updated find_auto_match_matches() to exclude small reference faces Fixed reference face quality calculation (use actual quality, not hardcoded 0.5) Fixed duplicate detection (exclude faces from same photo) Updated confidence threshold from 40% to 50% Updated confidence calibration (moderate version) backend/api/faces.py - Updated default tolerance to 0.5 for auto-match endpoints backend/schemas/faces.py - Updated default tolerance to 0.5 admin-frontend/src/pages/AutoMatch.tsx - Updated default tolerance to 0.5 admin-frontend/src/api/faces.ts - Added tolerance parameter support
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""Configuration values used by the PunimTag web services.
|
|
|
|
This module replaces the legacy desktop configuration to keep the web
|
|
application self-contained.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
# Supported image formats for uploads/imports
|
|
SUPPORTED_IMAGE_FORMATS = {".jpg", ".jpeg", ".png", ".bmp", ".tiff", ".tif"}
|
|
|
|
# Supported video formats for scanning (not processed for faces)
|
|
SUPPORTED_VIDEO_FORMATS = {".mp4", ".mov", ".avi", ".mkv", ".webm", ".m4v", ".flv", ".wmv", ".mpg", ".mpeg"}
|
|
|
|
# DeepFace behavior
|
|
DEEPFACE_ENFORCE_DETECTION = False
|
|
DEEPFACE_ALIGN_FACES = True
|
|
|
|
# Face filtering thresholds
|
|
MIN_FACE_CONFIDENCE = 0.4
|
|
MIN_FACE_SIZE = 40
|
|
MAX_FACE_SIZE = 1500
|
|
|
|
# Matching tolerance and calibration options
|
|
DEFAULT_FACE_TOLERANCE = 0.5 # Lowered from 0.6 for stricter matching
|
|
USE_CALIBRATED_CONFIDENCE = True
|
|
CONFIDENCE_CALIBRATION_METHOD = "empirical" # "empirical", "linear", or "sigmoid"
|
|
|
|
# Auto-match face size filtering
|
|
# Minimum face size as percentage of image area (0.5% = 0.005)
|
|
# Faces smaller than this are excluded from auto-match to avoid generic encodings
|
|
MIN_AUTO_MATCH_FACE_SIZE_RATIO = 0.005 # 0.5% of image area
|
|
|
|
|