code: def convert_coco_stuff_mat(data_dir, out_dir):
      
      sets = ['train', 'val']
      categories = []
      json_name = 'coco_stuff_%s.json'
      ann_dict = {}
      for data_set in sets:
          file_list = os.path.join(data_dir, '%s.txt')
          images = []
          with open(file_list % data_set) as f:
              for img_id, img_name in enumerate(f):
                  img_name = img_name.replace('coco', 'COCO').strip('\n')
                  image = {}
                  mat_file = os.path.join(
                      data_dir, 'annotations/%s.mat' % img_name)
                  data = h5py.File(mat_file, 'r')
                  labelMap = data.get('S')
                  if len(categories) == 0:
                      labelNames = data.get('names')
                      for idx, n in enumerate(labelNames):
                          categories.append(
                              {"id": idx, "name": ''.join(chr(i) for i in data[
                                  n[0]])})
                      ann_dict['categories'] = categories
                  scipy.misc.imsave(
                      os.path.join(data_dir, img_name + '.png'), labelMap)
                  image['width'] = labelMap.shape[0]
                  image['height'] = labelMap.shape[1]
                  image['file_name'] = img_name
                  image['seg_file_name'] = img_name
                  image['id'] = img_id
                  images.append(image)
          ann_dict['images'] = images
          print("Num images: %s" % len(images))
          with open(os.path.join(out_dir, json_name % data_set), 'wb') as outfile:
              outfile.write(json.dumps(ann_dict))
docs: Convert to png and save json with path. This currently only contains
      the segmentation labels for objects+stuff in cocostuff - if we need to
      combine with other labels from original COCO that will be a TODO.