From 75c9a723bfb982875f79a535d293f93fbff33930 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 11 Jan 2025 09:11:55 -0700 Subject: [PATCH] Initial setup for bird processing --- frigate/data_processing/real_time/bird_processor.py | 10 +++++----- frigate/embeddings/maintainer.py | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frigate/data_processing/real_time/bird_processor.py b/frigate/data_processing/real_time/bird_processor.py index f56119258..a6dfb8510 100644 --- a/frigate/data_processing/real_time/bird_processor.py +++ b/frigate/data_processing/real_time/bird_processor.py @@ -8,8 +8,8 @@ import numpy as np from frigate.config import FrigateConfig from frigate.const import MODEL_CACHE_DIR -from .processor_api import ProcessorApi -from .types import PostProcessingMetrics +from ..types import DataProcessorMetrics +from .api import RealTimeProcessorApi try: from tflite_runtime.interpreter import Interpreter @@ -19,8 +19,8 @@ except ModuleNotFoundError: logger = logging.getLogger(__name__) -class BirdProcessor(ProcessorApi): - def __init__(self, config: FrigateConfig, metrics: PostProcessingMetrics): +class BirdProcessor(RealTimeProcessorApi): + def __init__(self, config: FrigateConfig, metrics: DataProcessorMetrics): super().__init__(config, metrics) self.interpreter: Interpreter = None self.tensor_input_details: dict[str, any] = None @@ -87,4 +87,4 @@ class BirdProcessor(ProcessorApi): count = len(scores) def handle_request(self, request_data): - return None + return None \ No newline at end of file diff --git a/frigate/embeddings/maintainer.py b/frigate/embeddings/maintainer.py index a7e25469b..671df4917 100644 --- a/frigate/embeddings/maintainer.py +++ b/frigate/embeddings/maintainer.py @@ -30,6 +30,7 @@ from frigate.const import ( UPDATE_EVENT_DESCRIPTION, ) from frigate.data_processing.real_time.api import RealTimeProcessorApi +from frigate.data_processing.real_time.bird_processor import BirdProcessor from frigate.data_processing.real_time.face_processor import FaceProcessor from frigate.data_processing.types import DataProcessorMetrics from frigate.embeddings.lpr.lpr import LicensePlateRecognition @@ -78,6 +79,8 @@ class EmbeddingMaintainer(threading.Thread): if self.config.face_recognition.enabled: self.processors.append(FaceProcessor(self.config, metrics)) + self.processors.append(BirdProcessor(self.config, metrics)) + # create communication for updating event descriptions self.requestor = InterProcessRequestor() self.stop_event = stop_event