Files
frigate/frigate/data_processing/real_time/license_plate.py
T

58 lines
1.8 KiB
Python
Raw Normal View History

"""Handle processing images for face detection and recognition."""
import logging
2025-05-13 16:27:20 +02:00
from typing import Any
import numpy as np
2025-03-10 16:29:29 -06:00
from frigate.comms.event_metadata_updater import EventMetadataPublisher
from frigate.comms.inter_process import InterProcessRequestor
from frigate.config import FrigateConfig
from frigate.data_processing.common.license_plate.mixin import (
LicensePlateProcessingMixin,
)
from frigate.data_processing.common.license_plate.model import (
LicensePlateModelRunner,
)
from ..types import DataProcessorMetrics
from .api import RealTimeProcessorApi
logger = logging.getLogger(__name__)
class LicensePlateRealTimeProcessor(LicensePlateProcessingMixin, RealTimeProcessorApi):
def __init__(
self,
config: FrigateConfig,
requestor: InterProcessRequestor,
2025-03-10 16:29:29 -06:00
sub_label_publisher: EventMetadataPublisher,
metrics: DataProcessorMetrics,
model_runner: LicensePlateModelRunner,
2025-05-13 16:27:20 +02:00
detected_license_plates: dict[str, dict[str, Any]],
):
self.requestor = requestor
self.detected_license_plates = detected_license_plates
self.model_runner = model_runner
self.lpr_config = config.lpr
self.config = config
2025-03-10 16:29:29 -06:00
self.sub_label_publisher = sub_label_publisher
2025-05-11 13:03:53 -05:00
self.camera_current_cars: dict[str, list[str]] = {}
super().__init__(config, metrics)
2025-03-23 14:30:48 -05:00
def process_frame(
self,
2025-05-13 16:27:20 +02:00
obj_data: dict[str, Any],
2025-03-23 14:30:48 -05:00
frame: np.ndarray,
dedicated_lpr: bool | None = False,
):
"""Look for license plates in image."""
2025-03-23 14:30:48 -05:00
self.lpr_process(obj_data, frame, dedicated_lpr)
2025-05-13 16:27:20 +02:00
def handle_request(self, topic, request_data) -> dict[str, Any] | None:
return
2025-05-11 13:03:53 -05:00
def expire_object(self, object_id: str, camera: str):
2025-05-15 16:13:18 -06:00
"""Expire lpr objects."""
self.lpr_expire(object_id, camera)