def test_ImageAugmentizer_BadParameter(self):
     with self.assertRaises(TypeError):
         ImageAugmentizer("pxr_config.ini")
     with self.assertRaises(TypeError):
         ImageAugmentizer(5566)
     with self.assertRaises(TypeError):
         ImageAugmentizer(NormalizeConfig("augment_config_noaug.ini"))
    def test_ImageAugmentizer_Aug_UD_4D(self):
        ia0 = ImageAugmentizer(self.conf_ud)
        image_aug = ia0.augmentize(self.image0_1)
        diff = self.image0_1 - image_aug
        self.assertFalse((diff == np.zeros_like(diff)).all())

        image_aug = ia0.augmentize(self.imagecxr0_1)
        diff = self.imagecxr0_1 - image_aug
        self.assertFalse((diff == np.zeros_like(diff)).all())
    def test_ImageAugmentizer_Aug_LR(self):
        ia0 = ImageAugmentizer(self.conf_lr)
        image0_aug = ia0.augmentize(self.image0)
        diff = self.image0 - image0_aug
        self.assertFalse((diff == np.zeros_like(diff)).all())

        image0_aug = ia0.augmentize(self.imagecxr0)
        diff = self.imagecxr0 - image0_aug
        self.assertFalse((diff == np.zeros_like(diff)).all())
 def test_ImageAugmentizer_Aug_Prob(self):
     ia0 = ImageAugmentizer(self.conf_prob)
     flipped_times = 0
     test_runs = 10000
     for i in range(test_runs):
         image0_aug = ia0.augmentize(self.image0)
         diff = self.image0 - image0_aug
         if not (diff == np.zeros_like(diff)).all():
             flipped_times += 1
     self.assertTrue(abs(flipped_times / test_runs - self.conf_prob.flip_prob) < 0.01)
    def test_wrong_dimension(self):
        with self.assertRaises(ValueError):
            ia0 = ImageAugmentizer(self.conf)
            ia0.augmentize(np.random.rand(1, 1))

        with self.assertRaises(ValueError):
            ia0 = ImageAugmentizer(self.conf)
            ia0.augmentize(np.random.rand(1))
示例#6
0
def batch_generator(image_filenames,
                    labels,
                    image_config,
                    mode="train",
                    verbosity=0):
    """
    :param image_filenames:
    :param labels:
    :param image_config:
    :param mode:
    :type image_config: ImageConfig
    :param verbosity:
    :return:
    """

    aug_enable = (image_config.AugmentConfig.train_augmentation and mode
                  == "train") or (image_config.AugmentConfig.dev_augmentation
                                  and mode == "dev")
    norm_enable = (mode != "raw")

    augmentizer = ImageAugmentizer(
        image_config.AugmentConfig) if aug_enable else None
    normalizer = ImageNormalizer(
        image_config.NormalizeConfig) if norm_enable else None

    inputs = image_generator(image_filenames=image_filenames,
                             image_config=image_config,
                             mode=mode,
                             aug=augmentizer,
                             norm=normalizer,
                             verbosity=verbosity)

    targets = np.array(labels)

    if image_config.class_mode == 'multibinary':
        targets = np.swapaxes(labels, 0, 1)
        targets = [
            np.array(targets[i, :]) for i in range(np.shape(targets)[0])
        ]

    print(f"(input, targets) = ({np.shape(inputs)}, {np.shape(targets)})"
          ) if verbosity > 2 else None
    print(f"targets = {targets}") if verbosity > 2 else None

    return inputs, targets
 def test_ImageAugmentizer_NoAug(self):
     ia0 = ImageAugmentizer(self.conf_noaug)
     image0_aug = ia0.augmentize(self.image0)
     self.assertTrue((self.image0 == image0_aug).all())
 def test_ImageAugmentizer_NoArgument(self):
     with self.assertRaises(TypeError):
         ImageAugmentizer()
 def test_ImageAugmentizer(self):
     ia0 = ImageAugmentizer(self.conf)
     self.assertTrue(isinstance(ia0, ImageAugmentizer))