class_docstr: Load the subdataset for tracking.
  get annotation data,and get positive pair every frame range.
  
  Parameters
  ----------
  name : str
      dataset name.
  root : str
      Path to the folder stored the dataset.
  anno : str
      Path to the Json stored detaset annotation
  frame_range : int
      dataset frame range that get positive pair.
  num_use : int
      if num_use = -1 show all dataset,show fisrt num_use dataset
  start_idx : int
      dataset start idx
class_docstr_tok: ["Load","the","subdataset","for","tracking",".","get","annotation","data",",","and","get","positive","pair","every","frame","range",".","Parameters","--","--","--","--","--","name",":","str","dataset","name",".","root",":","str","Path","to","the","folder","stored","the","dataset",".","anno",":","str","Path","to","the","Json","stored","detaset","annotation","frame_range",":","int","dataset","frame","range","that","get","positive","pair",".","num_use",":","int","if","num_use","=","-1","show","all","dataset",",","show","fisrt","num_use","dataset","start_idx",":","int","dataset","start","idx"]
code: def __init__(self, name, root, anno, frame_range, num_use, start_idx):
      self.name = name
      self.root = root
      self.anno = anno
      self.frame_range = frame_range
      self.num_use = num_use
      self.start_idx = start_idx
      logging.basicConfig(level=logging.INFO)
      self.logger = logging.getLogger("global")
      self.logger.info("loading %s", self.name)
      # load json
      with open(self.anno, "r") as f:
          meta_data = json.load(f)
          meta_data = self._filter_zero(meta_data)
  
      for video in list(meta_data.keys()):
          for track in meta_data[video]:
              frames = meta_data[video][track]
              frames = list(
                  map(int, filter(lambda x: x.isdigit(), frames.keys()))
              )
              frames.sort()
              meta_data[video][track]["frames"] = frames
              if len(frames) <= 0:
                  self.logger.warning(
                      "%d/%d has no frames", int(video), int(track)
                  )
                  del meta_data[video][track]
  
      for video in list(meta_data.keys()):
          if len(meta_data[video]) <= 0:
              self.logger.warning("%d has no tracks", int(video))
              del meta_data[video]
  
      self.labels = meta_data
      self.num = len(self.labels)
      self.num_use = self.num if self.num_use == -1 else self.num_use
      self.videos = list(meta_data.keys())
      self.logger.info("%s loaded", self.name)
      self.path_format = "{}.{}.{}.jpg"
      self.pick = self.shuffle()
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import json
  import logging
  import os
  import numpy
  from mxnet.gluon.data import dataset
  from gluoncv.utils.filesystem import try_import_cv2
  from gluoncv.model_zoo.siamrpn.siamrpn_tracker import corner2center, center2corner
  from gluoncv.model_zoo.siamrpn.siamrpn_tracker import Center, Anchors
  from gluoncv.data.transforms.track import SiamRPNaugmentation
  from gluoncv.utils.bbox import bbox_iou
label_desc: Use image node_id 1 to create a new SubDataset object from inherited base classes: object with example: obj = SubDataset(name, root, anno, frame_range, num_use, start_idx)