def test_random_crop_with_bbox_op_edge_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomCropWithBBox Op applied, applied on dynamically generated edge case, expected to pass """ logger.info("test_random_crop_with_bbox_op_edge_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", mode="train", decode=True, shuffle=False) # define test OP with values to match existing Op unit - test test_op = c_vision.RandomCropWithBBox(512, [200, 200, 200, 200], padding_mode=mode.Border.EDGE) # maps to convert data into valid edge case data dataVoc1 = dataVoc1.map( input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]]).astype(bboxes. dtype)) ]) # Test Op added to list of Operations here dataVoc2 = dataVoc2.map( input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]]).astype( bboxes.dtype)), test_op ]) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_resize_with_bbox_op_rand_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomResizeWithBBox Op applied, tests with MD5 check, expected to pass """ logger.info("test_random_resize_with_bbox_rand_c") original_seed = config_get_set_seed(1) original_num_parallel_workers = config_get_set_num_parallel_workers(1) # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) test_op = c_vision.RandomResizeWithBBox(200) dataVoc1 = dataVoc1.map(input_columns=["annotation"], output_columns=["annotation"], operations=fix_annotate) dataVoc2 = dataVoc2.map(input_columns=["annotation"], output_columns=["annotation"], operations=fix_annotate) # map to apply ops dataVoc2 = dataVoc2.map(input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[test_op]) filename = "random_resize_with_bbox_op_01_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_resize_with_bbox_op_edge_c(plot_vis=False): """ Prints images and bboxes side by side with and without ResizeWithBBox Op applied, applied on dynamically generated edge case, expected to pass. edge case is when bounding box has dimensions as the image itself. """ logger.info("test_resize_with_bbox_op_edge_c") dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) test_op = c_vision.ResizeWithBBox(500) # maps to convert data into valid edge case data dataVoc1 = dataVoc1.map( input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]]).astype(bboxes. dtype)) ]) dataVoc2 = dataVoc2.map( input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]]).astype( bboxes.dtype)), test_op ]) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_horizontal_flip_with_bbox_valid_edge_c(plot_vis=False): """ Test RandomHorizontalFlipWithBBox op (testing with valid edge case, box covering full image). Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_horizontal_flip_with_bbox_valid_edge_c") dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.RandomHorizontalFlipWithBBox(1) # map to apply ops # Add column for "bbox" dataVoc1 = dataVoc1.map( operations=lambda img, bbox: (img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype( np.float32)), input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) dataVoc2 = dataVoc2.map( operations=lambda img, bbox: (img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype( np.float32)), input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_resized_crop_with_bbox_op_edge_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomResizedCropWithBBox Op applied, tests on dynamically generated edge case, expected to pass """ logger.info("test_random_resized_crop_with_bbox_op_edge_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.RandomResizedCropWithBBox((256, 512), (0.5, 0.5), (0.5, 0.5)) # maps to convert data into valid edge case data dataVoc1 = dataVoc1.map(operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]] ).astype(bboxes.dtype)) ], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) # Test Op added to list of Operations here dataVoc2 = dataVoc2.map(operations=[ lambda img, bboxes: (img, np.array([[0, 0, img.shape[1], img.shape[0]]] ).astype(bboxes.dtype)), test_op ], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_resize_with_bbox_op_rand_coco_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomResizeWithBBox Op applied, tests with MD5 check, expected to pass testing with COCO dataset """ logger.info("test_random_resize_with_bbox_op_rand_coco_c") original_seed = config_get_set_seed(231) original_num_parallel_workers = config_get_set_num_parallel_workers(1) # Load dataset dataCoco1 = ds.CocoDataset(DATA_DIR_2[0], annotation_file=DATA_DIR_2[1], task="Detection", decode=True, shuffle=False) dataCoco2 = ds.CocoDataset(DATA_DIR_2[0], annotation_file=DATA_DIR_2[1], task="Detection", decode=True, shuffle=False) test_op = c_vision.RandomResizeWithBBox(200) # map to apply ops dataCoco2 = dataCoco2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "random_resize_with_bbox_op_01_c_coco_result.npz" save_and_check_md5(dataCoco2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataCoco1.create_dict_iterator(num_epochs=1, output_numpy=True), dataCoco2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp, annot_name="bbox") # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_random_horizontal_flip_with_bbox_valid_rand_c(plot_vis=False): """ Uses a valid non-default input, expect to pass Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_random_horizontal_bbox_valid_rand_c") original_seed = config_get_set_seed(1) original_num_parallel_workers = config_get_set_num_parallel_workers(1) # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.RandomHorizontalFlipWithBBox(0.6) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "random_horizontal_flip_with_bbox_01_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_random_crop_with_bbox_op2_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomCropWithBBox Op applied, with md5 check, expected to pass """ logger.info("test_random_crop_with_bbox_op2_c") original_seed = config_get_set_seed(593447) original_num_parallel_workers = config_get_set_num_parallel_workers(1) # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) # define test OP with values to match existing Op unit - test test_op = c_vision.RandomCropWithBBox(512, [200, 200, 200, 200], fill_value=(255, 255, 255)) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "random_crop_with_bbox_01_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_bounding_box_augment_with_crop_op(plot_vis=False): """ Test BoundingBoxAugment op (passing crop op as transform) Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_bounding_box_augment_with_crop_op") original_seed = config_get_set_seed(0) original_num_parallel_workers = config_get_set_num_parallel_workers(1) dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) # Ratio is set to 0.9 to apply RandomCrop of size (50, 50) on 90% of the bounding boxes. test_op = c_vision.BoundingBoxAugment(c_vision.RandomCrop(50), 0.9) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "bounding_box_augment_crop_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_bounding_box_augment_valid_ratio_c(plot_vis=False): """ Test BoundingBoxAugment op (testing with valid ratio, less than 1. Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_bounding_box_augment_valid_ratio_c") original_seed = config_get_set_seed(1) original_num_parallel_workers = config_get_set_num_parallel_workers(1) dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) test_op = c_vision.BoundingBoxAugment(c_vision.RandomHorizontalFlip(1), 0.9) # map to apply ops dataVoc2 = dataVoc2.map(input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[test_op ]) # Add column for "annotation" filename = "bounding_box_augment_valid_ratio_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_bounding_box_augment_valid_edge_c(plot_vis=False): """ Test BoundingBoxAugment op (testing with valid edge case, box covering full image). Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_bounding_box_augment_valid_edge_c") original_seed = config_get_set_seed(1) original_num_parallel_workers = config_get_set_num_parallel_workers(1) dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.BoundingBoxAugment(c_vision.RandomHorizontalFlip(1), 1) # map to apply ops # Add column for "bbox" dataVoc1 = dataVoc1.map( operations=lambda img, bbox: (img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype(np.float32)), input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) dataVoc2 = dataVoc2.map( operations=lambda img, bbox: (img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype(np.float32)), input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "bounding_box_augment_valid_edge_c_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp) # Restore config setting ds.config.set_seed(original_seed) ds.config.set_num_parallel_workers(original_num_parallel_workers)
def test_random_horizontal_flip_with_bbox_op_c(plot_vis=False): """ Prints images side by side with and without Aug applied + bboxes to compare and test """ logger.info("test_random_horizontal_flip_with_bbox_op_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", mode="train", decode=True, shuffle=False) test_op = c_vision.RandomHorizontalFlipWithBBox(1) # maps to fix annotations to minddata standard dataVoc1 = dataVoc1.map(input_columns=["annotation"], output_columns=["annotation"], operations=fix_annotate) dataVoc2 = dataVoc2.map(input_columns=["annotation"], output_columns=["annotation"], operations=fix_annotate) # map to apply ops dataVoc2 = dataVoc2.map(input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[test_op]) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_resize_with_bbox_op_coco_c(plot_vis=False): """ Prints images and bboxes side by side with and without ResizeWithBBox Op applied, tests with MD5 check, expected to pass Testing with COCO dataset """ logger.info("test_resize_with_bbox_op_coco_c") # Load dataset dataCOCO1 = ds.CocoDataset(DATA_DIR_2[0], annotation_file=DATA_DIR_2[1], task="Detection", decode=True, shuffle=False) dataCOCO2 = ds.CocoDataset(DATA_DIR_2[0], annotation_file=DATA_DIR_2[1], task="Detection", decode=True, shuffle=False) test_op = c_vision.ResizeWithBBox(200) # map to apply ops dataCOCO2 = dataCOCO2.map(input_columns=["image", "bbox"], output_columns=["image", "bbox"], columns_order=["image", "bbox"], operations=[test_op]) filename = "resize_with_bbox_op_01_c_coco_result.npz" save_and_check_md5(dataCOCO2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataCOCO1.create_dict_iterator(), dataCOCO2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp, annot_name="bbox")
def test_resize_with_bbox_op_voc_c(plot_vis=False): """ Prints images and bboxes side by side with and without ResizeWithBBox Op applied testing with VOC dataset """ logger.info("test_resize_with_bbox_op_voc_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.ResizeWithBBox(100) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) filename = "resize_with_bbox_op_01_c_voc_result.npz" save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_crop_with_bbox_op3_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomCropWithBBox Op applied, with Padding Mode explicitly passed """ logger.info("test_random_crop_with_bbox_op3_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) # define test OP with values to match existing Op unit - test test_op = c_vision.RandomCropWithBBox(512, [200, 200, 200, 200], padding_mode=mode.Border.EDGE) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_vertical_flip_with_bbox_op_coco_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomVerticalFlipWithBBox Op applied, Testing with Coco dataset """ logger.info("test_random_vertical_flip_with_bbox_op_coco_c") # load dataset dataCoco1 = ds.CocoDataset(DATA_DIR_COCO[0], annotation_file=DATA_DIR_COCO[1], task="Detection", decode=True, shuffle=False) dataCoco2 = ds.CocoDataset(DATA_DIR_COCO[0], annotation_file=DATA_DIR_COCO[1], task="Detection", decode=True, shuffle=False) test_op = c_vision.RandomVerticalFlipWithBBox(1) dataCoco2 = dataCoco2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) test_op = c_vision.RandomVerticalFlipWithBBox(1) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataCoco1.create_dict_iterator(num_epochs=1, output_numpy=True), dataCoco2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp, "bbox")
def test_random_crop_with_bbox_op_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomCropWithBBox Op applied """ logger.info("test_random_crop_with_bbox_op_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", mode="train", decode=True, shuffle=False) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", mode="train", decode=True, shuffle=False) # define test OP with values to match existing Op UT test_op = c_vision.RandomCropWithBBox([512, 512], [200, 200, 200, 200]) # map to apply ops dataVoc2 = dataVoc2.map(input_columns=["image", "annotation"], output_columns=["image", "annotation"], columns_order=["image", "annotation"], operations=[test_op ]) # Add column for "annotation" unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataVoc1.create_dict_iterator(), dataVoc2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)
def test_random_resized_crop_with_bbox_op_coco_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomResizedCropWithBBox Op applied, Testing with Coco dataset """ logger.info("test_random_resized_crop_with_bbox_op_coco_c") # load dataset dataCoco1 = ds.CocoDataset(DATA_DIR_COCO[0], annotation_file=DATA_DIR_COCO[1], task="Detection", decode=True, shuffle=False) dataCoco2 = ds.CocoDataset(DATA_DIR_COCO[0], annotation_file=DATA_DIR_COCO[1], task="Detection", decode=True, shuffle=False) test_op = c_vision.RandomResizedCropWithBBox((512, 512), (0.5, 1), (0.5, 1)) dataCoco2 = dataCoco2.map(input_columns=["image", "bbox"], output_columns=["image", "bbox"], columns_order=["image", "bbox"], operations=[test_op]) unaugSamp, augSamp = [], [] for unAug, Aug in zip(dataCoco1.create_dict_iterator(), dataCoco2.create_dict_iterator()): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp, "bbox")
def test_random_vertical_flip_with_bbox_op_c(plot_vis=False): """ Prints images and bboxes side by side with and without RandomVerticalFlipWithBBox Op applied """ logger.info("test_random_vertical_flip_with_bbox_op_c") # Load dataset dataVoc1 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) dataVoc2 = ds.VOCDataset(DATA_DIR_VOC, task="Detection", usage="train", shuffle=False, decode=True) test_op = c_vision.RandomVerticalFlipWithBBox(1) # map to apply ops dataVoc2 = dataVoc2.map(operations=[test_op], input_columns=["image", "bbox"], output_columns=["image", "bbox"], column_order=["image", "bbox"]) unaugSamp, augSamp = [], [] for unAug, Aug in zip( dataVoc1.create_dict_iterator(num_epochs=1, output_numpy=True), dataVoc2.create_dict_iterator(num_epochs=1, output_numpy=True)): unaugSamp.append(unAug) augSamp.append(Aug) if plot_vis: visualize_with_bounding_boxes(unaugSamp, augSamp)