code: def load_training_roidbs(self, names):
          
          return COCODetection.load_many(
              cfg.DATA.BASEDIR, names, add_gt=True, add_mask=cfg.MODE_MASK)
docs: Args:
              names (list[str]): name of the training datasets, e.g.  ['train2014', 'valminusminival2014']
  
          Returns:
              roidbs (list[dict]):
  
          Produce "roidbs" as a list of dict, each dict corresponds to one image with k>=0 instances.
          and the following keys are expected for training:
  
          file_name: str, full path to the image
          boxes: numpy array of kx4 floats, each row is [x1, y1, x2, y2]
          class: numpy array of k integers, in the range of [1, #categories], NOT [0, #categories)
          is_crowd: k booleans. Use k False if you don't know what it means.
          segmentation: k lists of numpy arrays (one for each instance).
              Each list of numpy arrays corresponds to the mask for one instance.
              Each numpy array in the list is a polygon of shape Nx2,
              because one mask can be represented by N polygons.
  
              If your segmentation annotations are originally masks rather than polygons,
              either convert it, or the augmentation will need to be changed or skipped accordingly.
  
              Include this field only if training Mask R-CNN.