Only import tensorflow-lite when used as a detector

This commit is contained in:
Nicolas Mowen 2025-09-19 06:59:15 -06:00
parent a7bbca5014
commit 27115aa3b6
3 changed files with 17 additions and 16 deletions

View File

@ -3,11 +3,6 @@ import os
import numpy as np
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter, load_delegate
logger = logging.getLogger(__name__)
@ -50,6 +45,11 @@ def tflite_detect_raw(self, tensor_input):
def tflite_load_delegate_interpreter(
delegate_library: str, detector_config, device_config
):
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter, load_delegate
try:
logger.info("Attempting to load NPU")
tf_delegate = load_delegate(delegate_library, device_config)

View File

@ -9,11 +9,6 @@ from frigate.log import redirect_output_to_logger
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__)
@ -30,6 +25,12 @@ class CpuTfl(DetectionApi):
@redirect_output_to_logger(logger, logging.DEBUG)
def __init__(self, detector_config: CpuDetectorConfig):
# Import TensorFlow Lite only when this detector is actually used
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter
interpreter = Interpreter(
model_path=detector_config.model.path,
num_threads=detector_config.num_threads or 3,

View File

@ -8,12 +8,6 @@ from typing_extensions import Literal
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import BaseDetectorConfig
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter, load_delegate
logger = logging.getLogger(__name__)
DETECTOR_KEY = "edgetpu"
@ -28,6 +22,12 @@ class EdgeTpuTfl(DetectionApi):
type_key = DETECTOR_KEY
def __init__(self, detector_config: EdgeTpuDetectorConfig):
# Import TensorFlow Lite only when this detector is actually used
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter, load_delegate
device_config = {}
if detector_config.device is not None:
device_config = {"device": detector_config.device}