code: def getCatIds(self, catNms=[], supNms=[], catIds=[]):
          
          catNms = catNms if type(catNms) == list else [catNms]
          supNms = supNms if type(supNms) == list else [supNms]
          catIds = catIds if type(catIds) == list else [catIds]
  
          if len(catNms) == len(supNms) == len(catIds) == 0:
              cats = self.dataset['categories']
          else:
              cats = self.dataset['categories']
              cats = cats if len(catNms) == 0 else [cat for cat in cats if cat['name']          in catNms]
              cats = cats if len(supNms) == 0 else [cat for cat in cats if cat['supercategory'] in supNms]
              cats = cats if len(catIds) == 0 else [cat for cat in cats if cat['id']            in catIds]
          ids = [cat['id'] for cat in cats]
          return ids
docs: filtering parameters. default skips that filter.
          :param catNms (str array)  : get cats for given cat names
          :param supNms (str array)  : get cats for given supercategory names
          :param catIds (int array)  : get cats for given cat ids
          :return: ids (int array)   : integer array of cat ids