Skip to content

Commit

Permalink
updating datumaro
Browse files Browse the repository at this point in the history
  • Loading branch information
Eldies committed Feb 12, 2025
1 parent db293b7 commit a98e1b0
Show file tree
Hide file tree
Showing 26 changed files with 48 additions and 45 deletions.
24 changes: 12 additions & 12 deletions cvat/apps/dataset_manager/bindings.py
Original file line number Diff line number Diff line change
Expand Up @@ -1499,7 +1499,7 @@ def get_media_for_frame(self, source_id: int, frame_index: int, **image_kwargs)
source = self._sources[source_id]

if source.is_video:
def video_frame_loader(_):
def video_frame_loader():
self._load_source(source_id, source)

# optimization for videos: use numpy arrays instead of bytes
Expand All @@ -1509,9 +1509,9 @@ def video_frame_loader(_):
out_type=FrameOutputType.NUMPY_ARRAY
).data

return dm.Image(data=video_frame_loader, **image_kwargs)
return dm.Image.from_numpy(data=video_frame_loader, **image_kwargs)
else:
def image_loader(_):
def image_loader():
self._load_source(source_id, source)

# for images use encoded data to avoid recoding
Expand All @@ -1520,7 +1520,7 @@ def image_loader(_):
out_type=FrameOutputType.BUFFER
).data.getvalue()

return dm.ByteImage(data=image_loader, **image_kwargs)
return dm.Image.from_bytes(data=image_loader, **image_kwargs)

def _load_source(self, source_id: int, source: MediaSource) -> None:
if self._current_source_id == source_id:
Expand Down Expand Up @@ -1558,13 +1558,13 @@ def get_media_for_frame(self, source_id: int, frame_id: int, **image_kwargs) ->
image = self._images_per_source[source_id][frame_id]

related_images = [
dm.Image(path=path)
dm.Image.from_file(path=path)
for rf in image.related_files.all()
for path in [osp.realpath(str(rf.path))]
if osp.isfile(path)
]

return dm.PointCloud(point_cloud_path, extra_images=related_images)
return dm.PointCloud.from_file(point_cloud_path, extra_images=related_images)

MEDIA_PROVIDERS_BY_DIMENSION: dict[DimensionType, MediaProvider] = {
DimensionType.DIM_3D: MediaProvider3D,
Expand Down Expand Up @@ -1688,18 +1688,18 @@ def __init__(

if not include_images:
dm_media_args["extra_images"] = [
dm.Image(path=osp.basename(image.path))
dm.Image.from_file(path=osp.basename(image.path))
for image in dm_media.extra_images
]
dm_media = dm.PointCloud(**dm_media_args)
dm_media = dm.PointCloud.from_file(**dm_media_args)
else:
dm_media_args['size'] = (frame_data.height, frame_data.width)
if include_images:
dm_media: dm.Image = self._media_provider.get_media_for_frame(
0, frame_data.idx, **dm_media_args
)
else:
dm_media = dm.Image(**dm_media_args)
dm_media = dm.Image.from_file(**dm_media_args)

dm_anno = self._read_cvat_anno(frame_data, instance_meta['labels'])

Expand Down Expand Up @@ -1791,18 +1791,18 @@ def __init__(

if not include_images:
dm_media_args["extra_images"] = [
dm.Image(path=osp.basename(image.path))
dm.Image.from_file(path=osp.basename(image.path))
for image in dm_media.extra_images
]
dm_media = dm.PointCloud(**dm_media_args)
dm_media = dm.PointCloud.from_file(**dm_media_args)
else:
dm_media_args['size'] = (frame_data.height, frame_data.width)
if include_images:
dm_media: dm.Image = self._media_provider.get_media_for_frame(
frame_data.task_id, frame_data.idx, **dm_media_args
)
else:
dm_media = dm.Image(**dm_media_args)
dm_media = dm.Image.from_file(**dm_media_args)

dm_anno = self._read_cvat_anno(frame_data, project_data.meta[project_data.META_FIELD]['labels'])

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/camvid.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
dataset.export(
temp_dir,
"camvid",
save_images=save_images,
save_media=save_images,
apply_colormap=True,
label_map={label: label_map[label][0] for label in label_map},
)
Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/cityscapes.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
dataset.export(
temp_dir,
"cityscapes",
save_images=save_images,
save_media=save_images,
apply_colormap=True,
label_map={label: info[0] for label, info in make_colormap(instance_data).items()},
)
Expand Down
5 changes: 3 additions & 2 deletions cvat/apps/dataset_manager/formats/coco.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from cvat.apps.dataset_manager.bindings import (
GetCVATDataExtractor,
NoMediaInAnnotationFileError,
ProjectData,
detect_dataset,
import_dm_annotations,
)
Expand All @@ -24,7 +25,7 @@
def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "coco_instances", save_images=save_images, merge_images=False)
dataset.export(temp_dir, "coco_instances", save_media=save_images, merge_images=False)

make_zip_archive(temp_dir, dst_file)

Expand Down Expand Up @@ -52,7 +53,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(
temp_dir, "coco_person_keypoints", save_images=save_images, merge_images=False
temp_dir, "coco_person_keypoints", save_media=save_images, merge_images=False
)

make_zip_archive(temp_dir, dst_file)
Expand Down
6 changes: 3 additions & 3 deletions cvat/apps/dataset_manager/formats/cvat.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def parse_image_dir(image_dir, subset):
items[(subset, name)] = DatasetItem(
id=name,
annotations=[],
media=Image(path=file),
media=Image.from_file(path=file),
subset=subset or DEFAULT_SUBSET_NAME,
)

Expand Down Expand Up @@ -617,7 +617,7 @@ def _load_items(self, parsed, image_items):
)
image_size = (item_desc.get("height"), item_desc.get("width"))
if all(image_size):
image = Image(path=image, size=tuple(map(int, image_size)))
image = Image.from_file(path=image, size=tuple(map(int, image_size)))
di = image_items.get(
(subset, osp.splitext(name)[0]), DatasetItem(id=name, annotations=[])
)
Expand Down Expand Up @@ -1341,7 +1341,7 @@ def load_anno(file_object, annotations):
DatasetItem(
id=osp.splitext(el.attrib["name"])[0],
attributes={"frame": el.attrib["id"]},
media=Image(path=el.attrib["name"]),
media=Image.from_file(path=el.attrib["name"]),
),
instance_data=annotations,
)
Expand Down
4 changes: 2 additions & 2 deletions cvat/apps/dataset_manager/formats/datumaro.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data=instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "datumaro", save_images=save_images)
dataset.export(temp_dir, "datumaro", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down Expand Up @@ -52,7 +52,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
instance_data=instance_data, include_images=save_images, dimension=DimensionType.DIM_3D
) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "datumaro", save_images=save_images)
dataset.export(temp_dir, "datumaro", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
6 changes: 3 additions & 3 deletions cvat/apps/dataset_manager/formats/icdar.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def _export_recognition(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.transform(LabelToCaption)
dataset.export(temp_dir, "icdar_word_recognition", save_images=save_images)
dataset.export(temp_dir, "icdar_word_recognition", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand All @@ -101,7 +101,7 @@ def _import(src_file, temp_dir, instance_data, load_data_callback=None, **kwargs
def _export_localization(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "icdar_text_localization", save_images=save_images)
dataset.export(temp_dir, "icdar_text_localization", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand All @@ -128,7 +128,7 @@ def _export_segmentation(dst_file, temp_dir, instance_data, save_images=False):
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)
dataset.export(temp_dir, "icdar_text_segmentation", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
6 changes: 4 additions & 2 deletions cvat/apps/dataset_manager/formats/imagenet.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from glob import glob

from datumaro.components.dataset import Dataset
from datumaro.plugins.transforms import Rename

from cvat.apps.dataset_manager.bindings import GetCVATDataExtractor, import_dm_annotations
from cvat.apps.dataset_manager.util import make_zip_archive
Expand All @@ -20,9 +21,9 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
if save_images:
dataset.export(temp_dir, "imagenet", save_images=save_images)
dataset.export(temp_dir, "imagenet", save_media=save_images)
else:
dataset.export(temp_dir, "imagenet_txt", save_images=save_images)
dataset.export(temp_dir, "imagenet_txt", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand All @@ -38,6 +39,7 @@ def _import(src_file, temp_dir, instance_data, load_data_callback=None, **kwargs
dataset = Dataset.import_from(temp_dir, "imagenet_txt", env=dm_env)
else:
dataset = Dataset.import_from(temp_dir, "imagenet", env=dm_env)
dataset = dataset.transform(Rename, regex="|([^:]+):(.*)|\\1/\\2|")
if load_data_callback is not None:
load_data_callback(dataset, instance_data)
import_dm_annotations(dataset, instance_data)
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/kitti.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
format="kitti",
label_map={k: v[0] for k, v in make_colormap(instance_data).items()},
apply_colormap=True,
save_images=save_images,
save_media=save_images,
)

make_zip_archive(temp_dir, dst_file)
Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/labelme.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "label_me", save_images=save_images)
dataset.export(temp_dir, "label_me", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/lfw.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,6 @@ def _import(src_file, temp_dir, instance_data, load_data_callback=None, **kwargs
def _exporter(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, format="lfw", save_images=save_images)
dataset.export(temp_dir, format="lfw", save_media=save_images)

make_zip_archive(temp_dir, dst_file)
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/market1501.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
dataset = Dataset.from_extractors(extractor, env=dm_env)

dataset.transform(LabelAttrToAttr, label="market-1501")
dataset.export(temp_dir, "market1501", save_images=save_images)
dataset.export(temp_dir, "market1501", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/mask.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
dataset.export(
temp_dir,
"voc_segmentation",
save_images=save_images,
save_media=save_images,
apply_colormap=True,
label_map=make_colormap(instance_data),
)
Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/mot.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = dm.Dataset.from_extractors(extractor, env=dm_env)

dataset.export(temp_dir, "mot_seq_gt", save_images=save_images)
dataset.export(temp_dir, "mot_seq_gt", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/mots.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
dataset.transform("boxes_to_masks")
dataset.transform("merge_instance_segments")

dataset.export(temp_dir, "mots_png", save_images=save_images)
dataset.export(temp_dir, "mots_png", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/openimages.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def _export(dst_file, temp_dir, task_data, save_images=False):
dataset.transform("polygons_to_masks")
dataset.transform("merge_instance_segments")

dataset.export(temp_dir, "open_images", save_images=save_images)
dataset.export(temp_dir, "open_images", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/pascal_voc.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)

dataset.export(temp_dir, "voc", save_images=save_images, label_map="source")
dataset.export(temp_dir, "voc", save_media=save_images, label_map="source")

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/pointcloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def _export_images(dst_file, temp_dir, task_data, save_images=False):
) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(
temp_dir, "sly_pointcloud", save_images=save_images, allow_undeclared_attrs=True
temp_dir, "sly_pointcloud", save_media=save_images, allow_undeclared_attrs=True
)

make_zip_archive(temp_dir, dst_file)
Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/velodynepoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def _export_images(dst_file, temp_dir, task_data, save_images=False):
) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.transform(RemoveTrackingInformation)
dataset.export(temp_dir, "kitti_raw", save_images=save_images, reindex=True)
dataset.export(temp_dir, "kitti_raw", save_media=save_images, reindex=True)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/vggface2.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "vgg_face2", save_images=save_images)
dataset.export(temp_dir, "vgg_face2", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/dataset_manager/formats/widerface.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
def _export(dst_file, temp_dir, instance_data, save_images=False):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, "wider_face", save_images=save_images)
dataset.export(temp_dir, "wider_face", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
4 changes: 2 additions & 2 deletions cvat/apps/dataset_manager/formats/yolo.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def _export_common(
):
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset.export(temp_dir, format_name, save_images=save_images, **kwargs)
dataset.export(temp_dir, format_name, save_media=save_images, **kwargs)

make_zip_archive(temp_dir, dst_file)

Expand Down Expand Up @@ -111,7 +111,7 @@ def _export_yolo_ultralytics_segmentation(dst_file, temp_dir, instance_data, *,
with GetCVATDataExtractor(instance_data, include_images=save_images) as extractor:
dataset = Dataset.from_extractors(extractor, env=dm_env)
dataset = dataset.transform("masks_to_polygons")
dataset.export(temp_dir, "yolo_ultralytics_segmentation", save_images=save_images)
dataset.export(temp_dir, "yolo_ultralytics_segmentation", save_media=save_images)

make_zip_archive(temp_dir, dst_file)

Expand Down
2 changes: 1 addition & 1 deletion cvat/apps/lambda_manager/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -836,7 +836,7 @@ def parse_anno(anno, labels):
elif anno["type"] == "mask":
[xtl, ytl, xbr, ybr] = shape["points"][-4:]
cut_points = shape["points"][:-4]
rle = mask_tools.mask_to_rle(np.array(cut_points))["counts"].tolist()
rle = mask_tools.mask_to_rle_py(np.array(cut_points))["counts"].tolist()
rle.extend([xtl, ytl, xbr, ybr])
shape["points"] = rle

Expand Down
2 changes: 1 addition & 1 deletion cvat/requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ azure-storage-blob==12.13.0
boto3==1.17.61
clickhouse-connect==0.6.8
coreapi==2.3.3
datumaro @ git+https://github.com/cvat-ai/datumaro.git@e61ebe4c5cfee8a741fbf89f966535996be6dcff
datumaro @ git+https://github.com/cvat-ai/datumaro.git@58c6ecbdd9f630d5b0b344b2bb98e66c209eaeb2
dj-pagination==2.5.0
# Despite direct indication allauth in requirements we should keep 'with_social' for dj-rest-auth
# to avoid possible further versions conflicts (we use registration functionality)
Expand Down
2 changes: 1 addition & 1 deletion cvat/requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ cryptography==44.0.0
# pyjwt
cycler==0.12.1
# via matplotlib
datumaro @ git+https://github.com/cvat-ai/datumaro.git@e61ebe4c5cfee8a741fbf89f966535996be6dcff
datumaro @ git+https://github.com/cvat-ai/datumaro.git@58c6ecbdd9f630d5b0b344b2bb98e66c209eaeb2
# via -r cvat/requirements/base.in
defusedxml==0.7.1
# via
Expand Down
Loading

0 comments on commit a98e1b0

Please sign in to comment.