diff --git a/frigate/data_processing/real_time/face.py b/frigate/data_processing/real_time/face.py index 10479b92b..cc4023228 100644 --- a/frigate/data_processing/real_time/face.py +++ b/frigate/data_processing/real_time/face.py @@ -146,8 +146,8 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): return face def __update_metrics(self, duration: float) -> None: - self.metrics.face_rec_fps.value = ( - self.metrics.face_rec_fps.value * 9 + duration + self.metrics.face_rec_speed.value = ( + self.metrics.face_rec_speed.value * 9 + duration ) / 10 def process_frame(self, obj_data: dict[str, any], frame: np.ndarray): diff --git a/frigate/data_processing/types.py b/frigate/data_processing/types.py index 29abb22d1..855f22299 100644 --- a/frigate/data_processing/types.py +++ b/frigate/data_processing/types.py @@ -6,18 +6,18 @@ from multiprocessing.sharedctypes import Synchronized class DataProcessorMetrics: - image_embeddings_fps: Synchronized - text_embeddings_sps: Synchronized - face_rec_fps: Synchronized - alpr_pps: Synchronized - yolov9_lpr_fps: Synchronized + image_embeddings_speed: Synchronized + text_embeddings_speed: Synchronized + face_rec_speed: Synchronized + alpr_speed: Synchronized + yolov9_lpr_speed: Synchronized def __init__(self): - self.image_embeddings_fps = mp.Value("d", 0.01) - self.text_embeddings_sps = mp.Value("d", 0.01) - self.face_rec_fps = mp.Value("d", 0.01) - self.alpr_pps = mp.Value("d", 0.01) - self.yolov9_lpr_fps = mp.Value("d", 0.01) + self.image_embeddings_speed = mp.Value("d", 0.01) + self.text_embeddings_speed = mp.Value("d", 0.01) + self.face_rec_speed = mp.Value("d", 0.01) + self.alpr_speed = mp.Value("d", 0.01) + self.yolov9_lpr_speed = mp.Value("d", 0.01) class DataProcessorModelRunner: diff --git a/frigate/embeddings/embeddings.py b/frigate/embeddings/embeddings.py index d2053f5ee..667da0559 100644 --- a/frigate/embeddings/embeddings.py +++ b/frigate/embeddings/embeddings.py @@ -175,8 +175,8 @@ class Embeddings: ) duration = datetime.datetime.now().timestamp() - start - self.metrics.image_embeddings_fps.value = ( - self.metrics.image_embeddings_fps.value * 9 + duration + self.metrics.image_embeddings_speed.value = ( + self.metrics.image_embeddings_speed.value * 9 + duration ) / 10 return embedding @@ -209,8 +209,8 @@ class Embeddings: ) duration = datetime.datetime.now().timestamp() - start - self.metrics.text_embeddings_sps.value = ( - self.metrics.text_embeddings_sps.value * 9 + (duration / len(ids)) + self.metrics.text_embeddings_speed.value = ( + self.metrics.text_embeddings_speed.value * 9 + (duration / len(ids)) ) / 10 return embeddings @@ -231,8 +231,8 @@ class Embeddings: ) duration = datetime.datetime.now().timestamp() - start - self.metrics.text_embeddings_sps.value = ( - self.metrics.text_embeddings_sps.value * 9 + duration + self.metrics.text_embeddings_speed.value = ( + self.metrics.text_embeddings_speed.value * 9 + duration ) / 10 return embedding @@ -264,8 +264,8 @@ class Embeddings: ) duration = datetime.datetime.now().timestamp() - start - self.metrics.text_embeddings_sps.value = ( - self.metrics.text_embeddings_sps.value * 9 + (duration / len(ids)) + self.metrics.text_embeddings_speed.value = ( + self.metrics.text_embeddings_speed.value * 9 + (duration / len(ids)) ) / 10 return embeddings diff --git a/frigate/stats/util.py b/frigate/stats/util.py index 287c384cd..ba2920cc8 100644 --- a/frigate/stats/util.py +++ b/frigate/stats/util.py @@ -293,27 +293,30 @@ def stats_snapshot( stats["embeddings"].update( { "image_embedding_speed": round( - embeddings_metrics.image_embeddings_fps.value * 1000, 2 + embeddings_metrics.image_embeddings_speed.value * 1000, 2 ), "text_embedding_speed": round( - embeddings_metrics.text_embeddings_sps.value * 1000, 2 + embeddings_metrics.text_embeddings_speed.value * 1000, 2 ), } ) if config.face_recognition.enabled: stats["embeddings"]["face_recognition_speed"] = round( - embeddings_metrics.face_rec_fps.value * 1000, 2 + embeddings_metrics.face_rec_speed.value * 1000, 2 + ) + stats["embeddings"]["face_recognition_rps"] = round( + embeddings_metrics.face_rec_rps, 2 ) if config.lpr.enabled: stats["embeddings"]["plate_recognition_speed"] = round( - embeddings_metrics.alpr_pps.value * 1000, 2 + embeddings_metrics.alpr_speed.value * 1000, 2 ) if "license_plate" not in config.objects.all_objects: stats["embeddings"]["yolov9_plate_detection_speed"] = round( - embeddings_metrics.yolov9_lpr_fps.value * 1000, 2 + embeddings_metrics.yolov9_lpr_speed.value * 1000, 2 ) get_processing_stats(config, stats, hwaccel_errors)