class_docstr: A simple Kalman filter for tracking bounding boxes in image space.
  
  The 8-dimensional state space
  
      x, y, a, h, vx, vy, va, vh
  
  contains the bounding box center position (x, y), aspect ratio a, height h,
  and their respective velocities.
  
  Object motion follows a constant velocity model. The bounding box location
  (x, y, a, h) is taken as direct observation of the state space (linear
  observation model).
class_docstr_tok: ["A","simple","Kalman","filter","for","tracking","bounding","boxes","in","image","space",".","The","8-dimensional","state","space","x",",","y",",","a",",","h",",","vx",",","vy",",","va",",","vh","contains","the","bounding","box","center","position","(","x",",","y",")",",","aspect","ratio","a",",","height","h",",","and","their","respective","velocities",".","Object","motion","follows","a","constant","velocity","model",".","The","bounding","box","location","(","x",",","y",",","a",",","h",")","is","taken","as","direct","observation","of","the","state","space","(","linear","observation","model",")","."]
docstr: Run Kalman filter prediction step (Vectorized version).
  
  Args:
      mean (ndarray): The Nx8 dimensional mean matrix of the object states
          at the previous time step.
      covariance (ndarray): The Nx8x8 dimensional covariance matrics of the
          object states at the previous time step.
  
  Returns:
      The mean vector and covariance matrix of the predicted state.
      Unobserved velocities are initialized to 0 mean.
docstr_tok: ["Run","Kalman","filter","prediction","step","(","Vectorized","version",")",".","Args",":","mean","(","ndarray",")",":","The","Nx8","dimensional","mean","matrix","of","the","object","states","at","the","previous","time","step",".","covariance","(","ndarray",")",":","The","Nx8x8","dimensional","covariance","matrics","of","the","object","states","at","the","previous","time","step",".","Returns",":","The","mean","vector","and","covariance","matrix","of","the","predicted","state",".","Unobserved","velocities","are","initialized","to","0","mean","."]
code: def multi_predict(self, mean, covariance):
      """
      Run Kalman filter prediction step (Vectorized version).
  
      Args:
          mean (ndarray): The Nx8 dimensional mean matrix of the object states
              at the previous time step.
          covariance (ndarray): The Nx8x8 dimensional covariance matrics of the
              object states at the previous time step.
  
      Returns:
          The mean vector and covariance matrix of the predicted state.
          Unobserved velocities are initialized to 0 mean.
      """
      std_pos = [
          self._std_weight_position * mean[:, 3],
          self._std_weight_position * mean[:, 3],
          1e-2 * np.ones_like(mean[:, 3]),
          self._std_weight_position * mean[:, 3],
      ]
      std_vel = [
          self._std_weight_velocity * mean[:, 3],
          self._std_weight_velocity * mean[:, 3],
          1e-5 * np.ones_like(mean[:, 3]),
          self._std_weight_velocity * mean[:, 3],
      ]
      sqr = np.square(np.r_[std_pos, std_vel]).T
  
      motion_cov = []
      for i in range(len(mean)):
          motion_cov.append(np.diag(sqr[i]))
      motion_cov = np.asarray(motion_cov)
  
      mean = np.dot(mean, self._motion_mat.T)
      left = np.dot(self._motion_mat, covariance).transpose((1, 0, 2))
      covariance = np.dot(left, self._motion_mat.T) + motion_cov
  
      return mean, covariance
  
file_path: PaddleHub/modules/video/multiple_object_tracking/fairmot_dla34/modeling/mot/motion/kalman_filter.py
imports: import numpy
  import scipy.linalg
label_desc: Use image node_id 5 for calling the KalmanFilter obj's underlying member method code with example usage: obj.multi_predict(mean, covariance) and returns: mean,  covariance