def get_img_pair(self, fname_stem: str) -> Tuple[np.ndarray, np.ndarray]:
        """ Load 2-tuple of image data from disk (RGB and label).

			Args:
			-	fname_stem: string representing 

			Returns:
			-	rgb_img
			-	label_img
		"""
        # look it up in the dictionary
        rgb_fpath = self.fname_to_rgbfpath_dict[fname_stem]

        label_fpath = rgb_fpath.replace('/images/', '/annotations/')
        label_fpath = label_fpath.replace('.jpg', '.png')

        rgb_img = imageio.imread(rgb_fpath)

        if rgb_img.ndim == 2:
            # this image was grayscale
            rgb_img = grayscale_to_color(rgb_img)
        assert rgb_img.ndim == 3
        h, w, ch = rgb_img.shape
        assert ch == 3

        label_img = imageio.imread(label_fpath)
        assert label_img.ndim == 2
        assert rgb_img.shape[:2] == label_img.shape[:2]

        return rgb_img, label_img
Exemple #2
0
def test_grayscale_to_color():
	"""
	Convert simple 2x2 grayscale image into RGB image.
	"""
	gray_img = np.array(
		[
		[0,255],
		[255,0]
	], dtype=np.uint8)
	rgb_img = grayscale_to_color(gray_img)
	assert rgb_img.shape == (2,2,3)
	for i in range(2):
		assert np.allclose(rgb_img[:,:,i], gray_img)
Exemple #3
0
def visual_sanitychecks():
    """
	Save every 1000th image of each dataset, with classnames embedded.
	"""
    save_dir = 'temp_files/MSeg_verify'

    for dname, d_info in infos.items():
        print(f'Writing visual sanity checks for {dname}...')

        if dname in [
                'coco-panoptic-inst-201', 'mapillary-public66',
                'ade20k-151-inst'
        ]:
            continue  # is in RGB format and not comparable

        id_to_classname_map = get_dataloader_id_to_classname_map(dname)
        splits = ['train', 'val']
        split_lists = [d_info.trainlist, d_info.vallist]

        for split, split_list in zip(splits, split_lists):
            pairs = generate_all_img_label_pair_fpaths(d_info.dataroot,
                                                       split_list)

            # Save 5 examples from each dataset split
            step_sz = math.floor(len(pairs) // 5)
            for i, (rgb_fpath, label_fpath) in enumerate(pairs[::step_sz]):
                print(f'On {i} of {dname}')

                rgb_img = cv2_imread_rgb(rgb_fpath)
                label_img = imageio.imread(label_fpath)

                fname_stem = Path(rgb_fpath).stem
                save_fpath = f'{save_dir}/{dname}_{fname_stem}.jpg'
                blend_save_fpath = f'{save_dir}/{dname}_{fname_stem}_blended.jpg'

                if rgb_img.ndim == 2:
                    # this image was grayscale
                    rgb_img = grayscale_to_color(rgb_img)

                form_mask_triple_embedded_classnames(rgb_img,
                                                     label_img,
                                                     id_to_classname_map,
                                                     save_fpath,
                                                     save_to_disk=True)
                frame_visualizer = Visualizer(rgb_img, metadata=None)
                output_img = frame_visualizer.overlay_instances(
                    label_map=label_img,
                    id_to_class_name_map=id_to_classname_map)
                imageio.imwrite(blend_save_fpath, output_img)
    def get_rgb_img(self, split: str, fname_stem: str) -> np.ndarray:
        """
			Args:
			-	split: string representing training, validation, or testing split of the data
			-	fname_stem: 

			Returns:
			-	rgb_img: color image.
		"""
        rgb_img_fpath = f'{self.coco_dataroot}/{split}2017/{fname_stem}.jpg'
        rgb_img = imageio.imread(rgb_img_fpath)
        if rgb_img.ndim == 2:
            # this image was grayscale
            rgb_img = grayscale_to_color(rgb_img)
        return rgb_img
Exemple #5
0
def main():
	"""
	"""
	save_dir = 'temp_files'

	# beforehand
	# orig_dname = 'cityscapes-19'
	# orig_dataroot = '/export/share/Datasets/cityscapes'

	# rel_dname = 'cityscapes-19'
	# rel_dataroot = '/export/share/Datasets/MSeg/mseg_dataset/Cityscapes'

	orig_dname = 'coco-panoptic-133'
	orig_dname_lists = 'coco-panoptic-133-temp'
	orig_dataroot = '/export/share/Datasets/COCO2017'

	rel_dname = 'coco-panoptic-133'
	rel_dataroot = '/export/share/Datasets/MSeg/mseg_dataset/COCOPanoptic'

	orig_id_to_classname_map = get_dataloader_id_to_classname_map(orig_dname)
	rel_id_to_classname_map = get_dataloader_id_to_classname_map(rel_dname)

	for split in ['train', 'val']:
		orig_split_txt_fpath = f'../mseg/dataset_lists/{orig_dname_lists}/list/{split}.txt'
		orig_pairs = generate_all_img_label_pair_fpaths(orig_dataroot, orig_split_txt_fpath)

		rel_split_txt_fpath = f'../mseg/dataset_lists/{rel_dname}/list/{split}.txt'
		rel_pairs = generate_all_img_label_pair_fpaths(rel_dataroot, rel_split_txt_fpath)

		for i in range(len(orig_pairs))[::100]:
			orig_pair = orig_pairs[i]
			orig_rgb_fpath, orig_label_fpath = orig_pair
			orig_rgb_img = imageio.imread(orig_rgb_fpath)
			orig_label_img = imageio.imread(orig_label_fpath)

			rel_pair = rel_pairs[i]
			rel_rgb_fpath, rel_label_fpath = rel_pair
			rel_rgb_img = imageio.imread(rel_rgb_fpath)
			rel_label_img = imageio.imread(rel_label_fpath)

			if not np.allclose(orig_label_img,rel_label_img):
				pdb.set_trace()

			fname_stem = Path(orig_rgb_fpath).stem
			orig_save_fpath = f'{save_dir}/{split}_{i}_noguide_orig_{fname_stem}.png'
			orig_guide_save_fpath = f'{save_dir}/{split}_{i}_guide_orig_{fname_stem}.png'

			rel_save_fpath = f'{save_dir}/{split}_{i}_noguide_rel_{fname_stem}.png'
			rel_guide_save_fpath = f'{save_dir}/{split}_{i}_guide_rel_{fname_stem}.png'

			if orig_rgb_img.ndim == 2:
				# this image was grayscale
				orig_rgb_img = grayscale_to_color(orig_rgb_img)
			
			if rel_rgb_img.ndim == 2:
				# this image was grayscale
				rel_rgb_img = grayscale_to_color(rel_rgb_img)

			#save_classnames_in_image(img_rgb, label_img, id_to_class_name_map, save_to_disk=True, save_fpath=save_fpath)
			form_mask_triple_embedded_classnames(orig_rgb_img, orig_label_img, orig_id_to_classname_map, orig_save_fpath, save_to_disk=True)
			save_mask_triple_with_color_guide(orig_rgb_img, orig_label_img, orig_id_to_classname_map,fname_stem,save_dir, orig_guide_save_fpath)

			form_mask_triple_embedded_classnames(rel_rgb_img, rel_label_img, rel_id_to_classname_map, rel_save_fpath, save_to_disk=True)
			save_mask_triple_with_color_guide(rel_rgb_img, rel_label_img, rel_id_to_classname_map,fname_stem,save_dir, rel_guide_save_fpath)