refactor existing motion detector

This commit is contained in:
Blake Blackshear 2023-06-04 05:42:15 -05:00
parent 32569842d3
commit 18318fbde0
3 changed files with 25 additions and 2 deletions

View File

@ -0,0 +1,21 @@
from abc import ABC, abstractmethod
from typing import Tuple
from frigate.config import MotionConfig
class MotionDetector(ABC):
@abstractmethod
def __init__(
self,
frame_shape: Tuple[int, int, int],
config: MotionConfig,
improve_contrast,
threshold,
contour_area,
):
pass
@abstractmethod
def detect(self, frame):
pass

View File

@ -3,9 +3,10 @@ import imutils
import numpy as np
from frigate.config import MotionConfig
from frigate.motion import MotionDetector
class MotionDetector:
class FrigateMotionDetector(MotionDetector):
def __init__(
self,
frame_shape,

View File

@ -18,6 +18,7 @@ from frigate.config import CameraConfig, DetectConfig, PixelFormatEnum
from frigate.const import CACHE_DIR
from frigate.log import LogPipe
from frigate.motion import MotionDetector
from frigate.motion.frigate_motion import FrigateMotionDetector
from frigate.object_detection import RemoteObjectDetector
from frigate.track import ObjectTracker
from frigate.track.norfair_tracker import NorfairTracker
@ -462,7 +463,7 @@ def track_camera(
objects_to_track = config.objects.track
object_filters = config.objects.filters
motion_detector = MotionDetector(
motion_detector = FrigateMotionDetector(
frame_shape,
config.motion,
improve_contrast_enabled,