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))
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))