diff --git a/frigate/api/review.py b/frigate/api/review.py index 8dc376554..7cc3d2695 100644 --- a/frigate/api/review.py +++ b/frigate/api/review.py @@ -5,12 +5,7 @@ from datetime import datetime, timedelta from functools import reduce import pandas as pd -from flask import ( - Blueprint, - jsonify, - make_response, - request, -) +from flask import Blueprint, jsonify, make_response, request from peewee import Case, DoesNotExist, fn, operator from frigate.models import Recordings, ReviewSegment @@ -391,7 +386,11 @@ def motion_activity(): df.set_index(["start_time"], inplace=True) # normalize data - df = df.resample(f"{scale}S").mean().fillna(0.0) + df = ( + df.resample(f"{scale}S") + .apply(lambda x: max(x, key=abs, default=0.0)) + .fillna(0.0) + ) # change types for output df.index = df.index.astype(int) // (10**9) diff --git a/frigate/record/maintainer.py b/frigate/record/maintainer.py index 6781eed23..71c7a6a3d 100644 --- a/frigate/record/maintainer.py +++ b/frigate/record/maintainer.py @@ -75,7 +75,7 @@ class RecordingMaintainer(threading.Thread): for camera in self.config.cameras.values(): self.camera_frame_area[camera.name] = ( - camera.detect.width * camera.detect.height + camera.detect.width * camera.detect.height * 0.1 ) async def move_files(self) -> None: @@ -319,12 +319,15 @@ class RecordingMaintainer(threading.Thread): total_motion_area += sum([area(box) for box in frame[2]]) if video_frame_count > 0: - normalized_motion_area = int( - ( - total_motion_area - / (self.camera_frame_area[camera] * video_frame_count) - ) - * 100 + normalized_motion_area = min( + int( + ( + total_motion_area + / (self.camera_frame_area[camera] * video_frame_count) + ) + * 100 + ), + 100, ) else: normalized_motion_area = 0