Fix per camera config (#17263)

* Fix per camera config

* fix
This commit is contained in:
Nicolas Mowen 2025-03-19 20:52:55 -06:00 committed by GitHub
parent 1787f6130d
commit e7c6b2d571
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 3 deletions

View File

@ -1,7 +1,7 @@
from enum import Enum
from typing import Dict, List, Optional
from pydantic import Field
from pydantic import ConfigDict, Field
from .base import FrigateBaseModel
@ -86,6 +86,8 @@ class CameraFaceRecognitionConfig(FrigateBaseModel):
default=500, title="Min area of face box to consider running face recognition."
)
model_config = ConfigDict(extra="ignore", protected_namespaces=())
class LicensePlateRecognitionConfig(FrigateBaseModel):
enabled: bool = Field(default=False, title="Enable license plate recognition.")
@ -129,3 +131,5 @@ class CameraLicensePlateRecognitionConfig(FrigateBaseModel):
default=1000,
title="Minimum area of license plate to begin running recognition.",
)
model_config = ConfigDict(extra="ignore", protected_namespaces=())

View File

@ -437,6 +437,8 @@ class FrigateConfig(FrigateBaseModel):
include={
"audio": ...,
"birdseye": ...,
"face_recognition": ...,
"lpr": ...,
"record": ...,
"snapshots": ...,
"live": ...,

View File

@ -844,6 +844,8 @@ class LicensePlateProcessingMixin:
def lpr_process(self, obj_data: dict[str, any], frame: np.ndarray):
"""Look for license plates in image."""
if not self.config.cameras[obj_data["camera"]].lpr.enabled:
return
id = obj_data["id"]
@ -910,7 +912,10 @@ class LicensePlateProcessingMixin:
# check that license plate is valid
# double the value because we've doubled the size of the car
if license_plate_area < self.lpr_config.min_area * 2:
if (
license_plate_area
< self.config.cameras[obj_data["camera"]].lpr.min_area * 2
):
logger.debug("License plate is less than min_area")
return
@ -942,7 +947,8 @@ class LicensePlateProcessingMixin:
# check that license plate is valid
if (
not license_plate_box
or area(license_plate_box) < self.lpr_config.min_area
or area(license_plate_box)
< self.config.cameras[obj_data["camera"]].lpr.min_area
):
logger.debug(f"Invalid license plate box {license_plate}")
return