示例#1
0
    def test_can_save_masks(self):
        class TestExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1,
                                subset='train',
                                image=np.ones((4, 5, 3)),
                                annotations=[
                                    Mask(image=np.array([
                                        [1, 0, 0, 1],
                                        [0, 1, 1, 0],
                                        [0, 1, 1, 0],
                                        [1, 0, 0, 1],
                                    ]),
                                         label=1),
                                ],
                                attributes={'source_id': ''}),
                ])

            def categories(self):
                label_cat = LabelCategories()
                for label in range(10):
                    label_cat.add('label_' + str(label))
                return {
                    AnnotationType.label: label_cat,
                }

        with TestDir() as test_dir:
            self._test_save_and_load(TestExtractor(),
                                     TfDetectionApiConverter(save_masks=True),
                                     test_dir)
示例#2
0
    def test_can_save_bboxes(self):
        class TestExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1,
                                subset='train',
                                image=np.ones((16, 16, 3)),
                                annotations=[
                                    Bbox(0, 4, 4, 8, label=2),
                                    Bbox(0, 4, 4, 4, label=3),
                                    Bbox(2, 4, 4, 4),
                                ],
                                attributes={'source_id': ''}),
                ])

            def categories(self):
                label_cat = LabelCategories()
                for label in range(10):
                    label_cat.add('label_' + str(label))
                return {
                    AnnotationType.label: label_cat,
                }

        with TestDir() as test_dir:
            self._test_save_and_load(TestExtractor(),
                                     TfDetectionApiConverter(save_images=True),
                                     test_dir)
示例#3
0
    def test_can_save_dataset_with_no_subsets(self):
        class TestExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1,
                                image=np.ones((16, 16, 3)),
                                annotations=[
                                    Bbox(2, 1, 4, 4, label=2),
                                    Bbox(4, 2, 8, 4, label=3),
                                ]),
                    DatasetItem(id=2,
                                image=np.ones((8, 8, 3)) * 2,
                                annotations=[
                                    Bbox(4, 4, 4, 4, label=3),
                                ]),
                    DatasetItem(
                        id=3,
                        image=np.ones((8, 4, 3)) * 3,
                    ),
                ])

            def categories(self):
                label_cat = LabelCategories()
                for label in range(10):
                    label_cat.add('label_' + str(label))
                return {
                    AnnotationType.label: label_cat,
                }

        with TestDir() as test_dir:
            self._test_save_and_load(TestExtractor(),
                                     TfDetectionApiConverter(save_images=True),
                                     test_dir)
示例#4
0
    def test_can_save_dataset_with_image_info(self):
        class TestExtractor(Extractor):
            def __iter__(self):
                return iter([
                    DatasetItem(id=1, image=Image(path='1/q.e',
                                                  size=(10, 15))),
                ])

            def categories(self):
                return {AnnotationType.label: LabelCategories()}

        with TestDir() as test_dir:
            self._test_save_and_load(TestExtractor(),
                                     TfDetectionApiConverter(), test_dir)
示例#5
0
 def generate_dummy_tfrecord(path):
     TfDetectionApiConverter()(TestExtractor(), save_dir=path)