From 2d0864c7237621a54ce0c8f7accdf9313268bb14 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 2 Feb 2024 05:22:56 -0700 Subject: [PATCH] Adjust kalman filter used for norfair tracker (#9538) * Adjust kalman filter * Add comment * Formatting --- frigate/track/norfair_tracker.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frigate/track/norfair_tracker.py b/frigate/track/norfair_tracker.py index 1b7c63a4f..3d7c9c618 100644 --- a/frigate/track/norfair_tracker.py +++ b/frigate/track/norfair_tracker.py @@ -3,7 +3,13 @@ import random import string import numpy as np -from norfair import Detection, Drawable, Tracker, draw_boxes +from norfair import ( + Detection, + Drawable, + OptimizedKalmanFilterFactory, + Tracker, + draw_boxes, +) from norfair.drawing.drawer import Drawer from frigate.config import CameraConfig @@ -82,6 +88,13 @@ class NorfairTracker(ObjectTracker): distance_threshold=2.5, initialization_delay=self.detect_config.min_initialized, hit_counter_max=self.detect_config.max_disappeared, + # use default filter factory with custom values + # R is the multiplier for the sensor measurement noise matrix, default of 4.0 + # lowering R means that we trust the position of the bounding boxes more + # testing shows that the prediction was being relied on a bit too much + # TODO: could use different kalman filter values along with + # the different tracker per object class + filter_factory=OptimizedKalmanFilterFactory(R=3.4), ) if self.ptz_autotracker_enabled.value: self.ptz_motion_estimator = PtzMotionEstimator(