This commit is contained in:
Nicolas Mowen 2025-01-10 07:59:06 -07:00
parent 6137aaaea3
commit ca144e30ee
3 changed files with 8 additions and 6 deletions

View File

@ -76,7 +76,7 @@ class EmbeddingMaintainer(threading.Thread):
self.processors: list[ProcessorApi] = [] self.processors: list[ProcessorApi] = []
if self.config.face_recognition.enabled: if self.config.face_recognition.enabled:
self.processors.append(FaceProcessor(self.config.face_recognition, db)) self.processors.append(FaceProcessor(self.config.face_recognition, metrics))
# create communication for updating event descriptions # create communication for updating event descriptions
self.requestor = InterProcessRequestor() self.requestor = InterProcessRequestor()

View File

@ -11,13 +11,13 @@ from typing import Optional
import cv2 import cv2
import numpy as np import numpy as np
import requests import requests
from playhouse.sqliteq import SqliteQueueDatabase
from frigate.config import FrigateConfig from frigate.config import FrigateConfig
from frigate.const import FACE_DIR, FRIGATE_LOCALHOST, MODEL_CACHE_DIR from frigate.const import FACE_DIR, FRIGATE_LOCALHOST, MODEL_CACHE_DIR
from frigate.util.image import area from frigate.util.image import area
from .processor_api import ProcessorApi from .processor_api import ProcessorApi
from .types import PostProcessingMetrics
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -26,10 +26,9 @@ MIN_MATCHING_FACES = 2
class FaceProcessor(ProcessorApi): class FaceProcessor(ProcessorApi):
def __init__(self, config: FrigateConfig, db: SqliteQueueDatabase): def __init__(self, config: FrigateConfig, metrics: PostProcessingMetrics):
super().__init__(config) super().__init__(config, metrics)
self.face_config = config.face_recognition self.face_config = config.face_recognition
self.db = db
self.face_detector: cv2.FaceDetectorYN = None self.face_detector: cv2.FaceDetectorYN = None
self.landmark_detector: cv2.face.FacemarkLBF = None self.landmark_detector: cv2.face.FacemarkLBF = None
self.face_recognizer: cv2.face.LBPHFaceRecognizer = None self.face_recognizer: cv2.face.LBPHFaceRecognizer = None

View File

@ -5,13 +5,16 @@ import numpy as np
from frigate.config import FrigateConfig from frigate.config import FrigateConfig
from .types import PostProcessingMetrics
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class ProcessorApi(ABC): class ProcessorApi(ABC):
@abstractmethod @abstractmethod
def __init__(self, config: FrigateConfig) -> None: def __init__(self, config: FrigateConfig, metrics: PostProcessingMetrics) -> None:
self.config = config self.config = config
self.metrics = metrics
pass pass
@abstractmethod @abstractmethod