def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) envt = dm_env.transforms extractor = extractor.transform(envt.get('id_from_image_name')) extractor = Dataset.from_extractors(extractor) # apply lazy transforms with TemporaryDirectory() as temp_dir: converter = dm_env.make_converter('label_me', save_images=save_images) converter(extractor, save_dir=temp_dir) make_zip_archive(temp_dir, dst_file)
def test_can_skip_outside(self): images = self._generate_task_images(3) task = self._generate_task(images) self._generate_annotations(task) task_ann = TaskAnnotation(task["id"]) task_ann.init_from_db() task_data = TaskData(task_ann.ir_data, Task.objects.get(pk=task["id"])) extractor = CvatTaskDataExtractor(task_data, include_outside=False) dm_dataset = datumaro.components.project.Dataset.from_extractors(extractor) self.assertEqual(4, len(dm_dataset.get("image_1").annotations)) extractor = CvatTaskDataExtractor(task_data, include_outside=True) dm_dataset = datumaro.components.project.Dataset.from_extractors(extractor) self.assertEqual(5, len(dm_dataset.get("image_1").annotations))
def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) envt = dm_env.transforms extractor = extractor.transform(envt.get('polygons_to_masks')) extractor = extractor.transform(envt.get('boxes_to_masks')) extractor = extractor.transform(envt.get('merge_instance_segments')) extractor = Dataset.from_extractors(extractor) # apply lazy transforms with TemporaryDirectory() as temp_dir: converter = dm_env.make_converter('voc_segmentation', apply_colormap=True, label_map=make_colormap(task_data), save_images=save_images) converter(extractor, save_dir=temp_dir) make_zip_archive(temp_dir, dst_file)
def _export_recognition(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) dataset.transform(LabelToCaption) with TemporaryDirectory() as temp_dir: dataset.export(temp_dir, 'icdar_word_recognition', save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) with TemporaryDirectory() as temp_dir: dataset.export(temp_dir, 'wider_face', save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) extractor = Dataset.from_extractors(extractor) # apply lazy transforms with TemporaryDirectory() as temp_dir: dm_env.converters.get('mot_seq_gt').convert(extractor, save_dir=temp_dir, save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) with TemporaryDirectory() as temp_dir: dataset.transform(LabelAttrToAttr, 'market-1501') dataset.export(temp_dir, 'market1501', save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) envt = dm_env.transforms extractor = extractor.transform(envt.get('polygons_to_masks')) extractor = extractor.transform(envt.get('boxes_to_masks')) extractor = extractor.transform(envt.get('merge_instance_segments')) extractor = Dataset.from_extractors(extractor) # apply lazy transforms label_map = make_colormap(task_data) with TemporaryDirectory() as temp_dir: dm_env.converters.get('camvid').convert( extractor, save_dir=temp_dir, save_images=save_images, apply_colormap=True, label_map={label: label_map[label][0] for label in label_map}) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) extractor = Dataset.from_extractors(extractor) # apply lazy transforms with TemporaryDirectory() as temp_dir: converter = dm_env.make_converter('tf_detection_api', save_images=save_images) converter(extractor, save_dir=temp_dir) make_zip_archive(temp_dir, dst_file)
def _export_segmentation(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) with TemporaryDirectory() as temp_dir: dataset.transform('polygons_to_masks') dataset.transform('boxes_to_masks') dataset.transform('merge_instance_segments') dataset.export(temp_dir, 'icdar_text_segmentation', save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) with TemporaryDirectory() as temp_dir: dataset.export(temp_dir, 'coco_instances', save_images=save_images, merge_images=True) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) dataset.transform(KeepTracks) # can only export tracks dataset.transform('polygons_to_masks') dataset.transform('boxes_to_masks') dataset.transform('merge_instance_segments') with TemporaryDirectory() as temp_dir: dataset.export(temp_dir, 'mots_png', save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(dst_file, task_data, save_images=False): dataset = Dataset.from_extractors(CvatTaskDataExtractor( task_data, include_images=save_images), env=dm_env) dataset.transform('polygons_to_masks') dataset.transform('boxes_to_masks') dataset.transform('merge_instance_segments') with TemporaryDirectory() as temp_dir: dataset.export(temp_dir, 'voc_segmentation', save_images=save_images, apply_colormap=True, label_map=make_colormap(task_data)) make_zip_archive(temp_dir, dst_file)
def _export(self, task_data, save_dir, save_images=False): dataset = CvatTaskDataExtractor(task_data, include_images=save_images) converter = dm_env.make_converter('datumaro_project', save_images=save_images, config={ 'project_name': task_data.db_task.name, } ) converter(dataset, save_dir=save_dir) project = Project.load(save_dir) target_dir = project.config.project_dir os.makedirs(target_dir, exist_ok=True) shutil.copyfile( osp.join(self._TEMPLATES_DIR, 'README.md'), osp.join(target_dir, 'README.md')) if not save_images: # add remote links to images source_name = 'task_%s_images' % task_data.db_task.id project.add_source(source_name, { 'format': self._REMOTE_IMAGES_EXTRACTOR, }) self._save_image_info( osp.join(save_dir, project.local_source_dir(source_name)), task_data) project.save() templates_dir = osp.join(self._TEMPLATES_DIR, 'plugins') target_dir = osp.join(project.config.project_dir, project.config.env_dir, project.config.plugins_dir) os.makedirs(target_dir, exist_ok=True) shutil.copyfile( osp.join(templates_dir, self._REMOTE_IMAGES_EXTRACTOR + '.py'), osp.join(target_dir, self._REMOTE_IMAGES_EXTRACTOR + '.py')) # Make Datumaro and CVAT CLI modules available to the user shutil.copytree(DATUMARO_PATH, osp.join(save_dir, 'datumaro'), ignore=lambda src, names: ['__pycache__'] + [ n for n in names if sum([int(n.endswith(ext)) for ext in ['.pyx', '.pyo', '.pyd', '.pyc']]) ]) cvat_utils_dst_dir = osp.join(save_dir, 'cvat', 'utils') os.makedirs(cvat_utils_dst_dir) shutil.copytree(osp.join(BASE_DIR, 'utils', 'cli'), osp.join(cvat_utils_dst_dir, 'cli'))
def _export(dst_file, task_data, save_images=False): extractor = CvatTaskDataExtractor(task_data, include_images=save_images) envt = dm_env.transforms extractor = extractor.transform(KeepTracks) # can only export tracks extractor = extractor.transform(envt.get('polygons_to_masks')) extractor = extractor.transform(envt.get('boxes_to_masks')) extractor = extractor.transform(envt.get('merge_instance_segments')) extractor = Dataset.from_extractors(extractor) # apply lazy transforms with TemporaryDirectory() as temp_dir: dm_env.converters.get('mots_png').convert(extractor, save_dir=temp_dir, save_images=save_images) make_zip_archive(temp_dir, dst_file)
def _export(self, task_data, save_dir, save_images=False): dataset = CvatTaskDataExtractor(task_data, include_images=save_images) dm_env.converters.get('datumaro_project').convert( dataset, save_dir=save_dir, save_images=save_images, project_config={ 'project_name': task_data.db_task.name, }) project = Project.load(save_dir) target_dir = project.config.project_dir os.makedirs(target_dir, exist_ok=True) shutil.copyfile(osp.join(self._TEMPLATES_DIR, 'README.md'), osp.join(target_dir, 'README.md')) if not save_images: # add remote links to images source_name = 'task_%s_images' % task_data.db_task.id project.add_source(source_name, { 'format': self._REMOTE_IMAGES_EXTRACTOR, }) self._save_image_info( osp.join(save_dir, project.local_source_dir(source_name)), task_data) project.save() templates_dir = osp.join(self._TEMPLATES_DIR, 'plugins') target_dir = osp.join(project.config.project_dir, project.config.env_dir, project.config.plugins_dir) os.makedirs(target_dir, exist_ok=True) shutil.copyfile( osp.join(templates_dir, self._REMOTE_IMAGES_EXTRACTOR + '.py'), osp.join(target_dir, self._REMOTE_IMAGES_EXTRACTOR + '.py')) # Make CVAT CLI module available to the user cvat_utils_dst_dir = osp.join(save_dir, 'cvat', 'utils') os.makedirs(cvat_utils_dst_dir) shutil.copytree(osp.join(BASE_DIR, 'utils', 'cli'), osp.join(cvat_utils_dst_dir, 'cli'))