| | |
| | import copy |
| | import unittest |
| |
|
| | from mmdet.datasets.transforms import (AutoAugment, AutoContrast, Brightness, |
| | Color, Contrast, Equalize, Invert, |
| | Posterize, RandAugment, Rotate, |
| | Sharpness, ShearX, ShearY, Solarize, |
| | SolarizeAdd, TranslateX, TranslateY) |
| | from mmdet.utils import register_all_modules |
| | from .utils import check_result_same, construct_toy_data |
| |
|
| | register_all_modules() |
| |
|
| |
|
| | class TestAutoAugment(unittest.TestCase): |
| |
|
| | def setUp(self): |
| | """Setup the model and optimizer which are used in every test method. |
| | |
| | TestCase calls functions in this order: setUp() -> testMethod() -> |
| | tearDown() -> cleanUp() |
| | """ |
| | self.check_keys = ('img', 'gt_bboxes', 'gt_bboxes_labels', 'gt_masks', |
| | 'gt_ignore_flags', 'gt_seg_map', |
| | 'homography_matrix') |
| | self.results_mask = construct_toy_data(poly2mask=True) |
| | self.img_fill_val = (104, 116, 124) |
| | self.seg_ignore_label = 255 |
| |
|
| | def test_autoaugment(self): |
| | |
| | policies = [[ |
| | dict(type='ShearX', prob=1.0, level=3, reversal_prob=0.0), |
| | dict(type='ShearY', prob=1.0, level=7, reversal_prob=1.0) |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_shearx = ShearX(prob=1.0, level=3, reversal_prob=0.0) |
| | transform_sheary = ShearY(prob=1.0, level=7, reversal_prob=1.0) |
| | results_sheared = transform_sheary( |
| | transform_shearx(copy.deepcopy(self.results_mask))) |
| | check_result_same(results_sheared, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Rotate', prob=1.0, level=10, reversal_prob=0.0), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_rotate = Rotate(prob=1.0, level=10, reversal_prob=0.0) |
| | results_rotated = transform_rotate(copy.deepcopy(self.results_mask)) |
| | check_result_same(results_rotated, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict( |
| | type='TranslateX', |
| | prob=1.0, |
| | level=10, |
| | max_mag=1.0, |
| | reversal_prob=0.0), |
| | dict( |
| | type='TranslateY', |
| | prob=1.0, |
| | level=10, |
| | max_mag=1.0, |
| | reversal_prob=1.0) |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_translatex = TranslateX( |
| | prob=1.0, level=10, max_mag=1.0, reversal_prob=0.0) |
| | transform_translatey = TranslateY( |
| | prob=1.0, level=10, max_mag=1.0, reversal_prob=1.0) |
| | results_translated = transform_translatey( |
| | transform_translatex(copy.deepcopy(self.results_mask))) |
| | check_result_same(results_translated, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Brightness', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_brightness = Brightness(prob=1.0, level=3) |
| | results_brightness = transform_brightness( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_brightness, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Color', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_color = Color(prob=1.0, level=3) |
| | results_colored = transform_color(copy.deepcopy(self.results_mask)) |
| | check_result_same(results_colored, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Contrast', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_contrast = Contrast(prob=1.0, level=3) |
| | results_contrasted = transform_contrast( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_contrasted, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Sharpness', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_sharpness = Sharpness(prob=1.0, level=3) |
| | results_sharpness = transform_sharpness( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_sharpness, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Solarize', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_solarize = Solarize(prob=1.0, level=3) |
| | results_solarized = transform_solarize( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_solarized, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='SolarizeAdd', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_solarizeadd = SolarizeAdd(prob=1.0, level=3) |
| | results_solarizeadded = transform_solarizeadd( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_solarizeadded, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Posterize', prob=1.0, level=3), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_posterize = Posterize(prob=1.0, level=3) |
| | results_posterized = transform_posterize( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_posterized, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Equalize', prob=1.0), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_equalize = Equalize(prob=1.0) |
| | results_equalized = transform_equalize( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_equalized, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='AutoContrast', prob=1.0), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_autocontrast = AutoContrast(prob=1.0) |
| | results_autocontrast = transform_autocontrast( |
| | copy.deepcopy(self.results_mask)) |
| | check_result_same(results_autocontrast, results_auto, self.check_keys) |
| |
|
| | |
| | policies = [[ |
| | dict(type='Invert', prob=1.0), |
| | ]] |
| | transform_auto = AutoAugment(policies=policies) |
| | results_auto = transform_auto(copy.deepcopy(self.results_mask)) |
| | transform_invert = Invert(prob=1.0) |
| | results_inverted = transform_invert(copy.deepcopy(self.results_mask)) |
| | check_result_same(results_inverted, results_auto, self.check_keys) |
| |
|
| | |
| | transform_auto = AutoAugment() |
| | transform_auto(copy.deepcopy(self.results_mask)) |
| |
|
| | def test_repr(self): |
| | policies = [[ |
| | dict(type='Rotate', prob=1.0, level=10, reversal_prob=0.0), |
| | dict(type='Invert', prob=1.0), |
| | ]] |
| | transform = AutoAugment(policies=policies) |
| | self.assertEqual( |
| | repr(transform), ('AutoAugment(' |
| | 'policies=[[' |
| | "{'type': 'Rotate', 'prob': 1.0, " |
| | "'level': 10, 'reversal_prob': 0.0}, " |
| | "{'type': 'Invert', 'prob': 1.0}]], " |
| | 'prob=None)')) |
| |
|
| |
|
| | class TestRandAugment(unittest.TestCase): |
| |
|
| | def setUp(self): |
| | """Setup the model and optimizer which are used in every test method. |
| | |
| | TestCase calls functions in this order: setUp() -> testMethod() -> |
| | tearDown() -> cleanUp() |
| | """ |
| | self.check_keys = ('img', 'gt_bboxes', 'gt_bboxes_labels', 'gt_masks', |
| | 'gt_ignore_flags', 'gt_seg_map', |
| | 'homography_matrix') |
| | self.results_mask = construct_toy_data(poly2mask=True) |
| | self.img_fill_val = (104, 116, 124) |
| | self.seg_ignore_label = 255 |
| |
|
| | def test_randaugment(self): |
| | |
| | aug_space = [[ |
| | dict(type='Rotate', prob=1.0, level=10, reversal_prob=0.0) |
| | ]] |
| | transform_rand = RandAugment(aug_space=aug_space, aug_num=1) |
| | results_rand = transform_rand(copy.deepcopy(self.results_mask)) |
| | transform_rotate = Rotate(prob=1.0, level=10, reversal_prob=0.0) |
| | results_rotated = transform_rotate(copy.deepcopy(self.results_mask)) |
| | check_result_same(results_rotated, results_rand, self.check_keys) |
| |
|
| | |
| | transform_rand = RandAugment() |
| | transform_rand(copy.deepcopy(self.results_mask)) |
| |
|
| | def test_repr(self): |
| | aug_space = [ |
| | [dict(type='Rotate')], |
| | [dict(type='Invert')], |
| | ] |
| | transform = RandAugment(aug_space=aug_space) |
| | self.assertEqual( |
| | repr(transform), ('RandAugment(' |
| | 'aug_space=[' |
| | "[{'type': 'Rotate'}], " |
| | "[{'type': 'Invert'}]], " |
| | 'aug_num=2, ' |
| | 'prob=None)')) |
| |
|