code: def __init__(
      self,
      width,
      height,
      filter_type,
      alpha=0.5,
      fc_d=0.1,
      fc_min=0.1,
      beta=0.1,
      thres_mult=0.3,
  ):
      super(KeypointSmoothing, self).__init__()
      self.image_width = width
      self.image_height = height
      self.threshold = (
          np.array(
              [
                  0.005,
                  0.005,
                  0.005,
                  0.005,
                  0.005,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
                  0.01,
              ]
          )
          * thres_mult
      )
      self.filter_type = filter_type
      self.alpha = alpha
      self.dx_prev_hat = None
      self.x_prev_hat = None
      self.fc_d = fc_d
      self.fc_min = fc_min
      self.beta = beta
  
      if self.filter_type == "OneEuro":
          self.smooth_func = self.one_euro_filter
      elif self.filter_type == "EMA":
          self.smooth_func = self.ema_filter
      else:
          raise ValueError("filter type must be one_euro or ema")
  
imports: import os
  import json
  import cv2
  import math
  import numpy
  import paddle
  import yaml
  from det_keypoint_unite_utils import argsparser
  from preprocess import decode_image
  from infer import Detector, DetectorPicoDet, PredictConfig, print_arguments, get_test_images, bench_log
  from keypoint_infer import KeyPointDetector, PredictConfig_KeyPoint
  from visualize import visualize_pose
  from benchmark_utils import PaddleInferBenchmark
  from utils import get_current_memory_mb
  from keypoint_postprocess import translate_to_ori_images
label_desc: Use image node_id 1 to create a new KeypointSmoothing object from inherited base classes: object with example: obj = KeypointSmoothing(width, height, filter_type, alpha, fc_d, fc_min, beta, thres_mult)