diff --git a/frigate/config.py b/frigate/config.py index 847735b126..90740150c3 100644 --- a/frigate/config.py +++ b/frigate/config.py @@ -13,6 +13,7 @@ from pydantic.fields import PrivateAttr from frigate.const import ( + ALL_ATTRIBUTE_LABELS, AUDIO_MIN_CONFIDENCE, CACHE_DIR, DEFAULT_DB_PATH, @@ -473,7 +474,7 @@ def __init__(self, **config): class ObjectConfig(FrigateBaseModel): track: List[str] = Field(default=DEFAULT_TRACKED_OBJECTS, title="Objects to track.") - filters: Optional[Dict[str, FilterConfig]] = Field(title="Object filters.") + filters: Dict[str, FilterConfig] = Field(default={}, title="Object filters.") mask: Union[str, List[str]] = Field(default="", title="Object mask.") @@ -1077,6 +1078,13 @@ def runtime_config(self, plus_api: PlusApi = None) -> FrigateConfig: config.mqtt.user = config.mqtt.user.format(**FRIGATE_ENV_VARS) config.mqtt.password = config.mqtt.password.format(**FRIGATE_ENV_VARS) + # set default min_score for object attributes + for attribute in ALL_ATTRIBUTE_LABELS: + if not config.objects.filters.get(attribute): + config.objects.filters[attribute] = FilterConfig(min_score=0.7) + elif config.objects.filters[attribute].min_score == 0.5: + config.objects.filters[attribute].min_score = 0.7 + # Global config to propagate down to camera level global_config = config.dict( include={