From ff34739f40ddb22817024584467748715c2908cf Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 26 Mar 2025 18:43:10 -0600 Subject: [PATCH] Face recognition bug fixes (#17401) * Simplify normalization * Fix confidence check --- frigate/data_processing/common/face/model.py | 4 ++-- frigate/embeddings/onnx/{facenet.py => face_embedding.py} | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) rename frigate/embeddings/onnx/{facenet.py => face_embedding.py} (96%) diff --git a/frigate/data_processing/common/face/model.py b/frigate/data_processing/common/face/model.py index f7ef1ae13..1af934c5d 100644 --- a/frigate/data_processing/common/face/model.py +++ b/frigate/data_processing/common/face/model.py @@ -10,7 +10,7 @@ from scipy import stats from frigate.config import FrigateConfig from frigate.const import MODEL_CACHE_DIR -from frigate.embeddings.onnx.facenet import ArcfaceEmbedding +from frigate.embeddings.onnx.face_embedding import ArcfaceEmbedding logger = logging.getLogger(__name__) @@ -329,7 +329,7 @@ class ArcFaceRecognizer(FaceRecognizer): cosine_similarity = dot_product / (magnitude_A * magnitude_B) confidence = self.similarity_to_confidence(cosine_similarity) - if cosine_similarity > score: + if confidence > score: score = confidence label = name diff --git a/frigate/embeddings/onnx/facenet.py b/frigate/embeddings/onnx/face_embedding.py similarity index 96% rename from frigate/embeddings/onnx/facenet.py rename to frigate/embeddings/onnx/face_embedding.py index 3439620a0..0b808f716 100644 --- a/frigate/embeddings/onnx/facenet.py +++ b/frigate/embeddings/onnx/face_embedding.py @@ -90,8 +90,7 @@ class ArcfaceEmbedding(BaseEmbedding): frame[y_center : y_center + og_h, x_center : x_center + og_w] = og # run arcface normalization - normalized_image = frame.astype(np.float32) / 255.0 - frame = (normalized_image - 0.5) / 0.5 + frame = (frame / 127.5) - 1.0 frame = np.transpose(frame, (2, 0, 1)) frame = np.expand_dims(frame, axis=0)