mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-07-30 13:48:07 +02:00
Fix go2rtc init (#18708)
* Cleanup process handling * Adjust process name
This commit is contained in:
parent
d7a446e0f6
commit
c3ba834a1c
@ -4,13 +4,13 @@ from statistics import mean
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.config import DetectorTypeEnum
|
from frigate.config import DetectorTypeEnum
|
||||||
from frigate.object_detection.base import (
|
from frigate.object_detection.base import (
|
||||||
ObjectDetectProcess,
|
ObjectDetectProcess,
|
||||||
RemoteObjectDetector,
|
RemoteObjectDetector,
|
||||||
load_labels,
|
load_labels,
|
||||||
)
|
)
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
my_frame = np.expand_dims(np.full((300, 300, 3), 1, np.uint8), axis=0)
|
my_frame = np.expand_dims(np.full((300, 300, 3), 1, np.uint8), axis=0)
|
||||||
labels = load_labels("/labelmap.txt")
|
labels = load_labels("/labelmap.txt")
|
||||||
@ -91,7 +91,7 @@ edgetpu_process_2 = ObjectDetectProcess(
|
|||||||
)
|
)
|
||||||
|
|
||||||
for x in range(0, 10):
|
for x in range(0, 10):
|
||||||
camera_process = util.Process(
|
camera_process = FrigateProcess(
|
||||||
target=start, args=(x, 300, detection_queue, events[str(x)])
|
target=start, args=(x, 300, detection_queue, events[str(x)])
|
||||||
)
|
)
|
||||||
camera_process.daemon = True
|
camera_process.daemon = True
|
||||||
|
@ -16,9 +16,9 @@ from frigate.const import CONFIG_DIR, FACE_DIR
|
|||||||
from frigate.data_processing.types import DataProcessorMetrics
|
from frigate.data_processing.types import DataProcessorMetrics
|
||||||
from frigate.db.sqlitevecq import SqliteVecQueueDatabase
|
from frigate.db.sqlitevecq import SqliteVecQueueDatabase
|
||||||
from frigate.models import Event
|
from frigate.models import Event
|
||||||
from frigate.util import Process as FrigateProcess
|
|
||||||
from frigate.util.builtin import serialize
|
from frigate.util.builtin import serialize
|
||||||
from frigate.util.classification import kickoff_model_training
|
from frigate.util.classification import kickoff_model_training
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
from .maintainer import EmbeddingMaintainer
|
from .maintainer import EmbeddingMaintainer
|
||||||
from .util import ZScoreNormalization
|
from .util import ZScoreNormalization
|
||||||
|
@ -11,7 +11,6 @@ from typing import Any, Tuple
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.comms.detections_updater import DetectionPublisher, DetectionTypeEnum
|
from frigate.comms.detections_updater import DetectionPublisher, DetectionTypeEnum
|
||||||
from frigate.comms.event_metadata_updater import (
|
from frigate.comms.event_metadata_updater import (
|
||||||
EventMetadataPublisher,
|
EventMetadataPublisher,
|
||||||
@ -40,6 +39,7 @@ from frigate.ffmpeg_presets import parse_preset_input
|
|||||||
from frigate.log import LogPipe
|
from frigate.log import LogPipe
|
||||||
from frigate.object_detection.base import load_labels
|
from frigate.object_detection.base import load_labels
|
||||||
from frigate.util.builtin import get_ffmpeg_arg_list
|
from frigate.util.builtin import get_ffmpeg_arg_list
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
|
from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -76,7 +76,7 @@ def get_ffmpeg_command(ffmpeg: FfmpegConfig) -> list[str]:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class AudioProcessor(util.Process):
|
class AudioProcessor(FrigateProcess):
|
||||||
name = "frigate.audio_manager"
|
name = "frigate.audio_manager"
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
|
@ -7,7 +7,6 @@ from multiprocessing.synchronize import Event as MpEvent
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.comms.object_detector_signaler import (
|
from frigate.comms.object_detector_signaler import (
|
||||||
ObjectDetectorPublisher,
|
ObjectDetectorPublisher,
|
||||||
ObjectDetectorSubscriber,
|
ObjectDetectorSubscriber,
|
||||||
@ -21,6 +20,7 @@ from frigate.detectors.detector_config import (
|
|||||||
)
|
)
|
||||||
from frigate.util.builtin import EventsPerSecond, load_labels
|
from frigate.util.builtin import EventsPerSecond, load_labels
|
||||||
from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory
|
from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
from .util import tensor_transform
|
from .util import tensor_transform
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ class LocalObjectDetector(ObjectDetector):
|
|||||||
return self.detect_api.detect_raw(tensor_input=tensor_input)
|
return self.detect_api.detect_raw(tensor_input=tensor_input)
|
||||||
|
|
||||||
|
|
||||||
class DetectorRunner(util.Process):
|
class DetectorRunner(FrigateProcess):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
name,
|
name,
|
||||||
@ -172,7 +172,7 @@ class ObjectDetectProcess:
|
|||||||
self.detection_queue = detection_queue
|
self.detection_queue = detection_queue
|
||||||
self.avg_inference_speed = Value("d", 0.01)
|
self.avg_inference_speed = Value("d", 0.01)
|
||||||
self.detection_start = Value("d", 0.0)
|
self.detection_start = Value("d", 0.0)
|
||||||
self.detect_process: util.Process | None = None
|
self.detect_process: FrigateProcess | None = None
|
||||||
self.config = config
|
self.config = config
|
||||||
self.detector_config = detector_config
|
self.detector_config = detector_config
|
||||||
self.start_or_restart()
|
self.start_or_restart()
|
||||||
@ -195,7 +195,7 @@ class ObjectDetectProcess:
|
|||||||
if (self.detect_process is not None) and self.detect_process.is_alive():
|
if (self.detect_process is not None) and self.detect_process.is_alive():
|
||||||
self.stop()
|
self.stop()
|
||||||
self.detect_process = DetectorRunner(
|
self.detect_process = DetectorRunner(
|
||||||
f"detector:{self.name}",
|
f"frigate.detector:{self.name}",
|
||||||
self.detection_queue,
|
self.detection_queue,
|
||||||
self.cameras,
|
self.cameras,
|
||||||
self.avg_inference_speed,
|
self.avg_inference_speed,
|
||||||
|
@ -14,7 +14,6 @@ from ws4py.server.wsgirefserver import (
|
|||||||
)
|
)
|
||||||
from ws4py.server.wsgiutils import WebSocketWSGIApplication
|
from ws4py.server.wsgiutils import WebSocketWSGIApplication
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.comms.detections_updater import DetectionSubscriber, DetectionTypeEnum
|
from frigate.comms.detections_updater import DetectionSubscriber, DetectionTypeEnum
|
||||||
from frigate.comms.ws import WebSocket
|
from frigate.comms.ws import WebSocket
|
||||||
from frigate.config import FrigateConfig
|
from frigate.config import FrigateConfig
|
||||||
@ -27,6 +26,7 @@ from frigate.output.birdseye import Birdseye
|
|||||||
from frigate.output.camera import JsmpegCamera
|
from frigate.output.camera import JsmpegCamera
|
||||||
from frigate.output.preview import PreviewRecorder
|
from frigate.output.preview import PreviewRecorder
|
||||||
from frigate.util.image import SharedMemoryFrameManager, get_blank_yuv_frame
|
from frigate.util.image import SharedMemoryFrameManager, get_blank_yuv_frame
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ def check_disabled_camera_update(
|
|||||||
birdseye.all_cameras_disabled()
|
birdseye.all_cameras_disabled()
|
||||||
|
|
||||||
|
|
||||||
class OutputProcess(util.Process):
|
class OutputProcess(FrigateProcess):
|
||||||
def __init__(self, config: FrigateConfig) -> None:
|
def __init__(self, config: FrigateConfig) -> None:
|
||||||
super().__init__(name="frigate.output", daemon=True)
|
super().__init__(name="frigate.output", daemon=True)
|
||||||
self.config = config
|
self.config = config
|
||||||
|
@ -7,7 +7,7 @@ from playhouse.sqliteq import SqliteQueueDatabase
|
|||||||
from frigate.config import FrigateConfig
|
from frigate.config import FrigateConfig
|
||||||
from frigate.models import Recordings, ReviewSegment
|
from frigate.models import Recordings, ReviewSegment
|
||||||
from frigate.record.maintainer import RecordingMaintainer
|
from frigate.record.maintainer import RecordingMaintainer
|
||||||
from frigate.util import Process as FrigateProcess
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.config import FrigateConfig
|
from frigate.config import FrigateConfig
|
||||||
from frigate.review.maintainer import ReviewSegmentMaintainer
|
from frigate.review.maintainer import ReviewSegmentMaintainer
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ReviewProcess(util.Process):
|
class ReviewProcess(FrigateProcess):
|
||||||
def __init__(self, config: FrigateConfig) -> None:
|
def __init__(self, config: FrigateConfig) -> None:
|
||||||
super().__init__(name="frigate.review_segment_manager", daemon=True)
|
super().__init__(name="frigate.review_segment_manager", daemon=True)
|
||||||
self.config = config
|
self.config = config
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
from .process import Process
|
|
||||||
|
|
||||||
__all__ = ["Process"]
|
|
@ -14,7 +14,7 @@ from frigate.comms.embeddings_updater import EmbeddingsRequestEnum, EmbeddingsRe
|
|||||||
from frigate.comms.inter_process import InterProcessRequestor
|
from frigate.comms.inter_process import InterProcessRequestor
|
||||||
from frigate.const import CLIPS_DIR, MODEL_CACHE_DIR, UPDATE_MODEL_STATE
|
from frigate.const import CLIPS_DIR, MODEL_CACHE_DIR, UPDATE_MODEL_STATE
|
||||||
from frigate.types import ModelStatusTypesEnum
|
from frigate.types import ModelStatusTypesEnum
|
||||||
from frigate.util import Process
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
BATCH_SIZE = 16
|
BATCH_SIZE = 16
|
||||||
EPOCHS = 50
|
EPOCHS = 50
|
||||||
@ -144,7 +144,7 @@ def kickoff_model_training(
|
|||||||
# run training in sub process so that
|
# run training in sub process so that
|
||||||
# tensorflow will free CPU / GPU memory
|
# tensorflow will free CPU / GPU memory
|
||||||
# upon training completion
|
# upon training completion
|
||||||
training_process = Process(
|
training_process = FrigateProcess(
|
||||||
target=__train_classification_model,
|
target=__train_classification_model,
|
||||||
name=f"model_training:{model_name}",
|
name=f"model_training:{model_name}",
|
||||||
args=(model_name,),
|
args=(model_name,),
|
||||||
|
@ -39,7 +39,7 @@ class BaseProcess(mp.Process):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Process(BaseProcess):
|
class FrigateProcess(BaseProcess):
|
||||||
logger: logging.Logger
|
logger: logging.Logger
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -11,7 +11,6 @@ from typing import Any
|
|||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
import frigate.util as util
|
|
||||||
from frigate.camera import CameraMetrics, PTZMetrics
|
from frigate.camera import CameraMetrics, PTZMetrics
|
||||||
from frigate.comms.inter_process import InterProcessRequestor
|
from frigate.comms.inter_process import InterProcessRequestor
|
||||||
from frigate.config import CameraConfig, DetectConfig, ModelConfig
|
from frigate.config import CameraConfig, DetectConfig, ModelConfig
|
||||||
@ -51,6 +50,7 @@ from frigate.util.object import (
|
|||||||
is_object_filtered,
|
is_object_filtered,
|
||||||
reduce_detections,
|
reduce_detections,
|
||||||
)
|
)
|
||||||
|
from frigate.util.process import FrigateProcess
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -437,7 +437,7 @@ class CameraCaptureRunner(threading.Thread):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class CameraCapture(util.Process):
|
class CameraCapture(FrigateProcess):
|
||||||
def __init__(
|
def __init__(
|
||||||
self, config: CameraConfig, shm_frame_count: int, camera_metrics: CameraMetrics
|
self, config: CameraConfig, shm_frame_count: int, camera_metrics: CameraMetrics
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -461,7 +461,7 @@ class CameraCapture(util.Process):
|
|||||||
camera_watchdog.join()
|
camera_watchdog.join()
|
||||||
|
|
||||||
|
|
||||||
class CameraTracker(util.Process):
|
class CameraTracker(FrigateProcess):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
config: CameraConfig,
|
config: CameraConfig,
|
||||||
|
Loading…
Reference in New Issue
Block a user