From af3d964e9cfe515d2445888e7c03921566e20a53 Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Fri, 9 Jun 2023 07:36:38 -0500 Subject: [PATCH] use estimated boxes for regions --- frigate/track/norfair_tracker.py | 9 +++++++-- frigate/video.py | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/frigate/track/norfair_tracker.py b/frigate/track/norfair_tracker.py index 76f50fd73..642f20d9c 100644 --- a/frigate/track/norfair_tracker.py +++ b/frigate/track/norfair_tracker.py @@ -231,16 +231,21 @@ class NorfairTracker(ObjectTracker): # update or create new tracks active_ids = [] for t in tracked_objects: + obj = { + **t.last_detection.data, + "estimate": tuple(t.estimate.flatten().astype(int)), + } active_ids.append(t.global_id) if t.global_id not in self.track_id_map: - self.register(t.global_id, t.last_detection.data) + self.register(t.global_id, obj) # if there wasn't a detection in this frame, increment disappeared elif t.last_detection.data["frame_time"] != frame_time: id = self.track_id_map[t.global_id] self.disappeared[id] += 1 + self.tracked_objects[id]["estimate"] = obj["estimate"] # else update it else: - self.update(t.global_id, t.last_detection.data) + self.update(t.global_id, obj) # clear expired tracks expired_ids = [k for k in self.track_id_map.keys() if k not in active_ids] diff --git a/frigate/video.py b/frigate/video.py index 9246a15b5..c653fe785 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -656,7 +656,7 @@ def process_frames( # get tracked object boxes that aren't stationary tracked_object_boxes = [ - obj["box"] + obj["estimate"] for obj in object_tracker.tracked_objects.values() if obj["id"] not in stationary_object_ids ]