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 import numpy as np
from frigate.config import MotionConfig from frigate.config import MotionConfig
from frigate.motion import MotionDetector
class MotionDetector: class FrigateMotionDetector(MotionDetector):
def __init__( def __init__(
self, self,
frame_shape, frame_shape,

View File

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