From 18318fbde0c379dd8b471a488e5a8cac796d0932 Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Sun, 4 Jun 2023 05:42:15 -0500 Subject: [PATCH] refactor existing motion detector --- frigate/motion/__init__.py | 21 +++++++++++++++++++ .../{motion.py => motion/frigate_motion.py} | 3 ++- frigate/video.py | 3 ++- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 frigate/motion/__init__.py rename frigate/{motion.py => motion/frigate_motion.py} (98%) diff --git a/frigate/motion/__init__.py b/frigate/motion/__init__.py new file mode 100644 index 000000000..2c62b729f --- /dev/null +++ b/frigate/motion/__init__.py @@ -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 diff --git a/frigate/motion.py b/frigate/motion/frigate_motion.py similarity index 98% rename from frigate/motion.py rename to frigate/motion/frigate_motion.py index 19d162956..01efb4d4c 100644 --- a/frigate/motion.py +++ b/frigate/motion/frigate_motion.py @@ -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, diff --git a/frigate/video.py b/frigate/video.py index 08808038e..2e4edd220 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -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,