mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-12-19 19:06:16 +01:00
cleanup false_positive attribute
This commit is contained in:
parent
b825eb44fe
commit
5d5984166f
@ -67,7 +67,7 @@ class TrackedObject():
|
||||
self.thumbnail_frames = thumbnail_frames
|
||||
self.current_zones = []
|
||||
self.entered_zones = set()
|
||||
self._false_positive = True
|
||||
self.false_positive = True
|
||||
self.top_score = self.computed_score = 0.0
|
||||
self.thumbnail_data = {
|
||||
'frame_time': obj_data['frame_time'],
|
||||
@ -84,9 +84,9 @@ class TrackedObject():
|
||||
# start the score history
|
||||
self.score_history = [self.obj_data['score']]
|
||||
|
||||
def false_positive(self):
|
||||
def _is_false_positive(self):
|
||||
# once a true positive, always a true positive
|
||||
if not self._false_positive:
|
||||
if not self.false_positive:
|
||||
return False
|
||||
|
||||
threshold = self.camera_config.objects.filters[self.obj_data['label']].threshold
|
||||
@ -116,7 +116,7 @@ class TrackedObject():
|
||||
self.computed_score = self.compute_score()
|
||||
if self.computed_score > self.top_score:
|
||||
self.top_score = self.computed_score
|
||||
self._false_positive = self.false_positive()
|
||||
self.false_positive = self._is_false_positive()
|
||||
|
||||
# determine if this frame is a better thumbnail
|
||||
if is_better_thumbnail(self.thumbnail_data, self.obj_data, self.camera_config.frame_shape):
|
||||
@ -150,7 +150,7 @@ class TrackedObject():
|
||||
'frame_time': self.obj_data['frame_time'],
|
||||
'label': self.obj_data['label'],
|
||||
'top_score': self.top_score,
|
||||
'false_positive': self._false_positive,
|
||||
'false_positive': self.false_positive,
|
||||
'start_time': self.obj_data['start_time'],
|
||||
'end_time': self.obj_data.get('end_time', None),
|
||||
'score': self.obj_data['score'],
|
||||
@ -309,7 +309,7 @@ class CameraState():
|
||||
updated_obj = self.tracked_objects[id]
|
||||
updated_obj.update(frame_time, tracked_objects[id])
|
||||
|
||||
if (not updated_obj._false_positive
|
||||
if (not updated_obj.false_positive
|
||||
and updated_obj.thumbnail_data['frame_time'] == frame_time
|
||||
and frame_time not in self.thumbnail_frames):
|
||||
self.thumbnail_frames[frame_time] = np.copy(current_frame)
|
||||
@ -378,7 +378,7 @@ class CameraState():
|
||||
c(self.name, self.best_objects[obj_name])
|
||||
|
||||
# cleanup thumbnail frame cache
|
||||
current_thumb_frames = set([obj.thumbnail_data['frame_time'] for obj in self.tracked_objects.values() if not obj._false_positive])
|
||||
current_thumb_frames = set([obj.thumbnail_data['frame_time'] for obj in self.tracked_objects.values() if not obj.false_positive])
|
||||
thumb_frames_to_delete = [t for t in self.thumbnail_frames.keys() if not t in current_thumb_frames]
|
||||
for t in thumb_frames_to_delete:
|
||||
del self.thumbnail_frames[t]
|
||||
@ -411,7 +411,7 @@ class TrackedObjectProcessor(threading.Thread):
|
||||
|
||||
def end(camera, obj: TrackedObject):
|
||||
self.client.publish(f"{self.topic_prefix}/{camera}/events/end", json.dumps(obj.to_dict()), retain=False)
|
||||
if self.config.cameras[camera].save_clips.enabled and not obj._false_positive:
|
||||
if self.config.cameras[camera].save_clips.enabled and not obj.false_positive:
|
||||
thumbnail_file_name = f"{camera}-{obj.obj_data['id']}.jpg"
|
||||
with open(os.path.join(self.config.save_clips.clips_dir, thumbnail_file_name), 'wb') as f:
|
||||
f.write(obj.snapshot_jpg)
|
||||
@ -467,7 +467,7 @@ class TrackedObjectProcessor(threading.Thread):
|
||||
# update zone status for each label
|
||||
for zone in self.config.cameras[camera].zones.keys():
|
||||
# get labels for current camera and all labels in current zone
|
||||
labels_for_camera = set([obj.obj_data['label'] for obj in camera_state.tracked_objects.values() if zone in obj.current_zones and not obj._false_positive])
|
||||
labels_for_camera = set([obj.obj_data['label'] for obj in camera_state.tracked_objects.values() if zone in obj.current_zones and not obj.false_positive])
|
||||
labels_to_check = labels_for_camera | set(self.zone_data[zone].keys())
|
||||
# for each label in zone
|
||||
for label in labels_to_check:
|
||||
|
Loading…
Reference in New Issue
Block a user