mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-01-22 20:18:30 +03:00
Some checks failed
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled
* Fix genai callbacks in MQTT * Cleanup cursor pointer for classification cards * Cleanup * Handle unknown SOCs for RKNN converter by only using known SOCs * don't allow "none" as a classification class name * change internal port user to admin and default unspecified username to viewer * keep 5000 as anonymous user * suppress tensorflow logging during classification training * Always apply base log level suppressions for noisy third-party libraries even if no specific logConfig is provided * remove decorator and specifically suppress TFLite delegate creation messages --------- Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import logging
|
|
|
|
from pydantic import Field
|
|
from typing_extensions import Literal
|
|
|
|
from frigate.detectors.detection_api import DetectionApi
|
|
from frigate.detectors.detector_config import BaseDetectorConfig
|
|
from frigate.log import suppress_stderr_during
|
|
|
|
from ..detector_utils import tflite_detect_raw, tflite_init
|
|
|
|
try:
|
|
from tflite_runtime.interpreter import Interpreter
|
|
except ModuleNotFoundError:
|
|
from tensorflow.lite.python.interpreter import Interpreter
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
DETECTOR_KEY = "cpu"
|
|
|
|
|
|
class CpuDetectorConfig(BaseDetectorConfig):
|
|
type: Literal[DETECTOR_KEY]
|
|
num_threads: int = Field(default=3, title="Number of detection threads")
|
|
|
|
|
|
class CpuTfl(DetectionApi):
|
|
type_key = DETECTOR_KEY
|
|
|
|
def __init__(self, detector_config: CpuDetectorConfig):
|
|
# Suppress TFLite delegate creation messages that bypass Python logging
|
|
with suppress_stderr_during("tflite_interpreter_init"):
|
|
interpreter = Interpreter(
|
|
model_path=detector_config.model.path,
|
|
num_threads=detector_config.num_threads or 3,
|
|
)
|
|
|
|
tflite_init(self, interpreter)
|
|
|
|
def detect_raw(self, tensor_input):
|
|
return tflite_detect_raw(self, tensor_input)
|