class_docstr: BOTSORT tracker, support single class
  
  Args:
      track_high_thresh (float): threshold of detection high score
      track_low_thresh (float): threshold of remove detection score
      new_track_thresh (float): threshold of new track score
      match_thresh (float): iou threshold for associate
      track_buffer (int): tracking reserved frames,default 30
      min_box_area (float): reserved min box
      camera_motion (bool): Whether use camera motion, default False
      cmc_method (str): camera motion method,defalut sparseOptFlow
      frame_rate (int): fps buffer_size=int(frame_rate / 30.0 * track_buffer)
class_docstr_tok: ["BOTSORT","tracker",",","support","single","class","Args",":","track_high_thresh","(","float",")",":","threshold","of","detection","high","score","track_low_thresh","(","float",")",":","threshold","of","remove","detection","score","new_track_thresh","(","float",")",":","threshold","of","new","track","score","match_thresh","(","float",")",":","iou","threshold","for","associate","track_buffer","(","int",")",":","tracking","reserved","frames",",","default","30","min_box_area","(","float",")",":","reserved","min","box","camera_motion","(","bool",")",":","Whether","use","camera","motion",",","default","False","cmc_method","(","str",")",":","camera","motion","method",",","defalut","sparseOptFlow","frame_rate","(","int",")",":","fps","buffer_size=int","(","frame_rate","\/","30.0","*","track_buffer",")"]
code: def __init__(
      self,
      track_high_thresh=0.3,
      track_low_thresh=0.2,
      new_track_thresh=0.4,
      match_thresh=0.7,
      track_buffer=30,
      min_box_area=0,
      camera_motion=False,
      cmc_method="sparseOptFlow",
      frame_rate=30,
  ):
      self.tracked_stracks = []  # type: list[STrack]
      self.lost_stracks = []  # type: list[STrack]
      self.removed_stracks = []  # type: list[STrack]
  
      self.frame_id = 0
  
      self.track_high_thresh = track_high_thresh
      self.track_low_thresh = track_low_thresh
      self.new_track_thresh = new_track_thresh
      self.match_thresh = match_thresh
      self.buffer_size = int(frame_rate / 30.0 * track_buffer)
      self.max_time_lost = self.buffer_size
      self.kalman_filter = KalmanFilter()
      self.min_box_area = min_box_area
  
      self.camera_motion = camera_motion
      self.gmc = GMC(method=cmc_method)
  
file_path: PaddleDetection/deploy/pptracking/python/mot/tracker/botsort_tracker.py
imports: import cv2
  import matplotlib.pyplot
  import numpy
  from collections import deque
  from ..matching import jde_matching
  from ..motion import GMC
  from .base_jde_tracker import TrackState, STrack
  from .base_jde_tracker import joint_stracks, sub_stracks, remove_duplicate_stracks
  from ..motion import KalmanFilter
label_desc: Use image node_id 1 to create a new BOTSORTTracker object from inherited base classes: object with example: obj = BOTSORTTracker(track_high_thresh, track_low_thresh, new_track_thresh, match_thresh, track_buffer, min_box_area, camera_motion, cmc_method, frame_rate)