def _init_files_and_annotations(self, *args, **kwargs): """Create files and annotations.""" if self.subset == "train": subset = "train_validation" elif self.subset == "validation" or self.subset == "test": subset = "test" if subset == "train_validation": pascalvoc_2007 = Pascalvoc2007(subset=subset, skip_difficult=self.skip_difficult, *args, **kwargs) pascalvoc_2012 = Pascalvoc2012(subset=subset, skip_difficult=self.skip_difficult, *args, **kwargs) self.files = pascalvoc_2007.files + pascalvoc_2012.files self.annotations = pascalvoc_2007.annotations + pascalvoc_2012.annotations elif subset == "test": pascalvoc_2007 = Pascalvoc2007(subset=subset, skip_difficult=self.skip_difficult, *args, **kwargs) self.files = pascalvoc_2007.files self.annotations = pascalvoc_2007.annotations
def test_pascalvoc_2007(): dataset = Pascalvoc2007() assert len(dataset.classes) == 20 assert dataset.available_subsets == [ 'train', 'validation', 'test', 'train_validation' ] assert dataset._files_and_annotations() == ([ 'unit/fixtures/datasets/PASCALVOC_2007/VOCdevkit/VOC2007/JPEGImages/000085.jpg' ], [[[5, 103, 212, 174, 8], [21, 69, 232, 257, 14]]])
def test_hue(): batch_size = 3 image_size = [256, 512] dataset = Pascalvoc2007( batch_size=batch_size, pre_processor=ResizeWithGtBoxes(image_size), augmentor=Hue((-10, 10)), ) dataset = DatasetIterator(dataset) for _ in range(5): images, labels = dataset.feed() _show_images_with_boxes(images, labels)
def test_filp_top_bottom(): batch_size = 3 image_size = [256, 512] dataset = Pascalvoc2007( batch_size=batch_size, pre_processor=ResizeWithGtBoxes(image_size), augmentor=FlipTopBottom(), ) dataset = DatasetIterator(dataset) for _ in range(5): images, labels = dataset.feed() _show_images_with_boxes(images, labels)
def test_ssd_random_crop(): batch_size = 3 image_size = [256, 512] dataset = Pascalvoc2007( batch_size=batch_size, pre_processor=ResizeWithGtBoxes(image_size), augmentor=SSDRandomCrop(), ) dataset = DatasetIterator(dataset) for _ in range(5): images, labels = dataset.feed() _show_images_with_boxes(images, labels) assert np.all(labels[:, :, 2] <= 512) assert np.all(labels[:, :, 3] <= 256)
def test_sequence(): batch_size = 3 image_size = [256, 512] augmentor = Sequence([ FlipLeftRight(), FlipTopBottom(), SSDRandomCrop(), ]) dataset = Pascalvoc2007( batch_size=batch_size, pre_processor=ResizeWithGtBoxes(image_size), augmentor=augmentor, ) dataset = DatasetIterator(dataset) for _ in range(5): images, labels = dataset.feed() _show_images_with_boxes(images, labels)