From 14bf6dd7bb4fe6af57b1e5f5eb085177696511b1 Mon Sep 17 00:00:00 2001 From: baudneo <86508179+baudneo@users.noreply.github.com> Date: Thu, 31 Jul 2025 22:34:49 -0600 Subject: [PATCH] face recognition: use configured device --- frigate/data_processing/common/face/model.py | 4 ++-- frigate/embeddings/onnx/face_embedding.py | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/frigate/data_processing/common/face/model.py b/frigate/data_processing/common/face/model.py index f230a1b2c..29253c205 100644 --- a/frigate/data_processing/common/face/model.py +++ b/frigate/data_processing/common/face/model.py @@ -269,7 +269,7 @@ class ArcFaceRecognizer(FaceRecognizer): def __init__(self, config: FrigateConfig): super().__init__(config) self.mean_embs: dict[int, np.ndarray] = {} - self.face_embedder: ArcfaceEmbedding = ArcfaceEmbedding() + self.face_embedder: ArcfaceEmbedding = ArcfaceEmbedding(config) self.model_builder_queue: queue.Queue | None = None def clear(self) -> None: @@ -370,4 +370,4 @@ class ArcFaceRecognizer(FaceRecognizer): score = confidence label = name - return label, round(score - blur_reduction, 2) + return label, round(score - blur_reduction, 2) \ No newline at end of file diff --git a/frigate/embeddings/onnx/face_embedding.py b/frigate/embeddings/onnx/face_embedding.py index acb4507a2..f29f8490c 100644 --- a/frigate/embeddings/onnx/face_embedding.py +++ b/frigate/embeddings/onnx/face_embedding.py @@ -11,6 +11,7 @@ from frigate.util.downloader import ModelDownloader from .base_embedding import BaseEmbedding from .runner import ONNXModelRunner +from ...config import FrigateConfig try: from tflite_runtime.interpreter import Interpreter @@ -111,7 +112,7 @@ class FaceNetEmbedding(BaseEmbedding): class ArcfaceEmbedding(BaseEmbedding): - def __init__(self): + def __init__(self, config: FrigateConfig): super().__init__( model_name="facedet", model_file="arcface.onnx", @@ -119,6 +120,7 @@ class ArcfaceEmbedding(BaseEmbedding): "arcface.onnx": "https://github.com/NickM-27/facenet-onnx/releases/download/v1.0/arcface.onnx", }, ) + self.config = config self.download_path = os.path.join(MODEL_CACHE_DIR, self.model_name) self.tokenizer = None self.feature_extractor = None @@ -148,7 +150,7 @@ class ArcfaceEmbedding(BaseEmbedding): self.runner = ONNXModelRunner( os.path.join(self.download_path, self.model_file), - "GPU", + device=self.config.face_recognition.device, ) def _preprocess_inputs(self, raw_inputs): @@ -184,4 +186,4 @@ class ArcfaceEmbedding(BaseEmbedding): frame = np.transpose(frame, (2, 0, 1)) frame = np.expand_dims(frame, axis=0) - return [{"data": frame}] + return [{"data": frame}] \ No newline at end of file