From 102a7230c6909c54fff82dfc7de530320969119c Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Mon, 17 Mar 2025 14:32:38 -0600 Subject: [PATCH] Set maximum number of face images to be kept --- frigate/data_processing/real_time/face.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frigate/data_processing/real_time/face.py b/frigate/data_processing/real_time/face.py index b51b7a20f..acb891449 100644 --- a/frigate/data_processing/real_time/face.py +++ b/frigate/data_processing/real_time/face.py @@ -28,6 +28,7 @@ logger = logging.getLogger(__name__) MAX_DETECTION_HEIGHT = 1080 +MAX_FACE_ATTEMPTS = 100 MIN_MATCHING_FACES = 2 @@ -482,6 +483,16 @@ class FaceRealTimeProcessor(RealTimeProcessorApi): ) shutil.move(current_file, new_file) + files = sorted( + os.listdir(folder), + key=lambda f: os.path.getctime(os.path.join(folder, f)), + reverse=True, + ) + + # delete oldest face image if maximum is reached + if len(files) > MAX_FACE_ATTEMPTS: + os.unlink(os.path.join(folder, files[-1])) + def expire_object(self, object_id: str): if object_id in self.detected_faces: self.detected_faces.pop(object_id)