class_docstr: This class can be used either to change some parameters of the [KalmanFilter](https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html)
  that the tracker uses, or to fully customize the predictive filter implementation to use (as long as the methods and properties are compatible).
  
  The former case only requires changing the default parameters upon tracker creation: `tracker = Tracker(..., filter_factory=FilterPyKalmanFilterFactory(R=100))`,
  while the latter requires creating your own class extending `FilterPyKalmanFilterFactory`, and rewriting its `create_filter` method to return your own customized filter.
  
  Parameters
  ----------
  R : float, optional
      Multiplier for the sensor measurement noise matrix, by default 4.0
  Q : float, optional
      Multiplier for the process uncertainty, by default 0.1
  P : float, optional
      Multiplier for the initial covariance matrix estimation, only in the entries that correspond to position (not speed) variables, by default 10.0
  
  See Also
  --------
  [`filterpy.KalmanFilter`](https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html).
code: def __init__(self, R: float = 4.0, Q: float = 0.1, P: float = 10.0):
      self.R = R
      self.Q = Q
      self.P = P
  
imports: from abc import ABC, abstractmethod
  import numpy
  from filterpy.kalman import KalmanFilter
label_desc: Use image node_id 1 to create a new FilterPyKalmanFilterFactory object from inherited base classes: FilterFactory with example: obj = FilterPyKalmanFilterFactory(R, Q, P)