class_docstr: Base class for bottom-up datasets. 
  
  All datasets should subclass it.
  All subclasses should overwrite:
      Methods:`_get_imganno`
  
  Args:
      dataset_dir (str): Root path to the dataset.
      anno_path (str): Relative path to the annotation file.
      image_dir (str): Path to a directory where images are held.
          Default: None.
      num_joints (int): keypoint numbers
      transform (composed(operators)): A sequence of data transforms.
      shard (list): [rank, worldsize], the distributed env params
      test_mode (bool): Store True when building test or
          validation dataset. Default: False.
code: def parse_dataset(self):
      pass
  
imports: import os
  import cv2
  import numpy
  import json
  import copy
  import pycocotools
  from pycocotools.coco import COCO
  from .dataset import DetDataset
  from ppdet.core.workspace import register, serializable
label_desc: Use image node_id 2 for calling the KeypointBottomUpBaseDataset obj's underlying member method code with example usage: obj.parse_dataset() without return types