diff --git a/cvat/apps/dataset_manager/bindings.py b/cvat/apps/dataset_manager/bindings.py index a48cb28c..a03adb21 100644 --- a/cvat/apps/dataset_manager/bindings.py +++ b/cvat/apps/dataset_manager/bindings.py @@ -14,6 +14,7 @@ from cvat.apps.engine.frame_provider import FrameProvider from cvat.apps.engine.models import AttributeType, ShapeType from datumaro.util import cast from datumaro.util.image import ByteImage, Image +from datumaro.components.extractor import DatasetItem from .annotation import AnnotationManager, TrackManager @@ -611,7 +612,7 @@ def match_dm_item(item, task_data, root_hint=None): if frame_number is None and item.has_image: frame_number = task_data.match_frame(item.id + item.image.ext, root_hint) if frame_number is None: - frame_number = task_data.match_frame(item.id + '.', root_hint) + frame_number = task_data.match_frame(item.id, root_hint) if frame_number is None: frame_number = cast(item.attributes.get('frame', item.id), int) if frame_number is None and is_video: @@ -651,7 +652,7 @@ def import_dm_annotations(dm_dataset, task_data): for item in dm_dataset: frame_number = task_data.abs_frame_id( - match_dm_item(item, task_data, root_hint=root_hint)) + match_dm_item(DatasetItem(id=item.id + '.'), task_data, root_hint=root_hint)) # do not store one-item groups group_map = {0: 0} diff --git a/cvat/apps/dataset_manager/formats/mots.py b/cvat/apps/dataset_manager/formats/mots.py index 22b9dd08..a4a14e44 100644 --- a/cvat/apps/dataset_manager/formats/mots.py +++ b/cvat/apps/dataset_manager/formats/mots.py @@ -5,7 +5,7 @@ from tempfile import TemporaryDirectory from datumaro.components.dataset import Dataset -from datumaro.components.extractor import AnnotationType, Transform +from datumaro.components.extractor import AnnotationType, Transform, DatasetItem from pyunpack import Archive from cvat.apps.dataset_manager.bindings import (CvatTaskDataExtractor, @@ -48,7 +48,7 @@ def _import(src_file, task_data): for item in dataset: frame_number = task_data.abs_frame_id( - match_dm_item(item, task_data, root_hint=root_hint)) + match_dm_item(DatasetItem(id=item.id + '.'), task_data, root_hint=root_hint)) for ann in item.annotations: if ann.type != AnnotationType.polygon: diff --git a/cvat/apps/dataset_manager/formats/yolo.py b/cvat/apps/dataset_manager/formats/yolo.py index 0df6f5fe..c0994774 100644 --- a/cvat/apps/dataset_manager/formats/yolo.py +++ b/cvat/apps/dataset_manager/formats/yolo.py @@ -40,7 +40,7 @@ def _import(src_file, task_data): for frame in frames: frame_info = None try: - frame_id = match_dm_item(DatasetItem(id=frame), task_data, + frame_id = match_dm_item(DatasetItem(id=frame + '.'), task_data, root_hint=root_hint) frame_info = task_data.frame_info[frame_id] except Exception: # nosec