def load(file_object, annotations): from pyunpack import Archive from tempfile import TemporaryDirectory from datumaro.plugins.labelme_format import LabelMeImporter from datumaro.components.project import Environment from cvat.apps.dataset_manager.bindings import import_dm_annotations archive_file = file_object if isinstance(file_object, str) else getattr( file_object, "name") with TemporaryDirectory() as tmp_dir: Archive(archive_file).extractall(tmp_dir) dm_dataset = LabelMeImporter()(tmp_dir).make_dataset() masks_to_polygons = Environment().transforms.get('masks_to_polygons') dm_dataset = dm_dataset.transform(masks_to_polygons) import_dm_annotations(dm_dataset, annotations)
def _test_save_and_load(self, source_dataset, converter, test_dir, target_dataset=None, importer_args=None): converter(source_dataset, test_dir) if importer_args is None: importer_args = {} parsed_dataset = LabelMeImporter()(test_dir, **importer_args) \ .make_dataset() if target_dataset is None: target_dataset = source_dataset compare_datasets(self, expected=target_dataset, actual=parsed_dataset)
def test_can_detect(self): self.assertTrue(LabelMeImporter.detect(DUMMY_DATASET_DIR))
def test_can_import(self): parsed = LabelMeImporter()(DUMMY_DATASET_DIR).make_dataset() self.assertEqual(1, len(parsed))