diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e365b284f..8c75dcfdd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,18 +6,33 @@ History All release highlights of this project will be documented in this file. +4.4.13 - June 04, 2023 +_______________________ + +**Updated** + + - ``SAClient.download_annotations()`` Replaced `___objects.json` and `___pixel.json` postfixes to `.json`. + - ``SAClient.set_approval_statuses()`` Added Document project support. + - ``SAClient.convert_project_type()`` Added required argument `convert_to`. + - ``SAClient.import_annotation()`` Replaced `___objects.json` and `___pixel.json` postfixes to `.json`. + - ``SAClient.download_export()`` Replaced `___objects.json` and `___pixel.json` postfixes to `.json`. + +**Removed** + + - ``SAClient.convert_json_version()`` method. + 4.4.12 - April 23, 2023 -______________________ +_______________________ **Updated** - ``SAClient.get_annotations_per_frame()`` Added interpolation of polygonal and polyline annotations. - + **Fixed** - ``SAClient.add_contributors_to_project()`` method. - ``SAClient.run_prediction()`` method. - + **Removed** - ``SAClient.create_project_from_metadata()`` method. diff --git a/README.rst b/README.rst index 675982ff3..efab0af2f 100644 --- a/README.rst +++ b/README.rst @@ -18,7 +18,7 @@ Welcome to the SuperAnnotate Python Software Development Kit (SDK), which enable Resources --------------- -- API Reference and User Guide available on `Read the Docs `__ +- API Reference and User Guide available on `Read the Docs `__ - `Platform documentation `__ @@ -33,8 +33,18 @@ Authentication # by token sa_client = SAClient(token='') # by config file - # default path is ~/.superannotate/config.json - sa_client = SAClient(config_path='~/.superannotate/dev_config.json') + # default path is ~/.superannotate/config.ini + sa_client = SAClient(config_path='~/.superannotate/dev_config.ini') + + +config.ini example +--------------- +.. code-block:: python + + [DEFAULT] + SA_TOKEN = + LOGGING_LEVEL = INFO + Using superannotate ------------------- diff --git a/docs/source/api_reference/helpers.rst b/docs/source/api_reference/helpers.rst index 984fc89ba..1c3612f62 100644 --- a/docs/source/api_reference/helpers.rst +++ b/docs/source/api_reference/helpers.rst @@ -13,7 +13,6 @@ _________________________________________________________________ .. autofunction:: superannotate.import_annotation .. autofunction:: superannotate.export_annotation .. autofunction:: superannotate.convert_project_type -.. autofunction:: superannotate.convert_json_version ---------- diff --git a/docs/source/cli_client.rst b/docs/source/cli_client.rst index 09839105e..704ed1ec0 100644 --- a/docs/source/cli_client.rst +++ b/docs/source/cli_client.rst @@ -33,20 +33,6 @@ To initialize CLI (and SDK) with team token: ---------- -.. _ref_create_server: - -Creating a server -~~~~~~~~~~~~~~~~~~ - -This will create a directory by the given name in your current or provided directory: - -.. code-block:: bash - - superannotatecli create-server --name --path - ----------- - - .. _ref_create_project: Creating a project diff --git a/docs/source/index.rst b/docs/source/index.rst index c89ca3a6a..5fdf55b66 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,7 +15,6 @@ User guide API Reference CLI Reference - SA Server History LICENSE.rst diff --git a/docs/source/sa_server.rst b/docs/source/sa_server.rst deleted file mode 100644 index 0b578ffe8..000000000 --- a/docs/source/sa_server.rst +++ /dev/null @@ -1,118 +0,0 @@ -SAServer Reference -================== - - -The SAServer provides interface to create web API and run in development or production servers. - -This will create a directory by the given name in your current or provided directory: - -.. code-block:: bash - - superannotatecli create-server --name --path - - -Usage -________________________ - -SuperAnnotate Python SDK allows access to the platform without web browser: - -.. code-block:: python - - import random - from superannotate import SAClient - from superannotate import SAServer - - - app = SAServer() - sa_client = SAClient() - QA_EMAILS = [ - 'qa1@superannotate.com', 'qa2@superannotate.com', - 'qa3@superannotate.com', 'qa4@superannotate.com' - ] - - - @app.route("item_completed", methods=["POST"]) - def index(request): - """ - Listening webhooks on items completed events form Superannotate automation - and is randomly assigned to qa - """ - project_id, folder_id = request.data['project_id'], request.data['folder_id'] - project = sa_client.get_project_by_id(project_id) - folder = sa_client.get_folder_by_id(project_id=project_id, folder_id=folder_id) - sa_client.assign_items( - f"{project['name']}/{folder['name']}", - items=[request.data['name']], - user=random.choice(QA_EMAILS) - ) - - - if __name__ == '__main__': - app.run(host='0.0.0.0', port=5002) - -Interface -________________________ - -.. automethod:: superannotate.SAServer.route -.. automethod:: superannotate.SAServer.add_url_rule -.. automethod:: superannotate.SAServer.run - - -uWSGI -________________________ - -`uWSGI`_ is a fast, compiled server suite with extensive configuration -and capabilities beyond a basic server. - -* It can be very performant due to being a compiled program. -* It is complex to configure beyond the basic application, and has so - many options that it can be difficult for beginners to understand. -* It does not support Windows (but does run on WSL). -* It requires a compiler to install in some cases. - -This page outlines the basics of running uWSGI. Be sure to read its -documentation to understand what features are available. - -.. _uWSGI: https://uwsgi-docs.readthedocs.io/en/latest/ - -uWSGI has multiple ways to install it. The most straightforward is to -install the ``pyuwsgi`` package, which provides precompiled wheels for -common platforms. However, it does not provide SSL support, which can be -provided with a reverse proxy instead. - -Install ``pyuwsgi``. - -.. code-block:: text - - $ pip install pyuwsgi - -If you have a compiler available, you can install the ``uwsgi`` package -instead. Or install the ``pyuwsgi`` package from sdist instead of wheel. -Either method will include SSL support. - -.. code-block:: text - - $ pip install uwsgi - - # or - $ pip install --no-binary pyuwsgi pyuwsgi - - -Running -________________________ - -The most basic way to run uWSGI is to tell it to start an HTTP server -and import your application. - -.. code-block:: text - - $ uwsgi --http 127.0.0.1:8000 --master -p 4 -w wsgi:app - - *** Starting uWSGI 2.0.20 (64bit) on [x] *** - *** Operational MODE: preforking *** - spawned uWSGI master process (pid: x) - spawned uWSGI worker 1 (pid: x, cores: 1) - spawned uWSGI worker 2 (pid: x, cores: 1) - spawned uWSGI worker 3 (pid: x, cores: 1) - spawned uWSGI worker 4 (pid: x, cores: 1) - spawned uWSGI http 1 (pid: x) diff --git a/requirements.txt b/requirements.txt index 5723ff2a0..935007568 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,24 +1,16 @@ -pydicom>=2.0.0 -boto3>=1.14.53 -requests==2.28.2 -requests-toolbelt>=0.9.1 -aiohttp>=3.8.1 +pydantic~=1.10 +aiohttp~=3.8 +boto3~=1.26 +opencv-python~=4.7 +packaging~=23.1 +plotly~=5.14 +email-validator~=2.0 +pandas~=1.3 +ffmpeg-python~=0.2 +pillow~=9.5 +aiofiles==23.1.0 +requests==2.30.0 tqdm==4.64.0 -pillow==9.4.0 -matplotlib>=3.3.1 -xmltodict==0.12.0 -opencv-python>=4.4.0.42 -wheel>=0.40.0 -packaging>=20.4 -plotly>=4.1.0 -ffmpeg-python>=0.2.0 fire==0.4.0 mixpanel==4.8.3 -pydantic>=1.10.7 -setuptools>=57.4.0 -email-validator>=1.0.3 jsonschema==3.2.0 -pandas>=1.1.4 -aiofiles==0.8.0 -Werkzeug==2.2.3 -Jinja2==3.1.2 diff --git a/requirements_extra.txt b/requirements_extra.txt index 5fa8c52da..7baa70b02 100644 --- a/requirements_extra.txt +++ b/requirements_extra.txt @@ -1,13 +1,15 @@ -Sphinx==6.1.3 -Jinja2==3.1.2 -tox==4.4.5 +setuptools~=67.7 +wheel~=0.40 +Sphinx==6.2.1 +tox==4.5.1 sphinx_rtd_theme==1.2.0 -furo==2022.12.7 -jaraco.tidelift==1.5.0 +furo==2023.3.27 +jaraco.tidelift==1.5.1 sphinx-notfound-page==0.8.3 -sphinx_inline_tabs==2022.1.2b11 -pytest==7.2.1 -pytest-xdist==3.2.0 +sphinx_inline_tabs==2023.4.21 +pytest==7.3.1 +pytest-xdist==3.2.1 pytest-parallel==0.1.1 pytest-cov==4.0.0 -pytest-rerunfailures==10.2 \ No newline at end of file +pytest-rerunfailures==11.1.2 +jsoncomparison==1.1.0 \ No newline at end of file diff --git a/src/superannotate/__init__.py b/src/superannotate/__init__.py index 5adbc8f21..fe478dd71 100644 --- a/src/superannotate/__init__.py +++ b/src/superannotate/__init__.py @@ -1,26 +1,20 @@ import logging import os import sys -import typing - -__version__ = "4.4.12" +__version__ = "4.4.13dev5" sys.path.append(os.path.split(os.path.realpath(__file__))[0]) import logging.config # noqa import requests # noqa from packaging.version import parse # noqa -from superannotate.lib.app.input_converters import convert_json_version # noqa from superannotate.lib.app.input_converters import convert_project_type # noqa from superannotate.lib.app.exceptions import AppException # noqa -from superannotate.lib.app.input_converters import convert_json_version # noqa from superannotate.lib.app.input_converters import convert_project_type # noqa from superannotate.lib.app.input_converters import export_annotation # noqa from superannotate.lib.app.input_converters import import_annotation # noqa from superannotate.lib.app.interface.sdk_interface import SAClient # noqa -from superannotate.lib.app.server import SAServer # noqa -from superannotate.lib.app.server.utils import setup_app # noqa from superannotate.lib.core import PACKAGE_VERSION_INFO_MESSAGE # noqa from superannotate.lib.core import PACKAGE_VERSION_MAJOR_UPGRADE # noqa from superannotate.lib.core import PACKAGE_VERSION_UPGRADE # noqa @@ -29,22 +23,13 @@ SESSIONS = {} -def create_app(apps: typing.List[str] = None) -> SAServer: - setup_app(apps) - server = SAServer() - return server - - __all__ = [ "__version__", "SAClient", - "SAServer", - "create_app", # Utils "enums", "AppException", # converters - "convert_json_version", "import_annotation", "export_annotation", "convert_project_type", diff --git a/src/superannotate/lib/app/input_converters/__init__.py b/src/superannotate/lib/app/input_converters/__init__.py index 1acd1e490..617a5632d 100644 --- a/src/superannotate/lib/app/input_converters/__init__.py +++ b/src/superannotate/lib/app/input_converters/__init__.py @@ -1,11 +1,9 @@ -from .conversion import convert_json_version from .conversion import convert_project_type from .conversion import export_annotation from .conversion import import_annotation __all__ = [ - "convert_json_version", "convert_project_type", "export_annotation", "import_annotation", diff --git a/src/superannotate/lib/app/input_converters/conversion.py b/src/superannotate/lib/app/input_converters/conversion.py index 812714089..a0073d388 100644 --- a/src/superannotate/lib/app/input_converters/conversion.py +++ b/src/superannotate/lib/app/input_converters/conversion.py @@ -1,20 +1,23 @@ """ Main module for input converters """ +import os +import shutil +import tempfile from argparse import Namespace from pathlib import Path +from typing import Union from lib.app.exceptions import AppException from lib.app.interface.base_interface import Tracker -from lib.core import DEPRICATED_DOCUMENT_VIDEO_MESSAGE from lib.core import LIMITED_FUNCTIONS from lib.core.enums import ProjectType +from typing_extensions import Literal from .export_from_sa_conversions import export_from_sa from .import_to_sa_conversions import import_to_sa -from .sa_conversion import degrade_json from .sa_conversion import sa_convert_project_type -from .sa_conversion import upgrade_json + ALLOWED_TASK_TYPES = [ "panoptic_segmentation", @@ -135,6 +138,16 @@ def _passes_converter_sanity(args, direction): ) +def change_file_extensions(directory, old_extension, new_extension): + for filename in os.listdir(directory): + file_path = os.path.join(directory, filename) + if os.path.isfile(file_path) and filename.endswith(old_extension): + if file_path.endswith(new_extension): + continue + new_file_path = os.path.splitext(file_path)[0] + new_extension + os.rename(file_path, new_file_path) + + @Tracker def export_annotation( input_dir, @@ -208,19 +221,28 @@ def export_annotation( ), ] _passes_value_sanity(values_info) - - args = Namespace( - input_dir=input_dir, - output_dir=output_dir, - dataset_format=dataset_format, - dataset_name=dataset_name, - project_type=project_type, - task=task, - ) - - _passes_converter_sanity(args, "export") - - export_from_sa(args) + if project_type == "Vector": + extension = "___objects.json" + elif project_type == "Pixel": + extension = "___pixel.json" + else: + extension = ".json" + with tempfile.TemporaryDirectory() as tmp_dir: + args = Namespace( + input_dir=Path(tmp_dir), + output_dir=output_dir, + dataset_format=dataset_format, + dataset_name=dataset_name, + project_type=project_type, + task=task, + ) + shutil.copytree(input_dir, tmp_dir, dirs_exist_ok=True) + for _path in os.listdir(tmp_dir): + if os.path.isdir(_path) and not _path.endswith("classes"): + change_file_extensions(_path, ".json", extension) + change_file_extensions(tmp_dir, ".json", extension) + _passes_converter_sanity(args, "export") + export_from_sa(args) @Tracker @@ -408,63 +430,26 @@ def import_annotation( @Tracker -def convert_project_type(input_dir, output_dir): +def convert_project_type( + input_dir: Union[str, Path], + output_dir: Union[str, Path], + convert_to: Literal["Vector", "Pixel"], +): """Converts SuperAnnotate 'Vector' project type to 'Pixel' or reverse. :param input_dir: Path to the dataset folder that you want to convert. :type input_dir: Pathlike(str or Path) :param output_dir: Path to the folder where you want to have converted files. :type output_dir: Pathlike(str or Path) - + :param convert_to: the project type to which the current project should be converted. + :type convert_to: str """ params_info = [ (input_dir, "input_dir", (str, Path)), (output_dir, "output_dir", (str, Path)), ] _passes_type_sanity(params_info) - json_paths = list(Path(str(input_dir)).glob("*.json")) - if ( - json_paths - and "___pixel.json" not in json_paths[0].name - and "___objects.json" not in json_paths[0].name - ): - raise AppException(DEPRICATED_DOCUMENT_VIDEO_MESSAGE) input_dir, output_dir = _change_type(input_dir, output_dir) - sa_convert_project_type(input_dir, output_dir) - - -@Tracker -def convert_json_version(input_dir, output_dir, version=2): - """ - Converts SuperAnnotate JSON versions. Newest JSON version is 2. - - :param input_dir: Path to the dataset folder that you want to convert. - :type input_dir: Pathlike(str or Path) - :param output_dir: Path to the folder, where you want to have converted dataset. - :type output_dir: Pathlike(str or Path) - :param version: Output version number. Currently is either 1 or 2. Default value is 2. It will upgrade version 1 to version 2. Set 1 to degrade from version 2 to version 1. - :type version: int - - :return: List of converted files - :rtype: list - """ - - params_info = [ - (input_dir, "input_dir", (str, Path)), - (output_dir, "output_dir", (str, Path)), - (version, "version", int), - ] - _passes_type_sanity(params_info) - input_dir, output_dir = _change_type(input_dir, output_dir) - - output_dir.mkdir(parents=True, exist_ok=True) - if version == 2: - converted_files = upgrade_json(input_dir, output_dir) - elif version == 1: - converted_files = degrade_json(input_dir, output_dir) - else: - raise AppException("'version' is either 1 or 2.") - - return converted_files + sa_convert_project_type(input_dir, output_dir, convert_to) diff --git a/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_pixel.py b/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_pixel.py index 5a49fd40d..7a0d83692 100644 --- a/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_pixel.py +++ b/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_pixel.py @@ -90,7 +90,7 @@ def coco_panoptic_segmentation_to_sa_pixel(coco_path, output_dir): cv2.imwrite(str(output_dir / ("%s___save.png" % annot["file_name"])), img) images_converted.append(annot["file_name"]) - file_name = "%s___pixel.json" % annot["file_name"] + file_name = f"{annot['file_name']}.json" sa_metadata = { "name": annot_name, "width": img_id_to_shape[str(annot["image_id"])]["width"], @@ -138,7 +138,7 @@ def coco_instance_segmentation_to_sa_pixel(coco_path, output_dir): logger.info("Converting to SuperAnnotate JSON format") tqdm_thread.start() for id_, annotations in images_dict.items(): - file_name = "%s___pixel.json" % annotations["file_name"] + file_name = f"{annotations['file_name']}.json" hexcolors = blue_color_generator(len(annotations["annotations"])) mask = np.zeros(annotations["shape"]) H, W, _ = mask.shape diff --git a/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py index 1a912ef0b..f560e60b6 100644 --- a/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/coco_converters/coco_to_sa_vector.py @@ -57,7 +57,7 @@ def save_sa_jsons(coco_json, img_id_to_annot, output_dir): sa_instances = [] else: sa_instances = img_id_to_annot[str(img["id"])] - file_name = "%s___objects.json" % image_path + file_name = f"{image_path}.json" sa_metadata = { "name": image_path, diff --git a/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py index 4a60e144d..c0c10cdf8 100644 --- a/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/dataloop_converters/dataloop_to_sa_vector.py @@ -105,11 +105,11 @@ def dataloop_to_sa(input_dir, task, output_dir): sa_tags.append(ann["label"]) if "name" in sa_metadata: - file_name = "%s___objects.json" % sa_metadata["name"] + file_name = f"{sa_metadata['name']}.json" else: - file_name = "%s___objects.json" % dl_data["filename"][1:] + file_name = f"{dl_data['filename'][1:]}.json" - images_converted.append(file_name.replace("___objects.json ", "")) + images_converted.append(file_name.replace(".json", "")) json_template = _create_sa_json(sa_instances, sa_metadata, sa_tags, sa_comments) write_to_json(output_dir / file_name, json_template) finish_event.set() diff --git a/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py index 1cef81b8d..644cb934a 100644 --- a/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/googlecloud_converters/googlecloud_to_sa_vector.py @@ -45,7 +45,7 @@ def googlecloud_to_sa_vector(path, output_dir): images_not_converted.append(file_name) continue - sa_file_name = "%s___objects.json" % Path(file_name).name + sa_file_name = f"{Path(file_name).name}.json" points = (row[3] * W, row[4] * H, row[5] * W, row[8] * H) sa_instances = _create_vector_instance("bbox", points, {}, [], row[2]) diff --git a/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_pixel.py b/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_pixel.py index fd0afe274..ef84a9bec 100644 --- a/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_pixel.py +++ b/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_pixel.py @@ -35,7 +35,7 @@ def labelbox_instance_segmentation_to_sa_pixel(json_data, output_dir, input_dir) logger.info("Converting to SuperAnnotate JSON format") tqdm_thread.start() for data in json_data: - file_name = data["External ID"] + "___pixel.json" + file_name = data["External ID"] + ".json" mask_name = data["External ID"] + "___save.png" sa_metadata = {"name": data["External ID"]} if "objects" not in data["Label"].keys(): diff --git a/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py index 213eaef71..a380787a4 100644 --- a/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/labelbox_converters/labelbox_to_sa_vector.py @@ -37,7 +37,7 @@ def labelbox_to_sa(json_data, output_dir, task): tqdm_thread.start() for data in json_data: if "objects" not in data["Label"].keys(): - file_name = data["External ID"] + "___objects.json" + file_name = data["External ID"] + ".json" write_to_json( output_dir / file_name, {"metadata": {}, "instances": [], "tags": [], "comments": []}, @@ -87,7 +87,7 @@ def labelbox_to_sa(json_data, output_dir, task): sa_instances.append(sa_obj) images_converted.append(data["External ID"]) - file_name = "%s___objects.json" % data["External ID"] + file_name = f"{data['External ID']}.json" try: img = cv2.imread(str(output_dir / data["External ID"])) H, W, _ = img.shape diff --git a/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_pixel.py b/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_pixel.py index 6b715f99f..57d8f0d4c 100644 --- a/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_pixel.py +++ b/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_pixel.py @@ -91,7 +91,7 @@ def sagemaker_instance_segmentation_to_sa_pixel(data_path, output_dir): blue_colors = blue_color_generator(num_of_contours) idx = 0 - file_name = "%s___pixel.json" % (img_mapping[mask_name]) + file_name = f"{img_mapping[mask_name]}.json" sa_metadata = {"name": img_mapping[mask_name], "width": W, "height": H} sa_instances = [] sa_mask = np.zeros((H, W, 4)) diff --git a/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py index 91d14bfa1..880361673 100644 --- a/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/sagemaker_converters/sagemaker_to_sa_vector.py @@ -44,7 +44,7 @@ def sagemaker_object_detection_to_sa_vector(data_path, main_key, output_dir): raise Exception manifest = dataset_manifest[int(img["datasetObjectId"])] - file_name = "%s___objects.json" % Path(manifest["source-ref"]).name + file_name = f"{Path(manifest['source-ref']).name}.json" classes = img["consolidatedAnnotation"]["content"][main_key + "-metadata"][ "class-map" diff --git a/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_pixel.py b/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_pixel.py index 7dca4fa53..a5cd7bf4b 100644 --- a/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_pixel.py +++ b/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_pixel.py @@ -34,7 +34,7 @@ def supervisely_instance_segmentation_to_sa_pixel(json_files, class_id_map, outp tqdm_thread.start() for json_file in json_files: - file_name = "%s___pixel.json" % Path(json_file).stem + file_name = f"{Path(json_file).stem}.json" json_data = json.load(open(json_file)) sa_instances = [] @@ -76,10 +76,7 @@ def supervisely_instance_segmentation_to_sa_pixel(json_files, class_id_map, outp parts.append({"color": hex_colors[index]}) index += 1 cv2.imwrite( - str( - output_dir - / file_name.replace("___pixel.json", "___save.png") - ), + str(output_dir / file_name.replace(".json", "___save.png")), mask, ) sa_obj = _create_pixel_instance( diff --git a/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py index f67b145d5..92a04f85b 100644 --- a/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/supervisely_converters/supervisely_to_sa_vector.py @@ -36,7 +36,7 @@ def supervisely_to_sa(json_files, class_id_map, task, output_dir): tqdm_thread.start() for json_file in json_files: json_data = json.load(open(json_file)) - file_name = "%s___objects.json" % Path(json_file).stem + file_name = f"{Path(json_file).stem}.json" sa_metadata = { "name": Path(json_file).stem, "width": json_data["size"]["width"], @@ -140,7 +140,7 @@ def supervisely_keypoint_detection_to_sa_vector( logger.info("Converting to SuperAnnotate JSON format") tqdm_thread.start() for json_file in json_files: - file_name = "%s___objects.json" % (Path(json_file).stem) + file_name = f"{Path(json_file).stem}.json" json_data = json.load(open(json_file)) sa_metadata = { "name": Path(json_file).stem, diff --git a/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py index 4bf6b90a9..e826e7529 100644 --- a/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/vgg_converters/vgg_to_sa_vector.py @@ -53,7 +53,7 @@ def vgg_to_sa(json_data, task, output_dir): H = 0 W = 0 - file_name = "%s___objects.json" % img["filename"] + file_name = f"{img['filename']}.json" sa_metadata = {"name": img["filename"], "width": W, "height": H} sa_instances = [] instances = img["regions"] diff --git a/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py b/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py index 05234cecb..128ef27ed 100644 --- a/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py +++ b/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_pixel.py @@ -126,7 +126,7 @@ def voc_instance_segmentation_to_sa_pixel(voc_root, output_dir): sa_instances.append(sa_obj) images_converted.append(filename) - file_name = "%s.jpg___pixel.json" % (filename.stem) + file_name = f"{filename.stem}.json" height, width = _get_image_shape_from_xml(annotation_dir / filename.name) sa_metadata = {"name": filename.stem, "height": height, "width": width} sa_json = _create_sa_json(sa_instances, sa_metadata) diff --git a/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py index c6b1acf89..67d823f34 100644 --- a/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/voc_converters/voc_to_sa_vector.py @@ -119,7 +119,7 @@ def voc_instance_segmentation_to_sa_vector(voc_root, output_dir): images_converted.append(filename) file_name, height, width = _get_image_metadata(annotation_dir / filename.name) - file_path = f"{file_name}___objects.json" + file_path = f"{file_name}.json" sa_metadata = {"name": str(filename), "height": height, "width": width} sa_json = _create_sa_json(sa_instances, sa_metadata) write_to_json(output_dir / file_path, sa_json) @@ -162,7 +162,7 @@ def voc_object_detection_to_sa_vector(voc_root, output_dir): images_converted.append(filename) file_name, height, width = _get_image_metadata(annotation_dir / filename.name) - file_path = f"{file_name}___objects.json" + file_path = f"{file_name}.json" sa_metadata = {"name": str(filename), "height": height, "width": width} sa_json = _create_sa_json(sa_instances, sa_metadata) write_to_json(output_dir / file_path, sa_json) diff --git a/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py index 9cbf9d743..31a9d8ee0 100644 --- a/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/vott_converters/vott_to_sa_vector.py @@ -34,7 +34,7 @@ def vott_to_sa(file_list, task, output_dir): tqdm_thread.start() for json_file in file_list: json_data = json.load(open(json_file)) - file_name = "%s___objects.json" % json_data["asset"]["name"] + file_name = f"{json_data['asset']['name']}.json" sa_metadata = { "name": json_data["asset"]["name"], "width": json_data["asset"]["size"]["width"], diff --git a/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py b/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py index ac6909d44..dd90f1492 100644 --- a/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py +++ b/src/superannotate/lib/app/input_converters/converters/yolo_converters/yolo_to_sa_vector.py @@ -75,7 +75,7 @@ def yolo_object_detection_to_sa_vector(data_path, output_dir): sa_instances.append(sa_obj.copy()) images_converted.append(annotation.name) - file_name = "%s___objects.json" % Path(file_name).name + file_name = f"{Path(file_name).name}.json" sa_metadata = {"name": Path(file_name).name, "width": W, "height": H} sa_json = _create_sa_json(sa_instances, sa_metadata) write_to_json(output_dir / file_name, sa_json) diff --git a/src/superannotate/lib/app/input_converters/sa_conversion.py b/src/superannotate/lib/app/input_converters/sa_conversion.py index c810d4cbd..a8fa24bb4 100644 --- a/src/superannotate/lib/app/input_converters/sa_conversion.py +++ b/src/superannotate/lib/app/input_converters/sa_conversion.py @@ -2,6 +2,7 @@ import json import logging import shutil +from pathlib import Path import cv2 import numpy as np @@ -23,12 +24,13 @@ def from_pixel_to_vector(json_paths, output_dir): img_names = [] for json_path in json_paths: - file_name = str(json_path.name).replace("___pixel.json", "___objects.json") - - mask_name = str(json_path).replace("___pixel.json", "___save.png") + file_name = str(json_path) + pixel_postfix = "___pixel.json" + postfix = pixel_postfix if file_name.endswith(pixel_postfix) else ".json" + mask_name = file_name.replace(postfix, "___save.png") img = cv2.imread(mask_name) H, W, _ = img.shape - sa_json = json.load(open(json_path)) + sa_json = json.load(open(file_name)) instances = sa_json["instances"] new_instances = [] global_idx = itertools.count() @@ -78,21 +80,24 @@ def from_pixel_to_vector(json_paths, output_dir): new_instances.append(temp) sa_json["instances"] = new_instances - write_to_json(output_dir / file_name, sa_json) - img_names.append(file_name.replace("___objects.json", "")) + write_to_json( + str(output_dir / Path(file_name).name.replace(postfix, ".json")), sa_json + ) + img_names.append(file_name.replace(postfix, "")) return img_names def from_vector_to_pixel(json_paths, output_dir): img_names = [] for json_path in json_paths: - file_name = str(json_path.name).replace("___objects.json", "___pixel.json") - - img_name = str(json_path).replace("___objects.json", "") + file_name = str(json_path) + vector_postfix = "___objects.json" + postfix = vector_postfix if file_name.endswith(vector_postfix) else ".json" + img_name = file_name.replace(postfix, "") img = cv2.imread(img_name) H, W, _ = img.shape - sa_json = json.load(open(json_path)) + sa_json = json.load(open(file_name)) instances = sa_json["instances"] mask = np.zeros((H, W, 4)) @@ -155,16 +160,18 @@ def from_vector_to_pixel(json_paths, output_dir): instance["parts"] = parts sa_instances.append(instance.copy()) - mask_name = file_name.replace("___pixel.json", "___save.png") - cv2.imwrite(str(output_dir.joinpath(mask_name)), mask) + mask_name = file_name.replace(postfix, "___save.png") + cv2.imwrite(str(output_dir.joinpath(Path(mask_name).name)), mask) sa_json["instances"] = sa_instances - write_to_json(output_dir / file_name, sa_json) - img_names.append(file_name.replace("___pixel.json", "")) + write_to_json( + str(output_dir / Path(file_name).name.replace(postfix, ".json")), sa_json + ) + img_names.append(img_name.replace(".json", "")) return img_names -def sa_convert_project_type(input_dir, output_dir): +def sa_convert_project_type(input_dir, output_dir, convert_to): json_paths = list(input_dir.glob("*.json")) output_dir.joinpath("classes").mkdir(parents=True) @@ -173,158 +180,12 @@ def sa_convert_project_type(input_dir, output_dir): output_dir.joinpath("classes", "classes.json"), ) - if "___pixel.json" in json_paths[0].name: + if convert_to == "Vector": img_names = from_pixel_to_vector(json_paths, output_dir) - elif "___objects.json" in json_paths[0].name: + elif convert_to == "Pixel": img_names = from_vector_to_pixel(json_paths, output_dir) - elif ".json" in json_paths[0].name: - raise AppException(DEPRICATED_DOCUMENT_VIDEO_MESSAGE) else: - raise AppException( - "'input_dir' should contain JSON files with '[IMAGE_NAME]___objects.json' or '[IMAGE_NAME]___pixel.json' names structure.", - ) + raise AppException(DEPRICATED_DOCUMENT_VIDEO_MESSAGE) for img_name in img_names: - copy_file(input_dir.joinpath(img_name), output_dir.joinpath(img_name)) - - -def upgrade_json(input_dir, output_dir): - files_list = list(input_dir.glob("*.json")) - ptype = "Vector" - if "___pixel" in str(files_list[0].name): - ptype = "Pixel" - - converted_files = [] - failed_files = [] - for file in files_list: - file_name = file.name - try: - output_json = _update_json_format(file, ptype) - converted_files.append(file_name) - write_to_json(output_dir / file_name, output_json) - except Exception as e: - logger.debug(str(e), exc_info=True) - failed_files.append(file_name) - - return converted_files - - -def degrade_json(input_dir, output_dir): - files_list = list(input_dir.glob("*.json")) - - converted_files = [] - failed_files = [] - for file in files_list: - file_name = file.name - try: - output_json = _degrade_json_format(file) - converted_files.append(output_dir / file_name) - write_to_json(output_dir / file_name, output_json) - except Exception as e: - failed_files.append(file_name) - - return converted_files - - -def _update_json_format(old_json_path, project_type): - old_json_data = json.load(open(old_json_path)) - new_json_data = {"metadata": {}, "instances": [], "tags": [], "comments": []} - - meta_keys = [ - "name", - "width", - "height", - "status", - "pinned", - "isPredicted", - "projectId", - "annotatorEmail", - "qaEmail", - ] - if project_type == "Pixel": - meta_keys.append("isSegmented") - - new_json_data["metadata"] = dict.fromkeys(meta_keys) - - suffix = "___objects.json" if project_type == "Vector" else "___pixel.json" - image_name = str(old_json_path.name).split(suffix)[0] - metadata = new_json_data["metadata"] - metadata["name"] = image_name - - for item in old_json_data: - object_type = item.get("type") - if object_type == "meta": - meta_name = item["name"] - if meta_name == "imageAttributes": - metadata["height"] = item.get("height") - metadata["width"] = item.get("width") - metadata["status"] = item.get("status") - metadata["pinned"] = item.get("pinned") - if meta_name == "lastAction": - metadata["lastAction"] = dict.fromkeys(["email", "timestamp"]) - metadata["lastAction"]["email"] = item.get("userId") - metadata["lastAction"]["timestamp"] = item.get("timestamp") - elif object_type == "tag": - new_json_data["tags"].append(item.get("name")) - elif object_type == "comment": - item.pop("type") - item["correspondence"] = item["comments"] - for comment in item["correspondence"]: - comment["email"] = comment["id"] - comment.pop("id") - item.pop("comments") - new_json_data["comments"].append(item) - else: - new_json_data["instances"].append(item) - - return new_json_data - - -def _degrade_json_format(new_json_path): - sa_loader = [] - new_json_data = json.load(open(new_json_path)) - - meta = {"type": "meta", "name": "imageAttributes"} - meta_keys = ["height", "width", "status", "pinned"] - for meta_key in meta_keys: - if meta_key in new_json_data["metadata"]: - meta[meta_key] = new_json_data["metadata"][meta_key] - sa_loader.append(meta) - - if "lastAction" in new_json_data["metadata"]: - meta = { - "type": "meta", - "name": "lastAction", - "userId": new_json_data["metadata"]["lastAction"]["email"], - "timestamp": new_json_data["metadata"]["lastAction"]["timestamp"], - } - sa_loader.append(meta) - - for item in new_json_data["instances"]: - sa_loader.append(item) - - for item in new_json_data["comments"]: - comments = [] - for item2 in item["correspondence"]: - comments.append({"text": item2["text"], "id": item2["email"]}) - item["comments"] = comments - item["createdAt"] = item["correspondence"][0]["timestamp"] - item["createdBy"] = { - "email": item["correspondence"][0]["email"], - "role": item["correspondence"][0]["role"], - } - item["updatedAt"] = item["correspondence"][-1]["timestamp"] - item["updatedBy"] = { - "email": item["correspondence"][-1]["email"], - "role": item["correspondence"][-1]["role"], - } - item.pop("correspondence") - item["type"] = "comment" - item["comments"] = comments - sa_loader.append(item) - - for item in new_json_data["tags"]: - tag = {"type": "tag", "name": item} - sa_loader.append(tag) - - return sa_loader + copy_file(img_name, output_dir / Path(img_name).name) diff --git a/src/superannotate/lib/app/interface/cli_interface.py b/src/superannotate/lib/app/interface/cli_interface.py index 8a977ed7f..269bbd10b 100644 --- a/src/superannotate/lib/app/interface/cli_interface.py +++ b/src/superannotate/lib/app/interface/cli_interface.py @@ -1,12 +1,10 @@ import os -import shutil import sys import tempfile from pathlib import Path from typing import Any from typing import Optional -import lib as sa_lib import lib.core as constances from lib.app.input_converters.conversion import import_annotation from lib.app.interface.sdk_interface import SAClient @@ -273,20 +271,3 @@ def upload_videos( image_quality_in_editor=None, ) sys.exit(0) - - def create_server(self, name: str, path: str = None): - """ - This will create a directory by the given name in your current or provided directory. - """ - path = Path(os.path.expanduser(path if path else ".")) / name - if path.exists(): - raise Exception(f"Directory already exists {str(path.absolute())}") - path.mkdir(parents=True) - default_files_path = Path(sa_lib.__file__).parent / "app" / "server" - shutil.copy(default_files_path / "__app.py", path / "app.py") - shutil.copy(default_files_path / "__wsgi.py", path / "wsgi.py") - shutil.copy(default_files_path / "Dockerfile", path / "Dockerfile") - shutil.copy(default_files_path / "requirements.txt", path / "requirements.txt") - shutil.copy(default_files_path / "README.rst", path / "README.rst") - shutil.copy(default_files_path / "run.sh", path / "run.sh") - shutil.copytree(default_files_path / "deployment", path / "deployment") diff --git a/src/superannotate/lib/app/interface/sdk_interface.py b/src/superannotate/lib/app/interface/sdk_interface.py index e0632848a..1d0886a2a 100644 --- a/src/superannotate/lib/app/interface/sdk_interface.py +++ b/src/superannotate/lib/app/interface/sdk_interface.py @@ -730,10 +730,7 @@ def search_annotation_classes( response = self.controller.annotation_classes.list(condition) if response.errors: raise AppException(response.errors) - return [ - i.dict(exclude={"attribute_groups": {"__all__": {"is_multiselect"}}}) - for i in response.data - ] + return response.data def set_project_status(self, project: NotEmptyStr, status: PROJECT_STATUS): """Set project status diff --git a/src/superannotate/lib/app/server/Dockerfile b/src/superannotate/lib/app/server/Dockerfile deleted file mode 100644 index 6136589ef..000000000 --- a/src/superannotate/lib/app/server/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM tiangolo/uwsgi-nginx:python3.8 - - -# Install requirements -COPY requirements.txt /tmp/requirements.txt -RUN pip install --upgrade pip - -RUN pip install --no-cache-dir -r /tmp/requirements.txt - -# Add the app -COPY . /app -WORKDIR /app - -# Make /app/* available to be imported by Python globally to better support several use cases like Alembic migrations. -ENV PYTHONPATH=/app - -# Move the base entrypoint to reuse it -RUN mv /entrypoint.sh /uwsgi-nginx-entrypoint.sh - -# Copy the entrypoint that will generate Nginx additional configs -COPY deployment/entrypoint.sh /entrypoint.sh -COPY deployment/uwsgi.ini /uwsgi.ini -RUN chmod +x /entrypoint.sh - -ENTRYPOINT ["/entrypoint.sh"] - -# Run the start script provided by the parent image tiangolo/uwsgi-nginx. -# It will check for an /app/prestart.sh script (e.g. for migrations) -# And then will start Supervisor, which in turn will start Nginx and uWSGI -CMD ["/start.sh"] diff --git a/src/superannotate/lib/app/server/README.rst b/src/superannotate/lib/app/server/README.rst deleted file mode 100644 index 2ade3cf50..000000000 --- a/src/superannotate/lib/app/server/README.rst +++ /dev/null @@ -1,13 +0,0 @@ -================ -Superannotate Server -================ - -Structure -======= - -Usage ------------ - -.. code-block:: bash - - ./run.sh --token= diff --git a/src/superannotate/lib/app/server/__app.py b/src/superannotate/lib/app/server/__app.py deleted file mode 100644 index b40410f93..000000000 --- a/src/superannotate/lib/app/server/__app.py +++ /dev/null @@ -1,25 +0,0 @@ -from superannotate import create_app -from superannotate import SAClient - -sa_client = SAClient() -app = create_app([]) - - -@app.route("/", methods=["GET"]) -def health_check(request): - return "Hello World!!!" - - -@app.route("/project_created", methods=["POST"]) -def index(request): - """ - Create default folders when project created. - """ - project_name = request.json["after"]["name"] - sa_client.create_folder(project_name, "default_folder_1") - sa_client.create_folder(project_name, "default_folder_2") - return "Default folders created." - - -if __name__ == "__main__": - app.run(host="0.0.0.0", port=5002) diff --git a/src/superannotate/lib/app/server/__init__.py b/src/superannotate/lib/app/server/__init__.py deleted file mode 100644 index af01d3128..000000000 --- a/src/superannotate/lib/app/server/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from lib.app.server.core import Response -from lib.app.server.core import SAServer - - -__all__ = ["SAServer", "Response"] diff --git a/src/superannotate/lib/app/server/__wsgi.py b/src/superannotate/lib/app/server/__wsgi.py deleted file mode 100644 index bd9ac4fca..000000000 --- a/src/superannotate/lib/app/server/__wsgi.py +++ /dev/null @@ -1,5 +0,0 @@ -from superannotate import create_app - -APPS = ["app"] - -app = create_app(APPS) diff --git a/src/superannotate/lib/app/server/core.py b/src/superannotate/lib/app/server/core.py deleted file mode 100644 index d1f64d50d..000000000 --- a/src/superannotate/lib/app/server/core.py +++ /dev/null @@ -1,247 +0,0 @@ -import json -import pathlib -import typing -from datetime import datetime - -from jinja2 import Environment -from jinja2 import FileSystemLoader -from superannotate.logger import get_server_logger -from werkzeug.exceptions import HTTPException -from werkzeug.routing import Map -from werkzeug.routing import Rule -from werkzeug.serving import run_simple -from werkzeug.wrappers import Request -from werkzeug.wrappers import Response as BaseResponse - -logger = get_server_logger() - - -class Response(BaseResponse): - ... - - -class SingletonMeta(type): - _instances = {} - - def __call__(cls, *args, **kwargs): - if cls not in cls._instances: - instance = super().__call__(*args, **kwargs) - cls._instances[cls] = instance - return cls._instances[cls] - - -class SAServer(metaclass=SingletonMeta): - def __init__(self): - self._url_map: Map = Map([]) - self._view_function_map: typing.Dict[str, typing.Callable] = {} - self.jinja_env = Environment( - loader=FileSystemLoader(str(pathlib.Path(__file__).parent / "templates")), - autoescape=True, - ) - - def route( - self, rule: str, methods: typing.List[str] = None, **options: typing.Any - ) -> typing.Any: - """Decorate a view function to register it with the given URL - rule and options. Calls :meth:`add_url_rule`, which has more - details about the implementation. - - .. code-block:: python - - @route("/") - def index(): - return "Hello, World!" - - The endpoint name for the route defaults to the name of the view - function if the ``endpoint`` parameter isn't passed. - - The ``methods`` parameter defaults to ``["GET"]``. ``HEAD`` and - ``OPTIONS`` are added automatically. - - :param rule: The URL rule string. - :type rule: str. - - :param methods: Allowed HTTP methods. - :type methods: list of str - - :param options: Extra options passed to the - :class:`~werkzeug.routing.Rule` object. - :type options: list of any - - - """ - - def decorator(f): - endpoint = options.pop("endpoint", None) - options["methods"] = methods - if not endpoint: - endpoint = f.__name__ - self.add_url_rule(rule, endpoint, f, **options) - - return decorator - - def add_url_rule( - self, - rule: str, - endpoint: str = None, - view_func: typing.Callable = None, - **options: typing.Any - ): - """ - Register a rule for routing incoming requests and building - URLs. The :meth:`route` decorator is a shortcut to call this - with the ``view_func`` argument. These are equivalent: - - .. code-block:: python - - @app.route("/") - def index(): - ... - - .. code-block:: python - - def index(): - ... - - app.add_url_rule("/", view_func=index) - - The endpoint name for the route defaults to the name of the view - function if the ``endpoint`` parameter isn't passed. An error - will be raised if a function has already been registered for the - endpoint. - - The ``methods`` parameter defaults to ``["GET"]``. ``HEAD`` is - always added automatically, and ``OPTIONS`` is added - automatically by default. - - ``view_func`` does not necessarily need to be passed, but if the - rule should participate in routing an endpoint name must be - associated with a view function at some point with the - :meth:`endpoint` decorator. - - .. code-block:: python - - app.add_url_rule("/", endpoint="index") - - @app.endpoint("index") - def index(): - ... - - If ``view_func`` has a ``required_methods`` attribute, those - methods are added to the passed and automatic methods. If it - has a ``provide_automatic_methods`` attribute, it is used as the - default if the parameter is not passed. - :param rule: The URL rule string. - :type rule: str - - :param endpoint: Endpoint name. - :type endpoint: str - - :param view_func: Handler function. - :type view_func: typing.Callable - - :param options: Extra options passed to the - :class:`~werkzeug.routing.Rule` object. - :type options: list of any - """ - self._url_map.add(Rule(rule, endpoint=endpoint, **options)) - self._view_function_map[endpoint] = view_func - - def _dispatch_request(self, request): - """Dispatches the request.""" - adapter = self._url_map.bind_to_environ(request.environ) - try: - endpoint, values = adapter.match() - view_func = self._view_function_map.get(endpoint) - if not view_func: - return Response(status=404) - content = view_func(request, **values) - if isinstance(content, Response): - response = content - elif isinstance(content, (list, dict)): - response = Response( - json.dumps(content), content_type="application/json" - ) - else: - response = Response(content) - return response - except HTTPException as e: - return e - - def wsgi_app(self, environ, start_response): - """WSGI application that processes requests and returns responses.""" - request = Request(environ) - response = self._dispatch_request(request) - return_value = response(environ, start_response) - if not any(i in request.full_path for i in ("monitor", "logs")): - data = { - "date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), - "request": { - "method": request.method, - "path": request.url, - "headers": dict(request.headers.items()), - "data": request.data.decode("utf-8"), - }, - "response": { - "headers": dict(response.headers.items()) - if hasattr(response, "headers") - else {}, - "data": response.data.decode("utf-8") - if hasattr(response, "data") - else response.description, - "status_code": response.status_code - if hasattr(response, "status_code") - else response.code, - }, - } - logger.info(json.dumps(data)) - return return_value - - def __call__(self, environ, start_response): - """The WSGI server calls this method as the WSGI application.""" - return self.wsgi_app(environ, start_response) - - def run( - self, - host: str = "localhost", - port: int = 8000, - use_debugger=True, - use_reloader=True, - ssl_context=None, - **kwargs - ): - """Start a development server for a WSGI application. - - .. warning:: - - Do not use the development server when deploying to production. - It is intended for use only during local development. It is not - designed to be particularly efficient, stable, or secure. - - :param host: The host to bind to, for example ``'localhost'``. - Can be a domain, IPv4 or IPv6 address, or file path starting - with ``unix://`` for a Unix socket. - :param port: The port to bind to, for example ``8080``. Using ``0`` - tells the OS to pick a random free port. - :param use_reloader: Use a reloader process to restart the server - process when files are changed. - :param use_debugger: Use Werkzeug's debugger, which will show - formatted tracebacks on unhandled exceptions. - :param ssl_context: Configure TLS to serve over HTTPS. Can be an - :class:`ssl.SSLContext` object, a ``(cert_file, key_file)`` - tuple to create a typical context, or the string ``'adhoc'`` to - generate a temporary self-signed certificate. - """ - run_simple( - host, - port, - self, - use_debugger=use_debugger, - use_reloader=use_reloader, - ssl_context=ssl_context, - **kwargs - ) - - def render_template(self, template_name, **context): - t = self.jinja_env.get_template(template_name) - return Response(t.render(context), mimetype="text/html") diff --git a/src/superannotate/lib/app/server/default_app.py b/src/superannotate/lib/app/server/default_app.py deleted file mode 100644 index ecceeb13e..000000000 --- a/src/superannotate/lib/app/server/default_app.py +++ /dev/null @@ -1,58 +0,0 @@ -import json - -from lib.app.server import SAServer -from lib.core import LOG_FILE_LOCATION - -app = SAServer() - -LOG_FILE = "/var/log/orchestra/consumer.log" - - -@app.route("/monitor", methods=["GET"]) -def monitor_view(request): - return app.render_template("monitor.html", **{}) - - -@app.route("/logs", methods=["GET"]) -def logs(request): - offset = request.args.get("offset", None) - if offset: - offset = int(offset) - limit = int(request.args.get("limit", 20)) - response = {"data": []} - - with open(f"{LOG_FILE_LOCATION}/sa_server.log") as log_file: - log_file.seek(0, 2) - if not offset: - offset = log_file.tell() - cursor = max(offset - 2048, 0) - while True: - log_file.seek(cursor, 0) - tmp_cursor = cursor - for line in log_file: - tmp_cursor += len(line) - if tmp_cursor > offset: - cursor = max(cursor - 2048, 0) - break - try: - response["data"].append(json.loads(line)) - except Exception as _: - ... - cursor = max(cursor - 2048, 0) - if len(response["data"]) >= limit or cursor == 0: - break - response["data"] = [] - response["offset"] = cursor - response["data"].reverse() - return response - - -# -# @app.route("/_log_stream", methods=["GET"]) -# def log_stream(request): -# def generate(): -# for line in Pygtail(LOG_FILE, every_n=1): -# yield "data:" + str(line) + "\n\n" -# time.sleep(0.5) -# -# return Response(generate(), mimetype="text/event-stream") diff --git a/src/superannotate/lib/app/server/deployment/__init__.py b/src/superannotate/lib/app/server/deployment/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/superannotate/lib/app/server/deployment/entrypoint.sh b/src/superannotate/lib/app/server/deployment/entrypoint.sh deleted file mode 100644 index 3dddb4b13..000000000 --- a/src/superannotate/lib/app/server/deployment/entrypoint.sh +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/env sh -set -e - -/uwsgi-nginx-entrypoint.sh - -# Get the URL for static files from the environment variable -USE_STATIC_URL=${STATIC_URL:-'/static'} -# Get the absolute path of the static files from the environment variable -USE_STATIC_PATH=${STATIC_PATH:-'/app/static'} -# Get the listen port for Nginx, default to 80 -USE_LISTEN_PORT=${LISTEN_PORT:-80} - -if [ -f /app/nginx.conf ]; then - cp /app/nginx.conf /etc/nginx/nginx.conf -else - content_server='server {\n' - content_server=$content_server" listen ${USE_LISTEN_PORT};\n" - content_server=$content_server' location / {\n' - content_server=$content_server' try_files $uri @app;\n' - content_server=$content_server' }\n' - content_server=$content_server' location @app {\n' - content_server=$content_server' include uwsgi_params;\n' - content_server=$content_server' uwsgi_pass unix:///tmp/uwsgi.sock;\n' - content_server=$content_server' }\n' - content_server=$content_server" location $USE_STATIC_URL {\n" - content_server=$content_server" alias $USE_STATIC_PATH;\n" - content_server=$content_server' }\n' - # If STATIC_INDEX is 1, serve / with /static/index.html directly (or the static URL configured) - if [ "$STATIC_INDEX" = 1 ] ; then - content_server=$content_server' location = / {\n' - content_server=$content_server" index $USE_STATIC_URL/index.html;\n" - content_server=$content_server' }\n' - fi - content_server=$content_server'}\n' - # Save generated server /etc/nginx/conf.d/nginx.conf - printf "$content_server" > /etc/nginx/conf.d/nginx.conf -fi - -# For Alpine: -# Explicitly add installed Python packages and uWSGI Python packages to PYTHONPATH -# Otherwise uWSGI can't import Flask -if [ -n "$ALPINEPYTHON" ] ; then - export PYTHONPATH=$PYTHONPATH:/usr/local/lib/$ALPINEPYTHON/site-packages:/usr/lib/$ALPINEPYTHON/site-packages -fi - -exec "$@" diff --git a/src/superannotate/lib/app/server/deployment/uwsgi.ini b/src/superannotate/lib/app/server/deployment/uwsgi.ini deleted file mode 100644 index e1b76d4fe..000000000 --- a/src/superannotate/lib/app/server/deployment/uwsgi.ini +++ /dev/null @@ -1,3 +0,0 @@ -[uwsgi] -psqi = wsgi -callable = app diff --git a/src/superannotate/lib/app/server/requirements.txt b/src/superannotate/lib/app/server/requirements.txt deleted file mode 100644 index 560cc128c..000000000 --- a/src/superannotate/lib/app/server/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -superannotate diff --git a/src/superannotate/lib/app/server/run.sh b/src/superannotate/lib/app/server/run.sh deleted file mode 100755 index cce3f972b..000000000 --- a/src/superannotate/lib/app/server/run.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -######################################################## - -## Shell Script to Build and Run Docker Image - -######################################################## - - -echo "build the docker image" -sudo docker build . -t sa_server -echo "built docker images and proceeding to delete existing container" -result=$(docker ps -q -f name=sa_server) -if [[ $? -eq 0 ]]; then - echo "Container exists" - sudo docker container rm -f sa_server - echo "Deleted the existing docker container" -else - echo "No such container" -fi -echo "Deploying the updated container" -#sudo docker run -d sa_server -p 80:80 -sudo docker run sa_server -echo "Deploying the container" diff --git a/src/superannotate/lib/app/server/templates/__init__.py b/src/superannotate/lib/app/server/templates/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/superannotate/lib/app/server/templates/monitor.html b/src/superannotate/lib/app/server/templates/monitor.html deleted file mode 100644 index 7c3074629..000000000 --- a/src/superannotate/lib/app/server/templates/monitor.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - Document - - - - - - -
-
-
-
-
All Requests
-
-
- -
-
-
-
-
-
Request
- -
-
-
-
-
-
-
-
-
Response
- -
-
-
-
-
-
-
-
-
-
-
-
- - - - - diff --git a/src/superannotate/lib/app/server/utils.py b/src/superannotate/lib/app/server/utils.py deleted file mode 100644 index 187c1cae7..000000000 --- a/src/superannotate/lib/app/server/utils.py +++ /dev/null @@ -1,9 +0,0 @@ -import typing -from importlib import import_module - - -def setup_app(apps: typing.List[str] = None): - if apps: - apps.extend(["superannotate.lib.app.server.default_app"]) - for path in apps: - import_module(path) diff --git a/src/superannotate/lib/core/entities/__init__.py b/src/superannotate/lib/core/entities/__init__.py index cc81ba8a7..84d280b5c 100644 --- a/src/superannotate/lib/core/entities/__init__.py +++ b/src/superannotate/lib/core/entities/__init__.py @@ -19,7 +19,6 @@ from lib.core.entities.project import UserEntity from lib.core.entities.project import WorkflowEntity from lib.core.entities.project_entities import BaseEntity -from lib.core.entities.project_entities import ImageInfoEntity from lib.core.entities.project_entities import S3FileEntity __all__ = [ @@ -44,7 +43,6 @@ "ConfigEntity", "WorkflowEntity", "FolderEntity", - "ImageInfoEntity", "S3FileEntity", "AnnotationClassEntity", "TeamEntity", diff --git a/src/superannotate/lib/core/entities/classes.py b/src/superannotate/lib/core/entities/classes.py index a584d2ffc..decdd2862 100644 --- a/src/superannotate/lib/core/entities/classes.py +++ b/src/superannotate/lib/core/entities/classes.py @@ -60,9 +60,10 @@ class Attribute(TimedBaseModel): group_id: Optional[StrictInt] project_id: Optional[StrictInt] name: Optional[StrictStr] + default: Any class Config: - extra = Extra.allow + extra = Extra.ignore def __hash__(self): return hash(f"{self.id}{self.group_id}{self.name}") @@ -73,12 +74,11 @@ class AttributeGroup(TimedBaseModel): group_type: Optional[GroupTypeEnum] class_id: Optional[StrictInt] name: Optional[StrictStr] - is_multiselect: Optional[bool] attributes: Optional[List[Attribute]] default_value: Any class Config: - extra = Extra.allow + extra = Extra.ignore use_enum_values = True def __hash__(self): @@ -97,7 +97,7 @@ def __hash__(self): return hash(f"{self.id}{self.type}{self.name}") class Config: - extra = Extra.allow + extra = Extra.ignore json_encoders = { HexColor: lambda v: v.__root__, BaseTitledEnum: lambda v: v.value, diff --git a/src/superannotate/lib/core/entities/folder.py b/src/superannotate/lib/core/entities/folder.py index a1c0ebe3c..8b25c66f1 100644 --- a/src/superannotate/lib/core/entities/folder.py +++ b/src/superannotate/lib/core/entities/folder.py @@ -12,7 +12,7 @@ class FolderEntity(TimedBaseModel): status: Optional[FolderStatus] project_id: Optional[int] team_id: Optional[int] - is_root: Optional[bool] = (False,) + is_root: Optional[bool] = False folder_users: Optional[List[dict]] completedCount: Optional[int] diff --git a/src/superannotate/lib/core/entities/items.py b/src/superannotate/lib/core/entities/items.py index dc3797ad9..d62c2b226 100644 --- a/src/superannotate/lib/core/entities/items.py +++ b/src/superannotate/lib/core/entities/items.py @@ -30,6 +30,8 @@ class Config: class DocumentEntity(BaseItemEntity): + approval_status: Optional[ApprovalStatus] = Field(None) + class Config: extra = Extra.ignore diff --git a/src/superannotate/lib/core/entities/project.py b/src/superannotate/lib/core/entities/project.py index 60a646b8b..86cc2f74b 100644 --- a/src/superannotate/lib/core/entities/project.py +++ b/src/superannotate/lib/core/entities/project.py @@ -33,12 +33,8 @@ def validate(cls, v: datetime): class TimedBaseModel(BaseModel): - createdAt: Optional[StringDate] = Field( - None, alias="createdAt", description="Date of creation" - ) - updatedAt: Optional[StringDate] = Field( - None, alias="updatedAt", description="Update date" - ) + createdAt: Optional[StringDate] = None + updatedAt: Optional[StringDate] = None class AttachmentEntity(BaseModel): @@ -59,7 +55,10 @@ class WorkflowEntity(BaseModel): className: Optional[str] step: Optional[int] tool: Optional[int] - attribute: List = (tuple(),) + attribute: List = tuple() + + class Config: + extra = Extra.ignore def __copy__(self): return WorkflowEntity(step=self.step, tool=self.tool, attribute=self.attribute) @@ -91,8 +90,8 @@ class Config: class ProjectEntity(TimedBaseModel): id: Optional[int] team_id: Optional[int] - name: Optional[str] - type: Optional[ProjectType] + name: str + type: ProjectType description: Optional[str] instructions_link: Optional[str] creator_id: Optional[str] diff --git a/src/superannotate/lib/core/entities/project_entities.py b/src/superannotate/lib/core/entities/project_entities.py index f11dadf89..971431721 100644 --- a/src/superannotate/lib/core/entities/project_entities.py +++ b/src/superannotate/lib/core/entities/project_entities.py @@ -24,24 +24,6 @@ def to_dict(self): raise NotImplementedError -class ImageInfoEntity(BaseEntity): - def __init__( - self, - uuid=None, - width: float = None, - height: float = None, - ): - super().__init__(uuid), - self.width = width - self.height = height - - def to_dict(self): - return { - "width": self.width, - "height": self.height, - } - - class S3FileEntity(BaseEntity): def __init__(self, uuid, data, metadata: dict = None): super().__init__(uuid) diff --git a/src/superannotate/lib/core/service_types.py b/src/superannotate/lib/core/service_types.py index 4374aec26..bdc3fc1c2 100644 --- a/src/superannotate/lib/core/service_types.py +++ b/src/superannotate/lib/core/service_types.py @@ -5,6 +5,7 @@ from typing import Union from lib.core import entities +from lib.core.exceptions import AppException from pydantic import BaseModel from pydantic import Extra from pydantic import Field @@ -90,13 +91,23 @@ class ServiceResponse(BaseModel): status: Optional[int] reason: Optional[str] content: Optional[Union[bytes, str]] = None - data: Optional[Any] = None + res_data: Optional[Any] = None # response data + res_error: Optional[Union[str, list, dict]] = None count: Optional[int] = 0 - _error: Optional[str] = None class Config: extra = Extra.allow + @property + def data(self): + if self.error: + raise AppException(self.error) + return self.res_data + + @data.setter + def data(self, value): + self.res_data = value + @property def status_code(self): return self.status @@ -109,53 +120,54 @@ def ok(self): @property def error(self): - if self._error: - return self._error - return self.data + if self.res_error: + return self.res_error + if not self.ok: + return self.res_data def set_error(self, value: Union[dict, str]): if isinstance(value, dict) and "error" in value: - self._error = value["error"] - self._error = value + self.res_error = value["error"] + self.res_error = value def __str__(self): return f"Status: {self.status_code}, Error {self.error}" class ImageResponse(ServiceResponse): - data: entities.ImageEntity = None + res_data: entities.ImageEntity = None class VideoResponse(ServiceResponse): - data: entities.VideoEntity = None + res_data: entities.VideoEntity = None class DocumentResponse(ServiceResponse): - data: entities.DocumentEntity = None + res_data: entities.DocumentEntity = None class TiledResponse(ServiceResponse): - data: entities.TiledEntity = None + res_data: entities.TiledEntity = None class ClassificationResponse(ServiceResponse): - data: entities.ClassificationEntity = None + res_data: entities.ClassificationEntity = None class PointCloudResponse(ServiceResponse): - data: entities.PointCloudEntity = None + res_data: entities.PointCloudEntity = None class TeamResponse(ServiceResponse): - data: entities.TeamEntity = None + res_data: entities.TeamEntity = None class UserResponse(ServiceResponse): - data: entities.UserEntity = None + res_data: entities.UserEntity = None class ModelListResponse(ServiceResponse): - data: List[entities.AnnotationClassEntity] = None + res_data: List[entities.AnnotationClassEntity] = None class _IntegrationResponse(ServiceResponse): @@ -163,60 +175,60 @@ class _IntegrationResponse(ServiceResponse): class IntegrationListResponse(ServiceResponse): - data: _IntegrationResponse + res_data: _IntegrationResponse class AnnotationClassListResponse(ServiceResponse): - data: List[entities.AnnotationClassEntity] = None + res_data: List[entities.AnnotationClassEntity] = None class SubsetListResponse(ServiceResponse): - data: List[entities.SubSetEntity] = None + res_data: List[entities.SubSetEntity] = None class SubsetResponse(ServiceResponse): - data: entities.SubSetEntity = None + res_data: entities.SubSetEntity = None class DownloadMLModelAuthDataResponse(ServiceResponse): - data: DownloadMLModelAuthData = None + res_data: DownloadMLModelAuthData = None class UploadAnnotationsResponse(ServiceResponse): - data: Optional[UploadAnnotations] = None + res_data: Optional[UploadAnnotations] = None class UploadAnnotationAuthDataResponse(ServiceResponse): - data: UploadAnnotationAuthData = None + res_data: UploadAnnotationAuthData = None class UploadCustomFieldValuesResponse(ServiceResponse): - data: UploadCustomFieldValues = None + res_data: UploadCustomFieldValues = None class UserLimitsResponse(ServiceResponse): - data: UserLimits = None + res_data: UserLimits = None class ItemListResponse(ServiceResponse): - data: List[entities.BaseItemEntity] = None + res_data: List[entities.BaseItemEntity] = None class FolderResponse(ServiceResponse): - data: entities.FolderEntity = None + res_data: entities.FolderEntity = None class FolderListResponse(ServiceResponse): - data: List[entities.FolderEntity] = None + res_data: List[entities.FolderEntity] = None class ProjectResponse(ServiceResponse): - data: entities.ProjectEntity = None + res_data: entities.ProjectEntity = None class ProjectListResponse(ServiceResponse): - data: List[entities.ProjectEntity] = None + res_data: List[entities.ProjectEntity] = None class SettingsListResponse(ServiceResponse): - data: List[entities.SettingEntity] = None + res_data: List[entities.SettingEntity] = None diff --git a/src/superannotate/lib/core/serviceproviders.py b/src/superannotate/lib/core/serviceproviders.py index 0d0c1054e..fe0544f89 100644 --- a/src/superannotate/lib/core/serviceproviders.py +++ b/src/superannotate/lib/core/serviceproviders.py @@ -345,7 +345,6 @@ async def download_big_annotation( self, project: entities.ProjectEntity, download_path: str, - postfix: str, item: entities.BaseItemEntity, callback: Callable = None, ): @@ -358,7 +357,6 @@ async def download_small_annotations( folder: entities.FolderEntity, reporter: Reporter, download_path: str, - postfix: str, item_ids: List[int], callback: Callable = None, ): diff --git a/src/superannotate/lib/core/usecases/annotations.py b/src/superannotate/lib/core/usecases/annotations.py index e73da9998..d9d562c47 100644 --- a/src/superannotate/lib/core/usecases/annotations.py +++ b/src/superannotate/lib/core/usecases/annotations.py @@ -11,7 +11,6 @@ import traceback import typing from dataclasses import dataclass -from datetime import datetime from itertools import islice from operator import itemgetter from pathlib import Path @@ -44,6 +43,7 @@ from lib.core.service_types import UploadAnnotationAuthData from lib.core.serviceproviders import BaseServiceProvider from lib.core.serviceproviders import ServiceResponse +from lib.core.serviceproviders import UploadAnnotationsResponse from lib.core.types import PriorityScoreEntity from lib.core.usecases.base import BaseReportableUseCase from lib.core.video_convertor import VideoFrameGenerator @@ -334,7 +334,11 @@ async def distribute_queues(self, items_to_upload: List[ItemToUpload]): if not processed: try: item_to_upload.file = io.StringIO() - json.dump(item_to_upload.annotation_json, item_to_upload.file) + json.dump( + item_to_upload.annotation_json, + item_to_upload.file, + allow_nan=False, + ) item_to_upload.file.seek(0, os.SEEK_END) item_to_upload.file_size = item_to_upload.file.tell() item_to_upload.file.seek(0) @@ -358,11 +362,13 @@ async def distribute_queues(self, items_to_upload: List[ItemToUpload]): break self._small_files_queue.put_nowait(item_to_upload) break - except Exception: - logger.debug(traceback.format_exc()) - self._report.failed_annotations.append( - item_to_upload.annotation_json["metadata"]["name"] - ) + except Exception as e: + name = item_to_upload.annotation_json["metadata"]["name"] + if isinstance(e, ValueError): + logger.debug(f"Invalid annotation {name}: {e}") + else: + logger.debug(traceback.format_exc()) + self._report.failed_annotations.append(name) self.reporter.update_progress() data[idx][1] = True # noqa processed_count += 1 @@ -706,7 +712,7 @@ async def distribute_queues(self, items_to_upload: List[ItemToUpload]): item_to_upload.file_size, ) = await self.get_annotation(item_to_upload.path) item_to_upload.file = io.StringIO() - json.dump(annotation, item_to_upload.file) + json.dump(annotation, item_to_upload.file, allow_nan=False) item_to_upload.file.seek(0) while True: if item_to_upload.file_size > BIG_FILE_THRESHOLD: @@ -784,7 +790,6 @@ def execute(self): try: run_async(self.run_workers(items_to_upload)) except Exception as e: - raise e logger.debug(e) self._response.errors = AppException("Can't upload annotations.") self.reporter.finish_progress() @@ -977,7 +982,7 @@ def execute(self): ) if not errors: annotation_file = io.StringIO() - json.dump(annotation_json, annotation_file) + json.dump(annotation_json, annotation_file, allow_nan=False) size = annotation_file.tell() annotation_file.seek(0) if size > BIG_FILE_THRESHOLD: @@ -993,7 +998,7 @@ def execute(self): if not uploaded: self._response.errors = constants.INVALID_JSON_MESSAGE else: - response = run_async( + response: UploadAnnotationsResponse = run_async( self._service_provider.annotations.upload_small_annotations( project=self._project, folder=self._folder, @@ -1617,26 +1622,23 @@ def validate_item_names(self): ) self._item_names = item_names - def validate_destination(self): + @property + def destination(self) -> str: if self._destination: - destination = str(self._destination) - if not os.path.exists(destination) or not os.access( - destination, os.X_OK | os.W_OK - ): + destination = Path(self._destination).expanduser() + try: + os.makedirs(destination, exist_ok=True) + except OSError: raise AppException( f"Local path {destination} is not an existing directory or access denied." ) - - @property - def destination(self) -> Path: - return Path(self._destination if self._destination else "") - - def get_postfix(self): - if self._project.type == constants.ProjectType.VECTOR: - return "___objects.json" - elif self._project.type == constants.ProjectType.PIXEL.value: - return "___pixel.json" - return ".json" + if not os.access(destination, os.X_OK | os.W_OK): + raise AppException( + f"Local path {destination} is not an existing directory or access denied." + ) + return str(destination) + else: + return os.getcwd() def download_annotation_classes(self, path: str): response = self._service_provider.annotation_classes.list( @@ -1672,12 +1674,10 @@ async def download_big_annotations(self, export_path): item = await self._big_file_queue.get() self._big_file_queue.task_done() if item: - postfix = self.get_postfix() await self._service_provider.annotations.download_big_annotation( project=self._project, item=item, download_path=f"{export_path}{'/' + self._folder.name if not self._folder.is_root else ''}", - postfix=postfix, callback=self._callback, ) else: @@ -1687,14 +1687,12 @@ async def download_big_annotations(self, export_path): async def download_small_annotations( self, item_ids: List[int], export_path, folder: FolderEntity ): - postfix = self.get_postfix() await self._service_provider.annotations.download_small_annotations( project=self._project, folder=folder, item_ids=item_ids, reporter=self.reporter, download_path=f"{export_path}{'/' + self._folder.name if not self._folder.is_root else ''}", - postfix=postfix, callback=self._callback, ) @@ -1732,14 +1730,8 @@ async def run_workers( def execute(self): if self.is_valid(): - export_path = str( - self.destination - / Path( - f"{self._project.name} {datetime.now().strftime('%B %d %Y %H_%M')}" - ) - ) logger.info( - f"Downloading the annotations of the requested items to {export_path}\nThis might take a while…" + f"Downloading the annotations of the requested items to {self.destination}\nThis might take a while…" ) self.reporter.start_spinner() folders = [] @@ -1763,7 +1755,7 @@ def execute(self): items = get_or_raise(self._service_provider.items.list(condition)) if not items: continue - new_export_path = export_path + new_export_path = self.destination if not folder.is_root and self._folder.is_root: new_export_path += f"/{folder.name}" @@ -1788,8 +1780,8 @@ def execute(self): self._response.errors = AppException("Can't get annotations.") return self._response self.reporter.stop_spinner() - count = self.get_items_count(export_path) + count = self.get_items_count(self.destination) self.reporter.log_info(f"Downloaded annotations for {count} items.") - self.download_annotation_classes(export_path) - self._response.data = os.path.abspath(export_path) + self.download_annotation_classes(self.destination) + self._response.data = os.path.abspath(self.destination) return self._response diff --git a/src/superannotate/lib/core/usecases/classes.py b/src/superannotate/lib/core/usecases/classes.py index 832852a3d..3049f1763 100644 --- a/src/superannotate/lib/core/usecases/classes.py +++ b/src/superannotate/lib/core/usecases/classes.py @@ -28,7 +28,11 @@ def __init__( def execute(self): response = self._service_provider.annotation_classes.list(self._condition) if response.ok: - self._response.data = response.data + classes = [ + entity.dict(by_alias=True, exclude_unset=True) + for entity in response.data + ] + self._response.data = classes else: self._response.errors = response.error return self._response diff --git a/src/superannotate/lib/core/usecases/images.py b/src/superannotate/lib/core/usecases/images.py index c210d0b80..2ba912c69 100644 --- a/src/superannotate/lib/core/usecases/images.py +++ b/src/superannotate/lib/core/usecases/images.py @@ -231,14 +231,6 @@ def default_annotation(self): "annotation_mask_filename": None, } - @property - def annotation_json_name(self): - if self._from_project.type == constances.ProjectType.VECTOR.value: - return f"{self._from_image.name}___objects.json" - elif self._from_project.type == constances.ProjectType.PIXEL.value: - return f"{self._from_image.name}___pixel.json" - return f"{self._from_image.name}.json" - @property def download_auth_data(self): return self._service_provider.get_download_token( @@ -426,10 +418,7 @@ def annotations(self): image_path = ( f"{Path(self._image_path).parent}/{Path(self._image_path).name}" ) - if self._project_type.upper() == constances.ProjectType.PIXEL.name.upper(): - self._annotations = json.load(open(f"{image_path}___pixel.json")) - else: - self._annotations = json.load(open(f"{image_path}___objects.json")) + self._annotations = json.load(open(f"{image_path}.json")) return self._annotations @property @@ -1487,10 +1476,6 @@ def execute(self): credentials = token["annotations"]["MAIN"][0] annotation_json_creds = credentials["annotation_json_path"] - if self._project.type == constances.ProjectType.VECTOR.value: - file_postfix = "___objects.json" - else: - file_postfix = "___pixel.json" response = requests.get( url=annotation_json_creds["url"], @@ -1502,7 +1487,7 @@ def execute(self): self._response.data = (None, None) return self._response data["annotation_json"] = response.json() - data["annotation_json_filename"] = f"{self._image_name}{file_postfix}" + data["annotation_json_filename"] = f"{self._image_name}.json" mask_path = None if self._project.type == constances.ProjectType.PIXEL.value: annotation_blue_map_creds = credentials["annotation_bluemap_path"] @@ -1530,82 +1515,6 @@ def execute(self): return self._response -class GetImageAnnotationsUseCase(BaseReportableUseCase): - def __init__( - self, - reporter: Reporter, - service_provider: BaseServiceProvider, - project: ProjectEntity, - folder: FolderEntity, - image_name: str, - ): - super().__init__(reporter) - self._service_provider = service_provider - self._project = project - self._folder = folder - self._image_name = image_name - - @property - def image_use_case(self): - use_case = GetImageUseCase( - project=self._project, - folder=self._folder, - image_name=self._image_name, - service_provider=self._service_provider, - ) - return use_case - - def validate_project_type(self): - if self._project.type in constances.LIMITED_FUNCTIONS: - raise AppValidationException( - constances.LIMITED_FUNCTIONS[self._project.type] - ) - - def execute(self): - if self.is_valid(): - data = { - "annotation_json": None, - "annotation_json_filename": None, - "annotation_mask": None, - "annotation_mask_filename": None, - } - image_response = self.image_use_case.execute() - token = self._service_provider.get_download_token( - project=self._project, - folder=self._folder, - image_id=image_response.data.id, - ).data - credentials = token["annotations"]["MAIN"][0] - if self._project.type == constances.ProjectType.VECTOR.value: - file_postfix = "___objects.json" - else: - file_postfix = "___pixel.json" - data["annotation_mask_filename"] = f"{self._image_name}___save.png" - data["annotation_json_filename"] = f"{self._image_name}{file_postfix}" - - response = requests.get( - url=credentials["annotation_json_path"]["url"], - headers=credentials["annotation_json_path"]["headers"], - ) - if not response.ok: - self.reporter.log_warning("Couldn't load annotations.") - self._response.data = data - return self._response - data["annotation_json"] = response.json() - data["annotation_json_filename"] = f"{self._image_name}{file_postfix}" - if self._project.type == constances.ProjectType.PIXEL.value: - annotation_blue_map_creds = credentials["annotation_bluemap_path"] - response = requests.get( - url=annotation_blue_map_creds["url"], - headers=annotation_blue_map_creds["headers"], - ) - data["annotation_mask"] = io.BytesIO(response.content) - - self._response.data = data - - return self._response - - class UnAssignFolderUseCase(BaseUseCase): def __init__( self, diff --git a/src/superannotate/lib/core/usecases/items.py b/src/superannotate/lib/core/usecases/items.py index 27dd3824b..232f66af6 100644 --- a/src/superannotate/lib/core/usecases/items.py +++ b/src/superannotate/lib/core/usecases/items.py @@ -865,6 +865,7 @@ def __init__( self.project = project self.subset_name = subset_name self.items = items + self._provided_item_count = len(items) self.results = {"succeeded": [], "failed": [], "skipped": []} self.item_ids = [] self.path_separated = defaultdict(dict) @@ -1017,20 +1018,19 @@ def __distribute_to_results(self, item_id, response, item): if item_id in response.data["success"]: self.results["succeeded"].append(item) + response.data["success"].discard(item_id) elif item_id in response.data["skipped"]: self.results["skipped"].append(item) - else: + response.data["skipped"].discard(item_id) + elif item_id in response.data["failed"]: self.results["failed"].append(item) + response.data["failed"].discard(item_id) def validate_items( self, ): filtered_items = self.__filter_duplicates() - if len(filtered_items) != len(self.items): - self.reporter.log_info( - f"Dropping duplicates. Found {len(filtered_items)} / {len(self.items)} unique items." - ) self.items = filtered_items self.items = self.__filter_invalid_items() self.__separate_to_paths() @@ -1077,10 +1077,16 @@ def execute( response = None - for i in range(0, len(self.item_ids), self.CHUNK_SIZE): + unique_item_ids = list(set(self.item_ids)) + processed_items = len(unique_item_ids) + len(self.results["skipped"]) + if self._provided_item_count > processed_items: + self.reporter.log_info( + f"Dropping duplicates. Found {processed_items} / {self._provided_item_count} unique items." + ) + for i in range(0, len(unique_item_ids), self.CHUNK_SIZE): tmp_response = self._service_provider.subsets.add_items( project=self.project, - item_ids=self.item_ids[i : i + self.CHUNK_SIZE], # noqa + item_ids=unique_item_ids[i : i + self.CHUNK_SIZE], # noqa subset=subset, ) diff --git a/src/superannotate/lib/core/video_convertor.py b/src/superannotate/lib/core/video_convertor.py index 6bce376e1..650e289ab 100644 --- a/src/superannotate/lib/core/video_convertor.py +++ b/src/superannotate/lib/core/video_convertor.py @@ -241,7 +241,7 @@ def _process(self): key = set(frames_mapping.keys()).pop() median = self.get_median(frames_mapping[key]) - interpolated_frames[1] = Annotation( + interpolated_frames[key] = Annotation( instanceId=instance_id, type=annotation_type, className=class_name, diff --git a/src/superannotate/lib/infrastructure/serviceprovider.py b/src/superannotate/lib/infrastructure/serviceprovider.py index 840fc2e6f..1a9ebd3b1 100644 --- a/src/superannotate/lib/infrastructure/serviceprovider.py +++ b/src/superannotate/lib/infrastructure/serviceprovider.py @@ -274,10 +274,10 @@ def saqul_query( data["image_index"] += self.SAQUL_CHUNK_SIZE if response: - response = ServiceResponse(status=response.status_code, data=items) + response = ServiceResponse(status=response.status_code, res_data=items) if not response.ok: response.set_error(response.error) - response = ServiceResponse(status=response.status_code, data=items) + response = ServiceResponse(status=response.status_code, res_data=items) else: - response = ServiceResponse(status=200, data=[]) + response = ServiceResponse(status=200, res_data=[]) return response diff --git a/src/superannotate/lib/infrastructure/services/annotation.py b/src/superannotate/lib/infrastructure/services/annotation.py index a1cb39473..26580e6eb 100644 --- a/src/superannotate/lib/infrastructure/services/annotation.py +++ b/src/superannotate/lib/infrastructure/services/annotation.py @@ -177,7 +177,6 @@ async def download_big_annotation( self, project: entities.ProjectEntity, download_path: str, - postfix: str, item: entities.BaseItemEntity, callback: Callable = None, ): @@ -208,7 +207,7 @@ async def download_big_annotation( res = await start_response.json() Path(download_path).mkdir(exist_ok=True, parents=True) - dest_path = Path(download_path) / (item_name + postfix) + dest_path = Path(download_path) / (item_name + ".json") with open(dest_path, "w") as fp: if callback: res = callback(res) @@ -220,7 +219,6 @@ async def download_small_annotations( folder: entities.FolderEntity, reporter: Reporter, download_path: str, - postfix: str, item_ids: List[int], callback: Callable = None, ): @@ -242,7 +240,6 @@ async def download_small_annotations( data=item_ids, params=query_params, download_path=download_path, - postfix=postfix, ) async def upload_small_annotations( @@ -293,7 +290,7 @@ async def upload_small_annotations( response.status = _response.status response._content = await _response.text() # TODO add error handling - response.data = parse_obj_as(UploadAnnotations, data_json) + response.res_data = parse_obj_as(UploadAnnotations, data_json) return response async def upload_big_annotation( @@ -341,7 +338,7 @@ async def upload_big_annotation( ), params=params, headers=headers, - data=json.dumps({"data_chunk": chunk}), + data=json.dumps({"data_chunk": chunk}, allow_nan=False), ) if not response.ok: raise AppException(str(await response.text())) diff --git a/src/superannotate/lib/infrastructure/services/annotation_class.py b/src/superannotate/lib/infrastructure/services/annotation_class.py index c86c7b401..e281649b4 100644 --- a/src/superannotate/lib/infrastructure/services/annotation_class.py +++ b/src/superannotate/lib/infrastructure/services/annotation_class.py @@ -47,7 +47,7 @@ def create( ) if not response.ok or not response.data: return response - response.data = response.data[0] + response.res_data = response.data[0] return response def delete(self, project_id: int, annotation_class_id: int) -> ServiceResponse: diff --git a/src/superannotate/lib/infrastructure/services/http_client.py b/src/superannotate/lib/infrastructure/services/http_client.py index 6c5746183..1105cfb8e 100644 --- a/src/superannotate/lib/infrastructure/services/http_client.py +++ b/src/superannotate/lib/infrastructure/services/http_client.py @@ -166,10 +166,13 @@ def paginate( if item_type: response = ServiceResponse( status=_response.status, - data=pydantic.parse_obj_as(List[item_type], total), + res_data=pydantic.parse_obj_as(List[item_type], total), ) else: - response = ServiceResponse(data=total) + response = ServiceResponse( + status=_response.status, + res_data=total, + ) if not _response.ok: response.set_error(_response.error) response.status = _response.status @@ -191,22 +194,22 @@ def serialize_response( return content_type(**data) else: data_json = response.json() - data["_error"] = data_json.get( + data["res_error"] = data_json.get( "error", data_json.get("errors", "Unknown Error") ) return content_type(**data) data_json = response.json() if dispatcher: if dispatcher in data_json: - data["data"] = data_json.pop(dispatcher) + data["res_data"] = data_json.pop(dispatcher) else: - data["data"] = data_json + data["res_data"] = data_json data_json = {} data.update(data_json) else: - data["data"] = data_json + data["res_data"] = data_json return content_type(**data) except json.decoder.JSONDecodeError: - data["_error"] = response.content + data["res_error"] = response.content data["reason"] = response.reason return content_type(**data) diff --git a/src/superannotate/lib/infrastructure/services/item.py b/src/superannotate/lib/infrastructure/services/item.py index 1870c52bf..ceff816ee 100644 --- a/src/superannotate/lib/infrastructure/services/item.py +++ b/src/superannotate/lib/infrastructure/services/item.py @@ -97,7 +97,7 @@ def list_by_names( if not response.ok: return response items.extend(response.data) - response.data = items + response.res_data = items return response def attach( diff --git a/src/superannotate/lib/infrastructure/services/subset.py b/src/superannotate/lib/infrastructure/services/subset.py index 096456ff6..54319622f 100644 --- a/src/superannotate/lib/infrastructure/services/subset.py +++ b/src/superannotate/lib/infrastructure/services/subset.py @@ -42,10 +42,10 @@ def add_items( data=data, ) if not response.ok: - response.data = {} - response.data["skipped"] = set() - response.data["failed"] = set(item_ids) - response.data["success"] = set() + response.res_data = {} + response.res_data["skipped"] = set() + response.res_data["failed"] = set(item_ids) + response.res_data["success"] = set() return response response.data["skipped"] = set(response.data["skipped"]) diff --git a/src/superannotate/lib/infrastructure/stream_data_handler.py b/src/superannotate/lib/infrastructure/stream_data_handler.py index 345ada58c..a9cc98de7 100644 --- a/src/superannotate/lib/infrastructure/stream_data_handler.py +++ b/src/superannotate/lib/infrastructure/stream_data_handler.py @@ -95,7 +95,6 @@ async def download_annotations( method: str, url: str, download_path, - postfix, data: typing.List[int], params: dict = None, ): @@ -119,16 +118,15 @@ async def download_annotations( ) self._store_annotation( download_path, - postfix, annotation, self._callback, ) self._items_downloaded += 1 @staticmethod - def _store_annotation(path, postfix, annotation: dict, callback: Callable = None): + def _store_annotation(path, annotation: dict, callback: Callable = None): os.makedirs(path, exist_ok=True) - with open(f"{path}/{annotation['metadata']['name']}{postfix}", "w") as file: + with open(f"{path}/{annotation['metadata']['name']}.json", "w") as file: annotation = callback(annotation) if callback else annotation json.dump(annotation, file) diff --git a/tests/__init__.py b/tests/__init__.py index 09837d17a..e77008503 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,3 +1,4 @@ +import logging import os import sys from pathlib import Path @@ -8,9 +9,26 @@ DATA_SET_PATH = Path(__file__).parent / "data_set" sys.path.insert(0, str(LIB_PATH)) -__all__ = ["DATA_SET_PATH"] -# from src.superannotate.lib.core import setup_logging -# -# logger = get_default_logger() -# logger.setLevel("DEBUG") +def compare_result(result: dict, expected: dict, ignore_keys: set = None): + for key in result: + if ignore_keys and key in ignore_keys: + continue + if isinstance(result[key], dict) and isinstance(expected[key], dict): + compare_result(result[key], expected[key], ignore_keys) + elif isinstance(result[key], list) and isinstance(expected[key], list): + for i in range(len(result[key])): + if isinstance(result[key][i], (dict, list)): + compare_result(result[key][i], expected[key][i], ignore_keys) + else: + assert result[key][i] == expected[key][i] + else: + try: + assert result[key] == expected[key] + except Exception: + logging.error(f"{result} == {expected}") + print(key, result[key], expected[key]) + return True + + +__all__ = ["DATA_SET_PATH", "compare_result"] diff --git a/tests/data_set/attach_video_for_annotation.csv b/tests/data_set/attach_video_for_annotation.csv index c1a22d5f1..cb56db3ab 100644 --- a/tests/data_set/attach_video_for_annotation.csv +++ b/tests/data_set/attach_video_for_annotation.csv @@ -1,2 +1,2 @@ url,name -https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4,video.mp4 +https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerEscapes.mp4,video.mp4 diff --git a/tests/data_set/sample_project_vector/example_without_postfixes/example_image_1.jpg.json b/tests/data_set/sample_project_vector/example_without_postfixes/example_image_1.jpg.json new file mode 100644 index 000000000..115cadfe1 --- /dev/null +++ b/tests/data_set/sample_project_vector/example_without_postfixes/example_image_1.jpg.json @@ -0,0 +1,2943 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "status": "Completed", + "width": 1024, + "height": 683, + "pinned": false, + "lastAction": { + "email": "shab.prog@gmail.com", + "timestamp": 1644997568 + } + }, + "comments": [ + { + "creationType": "Preannotation", + "x": 621.41, + "y": 631.6, + "resolved": true, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "creationType": "Preannotation", + "x": 521.41, + "y": 531.6, + "resolved": false, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ], + "tags": [], + "instances": [ + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "groupId": 0, + "points": { + "x1": 437.16, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle1", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117846, + "groupId": 28230, + "name": "4", + "groupName": "Num doors" + } + ], + "type": "template", + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "groupId": 0, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "groupId": 1, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "groupId": 1, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "groupId": 0, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "groupId": 0, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "groupId": 0, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "groupId": 0, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "groupId": 0, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "groupId": 0, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "groupId": 0, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "groupId": 0, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 96, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "groupId": 0, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "groupId": 0, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "groupId": 0, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Large vehicle", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "groupId": 0, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "groupId": 0, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "groupId": 0, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "groupId": 0, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + } + ] +} diff --git a/tests/data_set/sample_vector_annotations_with_NaN/classes/classes.json b/tests/data_set/sample_vector_annotations_with_NaN/classes/classes.json new file mode 100644 index 000000000..1cd652a1b --- /dev/null +++ b/tests/data_set/sample_vector_annotations_with_NaN/classes/classes.json @@ -0,0 +1,179 @@ +[ + { + "id": 55917, + "project_id": 11979, + "name": "Personal vehicle", + "color": "#ecb65f", + "count": 25, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17245, + "class_id": 55917, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62792, + "group_id": 17245, + "project_id": 11979, + "name": "2", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + }, + { + "id": 62793, + "group_id": 17245, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55918, + "project_id": 11979, + "name": "Large vehicle", + "color": "#737b28", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17246, + "class_id": 55918, + "name": "swedish", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62794, + "group_id": 17246, + "project_id": 11979, + "name": "yes", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62795, + "group_id": 17246, + "project_id": 11979, + "name": "no", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + }, + { + "id": 17247, + "class_id": 55918, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62796, + "group_id": 17247, + "project_id": 11979, + "name": "2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62797, + "group_id": 17247, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + } + ] + }, + { + "id": 55919, + "project_id": 11979, + "name": "Human", + "color": "#e4542b", + "count": 9, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:14.000Z", + "attribute_groups": [ + { + "id": 17248, + "class_id": 55919, + "name": "Height", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62798, + "group_id": 17248, + "project_id": 11979, + "name": "Tall", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62799, + "group_id": 17248, + "project_id": 11979, + "name": "Short", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55920, + "project_id": 11979, + "name": "Plant", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + }, + { + "id": 55921, + "project_id": 11979, + "type": "tag", + "name": "Tag_Class", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + }, + { + "id": 55923, + "project_id": 11979, + "type": "tag", + "name": "Tag_Class_2", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + } +] diff --git a/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg differ diff --git a/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___fuse.png b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..368a0431b Binary files /dev/null and b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___fuse.png differ diff --git a/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___objects.json b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___objects.json new file mode 100644 index 000000000..f65328e89 --- /dev/null +++ b/tests/data_set/sample_vector_annotations_with_NaN/example_image_1.jpg___objects.json @@ -0,0 +1,3160 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "width": 1024, + "height": 683, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "bbox", + "classId": 72274, + "probability": 100, + "points": { + "x1": NaN, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + }, + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "2", + "groupName": "Num doors" + } + ], + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "classId": 72274, + "probability": 100, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + }, + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "2", + "groupName": "Num doors" + } + ], + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle1" + }, + { + "type": "bbox", + "classId": 72274, + "probability": 100, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + }, + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "classId": 72274, + "probability": 100, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + }, + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "template", + "templateName": "some", + "classId": 72274, + "probability": 100, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "groupId": 0, + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "locked": false, + "visible": false, + "attributes": [ + { + "name": "4", + "groupName": "Num doors", + "groupId": 28230, + "id": 117846 + } + ], + "templateName": "HandPose", + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "classId": 72275, + "probability": 100, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + }, + "groupId": 0, + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "locked": false, + "visible": true, + "attributes": [ + { + "id": 117848, + "groupId": 28231, + "name": "no", + "groupName": "swedish" + }, + { + "id": 117850, + "groupId": 28232, + "name": "4", + "groupName": "Num doors" + } + ], + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "groupId": 0, + "pointLabels": { + "0": "Nose" + }, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "groupId": 0, + "pointLabels": { + "0": "Nose" + }, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "template", + "templateName": "some", + "classId": 72276, + "probability": 100, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "groupId": 0, + "pointLabels": { + "0": "Nose" + }, + "locked": false, + "visible": false, + "attributes": [], + "templateName": "HandPose", + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ], + "groupId": 0, + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": false, + "attributes": [], + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + }, + { + "type": "tag", + "groupId": 0, + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "locked": false, + "visible": true, + "attributes": [ + { + "id": 117848, + "groupId": 28231, + "name": "no", + "groupName": "swedish" + }, + { + "id": 117850, + "groupId": 28232, + "name": "4", + "groupName": "Num doors" + } + ], + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Tag_Class_2" + }, + { + "type": "tag", + "className": "Tag_Class", + "probability": 100, + "groupId": 0, + "locked": false, + "visible": true, + "attributes": [ + { + "id": 117848, + "groupId": 28231, + "name": "no", + "groupName": "swedish" + }, + { + "id": 117850, + "groupId": 28232, + "name": "4", + "groupName": "Num doors" + } + ], + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "error": null, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null + } + ], + "tags": [], + "comments": [ + { + "x": 621.41, + "y": 631.6, + "resolved": true, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "x": 521.41, + "y": 531.6, + "resolved": false, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ] +} diff --git a/tests/data_set/unit/annotation_5_frame.json b/tests/data_set/unit/annotation_5_frame.json new file mode 100644 index 000000000..aa53f26a1 --- /dev/null +++ b/tests/data_set/unit/annotation_5_frame.json @@ -0,0 +1,324 @@ +{ + "metadata": { + "name": "5025_9.mp4", + "duration": 5000000, + "width": 1920, + "height": 1080, + "lastAction": { + "timestamp": 1681813520356, + "email": "sa.partner.prp+adm1@gmail.com" + }, + "projectId": 128088, + "url": "short/batch_3/5025_9.mp4", + "status": "Completed", + "error": false, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "meta": { + "type": "polygon", + "classId": 1566620, + "className": "Ball", + "createdBy": { + "email": "sa.partner.prp+2@gmail.com", + "role": "Annotator" + }, + "createdAt": "2023-04-06T10:07:55.274Z", + "updatedBy": { + "email": "sa.partner.prp+adm1@gmail.com", + "role": "Admin" + }, + "updatedAt": "2023-04-18T10:25:05.287Z", + "start": 2000001, + "end": 4000001 + }, + "parameters": [ + { + "start": 2000001, + "end": 4000001, + "timestamps": [ + { + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "points": [ + 680.57, + 364.6, + 673.09, + 363.17, + 666.72, + 364.05, + 662.54, + 368.89, + 662.1, + 372.19, + 662.21, + 375.71, + 666.06, + 380.44, + 671.45, + 383.19, + 680.9, + 382.86, + 685.74, + 380.66, + 687.61, + 376.04, + 687.5, + 370.65, + 684.97, + 366.47 + ], + "timestamp": 2000001 + }, + { + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "points": [ + 673.18, + 362.78, + 665.7, + 361.35, + 659.33, + 362.23, + 655.15, + 367.07, + 654.71, + 370.37, + 654.82, + 373.89, + 658.67, + 378.62, + 664.06, + 381.37, + 673.51, + 381.04, + 678.35, + 378.84, + 680.22, + 374.22, + 680.11, + 368.83, + 677.58, + 364.65 + ], + "timestamp": 3000001 + }, + { + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "points": [ + 665.55, + 362.2, + 658.07, + 360.77, + 651.7, + 361.65, + 647.52, + 366.49, + 647.08, + 369.79, + 647.89, + 373.18, + 651.08, + 377.14, + 656.57, + 380.21, + 663.5, + 379.53, + 668.99, + 378.19, + 671.66, + 374.35, + 671.96, + 369.47, + 669.6, + 365.11 + ], + "timestamp": 4000001 + } + ] + } + ] + }, + { + "meta": { + "type": "tag", + "classId": 1566629, + "className": "env_condition", + "createdBy": { + "email": "sa.partner.prp+2@gmail.com", + "role": "Annotator" + }, + "createdAt": "2023-04-06T10:08:26.320Z", + "updatedBy": { + "email": "sa.partner.prp+2@gmail.com", + "role": "Annotator" + }, + "updatedAt": "2023-04-06T10:08:26.320Z", + "attributes": [] + } + }, + { + "meta": { + "type": "polygon", + "classId": 1566621, + "className": "Occlusion", + "createdBy": { + "email": "sa.partner.prp+adm1@gmail.com", + "role": "Admin" + }, + "createdAt": "2023-04-18T10:25:10.356Z", + "updatedBy": { + "email": "sa.partner.prp+adm1@gmail.com", + "role": "Admin" + }, + "updatedAt": "2023-04-18T10:25:20.310Z", + "start": 4000001, + "end": 4000002 + }, + "parameters": [ + { + "start": 4000001, + "end": 4000002, + "timestamps": [ + { + "attributes": [ + { + "id": 2692782, + "groupId": 686905, + "name": "1", + "groupName": "id" + }, + { + "id": 2692805, + "groupId": 686909, + "name": "true", + "groupName": "1 frame" + } + ], + "points": [ + 654.26, + 357.05, + 654.85, + 361.75, + 651.91, + 366.86, + 651.41, + 370.38, + 652.58, + 371.47, + 655.68, + 370.29, + 659.04, + 365.18, + 662.39, + 361.41, + 662.39, + 358.9, + 661.13, + 357.56 + ], + "timestamp": 4000001 + }, + { + "attributes": [ + { + "id": 2692782, + "groupId": 686905, + "name": "1", + "groupName": "id" + }, + { + "id": 2692805, + "groupId": 686909, + "name": "true", + "groupName": "1 frame" + } + ], + "points": [ + 654.26, + 357.05, + 654.85, + 361.75, + 651.91, + 366.86, + 651.41, + 370.38, + 652.58, + 371.47, + 655.68, + 370.29, + 659.04, + 365.18, + 662.39, + 361.41, + 662.39, + 358.9, + 661.13, + 357.56 + ], + "timestamp": 4000002 + } + ] + } + ] + } + ], + "tags": [] +} diff --git a/tests/data_set/unit/annotation_5_frame_expected.json b/tests/data_set/unit/annotation_5_frame_expected.json new file mode 100644 index 000000000..6f3e3c1b1 --- /dev/null +++ b/tests/data_set/unit/annotation_5_frame_expected.json @@ -0,0 +1,233 @@ +[ + { + "frame": 1, + "annotations": [] + }, + { + "frame": 2, + "annotations": [] + }, + { + "frame": 3, + "annotations": [ + { + "instanceId": 0, + "type": "polygon", + "className": "Ball", + "classId": 1566620, + "points": [ + 680.57, + 364.6, + 673.09, + 363.17, + 666.72, + 364.05, + 662.54, + 368.89, + 662.1, + 372.19, + 662.21, + 375.71, + 666.06, + 380.44, + 671.45, + 383.19, + 680.9, + 382.86, + 685.74, + 380.66, + 687.61, + 376.04, + 687.5, + 370.65, + 684.97, + 366.47 + ], + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "keyframe": true + } + ] + }, + { + "frame": 4, + "annotations": [ + { + "instanceId": 0, + "type": "polygon", + "className": "Ball", + "classId": 1566620, + "points": [ + 673.18, + 362.78, + 665.7, + 361.35, + 659.33, + 362.23, + 655.15, + 367.07, + 654.71, + 370.37, + 654.82, + 373.89, + 658.67, + 378.62, + 664.06, + 381.37, + 673.51, + 381.04, + 678.35, + 378.84, + 680.22, + 374.22, + 680.11, + 368.83, + 677.58, + 364.65 + ], + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "keyframe": true + } + ] + }, + { + "frame": 5, + "annotations": [ + { + "instanceId": 0, + "type": "polygon", + "className": "Ball", + "classId": 1566620, + "points": [ + 665.55, + 362.2, + 658.07, + 360.77, + 651.7, + 361.65, + 647.52, + 366.49, + 647.08, + 369.79, + 647.89, + 373.18, + 651.08, + 377.14, + 656.57, + 380.21, + 663.5, + 379.53, + 668.99, + 378.19, + 671.66, + 374.35, + 671.96, + 369.47, + 669.6, + 365.11 + ], + "attributes": [ + { + "id": 2692752, + "groupId": 686902, + "name": "1", + "groupName": "id" + }, + { + "id": 2692780, + "groupId": 686904, + "name": "true", + "groupName": "ball_blur" + }, + { + "id": 2692843, + "groupId": 686915, + "name": "grass", + "groupName": "background" + } + ], + "keyframe": true + }, + { + "instanceId": 2, + "type": "polygon", + "className": "Occlusion", + "classId": 1566621, + "points": [ + 654.26, + 357.05, + 654.85, + 361.75, + 651.91, + 366.86, + 651.41, + 370.38, + 652.58, + 371.47, + 655.68, + 370.29, + 659.04, + 365.18, + 662.39, + 361.41, + 662.39, + 358.9, + 661.13, + 357.56 + ], + "attributes": [ + { + "id": 2692782, + "groupId": 686905, + "name": "1", + "groupName": "id" + }, + { + "id": 2692805, + "groupId": 686909, + "name": "true", + "groupName": "1 frame" + } + ], + "keyframe": true + } + ] + } +] \ No newline at end of file diff --git a/tests/integration/annotations/test_annotation_upload_vector.py b/tests/integration/annotations/test_annotation_upload_vector.py index 6812be5b7..ffa98b97c 100644 --- a/tests/integration/annotations/test_annotation_upload_vector.py +++ b/tests/integration/annotations/test_annotation_upload_vector.py @@ -68,7 +68,7 @@ def replace_item(obj, key, replace_value): origin_annotation = replace_item(json.load(open(annotation_path)), "id", -1) origin_annotation = replace_item(origin_annotation, "groupId", -1) annotation = json.load( - open(join(tmp_dir, f"{self.IMAGE_NAME}___objects.json")) + open(join(tmp_dir, f"{self.IMAGE_NAME}.json")) ) self.assertEqual( [i["attributes"] for i in annotation["instances"]], @@ -94,7 +94,7 @@ def test_annotation_folder_upload_download(self): sa.download_image_annotations(self.PROJECT_NAME, image_name, tmp_dir) origin_annotation = json.load(open(annotation_path)) annotation = json.load( - open(join(tmp_dir, f"{image_name}___objects.json")) + open(join(tmp_dir, f"{image_name}.json")) ) self.assertEqual( len([i["attributes"] for i in annotation["instances"]]), diff --git a/tests/integration/annotations/test_annotations_pre_processing.py b/tests/integration/annotations/test_annotations_pre_processing.py index 60ec4fafc..4fdbfb9c4 100644 --- a/tests/integration/annotations/test_annotations_pre_processing.py +++ b/tests/integration/annotations/test_annotations_pre_processing.py @@ -33,7 +33,7 @@ def test_annotation_last_action_and_creation_type(self): with tempfile.TemporaryDirectory() as tmp_dir: sa.download_image_annotations(self.PROJECT_NAME, self.IMAGE_NAME, tmp_dir) annotation = json.load( - open(join(tmp_dir, f"{self.IMAGE_NAME}___objects.json")) + open(join(tmp_dir, f"{self.IMAGE_NAME}.json")) ) for instance in annotation["instances"]: self.assertEqual(instance["creationType"], "Preannotation") diff --git a/tests/integration/annotations/test_download_annotations.py b/tests/integration/annotations/test_download_annotations.py index cf225a9aa..7391a193e 100644 --- a/tests/integration/annotations/test_download_annotations.py +++ b/tests/integration/annotations/test_download_annotations.py @@ -38,11 +38,11 @@ def test_download_annotations(self): annotations_path = sa.download_annotations( f"{self.PROJECT_NAME}", temp_dir, [self.IMAGE_NAME] ) - self.assertEqual(len(os.listdir(temp_dir)), 1) + self.assertEqual(len(os.listdir(temp_dir)), 2) with open( - f"{self.folder_path}/{self.IMAGE_NAME}___objects.json" + f"{self.folder_path}/example_without_postfixes/{self.IMAGE_NAME}.json" ) as pre_annotation_file, open( - f"{annotations_path}/{self.IMAGE_NAME}___objects.json" + f"{annotations_path}/{self.IMAGE_NAME}.json" ) as post_annotation_file: pre_annotation_data = json.load(pre_annotation_file) post_annotation_data = json.load(post_annotation_file) diff --git a/tests/integration/annotations/test_upload_annotations.py b/tests/integration/annotations/test_upload_annotations.py index f2033d479..302e35519 100644 --- a/tests/integration/annotations/test_upload_annotations.py +++ b/tests/integration/annotations/test_upload_annotations.py @@ -15,6 +15,7 @@ class TestAnnotationUploadVector(BaseTestCase): PROJECT_DESCRIPTION = "Desc" PROJECT_TYPE = "Vector" TEST_FOLDER_PATH = "data_set/sample_vector_annotations_with_tag_classes" + TEST_FOLDER_PATH_NaN = "data_set/sample_vector_annotations_with_NaN" TEST_4_FOLDER_PATH = "data_set/sample_project_vector" TEST_LARGE_FOLDER_PATH = "sample_large_json_vector" IMAGE_NAME = "example_image_1.jpg" @@ -27,6 +28,12 @@ def data_set(self): def folder_path(self): return os.path.join(Path(__file__).parent.parent.parent, self.TEST_FOLDER_PATH) + @property + def folder_NaN(self): + return os.path.join( + Path(__file__).parent.parent.parent, self.TEST_FOLDER_PATH_NaN + ) + @property def large_annotations_folder_path(self): return os.path.join(DATA_SET_PATH, self.TEST_LARGE_FOLDER_PATH) @@ -39,6 +46,15 @@ def _get_annotations_from_folder(path): annotations.append(json.load(open(i))) return annotations + def test_upload_NaN_value(self): + self._attach_items() + sa.create_annotation_classes_from_classes_json( + self.PROJECT_NAME, f"{self.folder_path}/classes/classes.json" + ) + annotations = self._get_annotations_from_folder(self.folder_NaN) + _, failed, _ = sa.upload_annotations(self.PROJECT_NAME, annotations).values() + assert len(failed) == 1 + def test_annotation_folder_upload_download(self): self._attach_items() sa.create_annotation_classes_from_classes_json( diff --git a/tests/integration/classes/test_create_annotation_class.py b/tests/integration/classes/test_create_annotation_class.py index 52e344be8..aea5ac64e 100644 --- a/tests/integration/classes/test_create_annotation_class.py +++ b/tests/integration/classes/test_create_annotation_class.py @@ -49,9 +49,7 @@ def test_create_annotation_class_with_attr_and_default_value(self): } ], ) - assert "is_multiselect" not in _class["attribute_groups"][0] classes = sa.search_annotation_classes(self.PROJECT_NAME) - assert "is_multiselect" not in classes[0]["attribute_groups"][0] assert classes[0]["attribute_groups"][0]["default_value"] == "Bus" @pytest.mark.flaky(reruns=2) @@ -64,7 +62,7 @@ def test_multi_select_to_checklist(self): attribute_groups=[ { "name": "test", - "is_multiselect": 1, + "group_type": "checklist", "attributes": [{"name": "Car"}, {"name": "Track"}, {"name": "Bus"}], } ], @@ -139,7 +137,6 @@ def test_create_annotation_classes_with_empty_default_attribute(self): { "name": "Personal vehicle", "color": "#ecb65f", - "count": 25, "createdAt": "2020-10-12T11:35:20.000Z", "updatedAt": "2020-10-12T11:48:19.000Z", "attribute_groups": [ @@ -158,7 +155,6 @@ def test_create_annotation_classes_with_empty_default_attribute(self): ) classes = sa.search_annotation_classes(self.PROJECT_NAME) assert classes[0]["attribute_groups"][0]["default_value"] is None - assert "is_multiselect" not in classes[0]["attribute_groups"][0] def test_class_creation_type(self): with tempfile.TemporaryDirectory() as tmpdir_name: @@ -172,7 +168,6 @@ def test_class_creation_type(self): "project_id":7617, "name":"Personal vehicle", "color":"#547497", - "count":18, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "type": "tag", @@ -181,7 +176,6 @@ def test_class_creation_type(self): "id":21448, "class_id":56820, "name":"Large", - "is_multiselect":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z", "attributes":[ @@ -190,7 +184,6 @@ def test_class_creation_type(self): "group_id":21448, "project_id":7617, "name":"no", - "count":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z" }, @@ -199,7 +192,6 @@ def test_class_creation_type(self): "group_id":21448, "project_id":7617, "name":"yes", - "count":1, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z" } @@ -212,7 +204,6 @@ def test_class_creation_type(self): "project_id":7617, "name":"Large vehicle", "color":"#2ba36d", - "count":1, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "attribute_groups":[ @@ -220,7 +211,6 @@ def test_class_creation_type(self): "id":21449, "class_id":56821, "name":"small", - "is_multiselect":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z", "attributes":[ @@ -229,7 +219,6 @@ def test_class_creation_type(self): "group_id":21449, "project_id":7617, "name":"yes", - "count":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z" }, @@ -238,7 +227,6 @@ def test_class_creation_type(self): "group_id":21449, "project_id":7617, "name":"no", - "count":1, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z" } @@ -251,7 +239,6 @@ def test_class_creation_type(self): "project_id":7617, "name":"Pedestrian", "color":"#d4da03", - "count":3, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "attribute_groups":[ @@ -263,7 +250,6 @@ def test_class_creation_type(self): "project_id":7617, "name":"Two wheeled vehicle", "color":"#f11aec", - "count":1, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "attribute_groups":[ @@ -275,7 +261,6 @@ def test_class_creation_type(self): "project_id":7617, "name":"Traffic sign", "color":"#d8a7fd", - "count":9, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "attribute_groups":[ @@ -311,7 +296,6 @@ def test_create_annotation_class(self): "project_id":7617, "name":"Personal vehicle", "color":"#547497", - "count":18, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:48:18.000Z", "type": "tag", @@ -320,7 +304,6 @@ def test_create_annotation_class(self): "id":21448, "class_id":56820, "name":"Large", - "is_multiselect":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z", "attributes":[] @@ -354,7 +337,6 @@ def test_create_annotation_class_via_ocr_group_type(self): "class_id": 56820, "name": "Large", "group_type": "ocr", - "is_multiselect": 0, "createdAt": "2020-09-29T10:39:39.000Z", "updatedAt": "2020-09-29T10:39:39.000Z", "attributes": [], diff --git a/tests/integration/classes/test_create_annotation_classes_from_classes_json.py b/tests/integration/classes/test_create_annotation_classes_from_classes_json.py index 053c18503..f80705183 100644 --- a/tests/integration/classes/test_create_annotation_classes_from_classes_json.py +++ b/tests/integration/classes/test_create_annotation_classes_from_classes_json.py @@ -56,13 +56,6 @@ def test_invalid_json(self): except Exception as e: self.assertIn("Couldn't validate annotation classes", str(e)) - def test_create_annotations_classes_is_multiselect(self): - classes = sa.create_annotation_classes_from_classes_json( - self.PROJECT_NAME, self.large_json_path - ) - self.assertEqual(len(classes), 1500) - assert "is_multiselect" not in str(classes) - def test_create_annotation_classes_from_s3(self): annotation_classes = sa.search_annotation_classes(self.PROJECT_NAME) self.assertEqual(len(annotation_classes), 0) @@ -104,7 +97,6 @@ def test_create_annotation_class(self): "id":21448, "class_id":56820, "name":"Large", - "is_multiselect":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z", "attributes":[] @@ -149,7 +141,6 @@ def test_create_annotation_class_via_json_and_ocr_group_type(self): "class_id":56820, "name":"Large", "group_type": "ocr", - "is_multiselect":0, "createdAt":"2020-09-29T10:39:39.000Z", "updatedAt":"2020-09-29T10:39:39.000Z", "attributes":[] @@ -189,7 +180,6 @@ def test_create_annotation_classes_with_default_attribute(self): { "name": "Personal vehicle", "color": "#ecb65f", - "count": 25, "createdAt": "2020-10-12T11:35:20.000Z", "updatedAt": "2020-10-12T11:48:19.000Z", "attribute_groups": [ diff --git a/tests/integration/convertors/__init__.py b/tests/integration/convertors/__init__.py new file mode 100644 index 000000000..36753e8eb --- /dev/null +++ b/tests/integration/convertors/__init__.py @@ -0,0 +1,7 @@ +from pathlib import Path + + +DATA_SET_PATH = Path(__file__).parent / "data_set" + + +__all__ = ["DATA_SET_PATH"] diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/TestVectorAnnotationImage.json b/tests/integration/convertors/data_set/coco_instance_segmentation/TestVectorAnnotationImage.json new file mode 100644 index 000000000..a8b04850d --- /dev/null +++ b/tests/integration/convertors/data_set/coco_instance_segmentation/TestVectorAnnotationImage.json @@ -0,0 +1,5093 @@ +{ + "info": { + "description": "This is dataset.", + "url": "https://superannotate.ai", + "version": "1.0", + "year": 2023, + "contributor": "Superannotate AI", + "date_created": "25/05/2023" + }, + "licenses": [ + { + "url": "https://superannotate.ai", + "id": 1, + "name": "Superannotate AI" + } + ], + "images": [ + { + "id": 1, + "file_name": "example_image_3.jpg", + "height": 675, + "width": 1200, + "license": 1 + }, + { + "id": 2, + "file_name": "example_image_2.jpg", + "height": 1060, + "width": 1885, + "license": 1 + }, + { + "id": 3, + "file_name": "example_image_1.jpg", + "height": 683, + "width": 1024, + "license": 1 + }, + { + "id": 4, + "file_name": "example_image_4.jpg", + "height": 382, + "width": 680, + "license": 1 + } + ], + "annotations": [ + { + "id": 1, + "image_id": 1, + "segmentation": [ + [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 179.0, + 594.0, + 296.0 + ], + "area": 122097, + "category_id": 1611841 + }, + { + "id": 2, + "image_id": 1, + "segmentation": [ + [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ] + ], + "iscrowd": 0, + "bbox": [ + 833.0, + 298.0, + 366.0, + 376.0 + ], + "area": 117871, + "category_id": 1611841 + }, + { + "id": 3, + "image_id": 1, + "segmentation": [ + [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ] + ], + "iscrowd": 0, + "bbox": [ + 570.0, + 227.0, + 411.0, + 268.0 + ], + "area": 73068, + "category_id": 1611841 + }, + { + "id": 4, + "image_id": 1, + "segmentation": [ + [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ] + ], + "iscrowd": 0, + "bbox": [ + 653.0, + 158.0, + 266.0, + 104.0 + ], + "area": 15697, + "category_id": 1611841 + }, + { + "id": 5, + "image_id": 1, + "segmentation": [ + [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ] + ], + "iscrowd": 0, + "bbox": [ + 574.0, + 148.0, + 195.0, + 101.0 + ], + "area": 8674, + "category_id": 1611841 + }, + { + "id": 6, + "image_id": 1, + "segmentation": [ + [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ] + ], + "iscrowd": 0, + "bbox": [ + 1018.0, + 144.0, + 180.0, + 166.0 + ], + "area": 22065, + "category_id": 1611841 + }, + { + "id": 7, + "image_id": 1, + "segmentation": [ + [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ] + ], + "iscrowd": 0, + "bbox": [ + 928.0, + 120.0, + 176.0, + 105.0 + ], + "area": 12912, + "category_id": 1611841 + }, + { + "id": 8, + "image_id": 1, + "segmentation": [ + [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ] + ], + "iscrowd": 0, + "bbox": [ + 312.0, + 181.0, + 199.0, + 53.0 + ], + "area": 905, + "category_id": 1611841 + }, + { + "id": 9, + "image_id": 2, + "segmentation": [ + [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ] + ], + "iscrowd": 0, + "bbox": [ + 1741.0, + 707.0, + 95.0, + 73.0 + ], + "area": 5707, + "category_id": 1611841 + }, + { + "id": 10, + "image_id": 2, + "segmentation": [ + [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ] + ], + "iscrowd": 0, + "bbox": [ + 1368.0, + 1022.0, + 178.0, + 37.0 + ], + "area": 5059, + "category_id": 1611841 + }, + { + "id": 11, + "image_id": 2, + "segmentation": [ + [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ] + ], + "iscrowd": 0, + "bbox": [ + 1264.0, + 778.0, + 111.0, + 100.0 + ], + "area": 8888, + "category_id": 1611841 + }, + { + "id": 12, + "image_id": 2, + "segmentation": [ + [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ] + ], + "iscrowd": 0, + "bbox": [ + 1563.0, + 865.0, + 136.0, + 104.0 + ], + "area": 11291, + "category_id": 1611841 + }, + { + "id": 13, + "image_id": 2, + "segmentation": [ + [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ] + ], + "iscrowd": 0, + "bbox": [ + 1685.0, + 810.0, + 127.0, + 85.0 + ], + "area": 8745, + "category_id": 1611841 + }, + { + "id": 14, + "image_id": 2, + "segmentation": [ + [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ] + ], + "iscrowd": 0, + "bbox": [ + 1481.0, + 766.0, + 102.0, + 78.0 + ], + "area": 6629, + "category_id": 1611841 + }, + { + "id": 15, + "image_id": 2, + "segmentation": [ + [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ] + ], + "iscrowd": 0, + "bbox": [ + 162.0, + 734.0, + 112.0, + 75.0 + ], + "area": 6737, + "category_id": 1611841 + }, + { + "id": 16, + "image_id": 2, + "segmentation": [ + [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ] + ], + "iscrowd": 0, + "bbox": [ + 663.0, + 681.0, + 84.0, + 63.0 + ], + "area": 4458, + "category_id": 1611841 + }, + { + "id": 17, + "image_id": 2, + "segmentation": [ + [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ] + ], + "iscrowd": 0, + "bbox": [ + 339.0, + 861.0, + 166.0, + 134.0 + ], + "area": 17708, + "category_id": 1611841 + }, + { + "id": 18, + "image_id": 2, + "segmentation": [ + [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ] + ], + "iscrowd": 0, + "bbox": [ + 1001.0, + 849.0, + 136.0, + 123.0 + ], + "area": 12957, + "category_id": 1611841 + }, + { + "id": 19, + "image_id": 2, + "segmentation": [ + [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ] + ], + "iscrowd": 0, + "bbox": [ + 392.0, + 720.0, + 99.0, + 70.0 + ], + "area": 5725, + "category_id": 1611841 + }, + { + "id": 20, + "image_id": 2, + "segmentation": [ + [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ] + ], + "iscrowd": 0, + "bbox": [ + 109.0, + 810.0, + 176.0, + 137.0 + ], + "area": 19328, + "category_id": 1611841 + }, + { + "id": 21, + "image_id": 2, + "segmentation": [ + [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 688.0, + 86.0, + 65.0 + ], + "area": 4870, + "category_id": 1611841 + }, + { + "id": 22, + "image_id": 2, + "segmentation": [ + [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ] + ], + "iscrowd": 0, + "bbox": [ + 997.0, + 977.0, + 159.0, + 80.0 + ], + "area": 10751, + "category_id": 1611841 + }, + { + "id": 23, + "image_id": 2, + "segmentation": [ + [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ] + ], + "iscrowd": 0, + "bbox": [ + 277.0, + 782.0, + 111.0, + 84.0 + ], + "area": 7483, + "category_id": 1611841 + }, + { + "id": 24, + "image_id": 2, + "segmentation": [ + [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ] + ], + "iscrowd": 0, + "bbox": [ + 1648.0, + 990.0, + 173.0, + 68.0 + ], + "area": 9543, + "category_id": 1611841 + }, + { + "id": 25, + "image_id": 2, + "segmentation": [ + [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ] + ], + "iscrowd": 0, + "bbox": [ + 1338.0, + 899.0, + 157.0, + 132.0 + ], + "area": 16945, + "category_id": 1611841 + }, + { + "id": 26, + "image_id": 2, + "segmentation": [ + [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ] + ], + "iscrowd": 0, + "bbox": [ + 1033.0, + 742.0, + 109.0, + 103.0 + ], + "area": 8969, + "category_id": 1611841 + }, + { + "id": 27, + "image_id": 2, + "segmentation": [ + [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ] + ], + "iscrowd": 0, + "bbox": [ + 1252.0, + 716.0, + 95.0, + 80.0 + ], + "area": 5522, + "category_id": 1611841 + }, + { + "id": 28, + "image_id": 2, + "segmentation": [ + [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ] + ], + "iscrowd": 0, + "bbox": [ + 89.0, + 631.0, + 103.0, + 77.0 + ], + "area": 5889, + "category_id": 1611841 + }, + { + "id": 29, + "image_id": 2, + "segmentation": [ + [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ] + ], + "iscrowd": 0, + "bbox": [ + 152.0, + 680.0, + 101.0, + 66.0 + ], + "area": 5163, + "category_id": 1611841 + }, + { + "id": 30, + "image_id": 2, + "segmentation": [ + [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ] + ], + "iscrowd": 0, + "bbox": [ + 1035.0, + 572.0, + 93.0, + 121.0 + ], + "area": 8046, + "category_id": 1611842 + }, + { + "id": 31, + "image_id": 2, + "segmentation": [ + [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ] + ], + "iscrowd": 0, + "bbox": [ + 1190.0, + 577.0, + 72.0, + 80.0 + ], + "area": 4374, + "category_id": 1611842 + }, + { + "id": 32, + "image_id": 2, + "segmentation": [ + [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ] + ], + "iscrowd": 0, + "bbox": [ + 721.0, + 695.0, + 87.0, + 143.0 + ], + "area": 4225, + "category_id": 1611843 + }, + { + "id": 33, + "image_id": 3, + "segmentation": [ + [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + ], + "iscrowd": 0, + "bbox": [ + 282.0, + 373.0, + 44.0, + 18.0 + ], + "area": 584, + "category_id": 1611841 + }, + { + "id": 34, + "image_id": 3, + "segmentation": [ + [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ], + [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + ], + "iscrowd": 0, + "bbox": [ + 250.0, + 384.0, + 53.0, + 25.0 + ], + "area": 944, + "category_id": 1611841 + }, + { + "id": 35, + "image_id": 3, + "segmentation": [ + [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + ], + "iscrowd": 0, + "bbox": [ + 347.0, + 378.0, + 21.0, + 18.0 + ], + "area": 348, + "category_id": 1611841 + }, + { + "id": 36, + "image_id": 3, + "segmentation": [ + [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + ], + "iscrowd": 0, + "bbox": [ + 321.0, + 401.0, + 29.0, + 24.0 + ], + "area": 585, + "category_id": 1611841 + }, + { + "id": 37, + "image_id": 3, + "segmentation": [ + [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + ], + "iscrowd": 0, + "bbox": [ + 116.0, + 431.0, + 77.0, + 50.0 + ], + "area": 1418, + "category_id": 1611841 + }, + { + "id": 38, + "image_id": 3, + "segmentation": [ + [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + ], + "iscrowd": 0, + "bbox": [ + 121.0, + 437.0, + 38.0, + 47.0 + ], + "area": 685, + "category_id": 1611841 + }, + { + "id": 39, + "image_id": 3, + "segmentation": [ + [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + ], + "iscrowd": 0, + "bbox": [ + 85.0, + 434.0, + 62.0, + 55.0 + ], + "area": 1286, + "category_id": 1611841 + }, + { + "id": 40, + "image_id": 3, + "segmentation": [ + [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + ], + "iscrowd": 0, + "bbox": [ + 600.0, + 414.0, + 85.0, + 37.0 + ], + "area": 1207, + "category_id": 1611841 + }, + { + "id": 41, + "image_id": 3, + "segmentation": [ + [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + ], + "iscrowd": 0, + "bbox": [ + 627.0, + 421.0, + 47.0, + 30.0 + ], + "area": 283, + "category_id": 1611841 + }, + { + "id": 42, + "image_id": 3, + "segmentation": [ + [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + ], + "iscrowd": 0, + "bbox": [ + 635.0, + 423.0, + 95.0, + 38.0 + ], + "area": 2596, + "category_id": 1611841 + }, + { + "id": 43, + "image_id": 3, + "segmentation": [ + [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + ], + "iscrowd": 0, + "bbox": [ + 703.0, + 435.0, + 131.0, + 45.0 + ], + "area": 4434, + "category_id": 1611841 + }, + { + "id": 44, + "image_id": 3, + "segmentation": [ + [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + ], + "iscrowd": 0, + "bbox": [ + 940.0, + 432.0, + 84.0, + 85.0 + ], + "area": 5251, + "category_id": 1611841 + }, + { + "id": 45, + "image_id": 3, + "segmentation": [ + [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 438.0, + 126.0, + 98.0 + ], + "area": 10751, + "category_id": 1611841 + }, + { + "id": 46, + "image_id": 3, + "segmentation": [ + [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + ], + "iscrowd": 0, + "bbox": [ + 490.0, + 389.0, + 105.0, + 216.0 + ], + "area": 10112, + "category_id": 1611843 + }, + { + "id": 47, + "image_id": 3, + "segmentation": [ + [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + ], + "iscrowd": 0, + "bbox": [ + 414.0, + 467.0, + 87.0, + 143.0 + ], + "area": 4218, + "category_id": 1611843 + }, + { + "id": 48, + "image_id": 3, + "segmentation": [ + [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + ], + "iscrowd": 0, + "bbox": [ + 316.0, + 405.0, + 113.0, + 209.0 + ], + "area": 10135, + "category_id": 1611843 + }, + { + "id": 49, + "image_id": 4, + "segmentation": [ + [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ] + ], + "iscrowd": 0, + "bbox": [ + 149.0, + 143.0, + 108.0, + 87.0 + ], + "area": 7112, + "category_id": 1611841 + }, + { + "id": 50, + "image_id": 4, + "segmentation": [ + [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 271.0, + 49.0, + 91.0 + ], + "area": 3259, + "category_id": 1611841 + }, + { + "id": 51, + "image_id": 4, + "segmentation": [ + [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 355.0, + 103.0, + 27.0 + ], + "area": 2375, + "category_id": 1611841 + }, + { + "id": 52, + "image_id": 4, + "segmentation": [ + [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ] + ], + "iscrowd": 0, + "bbox": [ + 104.0, + 257.0, + 164.0, + 124.0 + ], + "area": 15891, + "category_id": 1611841 + }, + { + "id": 53, + "image_id": 4, + "segmentation": [ + [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ] + ], + "iscrowd": 0, + "bbox": [ + 251.0, + 326.0, + 146.0, + 56.0 + ], + "area": 6405, + "category_id": 1611841 + }, + { + "id": 54, + "image_id": 4, + "segmentation": [ + [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ] + ], + "iscrowd": 0, + "bbox": [ + 340.0, + 254.0, + 140.0, + 123.0 + ], + "area": 11307, + "category_id": 1611841 + }, + { + "id": 55, + "image_id": 4, + "segmentation": [ + [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ] + ], + "iscrowd": 0, + "bbox": [ + 404.0, + 201.0, + 118.0, + 105.0 + ], + "area": 6776, + "category_id": 1611841 + }, + { + "id": 56, + "image_id": 4, + "segmentation": [ + [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ] + ], + "iscrowd": 0, + "bbox": [ + 232.0, + 193.0, + 118.0, + 102.0 + ], + "area": 8926, + "category_id": 1611841 + }, + { + "id": 57, + "image_id": 4, + "segmentation": [ + [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ] + ], + "iscrowd": 0, + "bbox": [ + 420.0, + 109.0, + 38.0, + 75.0 + ], + "area": 2088, + "category_id": 1611841 + }, + { + "id": 58, + "image_id": 4, + "segmentation": [ + [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ] + ], + "iscrowd": 0, + "bbox": [ + 13.0, + 69.0, + 91.0, + 69.0 + ], + "area": 3565, + "category_id": 1611841 + }, + { + "id": 59, + "image_id": 4, + "segmentation": [ + [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ] + ], + "iscrowd": 0, + "bbox": [ + 0.0, + 102.0, + 63.0, + 152.0 + ], + "area": 8215, + "category_id": 1611842 + }, + { + "id": 60, + "image_id": 4, + "segmentation": [ + [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ] + ], + "iscrowd": 0, + "bbox": [ + 98.0, + 54.0, + 168.0, + 109.0 + ], + "area": 13453, + "category_id": 1611842 + }, + { + "id": 61, + "image_id": 4, + "segmentation": [ + [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ] + ], + "iscrowd": 0, + "bbox": [ + 301.0, + 103.0, + 122.0, + 133.0 + ], + "area": 11773, + "category_id": 1611842 + }, + { + "id": 62, + "image_id": 4, + "segmentation": [ + [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ] + ], + "iscrowd": 0, + "bbox": [ + 459.0, + 63.0, + 131.0, + 187.0 + ], + "area": 15549, + "category_id": 1611842 + } + ], + "categories": [ + { + "id": 1611841, + "name": "Personal vehicle", + "supercategory": "Personal vehicle", + "isthing": 1, + "color": [ + 65, + 152, + 24 + ] + }, + { + "id": 1611842, + "name": "Large vehicle", + "supercategory": "Large vehicle", + "isthing": 1, + "color": [ + 66, + 152, + 24 + ] + }, + { + "id": 1611843, + "name": "Human", + "supercategory": "Human", + "isthing": 1, + "color": [ + 67, + 152, + 24 + ] + }, + { + "id": 1611844, + "name": "Plant", + "supercategory": "Plant", + "isthing": 1, + "color": [ + 68, + 152, + 24 + ] + } + ] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..d059b8c53 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..154007a88 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..d017770eb Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..7289fa46c Binary files /dev/null and b/tests/integration/convertors/data_set/coco_instance_segmentation/image_set/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/TestVectorAnnotationImage.json b/tests/integration/convertors/data_set/coco_object_detection/TestVectorAnnotationImage.json new file mode 100644 index 000000000..ef2b6ca7d --- /dev/null +++ b/tests/integration/convertors/data_set/coco_object_detection/TestVectorAnnotationImage.json @@ -0,0 +1,220 @@ +{ + "info": { + "description": "This is dataset.", + "url": "https://superannotate.ai", + "version": "1.0", + "year": 2023, + "contributor": "Superannotate AI", + "date_created": "25/05/2023" + }, + "licenses": [ + { + "url": "https://superannotate.ai", + "id": 1, + "name": "Superannotate AI" + } + ], + "images": [ + { + "id": 1, + "file_name": "example_image_1.jpg", + "height": 683, + "width": 1024, + "license": 1 + }, + { + "id": 2, + "file_name": "example_image_2.jpg", + "height": 1060, + "width": 1885, + "license": 1 + }, + { + "id": 3, + "file_name": "example_image_3.jpg", + "height": 675, + "width": 1200, + "license": 1 + }, + { + "id": 4, + "file_name": "example_image_4.jpg", + "height": 382, + "width": 680, + "license": 1 + } + ], + "annotations": [ + { + "id": 1, + "image_id": 1, + "segmentation": [ + [ + 437.16, + 341.5, + 437.16, + 357.09, + 465.23, + 357.09, + 465.23, + 341.5 + ] + ], + "iscrowd": 0, + "bbox": [ + 437.16, + 341.5, + 28.069999999999993, + 15.589999999999975 + ], + "area": 437, + "category_id": 1611841 + }, + { + "id": 2, + "image_id": 1, + "segmentation": [ + [ + 480, + 340, + 480, + 350, + 490, + 350, + 490, + 340 + ] + ], + "iscrowd": 0, + "bbox": [ + 480, + 340, + 10, + 10 + ], + "area": 100, + "category_id": 1611842 + }, + { + "id": 3, + "image_id": 1, + "segmentation": [ + [ + 500, + 340, + 500, + 350, + 510, + 350, + 510, + 340 + ] + ], + "iscrowd": 0, + "bbox": [ + 500, + 340, + 10, + 10 + ], + "area": 100, + "category_id": 1611841 + }, + { + "id": 4, + "image_id": 1, + "segmentation": [ + [ + 520, + 340, + 520, + 350, + 530, + 350, + 530, + 340 + ] + ], + "iscrowd": 0, + "bbox": [ + 520, + 340, + 10, + 10 + ], + "area": 100, + "category_id": 1611841 + }, + { + "id": 5, + "image_id": 1, + "segmentation": [ + [ + 240.68, + 378.93, + 240.68, + 410.11, + 304.61, + 410.11, + 304.61, + 378.93 + ] + ], + "iscrowd": 0, + "bbox": [ + 240.68, + 378.93, + 63.93000000000001, + 31.180000000000007 + ], + "area": 1993, + "category_id": 1611842 + } + ], + "categories": [ + { + "id": 1611841, + "name": "Personal vehicle", + "supercategory": "Personal vehicle", + "isthing": 1, + "color": [ + 65, + 152, + 24 + ] + }, + { + "id": 1611842, + "name": "Large vehicle", + "supercategory": "Large vehicle", + "isthing": 1, + "color": [ + 66, + 152, + 24 + ] + }, + { + "id": 1611843, + "name": "Human", + "supercategory": "Human", + "isthing": 1, + "color": [ + 67, + 152, + 24 + ] + }, + { + "id": 1611844, + "name": "Plant", + "supercategory": "Plant", + "isthing": 1, + "color": [ + 68, + 152, + 24 + ] + } + ] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..d059b8c53 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..154007a88 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..d017770eb Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..7289fa46c Binary files /dev/null and b/tests/integration/convertors/data_set/coco_object_detection/image_set/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/classes/classes.json b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/classes/classes.json new file mode 100644 index 000000000..23f7fba6c --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/classes/classes.json @@ -0,0 +1,22 @@ +[ + { + "name": "Personal vehicle", + "color": "#1b066e", + "attribute_groups": [] + }, + { + "name": "Large vehicle", + "color": "#2e5ce0", + "attribute_groups": [] + }, + { + "name": "Human", + "color": "#4949cc", + "attribute_groups": [] + }, + { + "name": "Plant", + "color": "#460f3e", + "attribute_groups": [] + } +] \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg.json new file mode 100644 index 000000000..2a13431a2 --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg.json @@ -0,0 +1,1194 @@ +{ + "instances": [ + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ], + "className": "Human" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ], + "className": "Human" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ], + "className": "Human" + } + ], + "metadata": { + "name": "example_image_1.jpg", + "width": 1024, + "height": 683 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..d059b8c53 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg.json new file mode 100644 index 000000000..068ef5bbe --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg.json @@ -0,0 +1,1727 @@ +{ + "instances": [ + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ], + "className": "Large vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ], + "className": "Large vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ], + "className": "Human" + } + ], + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..154007a88 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg.json new file mode 100644 index 000000000..9dcbd7a9c --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg.json @@ -0,0 +1,630 @@ +{ + "instances": [ + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ], + "className": "Personal vehicle" + } + ], + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..d017770eb Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg.json new file mode 100644 index 000000000..f3e6b093a --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg.json @@ -0,0 +1,1009 @@ +{ + "instances": [ + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ], + "className": "Personal vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ], + "className": "Large vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ], + "className": "Large vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ], + "className": "Large vehicle" + }, + { + "type": "polygon", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ], + "className": "Large vehicle" + } + ], + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..7289fa46c Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_instance_segmentation_expected_result/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/classes/classes.json b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/classes/classes.json new file mode 100644 index 000000000..7d1b628c9 --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/classes/classes.json @@ -0,0 +1,22 @@ +[ + { + "name": "Personal vehicle", + "color": "#8bfbdf", + "attribute_groups": [] + }, + { + "name": "Large vehicle", + "color": "#c7b02f", + "attribute_groups": [] + }, + { + "name": "Human", + "color": "#2a164d", + "attribute_groups": [] + }, + { + "name": "Plant", + "color": "#477e14", + "attribute_groups": [] + } +] \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg.json new file mode 100644 index 000000000..a6684294f --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg.json @@ -0,0 +1,76 @@ +{ + "instances": [ + { + "type": "bbox", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": { + "x1": 437.16, + "y1": 341.5, + "x2": 465.23, + "y2": 357.09 + }, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": { + "x1": 480, + "y1": 340, + "x2": 490, + "y2": 350 + }, + "className": "Large vehicle" + }, + { + "type": "bbox", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": { + "x1": 500, + "y1": 340, + "x2": 510, + "y2": 350 + }, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": { + "x1": 520, + "y1": 340, + "x2": 530, + "y2": 350 + }, + "className": "Personal vehicle" + }, + { + "type": "bbox", + "pointLabels": {}, + "attributes": [], + "creationType": "Preannotation", + "points": { + "x1": 240.68, + "y1": 378.93, + "x2": 304.61, + "y2": 410.11 + }, + "className": "Large vehicle" + } + ], + "metadata": { + "name": "example_image_1.jpg", + "width": 1024, + "height": 683 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..d059b8c53 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg.json new file mode 100644 index 000000000..103abbb3f --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg.json @@ -0,0 +1,10 @@ +{ + "instances": [], + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..154007a88 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg.json new file mode 100644 index 000000000..c74dcf2aa --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg.json @@ -0,0 +1,10 @@ +{ + "instances": [], + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..d017770eb Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg.json b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg.json new file mode 100644 index 000000000..d003e321d --- /dev/null +++ b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg.json @@ -0,0 +1,10 @@ +{ + "instances": [], + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382 + }, + "tags": [], + "comments": [] +} \ No newline at end of file diff --git a/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..7289fa46c Binary files /dev/null and b/tests/integration/convertors/data_set/coco_to_sa_object_detection_expected_result/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/classes/classes.json b/tests/integration/convertors/data_set/sample_project_vector/classes/classes.json new file mode 100644 index 000000000..810a5a436 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector/classes/classes.json @@ -0,0 +1,157 @@ +[ + { + "id": 55917, + "project_id": 11979, + "name": "Personal vehicle", + "color": "#ecb65f", + "count": 25, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17245, + "class_id": 55917, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62792, + "group_id": 17245, + "project_id": 11979, + "name": "2", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + }, + { + "id": 62793, + "group_id": 17245, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55918, + "project_id": 11979, + "name": "Large vehicle", + "color": "#737b28", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17246, + "class_id": 55918, + "name": "swedish", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62794, + "group_id": 17246, + "project_id": 11979, + "name": "yes", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62795, + "group_id": 17246, + "project_id": 11979, + "name": "no", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + }, + { + "id": 17247, + "class_id": 55918, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62796, + "group_id": 17247, + "project_id": 11979, + "name": "2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62797, + "group_id": 17247, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + } + ] + }, + { + "id": 55919, + "project_id": 11979, + "name": "Human", + "color": "#e4542b", + "count": 9, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:14.000Z", + "attribute_groups": [ + { + "id": 17248, + "class_id": 55919, + "name": "Height", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62798, + "group_id": 17248, + "project_id": 11979, + "name": "Tall", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62799, + "group_id": 17248, + "project_id": 11979, + "name": "Short", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55920, + "project_id": 11979, + "name": "Plant", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + } +] diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg.json b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg.json new file mode 100644 index 000000000..1941e9508 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg.json @@ -0,0 +1,2943 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "status": "Completed", + "width": 1024, + "height": 683, + "pinned": false, + "lastAction": { + "email": "shab.prog@gmail.com", + "timestamp": 1644997568 + } + }, + "comments": [ + { + "creationType": "Preannotation", + "x": 621.41, + "y": 631.6, + "resolved": true, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "creationType": "Preannotation", + "x": 521.41, + "y": 531.6, + "resolved": false, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ], + "tags": [], + "instances": [ + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "groupId": 0, + "points": { + "x1": 437.16, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + } + }, + { + "creationType": "Preannotation", + "classId": 5, + "className": "Personal vehicle1", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117846, + "groupId": 28230, + "name": "4", + "groupName": "Num doors" + } + ], + "type": "template", + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "groupId": 0, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "groupId": 1, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "groupId": 1, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "groupId": 0, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "groupId": 0, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "groupId": 0, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "groupId": 0, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "groupId": 0, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "groupId": 0, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "groupId": 0, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "groupId": 0, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 96, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "groupId": 0, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "groupId": 0, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "groupId": 0, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + }, + { + "creationType": "Preannotation", + "classId": 2, + "className": "Large vehicle", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "groupId": 0, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + } + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "groupId": 0, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "groupId": 0, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "groupId": 0, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + } + ] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..368a0431b Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg.json b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg.json new file mode 100644 index 000000000..14449884a --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg.json @@ -0,0 +1,1998 @@ +{ + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 95, + "points": [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "9ee0c81d360b5aaeeb083b65f7863d52be7d908", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "fe751485fd9a28b9a39624c5110606f8a13eb497", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "d4b8b9ee86ab57be7c5afa067f5fa9cb8cc62f83", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 97, + "points": [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "68ef609bf39454907c1d87b7aabce86739a06b2c", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "125e64e93ac3c9f1c0d6b74a90529a2a59d587d5", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "28f5b6c51b70739c2cdc2692af341a7098e056b", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "ccfe97f74dece5fea03619ff669dfefe68a5e0ba", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "c2bf17c4f161e7f0419bb2c41ea07412d42224", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "4f0117afcf92115345dba62a9a2585ed294c53d0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "b54277bb2047b209ceead953f10aed42d553cef", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "95f82dd6154efc3a9d9cd45e4db0a3852d5a798d", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "7940b1490647cc4607eada6f15a7e3f94d6b9577", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "6a6929b0485169689f253af1ad9278b3cce11258", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1ce1dbabb3758d266e9217575dc1d4e9ff60b128", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "654b7f814096da7f4b71e842b6c918c36a08eacf", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "32405cbb3cec698d9036f02fed1a973c44b1deff", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1681fb7d71c3e2b0ce28cbfc24eac3ea1922e8e", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "93a1502c2bc706c3fd3884c8ce8fc20ec097ea0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "53b3eb4966d32ad0adcd8acb8623b1942ec7050", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "3f2f416c69fc616840e064fe6abf6a9f578aa2c7", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e801e4a11f7ad9b390cd4ee6c392435ba8fef570", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 98, + "points": [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "5874772e1428946f9be2b28ea88ed9cf22e625b3", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e9c738b1fd328df97c3f51616cdb574737a21eed", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ], + "groupId": 0, + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand", + "36": "Right Foot", + "53": "Left Foot" + }, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + } + ], + "tags": [ + "tag1", + "tag2" + ], + "comments": [ + { + "x": 521.41, + "y": 531.6, + "resolved": false, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "dd2", + "email": "hovnatan@superannotate.com" + } + ] + } + ] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..d54f3bdba Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg.json b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg.json new file mode 100644 index 000000000..36c8a9fec --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg.json @@ -0,0 +1,720 @@ +{ + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + } + ], + "tags": [ + "tag2", + "tag3" + ], + "comments": [] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..2c0fe5133 Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg.json b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg.json new file mode 100644 index 000000000..6ac232a88 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg.json @@ -0,0 +1,1143 @@ +{ + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + } + ], + "tags": [ + "tag1" + ], + "comments": [] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..10285ee1d Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/classes/classes.json b/tests/integration/convertors/data_set/sample_project_vector_objects_json/classes/classes.json new file mode 100644 index 000000000..810a5a436 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector_objects_json/classes/classes.json @@ -0,0 +1,157 @@ +[ + { + "id": 55917, + "project_id": 11979, + "name": "Personal vehicle", + "color": "#ecb65f", + "count": 25, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17245, + "class_id": 55917, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62792, + "group_id": 17245, + "project_id": 11979, + "name": "2", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + }, + { + "id": 62793, + "group_id": 17245, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55918, + "project_id": 11979, + "name": "Large vehicle", + "color": "#737b28", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17246, + "class_id": 55918, + "name": "swedish", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62794, + "group_id": 17246, + "project_id": 11979, + "name": "yes", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62795, + "group_id": 17246, + "project_id": 11979, + "name": "no", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + }, + { + "id": 17247, + "class_id": 55918, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62796, + "group_id": 17247, + "project_id": 11979, + "name": "2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62797, + "group_id": 17247, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + } + ] + }, + { + "id": 55919, + "project_id": 11979, + "name": "Human", + "color": "#e4542b", + "count": 9, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:14.000Z", + "attribute_groups": [ + { + "id": 17248, + "class_id": 55919, + "name": "Height", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62798, + "group_id": 17248, + "project_id": 11979, + "name": "Tall", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62799, + "group_id": 17248, + "project_id": 11979, + "name": "Short", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55920, + "project_id": 11979, + "name": "Plant", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + } +] diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..368a0431b Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___objects.json b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___objects.json new file mode 100644 index 000000000..1941e9508 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_1.jpg___objects.json @@ -0,0 +1,2943 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "status": "Completed", + "width": 1024, + "height": 683, + "pinned": false, + "lastAction": { + "email": "shab.prog@gmail.com", + "timestamp": 1644997568 + } + }, + "comments": [ + { + "creationType": "Preannotation", + "x": 621.41, + "y": 631.6, + "resolved": true, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "creationType": "Preannotation", + "x": 521.41, + "y": 531.6, + "resolved": false, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ], + "tags": [], + "instances": [ + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "groupId": 0, + "points": { + "x1": 437.16, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + } + }, + { + "creationType": "Preannotation", + "classId": 5, + "className": "Personal vehicle1", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117846, + "groupId": 28230, + "name": "4", + "groupName": "Num doors" + } + ], + "type": "template", + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "groupId": 0, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "groupId": 1, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "groupId": 1, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "groupId": 0, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "groupId": 0, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "groupId": 0, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "groupId": 0, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "groupId": 0, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "groupId": 0, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "groupId": 0, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "groupId": 0, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 96, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "groupId": 0, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "groupId": 0, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + }, + { + "creationType": "Preannotation", + "classId": 1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "groupId": 0, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + }, + { + "creationType": "Preannotation", + "classId": 2, + "className": "Large vehicle", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "groupId": 0, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + } + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": 4 + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "groupId": 0, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "groupId": 0, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + }, + { + "creationType": "Preannotation", + "classId": 3, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "groupId": 0, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + } + ] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..d54f3bdba Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___objects.json b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___objects.json new file mode 100644 index 000000000..14449884a --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_2.jpg___objects.json @@ -0,0 +1,1998 @@ +{ + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 95, + "points": [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "9ee0c81d360b5aaeeb083b65f7863d52be7d908", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "fe751485fd9a28b9a39624c5110606f8a13eb497", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "d4b8b9ee86ab57be7c5afa067f5fa9cb8cc62f83", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 97, + "points": [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "68ef609bf39454907c1d87b7aabce86739a06b2c", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "125e64e93ac3c9f1c0d6b74a90529a2a59d587d5", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "28f5b6c51b70739c2cdc2692af341a7098e056b", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "ccfe97f74dece5fea03619ff669dfefe68a5e0ba", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "c2bf17c4f161e7f0419bb2c41ea07412d42224", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "4f0117afcf92115345dba62a9a2585ed294c53d0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "b54277bb2047b209ceead953f10aed42d553cef", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "95f82dd6154efc3a9d9cd45e4db0a3852d5a798d", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "7940b1490647cc4607eada6f15a7e3f94d6b9577", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "6a6929b0485169689f253af1ad9278b3cce11258", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1ce1dbabb3758d266e9217575dc1d4e9ff60b128", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "654b7f814096da7f4b71e842b6c918c36a08eacf", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "32405cbb3cec698d9036f02fed1a973c44b1deff", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1681fb7d71c3e2b0ce28cbfc24eac3ea1922e8e", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "93a1502c2bc706c3fd3884c8ce8fc20ec097ea0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "53b3eb4966d32ad0adcd8acb8623b1942ec7050", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "3f2f416c69fc616840e064fe6abf6a9f578aa2c7", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e801e4a11f7ad9b390cd4ee6c392435ba8fef570", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 98, + "points": [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "5874772e1428946f9be2b28ea88ed9cf22e625b3", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e9c738b1fd328df97c3f51616cdb574737a21eed", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ], + "groupId": 0, + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand", + "36": "Right Foot", + "53": "Left Foot" + }, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + } + ], + "tags": [ + "tag1", + "tag2" + ], + "comments": [ + { + "x": 521.41, + "y": 531.6, + "resolved": false, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "dd2", + "email": "hovnatan@superannotate.com" + } + ] + } + ] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..2c0fe5133 Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___objects.json b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___objects.json new file mode 100644 index 000000000..36c8a9fec --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_3.jpg___objects.json @@ -0,0 +1,720 @@ +{ + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + } + ], + "tags": [ + "tag2", + "tag3" + ], + "comments": [] +} diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___fuse.png b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..10285ee1d Binary files /dev/null and b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___objects.json b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___objects.json new file mode 100644 index 000000000..6ac232a88 --- /dev/null +++ b/tests/integration/convertors/data_set/sample_project_vector_objects_json/example_image_4.jpg___objects.json @@ -0,0 +1,1143 @@ +{ + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382, + "status": "Completed", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + } + ], + "tags": [ + "tag1" + ], + "comments": [] +} diff --git a/tests/integration/convertors/test_exprort_annotation_instance_segmentation.py b/tests/integration/convertors/test_exprort_annotation_instance_segmentation.py new file mode 100644 index 000000000..c47342ab5 --- /dev/null +++ b/tests/integration/convertors/test_exprort_annotation_instance_segmentation.py @@ -0,0 +1,45 @@ +import filecmp +import tempfile +from unittest import TestCase + +from src.superannotate import export_annotation +from tests.integration.convertors import DATA_SET_PATH + + +class TestExportInstanceSegmentation(TestCase): + DATA_SET_NAME = "TestVectorAnnotationImage" + VECTOR_DATA_PATH = DATA_SET_PATH / "sample_project_vector" + VECTOR_DATA_OBJECTS_JSON_PATH = DATA_SET_PATH / "sample_project_vector_objects_json" + COCO_INSTANCE_SEGMENTATION = DATA_SET_PATH / "coco_instance_segmentation" + + def test_convertor(self): + with tempfile.TemporaryDirectory() as tmp_dir: + export_annotation( + self.VECTOR_DATA_PATH, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="instance_segmentation", + ) + dircmp = filecmp.dircmp( + DATA_SET_PATH / self.COCO_INSTANCE_SEGMENTATION, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) + + def test_convertor_objects_json(self): + with tempfile.TemporaryDirectory() as tmp_dir: + export_annotation( + self.VECTOR_DATA_OBJECTS_JSON_PATH, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="instance_segmentation", + ) + dircmp = filecmp.dircmp( + DATA_SET_PATH / self.COCO_INSTANCE_SEGMENTATION, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) diff --git a/tests/integration/convertors/test_exprort_annotation_object_detection.py b/tests/integration/convertors/test_exprort_annotation_object_detection.py new file mode 100644 index 000000000..16b9a114c --- /dev/null +++ b/tests/integration/convertors/test_exprort_annotation_object_detection.py @@ -0,0 +1,45 @@ +import filecmp +import tempfile +from unittest import TestCase + +from src.superannotate import export_annotation +from tests.integration.convertors import DATA_SET_PATH + + +class TestExportObjectDetection(TestCase): + DATA_SET_NAME = "TestVectorAnnotationImage" + VECTOR_DATA_PATH = DATA_SET_PATH / "sample_project_vector" + VECTOR_DATA_OBJECTS_JSON_PATH = DATA_SET_PATH / "sample_project_vector_objects_json" + COCO_OBJECT_DETECTION = DATA_SET_PATH / "coco_object_detection" + + def test_convertor(self): + with tempfile.TemporaryDirectory() as tmp_dir: + export_annotation( + self.VECTOR_DATA_PATH, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="object_detection", + ) + dircmp = filecmp.dircmp( + DATA_SET_PATH / self.COCO_OBJECT_DETECTION, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) + + def test_convertor_objects_json(self): + with tempfile.TemporaryDirectory() as tmp_dir: + export_annotation( + self.VECTOR_DATA_OBJECTS_JSON_PATH, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="object_detection", + ) + dircmp = filecmp.dircmp( + DATA_SET_PATH / self.COCO_OBJECT_DETECTION, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) diff --git a/tests/integration/convertors/test_import_annotation_instance_segmentation.py b/tests/integration/convertors/test_import_annotation_instance_segmentation.py new file mode 100644 index 000000000..e5ccda3a5 --- /dev/null +++ b/tests/integration/convertors/test_import_annotation_instance_segmentation.py @@ -0,0 +1,57 @@ +import filecmp +import json +import os +import tempfile +from unittest import TestCase + +from jsoncomparison import Compare +from jsoncomparison import NO_DIFF +from src.superannotate import import_annotation +from tests.integration.convertors import DATA_SET_PATH + + +class TestImportInstanceSegmentation(TestCase): + DATA_SET_NAME = "TestVectorAnnotationImage" + VECTOR_DATA_PATH = ( + DATA_SET_PATH / "coco_to_sa_instance_segmentation_expected_result" + ) + COCO_INSTANCE_SEGMENTATION = DATA_SET_PATH / "coco_instance_segmentation" + + def test_convertor(self): + with tempfile.TemporaryDirectory() as tmp_dir: + import_annotation( + self.COCO_INSTANCE_SEGMENTATION, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="instance_segmentation", + ) + dircmp = filecmp.dircmp( + self.VECTOR_DATA_PATH, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) + + json_files = [ + pos_json + for pos_json in os.listdir(self.VECTOR_DATA_PATH) + if pos_json.endswith(".json") + ] + tmp_json_files = [ + pos_json + for pos_json in os.listdir(tmp_dir) + if pos_json.endswith(".json") + ] + assert len(json_files) == len(tmp_json_files) + + for i in range(len(json_files)): + with open( + f"{self.VECTOR_DATA_PATH}/{json_files[i]}" + ) as json_file, open(f"{tmp_dir}/{tmp_json_files[i]}") as tmp_json_file: + expected_data = json.load(json_file) + actual_data = json.load(tmp_json_file) + + rules = {"instances": {"_list": ["classId"]}} + diff = Compare(rules=rules).check(expected_data, actual_data) + assert diff == NO_DIFF diff --git a/tests/integration/convertors/test_import_annotation_object_detection.py b/tests/integration/convertors/test_import_annotation_object_detection.py new file mode 100644 index 000000000..174a558f5 --- /dev/null +++ b/tests/integration/convertors/test_import_annotation_object_detection.py @@ -0,0 +1,55 @@ +import filecmp +import json +import os +import tempfile +from unittest import TestCase + +from jsoncomparison import Compare +from jsoncomparison import NO_DIFF +from src.superannotate import import_annotation +from tests.integration.convertors import DATA_SET_PATH + + +class TestImportObjectDetection(TestCase): + DATA_SET_NAME = "TestVectorAnnotationImage" + VECTOR_DATA_PATH = DATA_SET_PATH / "coco_to_sa_object_detection_expected_result" + COCO_OBJECT_DETECTION = DATA_SET_PATH / "coco_object_detection" + + def test_convertor(self): + with tempfile.TemporaryDirectory() as tmp_dir: + import_annotation( + self.COCO_OBJECT_DETECTION, + tmp_dir, + dataset_name=self.DATA_SET_NAME, + dataset_format="COCO", + project_type="Vector", + task="object_detection", + ) + dircmp = filecmp.dircmp( + self.VECTOR_DATA_PATH, + tmp_dir, + ) + assert not any([dircmp.left_only, dircmp.right_only]) + + json_files = [ + pos_json + for pos_json in os.listdir(self.VECTOR_DATA_PATH) + if pos_json.endswith(".json") + ] + tmp_json_files = [ + pos_json + for pos_json in os.listdir(tmp_dir) + if pos_json.endswith(".json") + ] + assert len(json_files) == len(tmp_json_files) + + for i in range(len(json_files)): + with open( + f"{self.VECTOR_DATA_PATH}/{json_files[i]}" + ) as json_file, open(f"{tmp_dir}/{tmp_json_files[i]}") as tmp_json_file: + expected_data = json.load(json_file) + actual_data = json.load(tmp_json_file) + + rules = {"instances": {"_list": ["classId"]}} + diff = Compare(rules=rules).check(expected_data, actual_data) + assert diff == NO_DIFF diff --git a/tests/integration/export/__init__.py b/tests/integration/export/__init__.py new file mode 100644 index 000000000..d65e60375 --- /dev/null +++ b/tests/integration/export/__init__.py @@ -0,0 +1,7 @@ +import pathlib + + +DATA_SET_PATH = pathlib.Path(__file__).parent / "data_set" + + +__all__ = ["DATA_SET_PATH"] diff --git a/tests/integration/export/data_set/sample_project_vector/classes/classes.json b/tests/integration/export/data_set/sample_project_vector/classes/classes.json new file mode 100644 index 000000000..810a5a436 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/classes/classes.json @@ -0,0 +1,157 @@ +[ + { + "id": 55917, + "project_id": 11979, + "name": "Personal vehicle", + "color": "#ecb65f", + "count": 25, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17245, + "class_id": 55917, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62792, + "group_id": 17245, + "project_id": 11979, + "name": "2", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + }, + { + "id": 62793, + "group_id": 17245, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55918, + "project_id": 11979, + "name": "Large vehicle", + "color": "#737b28", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:19.000Z", + "attribute_groups": [ + { + "id": 17246, + "class_id": 55918, + "name": "swedish", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62794, + "group_id": 17246, + "project_id": 11979, + "name": "yes", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62795, + "group_id": 17246, + "project_id": 11979, + "name": "no", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + }, + { + "id": 17247, + "class_id": 55918, + "name": "Num doors", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62796, + "group_id": 17247, + "project_id": 11979, + "name": "2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62797, + "group_id": 17247, + "project_id": 11979, + "name": "4", + "count": 1, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:46:28.000Z" + } + ] + } + ] + }, + { + "id": 55919, + "project_id": 11979, + "name": "Human", + "color": "#e4542b", + "count": 9, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:48:14.000Z", + "attribute_groups": [ + { + "id": 17248, + "class_id": 55919, + "name": "Height", + "is_multiselect": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attributes": [ + { + "id": 62798, + "group_id": 17248, + "project_id": 11979, + "name": "Tall", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + }, + { + "id": 62799, + "group_id": 17248, + "project_id": 11979, + "name": "Short", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z" + } + ] + } + ] + }, + { + "id": 55920, + "project_id": 11979, + "name": "Plant", + "color": "#46ccb2", + "count": 0, + "createdAt": "2020-10-12T11:35:20.000Z", + "updatedAt": "2020-10-12T11:35:20.000Z", + "attribute_groups": [] + } +] diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg.json b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg.json new file mode 100644 index 000000000..d550a79c1 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg.json @@ -0,0 +1,2943 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "status": "NotStarted", + "width": 1024, + "height": 683, + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "comments": [ + { + "creationType": "Preannotation", + "x": 621.41, + "y": 631.6, + "resolved": true, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "creationType": "Preannotation", + "x": 521.41, + "y": 531.6, + "resolved": false, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ], + "tags": [], + "instances": [ + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "groupId": 0, + "points": { + "x1": 437.16, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle1", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117846, + "groupId": 28230, + "name": "4", + "groupName": "Num doors" + } + ], + "type": "template", + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "groupId": 0, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "groupId": 1, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "groupId": 1, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "groupId": 0, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "groupId": 0, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "groupId": 0, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "groupId": 0, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "groupId": 0, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "groupId": 0, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "groupId": 0, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "groupId": 0, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 96, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "groupId": 0, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "groupId": 0, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "groupId": 0, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Large vehicle", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "groupId": 0, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "groupId": 0, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "groupId": 0, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "groupId": 0, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + } + ] +} diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..368a0431b Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg.json b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg.json new file mode 100644 index 000000000..0d9002419 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg.json @@ -0,0 +1,1998 @@ +{ + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 95, + "points": [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "9ee0c81d360b5aaeeb083b65f7863d52be7d908", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "fe751485fd9a28b9a39624c5110606f8a13eb497", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "d4b8b9ee86ab57be7c5afa067f5fa9cb8cc62f83", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 97, + "points": [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "68ef609bf39454907c1d87b7aabce86739a06b2c", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "125e64e93ac3c9f1c0d6b74a90529a2a59d587d5", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "28f5b6c51b70739c2cdc2692af341a7098e056b", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "ccfe97f74dece5fea03619ff669dfefe68a5e0ba", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "c2bf17c4f161e7f0419bb2c41ea07412d42224", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "4f0117afcf92115345dba62a9a2585ed294c53d0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "b54277bb2047b209ceead953f10aed42d553cef", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "95f82dd6154efc3a9d9cd45e4db0a3852d5a798d", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "7940b1490647cc4607eada6f15a7e3f94d6b9577", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "6a6929b0485169689f253af1ad9278b3cce11258", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1ce1dbabb3758d266e9217575dc1d4e9ff60b128", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "654b7f814096da7f4b71e842b6c918c36a08eacf", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "32405cbb3cec698d9036f02fed1a973c44b1deff", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1681fb7d71c3e2b0ce28cbfc24eac3ea1922e8e", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "93a1502c2bc706c3fd3884c8ce8fc20ec097ea0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "53b3eb4966d32ad0adcd8acb8623b1942ec7050", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "3f2f416c69fc616840e064fe6abf6a9f578aa2c7", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e801e4a11f7ad9b390cd4ee6c392435ba8fef570", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 98, + "points": [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "5874772e1428946f9be2b28ea88ed9cf22e625b3", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e9c738b1fd328df97c3f51616cdb574737a21eed", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ], + "groupId": 0, + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand", + "36": "Right Foot", + "53": "Left Foot" + }, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + } + ], + "tags": [ + "tag1", + "tag2" + ], + "comments": [ + { + "x": 521.41, + "y": 531.6, + "resolved": false, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "dd2", + "email": "hovnatan@superannotate.com" + } + ] + } + ] +} diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..d54f3bdba Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg.json b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg.json new file mode 100644 index 000000000..58f588e61 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg.json @@ -0,0 +1,720 @@ +{ + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + } + ], + "tags": [ + "tag2", + "tag3" + ], + "comments": [] +} diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..2c0fe5133 Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg.json b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg.json new file mode 100644 index 000000000..c6ff611b9 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg.json @@ -0,0 +1,1143 @@ +{ + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + } + ], + "tags": [ + "tag1" + ], + "comments": [] +} diff --git a/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..10285ee1d Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg new file mode 100644 index 000000000..4dee9355b Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg.json b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg.json new file mode 100644 index 000000000..d550a79c1 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg.json @@ -0,0 +1,2943 @@ +{ + "metadata": { + "name": "example_image_1.jpg", + "status": "NotStarted", + "width": 1024, + "height": 683, + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "comments": [ + { + "creationType": "Preannotation", + "x": 621.41, + "y": 631.6, + "resolved": true, + "correspondence": [ + { + "text": "Bordyuri mi mas@ petqa lini parking class-i mej myus mas@ Terrian class-i", + "email": "hovnatan@superannotate.com" + } + ] + }, + { + "creationType": "Preannotation", + "x": 521.41, + "y": 531.6, + "resolved": false, + "correspondence": [ + { + "text": "dd", + "email": "hovnatan@superannotate.com" + } + ] + } + ], + "tags": [], + "instances": [ + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "trackingId": "aaa97f80c9e54a5f2dc2e920fc92e5033d9af45b", + "groupId": 0, + "points": { + "x1": 437.16, + "x2": 465.23, + "y1": 341.5, + "y2": 357.09 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle1", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 480.0, + "x2": 490.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "10", + "groupName": "Num doors" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 500.0, + "x2": 510.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117845, + "groupId": 28230, + "name": "4", + "groupName": "Num doors1" + } + ], + "type": "bbox", + "pointLabels": {}, + "groupId": 0, + "points": { + "x1": 520.0, + "x2": 530.0, + "y1": 340.0, + "y2": 350.0 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [ + { + "id": 117846, + "groupId": 28230, + "name": "4", + "groupName": "Num doors" + } + ], + "type": "template", + "pointLabels": { + "4": "top_left", + "5": "bottom_left" + }, + "trackingId": "cbde2787e76c41be77c1079e8d090252ad701ea", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 800.8311630011381, + "y": 431.7220764160156 + }, + { + "id": 2, + "x": 834.6965942382812, + "y": 431.8820692877566 + }, + { + "id": 3, + "x": 834.6965942382812, + "y": 480.848388671875 + }, + { + "id": 4, + "x": 801.0125574701838, + "y": 480.848388671875 + }, + { + "id": 5, + "x": 702.6083268971072, + "y": 437.5428573337124 + }, + { + "id": 6, + "x": 702.5221557617188, + "y": 474.8859480851478 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 2 + }, + { + "id": 2, + "from": 2, + "to": 3 + }, + { + "id": 3, + "from": 3, + "to": 4 + }, + { + "id": 4, + "from": 4, + "to": 1 + }, + { + "id": 5, + "from": 1, + "to": 5 + }, + { + "id": 6, + "from": 5, + "to": 6 + }, + { + "id": 7, + "from": 6, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf069efee9e65463824466f442a409a137eabaee", + "groupId": 0, + "points": [ + 281.98, + 383.75, + 282.55, + 378.1, + 287.26, + 376.12, + 297.35, + 372.91, + 311.01, + 372.82, + 319.59, + 375.74, + 323.55, + 378.28, + 325.91, + 381.68, + 326.66, + 385.45, + 325.43, + 387.62, + 324.02, + 388.75, + 317.23, + 388.84, + 315.54, + 390.26, + 312.43, + 390.54, + 308.66, + 388.46, + 306.39, + 388.84, + 297.44, + 389.03, + 291.5, + 388.18, + 287.64, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "a520dde722112d1579ff65260166d02ac1c14e2", + "groupId": 1, + "points": [ + 266.9, + 384.88, + 267.47, + 404.21, + 276.23, + 404.87, + 277.65, + 407.32, + 278.78, + 407.79, + 282.17, + 407.79, + 284.15, + 407.32, + 285.19, + 403.92, + 292.73, + 403.83, + 293.29, + 405.43, + 294.99, + 406.37, + 297.53, + 406.28, + 298.57, + 405.43, + 301.12, + 404.39, + 302.15, + 402.41, + 303.38, + 395.53, + 301.49, + 391.39, + 296.12, + 389.03, + 291.78, + 388.84, + 286.79, + 384.13, + 284.9, + 384.51 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "97e8bcc305b69af97b1a51c102c22a03887410bd", + "groupId": 1, + "points": [ + 262.94, + 385.54, + 263.88, + 404.68, + 262.47, + 404.96, + 262.19, + 406.66, + 261.34, + 408.07, + 259.74, + 408.54, + 256.53, + 408.64, + 255.59, + 408.16, + 254.84, + 407.13, + 254.08, + 403.92, + 252.76, + 402.79, + 250.69, + 402.32, + 249.75, + 401.19, + 250.5, + 389.03, + 254.18, + 384.51, + 262.56, + 384.32 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "15e2bd2a9bf66c4df00df9fbe6fd6db43abc56", + "groupId": 0, + "points": [ + 348.62, + 395.91, + 367.76, + 395.34, + 367, + 384.32, + 364.36, + 378, + 349.09, + 377.81, + 346.55, + 385.54, + 346.55, + 395.82 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "98c3f3a3fdeb809c7a8de125447acce21abda84f", + "groupId": 0, + "points": [ + 325.25, + 402.32, + 321.1, + 410.99, + 321, + 424.47, + 329.21, + 424.75, + 329.49, + 423.06, + 344.57, + 423.15, + 344.85, + 424.85, + 349.94, + 424.38, + 349.09, + 409.2, + 344.57, + 401.47 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "de78e5e22b397426228bed63c15ad2f41bfe653", + "groupId": 0, + "points": [ + 114.81, + 432.5, + 149.32, + 430.8, + 169.65, + 442.24, + 187.65, + 446.05, + 192.94, + 453.25, + 192.31, + 462.14, + 189.77, + 467.44, + 183.84, + 470.83, + 177.48, + 472.52, + 169.65, + 480.57, + 163.93, + 481.62, + 160.54, + 477.18, + 159.27, + 472.73, + 159.91, + 468.28, + 159.49, + 458.76, + 156.94, + 450.71, + 136.62, + 437.37, + 119.04, + 436.52 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "7adde574ed24f845d700b0c8371122bfe667751f", + "groupId": 0, + "points": [ + 120.52, + 437.37, + 135.77, + 437.79, + 156.31, + 450.5, + 158.85, + 459.39, + 159.27, + 468.71, + 158.21, + 474.21, + 152.92, + 480.78, + 147.84, + 483.74, + 142.54, + 484.17, + 139.37, + 482.05, + 140.43, + 477.6, + 144.87, + 475.91, + 146.78, + 471.25, + 144.03, + 457.27 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "4a47c34904d5e6bafdab32f9896c4013b1ddd153", + "groupId": 0, + "points": [ + 81.46, + 437.16, + 94.38, + 435.04, + 110.9, + 433.56, + 117.67, + 434.83, + 133.77, + 448.8, + 144.99, + 457.27, + 147.32, + 471.67, + 145.62, + 475.91, + 141.6, + 477.6, + 136.31, + 485.22, + 131.65, + 487.98, + 126.78, + 488.61, + 122.97, + 472.73, + 118.52, + 464.26, + 110.9, + 455.37, + 103.06, + 441.18, + 99.89, + 438.64 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "eb882a5e0012c77a1557c47bf386b21b6f6848", + "groupId": 0, + "points": [ + 684.8, + 420.93, + 683.1, + 416.3, + 634.11, + 414.48, + 626.68, + 419.72, + 622.9, + 424.35, + 609.62, + 425.69, + 604.63, + 427.76, + 600.73, + 434.34, + 600.48, + 440.19, + 600.97, + 440.92, + 604.02, + 442.01, + 604.99, + 445.67, + 607.18, + 447.99, + 610.96, + 450.18, + 618.64, + 450.91, + 621.2, + 448.72, + 622.54, + 446.16, + 626.8, + 446.16, + 626.92, + 440.67, + 629.6, + 435.31, + 633.75, + 432.39, + 646.79, + 430.32, + 664.09, + 420.81, + 685.05, + 422.4 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "56b1a09c67ce96a1719afe9f8c2b50b3dd08cd1c", + "groupId": 0, + "points": [ + 674.69, + 421.91, + 664.82, + 421.3, + 646.66, + 430.56, + 634.24, + 432.63, + 629.85, + 435.68, + 627.29, + 440.55, + 627.05, + 444.94, + 628.14, + 447.13, + 628.63, + 447.86, + 631.68, + 448.35, + 633.38, + 451.4, + 634.48, + 452.25, + 634.72, + 446.89, + 636.43, + 437.99, + 645.57, + 434.34, + 656.53, + 431.05 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "12a358abc908ad69e8b599ab359e12ecfe1047", + "groupId": 0, + "points": [ + 729.77, + 442.26, + 729.89, + 436.04, + 726.11, + 425.93, + 719.9, + 423.86, + 676.27, + 422.93, + 670.06, + 424.22, + 656.78, + 431.41, + 641.67, + 435.68, + 636.92, + 438.12, + 635.09, + 447.25, + 634.97, + 452.86, + 635.7, + 453.71, + 640.33, + 455.17, + 643.25, + 457.86, + 649.59, + 458.22, + 652.27, + 457.86, + 654.95, + 454.32, + 656.29, + 453.47, + 664.45, + 453.96, + 667.62, + 458.71, + 668.72, + 458.95, + 671.64, + 458.95, + 673.96, + 458.34, + 676.52, + 456.76, + 678.35, + 454.32, + 686.75, + 454.93, + 689.92, + 459.56, + 691.51, + 460.78, + 696.87, + 461.27, + 699.67, + 460.29, + 702.84, + 456.51, + 705.27, + 455.91, + 706.86, + 452.37, + 708.69, + 450.79, + 722.21, + 445.18, + 725.87, + 445.43 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 96, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "8f8ef909a683eaf9852b4d9784ec63b471c58d16", + "groupId": 0, + "points": [ + 703, + 462.81, + 703, + 464.81, + 712, + 472.81, + 712, + 474.81, + 724, + 474.81, + 729, + 471.81, + 741.61, + 472.86, + 745.32, + 476.75, + 753.29, + 476.57, + 756.25, + 473.97, + 770, + 473.81, + 780, + 478.81, + 784, + 478.81, + 792, + 474.81, + 802, + 474.81, + 806, + 478.81, + 812, + 479.81, + 817, + 477.81, + 820, + 473.81, + 832.61, + 472.49, + 834, + 468.81, + 833, + 453.81, + 827, + 448.81, + 805, + 437.81, + 783, + 434.81, + 750, + 434.81, + 739, + 437.81, + 726, + 445.81, + 722, + 445.81, + 709, + 450.81, + 707, + 452.81, + 705.11, + 457.11 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "d9975dc56b159b1690fbdea7b04dd35f2ba69366", + "groupId": 0, + "points": [ + 1023.86, + 432.09, + 1019, + 434, + 1008, + 440, + 1001, + 447, + 960, + 450, + 952, + 453, + 945, + 460, + 940, + 472, + 942, + 496, + 945, + 500, + 948, + 500, + 954, + 510, + 958, + 514, + 980, + 515, + 992, + 504, + 999, + 506, + 1006, + 513, + 1009, + 514, + 1016.82, + 516.78, + 1023.86, + 515.86 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Personal vehicle", + "visible": false, + "locked": false, + "probability": 98, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "76d42d45e8b0c11a055dff75a405b515bb1dd53f", + "groupId": 0, + "points": [ + 6, + 447, + 0, + 459, + 0, + 528, + 2, + 531, + 12, + 530, + 20, + 536, + 25, + 536, + 33, + 530, + 61, + 530, + 77, + 528, + 86, + 534, + 94, + 535, + 99, + 532, + 100, + 525, + 102, + 522, + 109.39, + 521.38, + 111.09, + 529.47, + 122.6, + 528.2, + 126.44, + 491.97, + 122, + 474, + 118, + 465, + 110, + 456, + 103, + 442, + 99, + 439, + 47, + 438, + 16, + 442 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Large vehicle", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "bbox", + "pointLabels": { + "0": "Top Left", + "4": "Bottom Right" + }, + "trackingId": "ac43151b5ac2d511beac8d2ec15695f421b93882", + "groupId": 0, + "points": { + "x1": 240.68, + "x2": 304.61, + "y1": 378.93, + "y2": 410.11 + } + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "2c89e809614523cf56c9aeab932e90b87aaf5e4f", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 590.36328125, + "y": 505.471431864795 + }, + { + "id": 2, + "x": 590.2529541686341, + "y": 504.29565523299704 + }, + { + "id": 3, + "x": 590.0863828554258, + "y": 502.0855402722193 + }, + { + "id": 4, + "x": 589.8926669948704, + "y": 500.1575188822054 + }, + { + "id": 5, + "x": 588.2789742606027, + "y": 491.4069519042969 + }, + { + "id": 6, + "x": 591.6578771570227, + "y": 498.7841862403542 + }, + { + "id": 7, + "x": 592.6675015963041, + "y": 497.5725781649412 + }, + { + "id": 8, + "x": 593.4538138253348, + "y": 495.05589353721325 + }, + { + "id": 9, + "x": 591.9352490770948, + "y": 502.2054028345276 + }, + { + "id": 10, + "x": 591.4315175486134, + "y": 504.8054433249257 + }, + { + "id": 11, + "x": 591.0675032060225, + "y": 506.48433274969244 + }, + { + "id": 12, + "x": 593.6178112658826, + "y": 501.4214392039917 + }, + { + "id": 13, + "x": 592.6682424021291, + "y": 504.65690054240156 + }, + { + "id": 14, + "x": 591.8309557568896, + "y": 507.1707458496094 + }, + { + "id": 15, + "x": 594.685306758671, + "y": 499.50420568423283 + }, + { + "id": 16, + "x": 594.4346668956044, + "y": 503.3523914672602 + }, + { + "id": 17, + "x": 593.4855715573489, + "y": 505.4433191217528 + }, + { + "id": 18, + "x": 592.9555204622038, + "y": 507.0652772868338 + }, + { + "id": 19, + "x": 589.5701713142814, + "y": 496.6512277677259 + }, + { + "id": 20, + "x": 590.8887191604782, + "y": 499.291411604618 + }, + { + "id": 21, + "x": 591.1992693890583, + "y": 501.8345208353304 + }, + { + "id": 22, + "x": 591.0341186523438, + "y": 501.9896778816582 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "bab62dc810b0cee390f8d5fb5fa62fade3c8da7", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 332.9866027832032, + "y": 526.2959883676228 + }, + { + "id": 2, + "x": 332.8439004919032, + "y": 527.5132367654812 + }, + { + "id": 3, + "x": 334.35612353649776, + "y": 527.3324179308058 + }, + { + "id": 4, + "x": 336.2640990372543, + "y": 524.0976645502819 + }, + { + "id": 5, + "x": 337.51601736886164, + "y": 516.1050720214844 + }, + { + "id": 6, + "x": 339.060296362573, + "y": 524.7754271337591 + }, + { + "id": 7, + "x": 341.64884537916925, + "y": 526.5125154522543 + }, + { + "id": 8, + "x": 344.0771833147321, + "y": 527.3880219566797 + }, + { + "id": 9, + "x": 335.88342117477254, + "y": 527.9910814406194 + }, + { + "id": 10, + "x": 334.6968087835627, + "y": 529.0659044885928 + }, + { + "id": 11, + "x": 333.86405081277377, + "y": 527.8757251825314 + }, + { + "id": 12, + "x": 339.9883503337483, + "y": 529.320022177355 + }, + { + "id": 13, + "x": 338.46802612975404, + "y": 530.370269900207 + }, + { + "id": 14, + "x": 337.1430909712236, + "y": 530.7341613769531 + }, + { + "id": 15, + "x": 341.9785882300073, + "y": 531.0127476105173 + }, + { + "id": 16, + "x": 340.85258785708925, + "y": 532.1869901255352 + }, + { + "id": 17, + "x": 339.1688606346047, + "y": 532.8862634202454 + }, + { + "id": 18, + "x": 339.0958418793731, + "y": 532.8511886128618 + }, + { + "id": 19, + "x": 342.74045026171336, + "y": 523.5337313474565 + }, + { + "id": 20, + "x": 343.0975823874003, + "y": 525.8059083903495 + }, + { + "id": 21, + "x": 341.95265642103254, + "y": 527.6336142573132 + }, + { + "id": 22, + "x": 340.4774169921875, + "y": 527.7661633949826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": {}, + "trackingId": "f8f542a9e9da918d5d5cb8eed9052713302089", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 500.7473449707031, + "y": 512.2212813363728 + }, + { + "id": 2, + "x": 499.83990268916875, + "y": 511.0267255350125 + }, + { + "id": 3, + "x": 499.35212573376333, + "y": 508.78712984486833 + }, + { + "id": 4, + "x": 499.49539176186363, + "y": 505.6112143549695 + }, + { + "id": 5, + "x": 505.1166338239397, + "y": 498.2973327636719 + }, + { + "id": 6, + "x": 501.5269101321042, + "y": 506.7595579931341 + }, + { + "id": 7, + "x": 503.99778336745044, + "y": 506.673098948348 + }, + { + "id": 8, + "x": 506.9555402483259, + "y": 505.9015717613673 + }, + { + "id": 9, + "x": 501.35003494430373, + "y": 510.62224599140063 + }, + { + "id": 10, + "x": 501.986939398797, + "y": 512.5206164026553 + }, + { + "id": 11, + "x": 503.15418142800803, + "y": 512.9774707880001 + }, + { + "id": 12, + "x": 503.6314472575764, + "y": 510.3629298921987 + }, + { + "id": 13, + "x": 503.9346398992853, + "y": 513.4720155056757 + }, + { + "id": 14, + "x": 506.3155763227861, + "y": 514.4830017089844 + }, + { + "id": 15, + "x": 506.32755673586666, + "y": 510.11449321598604 + }, + { + "id": 16, + "x": 506.78978268130794, + "y": 513.0534452036602 + }, + { + "id": 17, + "x": 508.6354744041359, + "y": 513.6350427171204 + }, + { + "id": 18, + "x": 508.56245564890435, + "y": 512.0705489644243 + }, + { + "id": 19, + "x": 509.736452458979, + "y": 503.5178622068315 + }, + { + "id": 20, + "x": 510.1524224752909, + "y": 508.84887714034943 + }, + { + "id": 21, + "x": 509.8898512452513, + "y": 511.676521972157 + }, + { + "id": 22, + "x": 509.7675476074219, + "y": 511.8091321449826 + } + ], + "connections": [ + { + "id": 1, + "from": 5, + "to": 4 + }, + { + "id": 2, + "from": 3, + "to": 4 + }, + { + "id": 3, + "from": 3, + "to": 2 + }, + { + "id": 4, + "from": 2, + "to": 1 + }, + { + "id": 5, + "from": 5, + "to": 6 + }, + { + "id": 6, + "from": 6, + "to": 9 + }, + { + "id": 7, + "from": 9, + "to": 10 + }, + { + "id": 8, + "from": 10, + "to": 11 + }, + { + "id": 9, + "from": 5, + "to": 7 + }, + { + "id": 10, + "from": 7, + "to": 12 + }, + { + "id": 11, + "from": 12, + "to": 13 + }, + { + "id": 12, + "from": 13, + "to": 14 + }, + { + "id": 13, + "from": 5, + "to": 8 + }, + { + "id": 14, + "from": 8, + "to": 15 + }, + { + "id": 15, + "from": 15, + "to": 16 + }, + { + "id": 16, + "from": 16, + "to": 17 + }, + { + "id": 17, + "from": 17, + "to": 18 + }, + { + "id": 18, + "from": 5, + "to": 19 + }, + { + "id": 19, + "from": 19, + "to": 20 + }, + { + "id": 20, + "from": 20, + "to": 21 + }, + { + "id": 21, + "from": 21, + "to": 22 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "4fd95b7d6d95b7b84750e65aa89c70b9c86eb3b8", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 460.2714192848242, + "y": 486.08071083487926 + }, + { + "id": 2, + "x": 454.92882596998356, + "y": 481.9066804669699 + }, + { + "id": 3, + "x": 461.0707178220127, + "y": 481.61528130084 + }, + { + "id": 4, + "x": 462.32680898178, + "y": 482.46856689453125 + }, + { + "id": 5, + "x": 444.8684189242054, + "y": 483.808782080494 + }, + { + "id": 6, + "x": 455.8683091235324, + "y": 497.2664014146353 + }, + { + "id": 7, + "x": 439.86159351357213, + "y": 498.91779556832523 + }, + { + "id": 8, + "x": 432.98627658437374, + "y": 519.4614616257791 + }, + { + "id": 9, + "x": 415.8799309258186, + "y": 515.9119205914317 + }, + { + "id": 10, + "x": 467.5532979208077, + "y": 499.0862192385027 + }, + { + "id": 11, + "x": 479.28433580441475, + "y": 514.1935318132136 + }, + { + "id": 12, + "x": 498.51239013671875, + "y": 512.030284394326 + }, + { + "id": 13, + "x": 454.8632612058889, + "y": 546.5478157765722 + }, + { + "id": 14, + "x": 444.0484270284733, + "y": 546.0017547475499 + }, + { + "id": 15, + "x": 464.16791732413037, + "y": 546.2800095783913 + }, + { + "id": 16, + "x": 468.63255127661785, + "y": 573.6905686937465 + }, + { + "id": 17, + "x": 457.1555372435924, + "y": 577.0907707675425 + }, + { + "id": 18, + "x": 432.2792663574219, + "y": 587.0443088500142 + }, + { + "id": 19, + "x": 429.91821938954894, + "y": 606.0040783618011 + }, + { + "id": 20, + "x": 463.69909188680566, + "y": 602.9990721708784 + }, + { + "id": 21, + "x": 484.317011118421, + "y": 607.0152893066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "8894b2a1727f62631d26e885a5aaf9bc2ac2a578", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 569.4099335784475, + "y": 411.3099511426366 + }, + { + "id": 2, + "x": 565.2798621579027, + "y": 406.3627038525488 + }, + { + "id": 3, + "x": 567.377754831435, + "y": 405.3775634765625 + }, + { + "id": 4, + "x": 562.1341137290701, + "y": 404.67809199715805 + }, + { + "id": 5, + "x": 554.7715578497942, + "y": 408.0821593507321 + }, + { + "id": 6, + "x": 543.3504267346603, + "y": 422.3509408794715 + }, + { + "id": 7, + "x": 530.5325718803996, + "y": 432.4575436529285 + }, + { + "id": 8, + "x": 513.1264329109782, + "y": 468.5712030528786 + }, + { + "id": 9, + "x": 505.0783099316068, + "y": 498.26488325838557 + }, + { + "id": 10, + "x": 564.5019009957019, + "y": 431.59166109918834 + }, + { + "id": 11, + "x": 572.9879904477306, + "y": 466.0899617391194 + }, + { + "id": 12, + "x": 588.320701407949, + "y": 491.39197319472385 + }, + { + "id": 13, + "x": 547.1874731524312, + "y": 499.0241945917735 + }, + { + "id": 14, + "x": 536.2172232162276, + "y": 499.38451563669537 + }, + { + "id": 15, + "x": 558.2200212079587, + "y": 496.61095606638287 + }, + { + "id": 16, + "x": 565.8375729727319, + "y": 546.3956734358432 + }, + { + "id": 17, + "x": 545.4810409910515, + "y": 549.0779244124057 + }, + { + "id": 18, + "x": 502.6168107549702, + "y": 573.1785073042392 + }, + { + "id": 19, + "x": 506.98697907641065, + "y": 599.8044128417969 + }, + { + "id": 20, + "x": 555.6301612734296, + "y": 594.6135561518564 + }, + { + "id": 21, + "x": 585.93212890625, + "y": 602.2106018066406 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "template", + "pointLabels": { + "0": "Nose" + }, + "trackingId": "2fe1f0c6c4af879955d6f19cfcf113a6b929b73", + "groupId": 0, + "points": [ + { + "id": 1, + "x": 388.9594774956746, + "y": 424.3453820508397 + }, + { + "id": 2, + "x": 383.78257983006284, + "y": 420.2971520947363 + }, + { + "id": 3, + "x": 387.1454388819895, + "y": 419.5367736816406 + }, + { + "id": 4, + "x": 382.7214935156717, + "y": 418.8373022022362 + }, + { + "id": 5, + "x": 369.81775320578504, + "y": 421.3423522218259 + }, + { + "id": 6, + "x": 368.5353785473912, + "y": 441.4006845318153 + }, + { + "id": 7, + "x": 353.1593986570741, + "y": 443.28386811581913 + }, + { + "id": 8, + "x": 340.9145244608405, + "y": 484.88446599233174 + }, + { + "id": 9, + "x": 337.471170384727, + "y": 516.0647184634637 + }, + { + "id": 10, + "x": 380.0734310110131, + "y": 441.19236910700084 + }, + { + "id": 11, + "x": 392.6590966976267, + "y": 481.59771320396317 + }, + { + "id": 12, + "x": 411.22125244140625, + "y": 510.38843315566135 + }, + { + "id": 13, + "x": 368.27931488725477, + "y": 514.5319460566172 + }, + { + "id": 14, + "x": 361.465192188568, + "y": 515.6977785761485 + }, + { + "id": 15, + "x": 378.7043428557912, + "y": 512.1187075312266 + }, + { + "id": 16, + "x": 393.26020935016874, + "y": 556.5333687483432 + }, + { + "id": 17, + "x": 344.09536524138383, + "y": 562.7657295881869 + }, + { + "id": 18, + "x": 321.86363692684523, + "y": 598.4685463667392 + }, + { + "id": 19, + "x": 345.55514438756916, + "y": 610.3072814941406 + }, + { + "id": 20, + "x": 402.05302902711884, + "y": 603.0690004877939 + }, + { + "id": 21, + "x": 426.8170225465453, + "y": 607.0261535644531 + } + ], + "connections": [ + { + "id": 1, + "from": 1, + "to": 6 + }, + { + "id": 2, + "from": 6, + "to": 10 + }, + { + "id": 3, + "from": 10, + "to": 11 + }, + { + "id": 4, + "from": 11, + "to": 12 + }, + { + "id": 5, + "from": 7, + "to": 8 + }, + { + "id": 6, + "from": 8, + "to": 9 + }, + { + "id": 7, + "from": 14, + "to": 7 + }, + { + "id": 8, + "from": 14, + "to": 13 + }, + { + "id": 9, + "from": 13, + "to": 15 + }, + { + "id": 10, + "from": 15, + "to": 10 + }, + { + "id": 11, + "from": 7, + "to": 6 + }, + { + "id": 12, + "from": 14, + "to": 16 + }, + { + "id": 13, + "from": 15, + "to": 17 + }, + { + "id": 14, + "from": 16, + "to": 20 + }, + { + "id": 15, + "from": 20, + "to": 21 + }, + { + "id": 16, + "from": 17, + "to": 18 + }, + { + "id": 17, + "from": 18, + "to": 19 + }, + { + "id": 18, + "from": 5, + "to": 2 + }, + { + "id": 19, + "from": 2, + "to": 1 + }, + { + "id": 20, + "from": 1, + "to": 1 + }, + { + "id": 21, + "from": 3, + "to": 1 + }, + { + "id": 22, + "from": 3, + "to": 4 + } + ], + "templateName": "HandPose", + "templateId": -1 + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "bf7e1885326a2aac18619c30d310c21e8fb89e93", + "groupId": 0, + "points": [ + 496.93, + 506.95, + 500.11, + 499.6, + 499.38, + 494.21, + 500.85, + 490.53, + 502.81, + 490.04, + 503.79, + 488.32, + 505.02, + 480.97, + 507.22, + 477.3, + 510.16, + 466.51, + 520.21, + 451.32, + 522.42, + 446.41, + 524.38, + 435.63, + 541.78, + 412.84, + 543, + 408.92, + 541.78, + 405.73, + 541.78, + 398.13, + 542.51, + 394.95, + 543.74, + 392.74, + 546.19, + 389.8, + 548.4, + 388.82, + 556.97, + 388.82, + 563.35, + 391.27, + 565.06, + 393.23, + 566.29, + 396.42, + 567.76, + 405.24, + 569.23, + 409.41, + 569.23, + 412.59, + 568.25, + 414.55, + 568, + 419.45, + 565.8, + 422.4, + 562.37, + 423.62, + 561.63, + 425.09, + 561.63, + 427.05, + 566.04, + 429.5, + 568, + 433.42, + 569.72, + 445.68, + 594.96, + 498.62, + 594.96, + 502.78, + 593.98, + 505.48, + 591.53, + 508.18, + 589.82, + 508.42, + 588.35, + 505.97, + 586.88, + 500.58, + 585.4, + 499.6, + 582.46, + 499.35, + 568.98, + 481.71, + 571.19, + 508.18, + 569.96, + 510.63, + 567.76, + 510.87, + 572.66, + 595.43, + 574.87, + 597.63, + 580.01, + 598.61, + 586.39, + 598.61, + 588.84, + 599.35, + 589.33, + 601.31, + 587.86, + 604.01, + 586.88, + 604.5, + 553.3, + 604.99, + 551.09, + 601.8, + 551.09, + 592.49, + 552.81, + 589.55, + 548.15, + 554.25, + 530.51, + 572.39, + 511.88, + 586.85, + 509.67, + 587.09, + 508.69, + 593.22, + 508.69, + 596.9, + 509.92, + 599.84, + 509.67, + 601.8, + 506.49, + 602.04, + 502.57, + 598.86, + 499.87, + 594.45, + 496.93, + 584.64, + 492.52, + 581.21, + 489.58, + 576.56, + 489.82, + 571.41, + 491.05, + 570.18, + 498.15, + 569.45, + 509.67, + 565.04, + 525.11, + 547.64, + 532.22, + 546.16, + 531.98, + 541.26, + 537.12, + 538.57, + 530.51, + 510.14, + 526.34, + 513.32, + 522.42, + 489.55, + 521.19, + 477.05, + 517.76, + 485.38, + 515.31, + 489.06, + 514.57, + 493.72, + 512.61, + 495.68, + 511.39, + 498.86, + 509.43, + 506.71, + 508.94, + 514.55, + 505.51, + 515.28, + 501.83, + 514.55, + 498.15, + 510.87, + 497.91, + 507.93 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": true, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand" + }, + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "groupId": 0, + "points": [ + 418.36, + 510.31, + 423.02, + 513.25, + 429.15, + 514.48, + 433.07, + 513.25, + 441.65, + 499.04, + 448.76, + 495.36, + 449.74, + 490.7, + 446.55, + 487.52, + 444.83, + 484.33, + 446.06, + 471.59, + 448.27, + 468.89, + 453.66, + 467.18, + 459.29, + 468.16, + 464.69, + 470.61, + 465.42, + 471.59, + 466.16, + 483.6, + 464.69, + 488.25, + 464.69, + 493.4, + 467.87, + 497.57, + 482.58, + 507.37, + 486.5, + 509.33, + 500.96, + 509.09, + 500.22, + 516.93, + 499.24, + 519.13, + 481.11, + 520.61, + 475.47, + 517.42, + 472.28, + 517.17, + 471.55, + 518.4, + 470.08, + 544.62, + 470.81, + 557.12, + 474.49, + 576, + 473.02, + 599.52, + 482.09, + 602.46, + 488.21, + 605.65, + 488.46, + 608.35, + 487.97, + 609.08, + 464.2, + 610.06, + 463.46, + 603.44, + 461.74, + 600.26, + 461.74, + 597.56, + 463.95, + 595.11, + 463.22, + 591.68, + 463.95, + 580.9, + 452.92, + 587.51, + 442.87, + 590.21, + 443.85, + 591.93, + 443.36, + 592.66, + 441.89, + 591.93, + 439.93, + 592.42, + 439.2, + 593.4, + 438.95, + 597.07, + 435.52, + 601.48, + 434.3, + 608.35, + 433.07, + 609.57, + 431.35, + 603.44, + 429.64, + 602.95, + 427.92, + 584.33, + 437.48, + 582.61, + 456.35, + 572.81, + 454.88, + 567.17, + 453.17, + 563.74, + 453.41, + 559.82, + 450.96, + 556.63, + 447.53, + 554.43, + 445.81, + 551.24, + 442.14, + 550.02, + 438.95, + 522.81, + 423.27, + 523.79, + 417.63, + 521.83, + 413.95, + 516.93, + 413.71, + 515.21 + ] + }, + { + "creationType": "Preannotation", + "classId": -1, + "className": "Human", + "visible": false, + "locked": false, + "probability": 100, + "attributes": [], + "type": "polygon", + "pointLabels": {}, + "trackingId": "b4a35bf808984de199195734dfbb73b1cb5c8b5", + "groupId": 0, + "points": [ + 380.35, + 435.63, + 378.64, + 439.31, + 395.79, + 464.55, + 396.28, + 478.03, + 394.57, + 481.22, + 407.56, + 499.11, + 408.05, + 501.07, + 410.74, + 502.05, + 410.99, + 504.99, + 415.15, + 507.93, + 415.15, + 509.4, + 410.25, + 513.32, + 407.8, + 517, + 399.22, + 516.75, + 390.4, + 510.87, + 389.18, + 512.34, + 397.51, + 539.06, + 397.75, + 559.89, + 400.2, + 568.47, + 409.76, + 593.96, + 417.12, + 602.78, + 422.51, + 604.25, + 428.63, + 603.76, + 429.61, + 606.21, + 428.63, + 608.42, + 402.65, + 614.3, + 396.53, + 611.85, + 395.79, + 609.4, + 397.51, + 602.04, + 395.55, + 599.35, + 394.57, + 599.35, + 383.29, + 574.84, + 380.6, + 555.97, + 369.32, + 542, + 350.45, + 561.61, + 334.03, + 598.86, + 335.01, + 600.82, + 340.65, + 606.21, + 343.34, + 607.44, + 348.49, + 607.93, + 349.47, + 608.66, + 349.72, + 610.62, + 348.25, + 612.09, + 346.78, + 612.58, + 319.82, + 610.62, + 315.89, + 608.17, + 318.1, + 599.84, + 319.08, + 590.77, + 329.13, + 566.02, + 339.42, + 549.11, + 342.61, + 541.51, + 341.38, + 529.74, + 339.18, + 533.91, + 333.79, + 524.6, + 333.3, + 521.9, + 325.94, + 519.45, + 339.42, + 477.54, + 339.18, + 467.98, + 336.48, + 463.82, + 359.52, + 408.92, + 366.38, + 404.5, + 379.62, + 404.5, + 380.84, + 404.99, + 385.5, + 411.12, + 387.7, + 416.27, + 387.7, + 420.68, + 389.42, + 424.6, + 388.44, + 428.03, + 386.97, + 429.75, + 386.23, + 434.65 + ] + } + ] +} diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg___fuse.png new file mode 100644 index 000000000..368a0431b Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_1.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg new file mode 100644 index 000000000..3ed3019ec Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg.json b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg.json new file mode 100644 index 000000000..0d9002419 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg.json @@ -0,0 +1,1998 @@ +{ + "metadata": { + "name": "example_image_2.jpg", + "width": 1885, + "height": 1060, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 95, + "points": [ + 1741, + 722, + 1741, + 726, + 1744, + 729, + 1741, + 733, + 1742, + 769, + 1749, + 768, + 1752, + 763, + 1757, + 766, + 1759, + 779, + 1764, + 779, + 1770, + 772, + 1823, + 772, + 1826, + 774, + 1828, + 780, + 1834, + 780, + 1836, + 778, + 1836, + 744, + 1826, + 719, + 1817, + 709, + 1803, + 707, + 1763, + 707, + 1757, + 709, + 1748, + 719 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "9ee0c81d360b5aaeeb083b65f7863d52be7d908", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1546, + 1048, + 1542, + 1045, + 1531, + 1043, + 1527, + 1039, + 1526, + 1034, + 1522, + 1033, + 1519, + 1028, + 1513, + 1025, + 1500, + 1022, + 1470, + 1022, + 1459, + 1024, + 1435, + 1024, + 1405, + 1028, + 1400, + 1030, + 1399, + 1033, + 1394, + 1037, + 1393, + 1041, + 1386, + 1047, + 1374, + 1047, + 1368, + 1050, + 1369, + 1055, + 1371, + 1057, + 1382, + 1059, + 1513, + 1059, + 1543, + 1057, + 1546, + 1055 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "fe751485fd9a28b9a39624c5110606f8a13eb497", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 96, + "points": [ + 1370, + 798, + 1367, + 796, + 1361, + 796, + 1349, + 781, + 1341, + 778, + 1304, + 779, + 1282, + 782, + 1277, + 790, + 1276, + 795, + 1273, + 798, + 1264, + 801, + 1266, + 811, + 1264, + 817, + 1265, + 859, + 1267, + 861, + 1272, + 861, + 1276, + 864, + 1277, + 878, + 1285, + 878, + 1288, + 869, + 1292, + 864, + 1318, + 866, + 1344, + 866, + 1353, + 864, + 1359, + 868, + 1361, + 876, + 1364, + 878, + 1370, + 878, + 1372, + 874, + 1375, + 841, + 1371, + 826, + 1371, + 817, + 1364, + 809, + 1364, + 807, + 1371, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "d4b8b9ee86ab57be7c5afa067f5fa9cb8cc62f83", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 97, + "points": [ + 1563, + 887, + 1563, + 889, + 1569, + 896, + 1569, + 900, + 1566, + 905, + 1567, + 939, + 1568, + 942, + 1573, + 946, + 1579, + 946, + 1581, + 948, + 1582, + 958, + 1589, + 968, + 1594, + 969, + 1597, + 967, + 1603, + 958, + 1613, + 957, + 1677, + 958, + 1687, + 968, + 1690, + 969, + 1694, + 968, + 1698, + 964, + 1699, + 927, + 1694, + 918, + 1693, + 906, + 1689, + 900, + 1690, + 891, + 1680, + 880, + 1679, + 873, + 1673, + 868, + 1650, + 865, + 1596, + 866, + 1588, + 868, + 1582, + 874, + 1581, + 879, + 1578, + 882, + 1569, + 883 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "68ef609bf39454907c1d87b7aabce86739a06b2c", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1685, + 835, + 1685, + 874, + 1687, + 877, + 1700, + 879, + 1703, + 882, + 1704, + 890, + 1709, + 894, + 1714, + 895, + 1719, + 891, + 1722, + 886, + 1792, + 886, + 1795, + 888, + 1796, + 893, + 1799, + 895, + 1808, + 895, + 1811, + 892, + 1812, + 848, + 1803, + 839, + 1798, + 827, + 1783, + 813, + 1771, + 810, + 1718, + 811, + 1710, + 815, + 1701, + 824, + 1689, + 829 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "125e64e93ac3c9f1c0d6b74a90529a2a59d587d5", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 98, + "points": [ + 1481, + 781, + 1481, + 824, + 1492, + 833, + 1493, + 842, + 1502, + 842, + 1506, + 836, + 1567, + 836, + 1570, + 839, + 1570, + 841, + 1574, + 844, + 1579, + 844, + 1582, + 841, + 1583, + 801, + 1576, + 792, + 1579, + 783, + 1571, + 781, + 1564, + 771, + 1561, + 769, + 1543, + 766, + 1505, + 766, + 1498, + 768, + 1487, + 780 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "28f5b6c51b70739c2cdc2692af341a7098e056b", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 162, + 777, + 162, + 803, + 167, + 809, + 175, + 808, + 181, + 802, + 193, + 803, + 202, + 801, + 236, + 800, + 241, + 804, + 248, + 805, + 253, + 802, + 257, + 795, + 274, + 794, + 274, + 763, + 267, + 753, + 266, + 748, + 262, + 744, + 262, + 741, + 257, + 735, + 254, + 734, + 192, + 735, + 187, + 738, + 185, + 742, + 175, + 752, + 170, + 753, + 169, + 765, + 166, + 768, + 165, + 774 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "ccfe97f74dece5fea03619ff669dfefe68a5e0ba", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 666, + 700, + 667, + 708, + 663, + 716, + 663, + 741, + 667, + 744, + 671, + 744, + 679, + 739, + 724, + 739, + 732, + 744, + 737, + 744, + 740, + 738, + 747, + 732, + 746, + 701, + 738, + 695, + 738, + 688, + 731, + 681, + 684, + 681, + 678, + 687, + 678, + 690, + 675, + 695 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "c2bf17c4f161e7f0419bb2c41ea07412d42224", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 340, + 911, + 350, + 921, + 350, + 930, + 345, + 935, + 344, + 942, + 339, + 950, + 339, + 983, + 340, + 987, + 346, + 994, + 355, + 994, + 361, + 989, + 361, + 984, + 364, + 981, + 397, + 982, + 432, + 981, + 445, + 979, + 451, + 981, + 454, + 984, + 455, + 990, + 459, + 994, + 470, + 995, + 476, + 990, + 477, + 978, + 482, + 971, + 486, + 969, + 493, + 970, + 501, + 965, + 502, + 949, + 505, + 940, + 505, + 926, + 501, + 916, + 501, + 903, + 499, + 895, + 496, + 890, + 494, + 877, + 490, + 874, + 488, + 866, + 482, + 861, + 402, + 861, + 389, + 865, + 378, + 872, + 370, + 881, + 368, + 889, + 364, + 894, + 362, + 901, + 359, + 904 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "4f0117afcf92115345dba62a9a2585ed294c53d0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 1137, + 876, + 1130, + 874, + 1122, + 874, + 1118, + 870, + 1112, + 857, + 1107, + 852, + 1101, + 849, + 1032, + 851, + 1027, + 853, + 1020, + 870, + 1014, + 875, + 1002, + 876, + 1001, + 880, + 1003, + 883, + 1007, + 884, + 1010, + 889, + 1004, + 898, + 1006, + 946, + 1011, + 971, + 1018, + 972, + 1022, + 970, + 1024, + 967, + 1024, + 962, + 1027, + 959, + 1045, + 959, + 1059, + 955, + 1079, + 955, + 1089, + 957, + 1111, + 956, + 1117, + 962, + 1118, + 966, + 1121, + 969, + 1130, + 968, + 1132, + 966, + 1132, + 917, + 1129, + 905, + 1132, + 898, + 1127, + 891, + 1126, + 886, + 1129, + 883, + 1136, + 881 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "b54277bb2047b209ceead953f10aed42d553cef", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 396, + 738, + 399, + 743, + 399, + 746, + 392, + 760, + 392, + 785, + 396, + 789, + 400, + 789, + 406, + 784, + 437, + 785, + 444, + 783, + 458, + 783, + 463, + 788, + 469, + 790, + 474, + 787, + 474, + 784, + 478, + 778, + 489, + 777, + 491, + 775, + 490, + 738, + 480, + 727, + 470, + 720, + 419, + 720, + 414, + 723, + 408, + 733, + 404, + 736 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "95f82dd6154efc3a9d9cd45e4db0a3852d5a798d", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 99, + "points": [ + 277, + 812, + 271, + 810, + 183, + 810, + 173, + 812, + 163, + 820, + 152, + 826, + 142, + 837, + 141, + 842, + 131, + 850, + 125, + 850, + 121, + 854, + 121, + 858, + 123, + 860, + 122, + 870, + 116, + 876, + 115, + 883, + 110, + 891, + 109, + 933, + 111, + 941, + 118, + 945, + 124, + 945, + 137, + 937, + 150, + 935, + 215, + 936, + 220, + 939, + 226, + 947, + 239, + 947, + 241, + 946, + 242, + 941, + 242, + 926, + 249, + 919, + 255, + 918, + 263, + 922, + 277, + 921, + 280, + 916, + 280, + 890, + 285, + 869, + 281, + 845, + 282, + 831, + 279, + 824, + 279, + 816 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "7940b1490647cc4607eada6f15a7e3f94d6b9577", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1, + 698, + 0, + 747, + 2, + 751, + 23, + 749, + 27, + 747, + 35, + 748, + 45, + 746, + 49, + 751, + 57, + 753, + 66, + 743, + 70, + 741, + 82, + 743, + 86, + 740, + 86, + 704, + 68, + 688, + 16, + 688, + 8, + 691 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "6a6929b0485169689f253af1ad9278b3cce11258", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 997, + 1002, + 998, + 1009, + 1010, + 1012, + 1014, + 1015, + 1008, + 1023, + 1005, + 1030, + 1005, + 1034, + 1000, + 1038, + 998, + 1042, + 998, + 1048, + 1000, + 1050, + 999, + 1053, + 1005, + 1056, + 1124, + 1057, + 1135, + 1055, + 1150, + 1056, + 1151, + 1054, + 1151, + 1036, + 1146, + 1027, + 1146, + 1019, + 1137, + 1009, + 1149, + 1007, + 1155, + 1004, + 1156, + 1000, + 1150, + 995, + 1142, + 995, + 1136, + 997, + 1128, + 982, + 1120, + 977, + 1038, + 977, + 1031, + 979, + 1025, + 983, + 1023, + 995, + 1021, + 997, + 1003, + 997 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1ce1dbabb3758d266e9217575dc1d4e9ff60b128", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 277, + 811, + 279, + 816, + 277, + 820, + 277, + 827, + 284, + 835, + 284, + 854, + 288, + 861, + 312, + 861, + 342, + 857, + 348, + 858, + 354, + 866, + 359, + 866, + 363, + 863, + 364, + 855, + 368, + 850, + 382, + 849, + 385, + 847, + 384, + 837, + 387, + 829, + 388, + 817, + 384, + 810, + 383, + 799, + 367, + 782, + 305, + 782, + 293, + 792, + 288, + 801 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "654b7f814096da7f4b71e842b6c918c36a08eacf", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1649, + 1011, + 1655, + 1020, + 1653, + 1030, + 1649, + 1038, + 1648, + 1055, + 1651, + 1058, + 1696, + 1058, + 1726, + 1055, + 1800, + 1056, + 1814, + 1058, + 1820, + 1057, + 1821, + 1055, + 1815, + 1047, + 1815, + 1041, + 1811, + 1037, + 1808, + 1027, + 1805, + 1026, + 1803, + 1023, + 1802, + 1011, + 1793, + 1005, + 1789, + 999, + 1775, + 992, + 1735, + 990, + 1687, + 992, + 1680, + 996, + 1673, + 1003, + 1672, + 1007, + 1669, + 1010, + 1652, + 1009 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "32405cbb3cec698d9036f02fed1a973c44b1deff", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1339, + 926, + 1338, + 931, + 1347, + 940, + 1347, + 945, + 1343, + 952, + 1344, + 986, + 1348, + 997, + 1354, + 1002, + 1356, + 1009, + 1356, + 1022, + 1362, + 1031, + 1369, + 1031, + 1374, + 1029, + 1376, + 1022, + 1379, + 1019, + 1397, + 1019, + 1413, + 1021, + 1418, + 1023, + 1444, + 1023, + 1455, + 1020, + 1474, + 1020, + 1486, + 1024, + 1494, + 1023, + 1495, + 970, + 1491, + 963, + 1489, + 953, + 1485, + 949, + 1482, + 936, + 1483, + 932, + 1491, + 925, + 1487, + 922, + 1481, + 923, + 1475, + 920, + 1467, + 911, + 1466, + 906, + 1459, + 899, + 1370, + 899, + 1360, + 906, + 1359, + 917, + 1355, + 922 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "1681fb7d71c3e2b0ce28cbfc24eac3ea1922e8e", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1142, + 764, + 1138, + 761, + 1126, + 763, + 1123, + 759, + 1122, + 747, + 1117, + 742, + 1072, + 742, + 1054, + 744, + 1046, + 747, + 1044, + 750, + 1041, + 764, + 1038, + 767, + 1032, + 768, + 1038, + 773, + 1039, + 776, + 1035, + 785, + 1036, + 844, + 1049, + 844, + 1050, + 836, + 1054, + 833, + 1072, + 835, + 1117, + 833, + 1123, + 837, + 1124, + 842, + 1126, + 844, + 1133, + 845, + 1136, + 841, + 1138, + 806, + 1135, + 798, + 1134, + 784, + 1131, + 781, + 1129, + 775, + 1133, + 770, + 1140, + 769, + 1142, + 767 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "93a1502c2bc706c3fd3884c8ce8fc20ec097ea0", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1252, + 740, + 1252, + 749, + 1256, + 752, + 1255, + 767, + 1257, + 772, + 1257, + 781, + 1262, + 789, + 1263, + 796, + 1271, + 796, + 1280, + 784, + 1284, + 781, + 1292, + 779, + 1308, + 779, + 1321, + 777, + 1336, + 777, + 1341, + 779, + 1346, + 778, + 1347, + 763, + 1345, + 746, + 1342, + 743, + 1342, + 736, + 1346, + 734, + 1346, + 731, + 1337, + 728, + 1325, + 718, + 1307, + 716, + 1277, + 716, + 1270, + 719, + 1258, + 734, + 1256, + 744 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "53b3eb4966d32ad0adcd8acb8623b1942ec7050", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 184, + 638, + 179, + 633, + 173, + 631, + 124, + 631, + 115, + 636, + 109, + 643, + 105, + 651, + 100, + 655, + 94, + 655, + 91, + 662, + 89, + 686, + 93, + 708, + 103, + 708, + 107, + 701, + 115, + 698, + 160, + 698, + 180, + 679, + 192, + 677, + 192, + 654, + 185, + 643 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "3f2f416c69fc616840e064fe6abf6a9f578aa2c7", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 152, + 720, + 152, + 729, + 155, + 736, + 155, + 744, + 159, + 746, + 166, + 746, + 170, + 742, + 173, + 744, + 173, + 746, + 176, + 746, + 189, + 737, + 197, + 734, + 249, + 734, + 253, + 732, + 253, + 702, + 250, + 698, + 249, + 693, + 234, + 680, + 183, + 680, + 170, + 689, + 169, + 692, + 159, + 702 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e801e4a11f7ad9b390cd4ee6c392435ba8fef570", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 98, + "points": [ + 1048, + 572, + 1045, + 579, + 1040, + 583, + 1041, + 592, + 1040, + 597, + 1037, + 601, + 1037, + 626, + 1035, + 648, + 1037, + 655, + 1036, + 667, + 1038, + 684, + 1041, + 684, + 1045, + 680, + 1053, + 667, + 1058, + 663, + 1082, + 663, + 1097, + 661, + 1102, + 665, + 1105, + 671, + 1113, + 680, + 1117, + 693, + 1123, + 693, + 1125, + 689, + 1125, + 673, + 1127, + 666, + 1126, + 650, + 1128, + 640, + 1126, + 599, + 1120, + 594, + 1099, + 591, + 1092, + 582, + 1091, + 577, + 1086, + 572 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "5874772e1428946f9be2b28ea88ed9cf22e625b3", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 1194, + 583, + 1192, + 601, + 1190, + 604, + 1190, + 608, + 1192, + 611, + 1191, + 629, + 1193, + 647, + 1198, + 651, + 1199, + 656, + 1205, + 657, + 1209, + 649, + 1220, + 649, + 1225, + 638, + 1229, + 634, + 1236, + 634, + 1241, + 636, + 1262, + 635, + 1262, + 595, + 1259, + 591, + 1255, + 589, + 1254, + 583, + 1242, + 577, + 1206, + 577 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "e9c738b1fd328df97c3f51616cdb574737a21eed", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72276, + "probability": 100, + "points": [ + 725.84, + 738.06, + 730.5, + 741, + 736.63, + 742.23, + 740.55, + 741, + 749.13, + 726.79, + 756.24, + 723.11, + 757.22, + 718.45, + 754.03, + 715.27, + 752.31, + 712.08, + 753.54, + 699.34, + 755.75, + 696.64, + 761.14, + 694.93, + 766.77, + 695.91, + 772.17, + 698.36, + 772.9, + 699.34, + 773.64, + 711.35, + 772.17, + 716, + 772.17, + 721.15, + 775.35, + 725.32, + 790.06, + 735.12, + 793.98, + 737.08, + 808.44, + 736.84, + 807.7, + 744.68, + 806.72, + 746.88, + 788.59, + 748.36, + 782.95, + 745.17, + 779.76, + 744.92, + 779.03, + 746.15, + 777.56, + 772.37, + 778.29, + 784.87, + 781.97, + 803.75, + 780.5, + 827.27, + 789.57, + 830.21, + 795.69, + 833.4, + 795.94, + 836.1, + 795.45, + 836.83, + 771.68, + 837.81, + 770.94, + 831.19, + 769.22, + 828.01, + 769.22, + 825.31, + 771.43, + 822.86, + 770.7, + 819.43, + 771.43, + 808.65, + 760.4, + 815.26, + 750.35, + 817.96, + 751.33, + 819.68, + 750.84, + 820.41, + 749.37, + 819.68, + 747.41, + 820.17, + 746.68, + 821.15, + 746.43, + 824.82, + 743, + 829.23, + 741.78, + 836.1, + 741.46, + 838.04, + 740.55, + 837.32, + 738.83, + 831.19, + 737.12, + 830.7, + 735.4, + 812.08, + 744.96, + 810.36, + 763.83, + 800.56, + 762.36, + 794.92, + 760.65, + 791.49, + 760.89, + 787.57, + 758.44, + 784.38, + 755.01, + 782.18, + 753.29, + 778.99, + 749.62, + 777.77, + 746.43, + 750.56, + 730.75, + 751.54, + 725.11, + 749.58, + 721.43, + 744.68, + 721.19, + 742.96 + ], + "groupId": 0, + "pointLabels": { + "0": "Left Hand", + "21": "Right Hand", + "36": "Right Foot", + "53": "Left Foot" + }, + "locked": false, + "visible": true, + "attributes": [], + "trackingId": "932bda5b59db89dd68602306c70d8da62e0afdc", + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Human" + } + ], + "tags": [ + "tag1", + "tag2" + ], + "comments": [ + { + "x": 521.41, + "y": 531.6, + "resolved": false, + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "correspondence": [ + { + "text": "dd2", + "email": "hovnatan@superannotate.com" + } + ] + } + ] +} diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg___fuse.png new file mode 100644 index 000000000..d54f3bdba Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_2.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg new file mode 100644 index 000000000..be81964b7 Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg.json b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg.json new file mode 100644 index 000000000..58f588e61 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg.json @@ -0,0 +1,720 @@ +{ + "metadata": { + "name": "example_image_3.jpg", + "width": 1200, + "height": 675, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.39, + 272.46, + 4.33, + 260.62, + 30.82, + 222.01, + 17.3, + 216.66, + 41.25, + 208.77, + 58.72, + 209.33, + 72.81, + 200.03, + 99.02, + 194.96, + 182.44, + 185.09, + 280.79, + 179.18, + 315.73, + 183.97, + 319.4, + 186.78, + 359.13, + 183.4, + 380.55, + 184.25, + 441.98, + 205.38, + 485.38, + 231.59, + 561.19, + 240.89, + 562.88, + 242.3, + 568.52, + 244.27, + 583.17, + 254.7, + 585.99, + 259.21, + 589.94, + 267.95, + 593.32, + 280.63, + 594.16, + 286.83, + 593.88, + 290.21, + 580.92, + 311.06, + 575.56, + 318.11, + 573.03, + 328.82, + 573.31, + 342.91, + 571.05, + 351.36, + 567.96, + 358.97, + 565.42, + 364.05, + 561.47, + 369.12, + 556.68, + 373.35, + 549.07, + 378.14, + 544, + 380.11, + 531.88, + 382.08, + 521.46, + 381.8, + 502.57, + 372.22, + 495.25, + 364.33, + 492.43, + 359.54, + 306.15, + 408.01, + 302.21, + 414.77, + 300.23, + 415.9, + 295.72, + 416.18, + 291.5, + 418.44, + 284.17, + 441.83, + 277.41, + 449.72, + 272.9, + 457.04, + 267.26, + 463.24, + 257.96, + 468.32, + 245.28, + 471.98, + 238.23, + 472.54, + 228.93, + 474.52, + 218.22, + 474.52, + 204.13, + 470.85, + 190.61, + 462.12, + 183, + 453.94, + 176.23, + 453.1, + 168.63, + 450.84, + 165.81, + 449.43, + 161.3, + 445.49, + 158.48, + 440.7, + 157.63, + 437.88, + 156.51, + 428.02, + 89.44, + 432.81, + 79.01, + 428.3, + 72.81, + 431.4, + 62.66, + 434.5, + 57.87, + 435.34, + 48.57, + 435.63, + 46.88, + 434.5, + 46.04, + 429.99, + 44.06, + 426.04, + 0.39, + 404.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.84, + 310.57, + 1099.1, + 298.81, + 1059.15, + 297.83, + 1035.87, + 304.93, + 993.48, + 321.84, + 918, + 370.61, + 917.27, + 376.98, + 867.77, + 435.79, + 857.96, + 439.71, + 854.78, + 444.12, + 852.33, + 451.72, + 843.75, + 488.72, + 843.26, + 488.72, + 835.17, + 504.41, + 833.7, + 512.25, + 833.21, + 565.43, + 834.44, + 605.37, + 835.91, + 607.58, + 840.81, + 611.01, + 877.08, + 643.6, + 893.5, + 648.25, + 949.86, + 674.23, + 1199.33, + 674.48 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 981.04, + 326.53, + 979.55, + 317.59, + 972.1, + 288.89, + 933.33, + 276.22, + 923.27, + 270.63, + 884.88, + 245.28, + 849.85, + 237.08, + 783.88, + 227.02, + 709.72, + 229.63, + 608.34, + 256.09, + 607.6, + 256.84, + 604.62, + 264.29, + 606.85, + 267.64, + 591.94, + 294.85, + 574.43, + 320.19, + 572.94, + 328.39, + 572.94, + 340.69, + 574.05, + 343.3, + 574.43, + 347.77, + 574.43, + 360.45, + 571.44, + 368.64, + 569.95, + 375.35, + 570.33, + 394.36, + 575.17, + 413, + 576.66, + 415.98, + 580.76, + 420.08, + 583.37, + 425.67, + 587.84, + 429.77, + 592.69, + 437.22, + 596.42, + 439.46, + 600.89, + 440.58, + 612.07, + 445.42, + 627.35, + 445.79, + 640.02, + 441.69, + 645.24, + 436.1, + 684.75, + 448.03, + 716.8, + 459.96, + 729.84, + 469.65, + 741.77, + 489.77, + 750.34, + 493.87, + 754.81, + 494.62, + 765.25, + 494.62, + 779.41, + 490.52, + 786.12, + 487.16, + 793.57, + 480.45, + 798.79, + 472.25, + 802.14, + 463.68, + 802.89, + 456.6, + 804.01, + 453.62, + 804.38, + 440.58, + 893.83, + 403.31, + 915.82, + 378.33, + 918.05, + 368.27, + 976.19, + 331.75 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 653.44, + 240.81, + 656.42, + 217.7, + 703.01, + 171.86, + 763.76, + 158.44, + 811.84, + 159.19, + 840.16, + 164.41, + 843.51, + 166.64, + 846.87, + 167.76, + 855.81, + 177.08, + 861.4, + 181.18, + 865.88, + 185.65, + 867.74, + 186.77, + 873.33, + 187.51, + 879.29, + 192.36, + 898.67, + 192.73, + 907.25, + 196.83, + 914.7, + 205.03, + 919.17, + 215.09, + 918.43, + 242.3, + 912.84, + 262.43, + 885.26, + 244.16, + 785.75, + 226.27, + 707.85, + 228.88, + 659.03, + 242.3 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 770.09, + 156.21, + 763.76, + 153.23, + 689.96, + 148.01, + 647.1, + 152.85, + 634.06, + 158.44, + 619.15, + 168.51, + 611.7, + 172.23, + 608.71, + 174.84, + 586.35, + 181.92, + 581.51, + 186.02, + 579.64, + 196.83, + 579.64, + 203.54, + 577.78, + 209.88, + 574.05, + 215.47, + 573.68, + 223.29, + 577.78, + 230.75, + 582.25, + 235.96, + 595.3, + 239.69, + 604.99, + 240.81, + 611.32, + 244.16, + 614.68, + 247.15, + 618.4, + 248.64, + 628.84, + 248.64, + 651.95, + 243.42, + 654.93, + 217.7, + 702.26, + 171.11 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1198.32, + 145.4, + 1134.59, + 143.91, + 1118.57, + 145.77, + 1113.72, + 148.38, + 1107.38, + 150.24, + 1102.17, + 154.72, + 1097.32, + 162.54, + 1093.97, + 171.49, + 1090.24, + 177.08, + 1081.67, + 185.28, + 1028.37, + 202.05, + 1022.04, + 212.48, + 1018.31, + 235.22, + 1018.68, + 249.75, + 1020.92, + 253.11, + 1023.53, + 254.97, + 1035.08, + 260.56, + 1037.32, + 264.29, + 1039.93, + 297.09, + 1043.28, + 301.56, + 1058.93, + 297.09, + 1079.06, + 298.2, + 1080.55, + 295.97, + 1082.79, + 288.89, + 1082.79, + 282.18, + 1174.84, + 293.36, + 1178.57, + 306.4, + 1180.43, + 308.27, + 1182.67, + 309.39, + 1197.95, + 309.76 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 1104.78, + 149.87, + 1073.84, + 127.14, + 1046.63, + 123.04, + 1016.82, + 120.06, + 948.99, + 128.25, + 947.5, + 129.37, + 929.61, + 161.8, + 928.49, + 168.13, + 928.49, + 194.22, + 930.73, + 199.81, + 932.22, + 200.93, + 935.57, + 201.68, + 938.55, + 203.91, + 938.93, + 209.88, + 940.04, + 213.6, + 946.01, + 224.04, + 959.42, + 224.78, + 963.9, + 220.68, + 965.01, + 218.45, + 965.01, + 215.47, + 1019.06, + 214.72, + 1019.8, + 212.11, + 1026.51, + 201.68, + 1081.3, + 184.53, + 1090.61, + 175.21 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 311.68, + 181.44, + 374.66, + 182.42, + 320.01, + 185.86 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 394.51, + 187.08, + 470.97, + 212.81, + 502.34, + 221.88, + 509.2, + 228.25, + 510.67, + 233.64, + 484.69, + 230.95, + 438.62, + 204.72, + 397.7, + 190.02, + 390.35, + 186.35 + ], + "groupId": 1, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + } + ], + "tags": [ + "tag2", + "tag3" + ], + "comments": [] +} diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg___fuse.png new file mode 100644 index 000000000..2c0fe5133 Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_3.jpg___fuse.png differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg new file mode 100644 index 000000000..5a530049d Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg differ diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg.json b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg.json new file mode 100644 index 000000000..c6ff611b9 --- /dev/null +++ b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg.json @@ -0,0 +1,1143 @@ +{ + "metadata": { + "name": "example_image_4.jpg", + "width": 680, + "height": 382, + "status": "NotStarted", + "pinned": false, + "isPredicted": null, + "projectId": null, + "annotatorEmail": null, + "qaEmail": null + }, + "instances": [ + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 150.76, + 215.35, + 151.45, + 224.38, + 152.7, + 226.18, + 158.12, + 226.74, + 159.23, + 226.32, + 160.48, + 219.24, + 188.67, + 223.13, + 214.5, + 223.13, + 217.27, + 229.51, + 222.27, + 229.24, + 226.02, + 227.57, + 228.8, + 217.85, + 243.93, + 206.32, + 245.88, + 210.63, + 250.32, + 211.18, + 252.68, + 210.07, + 255.32, + 204.52, + 257.13, + 186.05, + 254.35, + 164.66, + 244.07, + 147.45, + 236.02, + 146.06, + 215.74, + 144.11, + 190.89, + 143, + 180.75, + 150.64, + 171.45, + 159.53, + 167.14, + 164.66, + 163.39, + 170.36, + 161.03, + 167.3, + 157.14, + 167.86, + 155.06, + 168.97, + 154.51, + 170.22, + 154.64, + 171.33, + 158.53, + 173.83, + 160.06, + 174.25, + 153.53, + 185.08, + 151.73, + 196.88, + 149.23, + 205.91 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.07, + 270.84, + 10.21, + 271.08, + 15.77, + 272.77, + 22.89, + 279.29, + 25.43, + 280.5, + 32.31, + 285.93, + 39.8, + 289.07, + 42.7, + 292.09, + 45.47, + 296.32, + 48.25, + 301.27, + 49.22, + 305.13, + 45.71, + 336.53, + 44.39, + 339.91, + 42.94, + 342.2, + 38.83, + 344.38, + 34.24, + 344.98, + 31.22, + 344.98, + 28.33, + 343.41, + 0.07, + 362.49 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 0.15, + 363.3, + 4.62, + 360.62, + 10.53, + 359.01, + 44.89, + 355.07, + 77.63, + 358.11, + 94.09, + 363.3, + 97.49, + 366.34, + 100.89, + 371, + 102.15, + 374.4, + 102.5, + 381.73, + 0.51, + 381.73 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 110.2, + 380.84, + 105.72, + 373.68, + 103.75, + 367.95, + 106.44, + 338.61, + 108.05, + 331.81, + 125.41, + 312.48, + 117, + 308.37, + 115.92, + 307.29, + 115.38, + 304.97, + 115.56, + 301.93, + 116.64, + 300.49, + 117.89, + 299.96, + 120.93, + 299.96, + 125.41, + 301.75, + 126.66, + 302.82, + 128.09, + 308.37, + 151.35, + 276.87, + 169.96, + 261.84, + 178.91, + 256.83, + 223.11, + 258.26, + 244.94, + 266.5, + 254.78, + 276.69, + 258.36, + 283.49, + 263.37, + 288.68, + 266.05, + 293.34, + 267.3, + 300.49, + 267.66, + 313.2, + 262.83, + 348.09, + 262.83, + 347.73, + 259.43, + 355.07, + 258.71, + 355.61, + 249.95, + 356.14, + 246.19, + 353.82, + 245.29, + 351.31, + 226.33, + 369.03, + 225.07, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 396.32, + 381.55, + 397.21, + 364.02, + 391.84, + 345.77, + 388.8, + 338.07, + 387.91, + 337.36, + 380.21, + 333.6, + 374.67, + 331.45, + 371.45, + 330.56, + 308.64, + 325.55, + 296.11, + 328.59, + 289.49, + 333.6, + 273.21, + 353.46, + 264.44, + 369.74, + 255.49, + 367.06, + 252.99, + 368.13, + 250.66, + 371, + 250.66, + 374.22, + 252.27, + 376.36, + 255.85, + 379.05, + 256.03, + 381.37 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 339.59, + 327.16, + 340.67, + 317.31, + 356.59, + 298.35, + 355.88, + 297.45, + 346.75, + 294.23, + 346.57, + 293.52, + 349.62, + 288.86, + 354.8, + 288.5, + 356.95, + 290.29, + 357.67, + 292.62, + 359.64, + 292.98, + 377.89, + 267.21, + 390.59, + 255.76, + 417.61, + 254.33, + 454.29, + 259.7, + 465.21, + 265.24, + 474.51, + 273.83, + 478.09, + 285.64, + 479.52, + 301.93, + 478.27, + 324.11, + 477.02, + 331.81, + 472.37, + 340.04, + 469.5, + 342.37, + 466.64, + 342.72, + 462.53, + 342.01, + 460.38, + 339.14, + 460.2, + 337.18, + 449.1, + 354, + 449.28, + 367.95, + 447.67, + 370.82, + 444.27, + 374.57, + 436.76, + 376.9, + 431.57, + 376.36, + 427.81, + 371.89, + 396.68, + 373.68, + 396.85, + 362.41, + 389.16, + 337.53, + 379.32, + 332.34, + 374.13, + 330.38 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 406.52, + 253.43, + 414.39, + 239.83, + 405.44, + 236.43, + 403.65, + 233.57, + 404.01, + 230.17, + 405.27, + 229.46, + 407.77, + 229.46, + 411.53, + 230.53, + 415.29, + 233.75, + 416.72, + 233.93, + 436.58, + 209.24, + 448.75, + 200.82, + 493.3, + 202.61, + 508.33, + 207.98, + 515.13, + 227.67, + 517.1, + 230.53, + 519.79, + 238.22, + 521.04, + 239.65, + 521.58, + 241.44, + 521.58, + 246.81, + 517.82, + 274.01, + 512.81, + 279.92, + 506.01, + 280.81, + 505.11, + 278.13, + 498.67, + 286.36, + 496.88, + 300.85, + 495.63, + 304.07, + 493.66, + 305.33, + 491.16, + 305.86, + 487.76, + 305.68, + 483.1, + 302.82, + 483.1, + 297.09, + 479.17, + 296.74, + 477.74, + 285.46, + 474.51, + 273.65, + 463.96, + 264.17, + 455.01, + 259.7, + 416.9, + 253.43 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 232.6, + 261.5, + 231.9, + 254.42, + 233.43, + 249.84, + 241.2, + 233.31, + 241.34, + 231.51, + 234.96, + 227.9, + 234.4, + 226.93, + 234.4, + 224.43, + 237.04, + 223.45, + 243.29, + 223.45, + 243.98, + 224.01, + 244.95, + 227.06, + 261.34, + 203.74, + 272.87, + 195.13, + 286.06, + 192.77, + 304.53, + 193.32, + 325.08, + 196.38, + 336.19, + 201.93, + 339.52, + 211.65, + 345.77, + 218.04, + 348.13, + 222.48, + 350.07, + 247.89, + 348.41, + 251.92, + 346.88, + 264.84, + 343.69, + 270.11, + 341.05, + 271.36, + 338.13, + 271.92, + 335.35, + 271.64, + 332.86, + 266.78, + 323.41, + 276.92, + 323.55, + 286.78, + 321.33, + 292.47, + 319.66, + 294, + 315.08, + 295.39, + 312.58, + 294.83, + 310.36, + 292.47, + 308.69, + 288.03, + 284.81, + 290.53, + 263.98, + 290.39, + 261.9, + 287.19, + 257.87, + 283.44, + 254.81, + 276.5, + 245.09, + 266.22 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 423.82, + 109.43, + 445.55, + 110.52, + 450.74, + 115.71, + 451.95, + 120.9, + 455.82, + 129.23, + 457.75, + 135.39, + 458.11, + 142.52, + 456.06, + 146.26, + 455.57, + 148.07, + 455.57, + 150.12, + 456.18, + 151.69, + 455.82, + 165.94, + 455.09, + 167.88, + 452.07, + 169.81, + 450.38, + 170.17, + 447.48, + 169.93, + 445.67, + 168, + 440.24, + 173.55, + 439.63, + 181.64, + 437.34, + 183.57, + 434.44, + 183.45, + 432.39, + 182.61, + 430.94, + 180.67, + 430.58, + 176.81, + 422.73, + 176.93, + 423.45, + 174.03, + 422.97, + 125.61, + 419.47, + 121.99, + 423.57, + 118.85 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72274, + "probability": 100, + "points": [ + 12.52, + 102.15, + 17.66, + 94.48, + 15.77, + 92.17, + 15.56, + 88.71, + 16.4, + 88.39, + 18.4, + 89.23, + 22.39, + 89.44, + 23.86, + 90.6, + 39.72, + 73.17, + 46.02, + 71.17, + 65.76, + 69.28, + 80.04, + 68.97, + 89.91, + 69.7, + 98.1, + 73.48, + 102.51, + 77.79, + 103.77, + 81.15, + 97.89, + 123.68, + 97.89, + 127.35, + 97.05, + 124.31, + 82.66, + 126.93, + 81.61, + 134.39, + 80.46, + 136.38, + 75, + 138.27, + 72.79, + 138.27, + 71.22, + 137.54, + 69.96, + 136.28, + 68.59, + 132.81, + 63.55, + 133.13, + 63.24, + 104.04, + 57.88, + 103.51, + 57.67, + 106.88 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Personal vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 0.41, + 101.91, + 57.82, + 107.46, + 58.02, + 103.56, + 63.37, + 103.97, + 63.17, + 173.31, + 55.76, + 174.96, + 57.2, + 186.07, + 57.2, + 205.21, + 53.08, + 205.42, + 52.06, + 222.5, + 50.41, + 226.82, + 47.32, + 232.17, + 45.88, + 236.49, + 42.18, + 239.78, + 36.42, + 242.25, + 27.57, + 242.46, + 24.28, + 245.13, + 22.42, + 248.63, + 20.78, + 250.28, + 15.02, + 253.16, + 5.76, + 253.77, + 0.41, + 252.13 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 222.23, + 143.48, + 232.31, + 141.21, + 234.17, + 142.45, + 239.52, + 142.65, + 242.6, + 140.18, + 244.87, + 135.66, + 245.69, + 116.52, + 262.15, + 116.72, + 261.74, + 109.52, + 265.65, + 100.67, + 261.95, + 83.39, + 253.72, + 81.54, + 214, + 77.42, + 210.5, + 76.39, + 208.65, + 62.4, + 206.8, + 60.75, + 206.59, + 57.25, + 118.52, + 53.96, + 117.9, + 56.64, + 109.26, + 61.16, + 106.38, + 65.49, + 98.56, + 122.69, + 97.94, + 141.62, + 99.18, + 152.74, + 108.02, + 155, + 110.7, + 160.35, + 112.96, + 162.61, + 115.02, + 163.23, + 118.11, + 162.41, + 119.96, + 155.82, + 169.14, + 159.12, + 168.94, + 161.38, + 190.95, + 142.45 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 303.1, + 192.66, + 304.75, + 181.96, + 307.84, + 169.2, + 301.66, + 167.96, + 300.84, + 160.56, + 302.69, + 156.44, + 306.4, + 156.44, + 309.48, + 157.68, + 321.01, + 130.92, + 318.95, + 129.28, + 318.95, + 120.84, + 350.64, + 103.14, + 351.46, + 106.64, + 421.84, + 110.14, + 422.66, + 108.7, + 423.28, + 108.7, + 423.28, + 118.58, + 419.16, + 122.08, + 422.45, + 125.78, + 423.07, + 173.73, + 419.16, + 196.77, + 415.46, + 208.91, + 412.99, + 212.82, + 410.52, + 214.06, + 407.84, + 213.85, + 404.55, + 210.35, + 403.93, + 208.3, + 392.41, + 217.76, + 390.76, + 231.76, + 389.74, + 233.4, + 385.83, + 235.67, + 376.57, + 235.67, + 374.3, + 233.81, + 372.66, + 227.85, + 348.37, + 228.46, + 348.58, + 222.29, + 339.73, + 211.59, + 335.82, + 201.3, + 324.92, + 195.95 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + }, + { + "type": "polygon", + "classId": 72275, + "probability": 100, + "points": [ + 462.58, + 200.89, + 463.2, + 193.07, + 468.34, + 173.93, + 459.08, + 172.08, + 461.96, + 158.29, + 467.31, + 158.29, + 467.93, + 165.7, + 471.22, + 165.91, + 481.31, + 128.04, + 490.36, + 110.96, + 486.86, + 109.52, + 486.45, + 99.85, + 489.33, + 82.36, + 518.76, + 62.61, + 517.73, + 80.1, + 586.87, + 88.74, + 585.64, + 91.62, + 589.55, + 95.53, + 589.96, + 160.35, + 587.08, + 178.05, + 582.76, + 190.81, + 581.11, + 211.18, + 579.46, + 214.06, + 576.79, + 215.91, + 572.47, + 216.32, + 568.56, + 214.47, + 559.71, + 226.2, + 556.21, + 228.05, + 551.89, + 234.02, + 552.1, + 250.07, + 548.8, + 249.66, + 545.1, + 246.37, + 544.28, + 243.9, + 543.86, + 236.08, + 519.58, + 237.11, + 516.7, + 229.49, + 514.85, + 227.85, + 508.26, + 207.06, + 493.45, + 202.12 + ], + "groupId": 0, + "pointLabels": {}, + "locked": false, + "visible": true, + "attributes": [], + "createdAt": null, + "createdBy": null, + "creationType": null, + "updatedAt": null, + "updatedBy": null, + "className": "Large vehicle" + } + ], + "tags": [ + "tag1" + ], + "comments": [] +} diff --git a/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg___fuse.png b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg___fuse.png new file mode 100644 index 000000000..10285ee1d Binary files /dev/null and b/tests/integration/export/data_set/sample_project_vector/folder/example_image_4.jpg___fuse.png differ diff --git a/tests/integration/export/test_export.py b/tests/integration/export/test_export.py new file mode 100644 index 000000000..073a3556f --- /dev/null +++ b/tests/integration/export/test_export.py @@ -0,0 +1,109 @@ +import filecmp +import json +import logging +import os +import tempfile +from unittest import TestCase + +import boto3 +from src.superannotate import AppException +from src.superannotate import SAClient +from tests import compare_result +from tests.integration.export import DATA_SET_PATH + +sa = SAClient() +s3_client = boto3.client("s3") + + +class TestExportImport(TestCase): + PROJECT_NAME = "export_import" + PROJECT_DESCRIPTION = "Desc" + PROJECT_TYPE = "Vector" + FOLDER_NAME = "folder" + TEST_S3_BUCKET = "superannotate-python-sdk-test" + TEST_FOLDER_PATH = os.path.join(DATA_SET_PATH, "sample_project_vector") + CLASSES_PATH = os.path.join(TEST_FOLDER_PATH, "classes/classes.json") + TMP_DIR = "TMP_DIR" + IGNORE_KEYS = { + "id", + "team_id", + "createdAt", + "updatedAt", + "project_id", + "projectId", + "isPredicted", + "lastAction", + } + + @classmethod + def setUpClass(cls) -> None: + cls.tearDownClass() + cls._project = sa.create_project( + cls.PROJECT_NAME, cls.PROJECT_DESCRIPTION, cls.PROJECT_TYPE + ) # noqa + cls.folder = sa.create_folder( + project=cls.PROJECT_NAME, folder_name=cls.FOLDER_NAME + ) + sa.create_annotation_classes_from_classes_json( + cls.PROJECT_NAME, cls.CLASSES_PATH + ) + + sa.upload_images_from_folder_to_project(cls.PROJECT_NAME, cls.TEST_FOLDER_PATH) + sa.upload_annotations_from_folder_to_project( + cls.PROJECT_NAME, cls.TEST_FOLDER_PATH, recursive_subfolders=True + ) + + sa.upload_images_from_folder_to_project( + f"{cls.PROJECT_NAME}/{cls.FOLDER_NAME}", cls.TEST_FOLDER_PATH + ) + sa.upload_annotations_from_folder_to_project( + f"{cls.PROJECT_NAME}/{cls.FOLDER_NAME}", + os.path.join(cls.TEST_FOLDER_PATH, cls.FOLDER_NAME), + ) + + @classmethod + def tearDownClass(cls) -> None: + projects = sa.search_projects(cls.PROJECT_NAME, return_metadata=True) + for project in projects: + try: + sa.delete_project(project) + except AppException as e: + logging.error(e) + + def test_export_import(self): + with tempfile.TemporaryDirectory() as tmpdir_name: + export = sa.prepare_export(self.PROJECT_NAME, include_fuse=True) + sa.download_export(self.PROJECT_NAME, export, tmpdir_name) + assert not filecmp.dircmp(tmpdir_name, self.TEST_FOLDER_PATH).left_only + assert not filecmp.dircmp(tmpdir_name, self.TEST_FOLDER_PATH).right_only + for path, sub_dirs, files in os.walk(tmpdir_name): + for name in files: + if not name.endswith(".json"): + continue + folder_name = path.split(tmpdir_name)[-1] + folder_name = folder_name.replace("/", "") + if folder_name == "classes": + continue + actual = json.load(open(os.path.join(path, name))) + expected = json.load( + open(os.path.join(self.TEST_FOLDER_PATH, folder_name, name)) + ) + assert compare_result( + actual, expected, ignore_keys=self.IGNORE_KEYS + ) + + def test_upload_s3(self): + files = [] + new_export = sa.prepare_export(self.PROJECT_NAME, include_fuse=True) + sa.download_export( + project=self.PROJECT_NAME, + export=new_export, + folder_path=self.TMP_DIR, + to_s3_bucket=self.TEST_S3_BUCKET, + extract_zip_contents=True, + ) + for object_data in s3_client.list_objects_v2( + Bucket=self.TEST_S3_BUCKET, Prefix=self.TMP_DIR + ).get("Contents", []): + files.append(object_data["Key"]) + self.assertEqual(33, len(files)) diff --git a/tests/integration/folders/test_get_folder_metadata.py b/tests/integration/folders/test_get_folder_metadata.py index 08c683029..87c165489 100644 --- a/tests/integration/folders/test_get_folder_metadata.py +++ b/tests/integration/folders/test_get_folder_metadata.py @@ -1,5 +1,6 @@ from src.superannotate import AppException from src.superannotate import SAClient +from tests import compare_result from tests.integration.base import BaseTestCase from tests.integration.folders import FOLDER_KEYS @@ -12,6 +13,12 @@ class TestGetFolderMetadata(BaseTestCase): PROJECT_TYPE = "Vector" SPECIAL_CHARS = r"/\:*?“<>|" TEST_FOLDER_NAME = "folder_" + IGNORE_KEYS = {"id", "team_id", "createdAt", "updatedAt", "project_id"} + EXPECTED_FOLDER_METADATA = { + "folder_users": None, + "name": "folder_", + "status": "NotStarted", + } def test_get_folder_metadata(self): sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_NAME) @@ -20,6 +27,9 @@ def test_get_folder_metadata(self): ) assert "is_root" not in folder_metadata self.assertListEqual(list(folder_metadata.keys()), FOLDER_KEYS) + assert compare_result( + folder_metadata, self.EXPECTED_FOLDER_METADATA, self.IGNORE_KEYS + ) # get not exiting folder with self.assertRaises(AppException) as cm: diff --git a/tests/integration/integrations/test_get_integrations.py b/tests/integration/integrations/test_get_integrations.py deleted file mode 100644 index 1b7a22c5e..000000000 --- a/tests/integration/integrations/test_get_integrations.py +++ /dev/null @@ -1,27 +0,0 @@ -import os -from os.path import dirname - -from src.superannotate import SAClient -from tests.integration.base import BaseTestCase - -sa = SAClient() - - -class TestGetIntegrations(BaseTestCase): - PROJECT_NAME = "TestGetIntegrations" - TEST_FOLDER_PATH = "data_set/sample_project_vector" - TEST_FOLDER_NAME = "test_folder" - PROJECT_DESCRIPTION = "desc" - PROJECT_TYPE = "Vector" - EXAMPLE_IMAGE = "egit xample_image_1.jpg" - - @property - def folder_path(self): - return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH) - - # @pytest.mark.skip("Need to adjust") - def test_get(self): - integrations = sa.get_integrations() - integrations = sa.attach_items_from_integrated_storage( - self.PROJECT_NAME, integrations[0]["name"] - ) diff --git a/tests/integration/items/test_get_item_metadata.py b/tests/integration/items/test_get_item_metadata.py index 6572de6dc..f20f648af 100644 --- a/tests/integration/items/test_get_item_metadata.py +++ b/tests/integration/items/test_get_item_metadata.py @@ -2,6 +2,7 @@ from pathlib import Path from src.superannotate import SAClient +from tests import compare_result from tests.integration.base import BaseTestCase sa = SAClient() @@ -15,6 +16,20 @@ class TestGetEntityMetadataVector(BaseTestCase): CSV_PATH = "data_set/attach_urls.csv" IMAGE_NAME = "example_image_1.jpg" ATTACHED_IMAGE_NAME = "6022a74d5384c50017c366b3" + IGNORE_KEYS = {"id", "createdAt", "updatedAt"} + EXPECTED_ITEM_METADATA = { + "name": "example_image_1.jpg", + "path": "TestGetEntityMetadataVector", + "url": None, + "annotator_email": None, + "qa_email": None, + "annotation_status": "InProgress", + "entropy_value": None, + "prediction_status": "NotStarted", + "segmentation_status": None, + "approval_status": None, + "is_pinned": False, + } @property def folder_path(self): @@ -30,10 +45,9 @@ def test_get_item_metadata(self): ) item_metadata = sa.get_item_metadata(self.PROJECT_NAME, self.IMAGE_NAME) assert item_metadata["path"] == f"{self.PROJECT_NAME}" - assert item_metadata["prediction_status"] == "NotStarted" - assert item_metadata["segmentation_status"] is None - assert item_metadata["annotation_status"] == "InProgress" - assert item_metadata["approval_status"] is None + assert compare_result( + item_metadata, self.EXPECTED_ITEM_METADATA, self.IGNORE_KEYS + ) class TestGetEntityMetadataPixel(BaseTestCase): diff --git a/tests/integration/items/test_set_approval_statuses.py b/tests/integration/items/test_set_approval_statuses.py index 580973e72..ba4800d17 100644 --- a/tests/integration/items/test_set_approval_statuses.py +++ b/tests/integration/items/test_set_approval_statuses.py @@ -8,6 +8,23 @@ sa = SAClient() +ATTACHMENT_LIST = [ + { + "url": "https://drive.google.com/uc?export=download&id=1vwfCpTzcjxoEA4hhDxqapPOVvLVeS7ZS", + "name": "6022a74d5384c50017c366b3", + }, + { + "url": "https://drive.google.com/uc?export=download&id=1geS2YtQiTYuiduEirKVYxBujHJaIWA3V", + "name": "6022a74b5384c50017c366ad", + }, + {"url": "1SfGcn9hdkVM35ZP0S93eStsE7Ti4GtHU", "name": "123"}, + { + "url": "https://drive.google.com/uc?export=download&id=1geS2YtQiTYuiduEirKVYxBujHJaIWA3V", + "name": "6022a74b5384c50017c366ad", + }, +] + + class TestSetApprovalStatuses(BaseTestCase): PROJECT_NAME = "TestSetApprovalStatuses" PROJECT_DESCRIPTION = "TestSetApprovalStatuses" @@ -16,28 +33,13 @@ class TestSetApprovalStatuses(BaseTestCase): CSV_PATH = "data_set/attach_urls.csv" EXAMPLE_IMAGE_1 = "6022a74d5384c50017c366b3" EXAMPLE_IMAGE_2 = "6022a74b5384c50017c366ad" - ATTACHMENT_LIST = [ - { - "url": "https://drive.google.com/uc?export=download&id=1vwfCpTzcjxoEA4hhDxqapPOVvLVeS7ZS", - "name": "6022a74d5384c50017c366b3", - }, - { - "url": "https://drive.google.com/uc?export=download&id=1geS2YtQiTYuiduEirKVYxBujHJaIWA3V", - "name": "6022a74b5384c50017c366ad", - }, - {"url": "1SfGcn9hdkVM35ZP0S93eStsE7Ti4GtHU", "name": "123"}, - { - "url": "https://drive.google.com/uc?export=download&id=1geS2YtQiTYuiduEirKVYxBujHJaIWA3V", - "name": "6022a74b5384c50017c366ad", - }, - ] @property def scv_path(self): return os.path.join(Path(__file__).parent.parent.parent, self.CSV_PATH) def test_image_approval_status(self): - sa.attach_items(self.PROJECT_NAME, self.ATTACHMENT_LIST) + sa.attach_items(self.PROJECT_NAME, ATTACHMENT_LIST) sa.set_approval_statuses( self.PROJECT_NAME, @@ -47,7 +49,7 @@ def test_image_approval_status(self): self.assertEqual(image["approval_status"], "Approved") def test_image_approval_status_via_names(self): - sa.attach_items(self.PROJECT_NAME, self.ATTACHMENT_LIST) + sa.attach_items(self.PROJECT_NAME, ATTACHMENT_LIST) sa.set_approval_statuses( self.PROJECT_NAME, "Approved", [self.EXAMPLE_IMAGE_1, self.EXAMPLE_IMAGE_2] @@ -58,7 +60,7 @@ def test_image_approval_status_via_names(self): self.assertEqual(metadata["approval_status"], "Approved") def test_image_approval_status_via_invalid_names(self): - sa.attach_items(self.PROJECT_NAME, self.ATTACHMENT_LIST, "InProgress") + sa.attach_items(self.PROJECT_NAME, ATTACHMENT_LIST, "InProgress") with self.assertRaisesRegexp(AppException, "No items found."): sa.set_approval_statuses( self.PROJECT_NAME, @@ -67,22 +69,38 @@ def test_image_approval_status_via_invalid_names(self): ) def test_set_approval_statuses(self): - sa.attach_items(self.PROJECT_NAME, [self.ATTACHMENT_LIST[0]]) + sa.attach_items(self.PROJECT_NAME, [ATTACHMENT_LIST[0]]) sa.set_approval_statuses( self.PROJECT_NAME, approval_status=None, - items=[self.ATTACHMENT_LIST[0]["name"]], + items=[ATTACHMENT_LIST[0]["name"]], ) data = sa.search_items(self.PROJECT_NAME)[0] assert data["approval_status"] is None def test_set_invalid_approval_statuses(self): - sa.attach_items(self.PROJECT_NAME, [self.ATTACHMENT_LIST[0]]) + sa.attach_items(self.PROJECT_NAME, [ATTACHMENT_LIST[0]]) with self.assertRaisesRegexp( AppException, "Available values are 'Approved', 'Disapproved'." ): sa.set_approval_statuses( self.PROJECT_NAME, - approval_status="aaa", - items=[self.ATTACHMENT_LIST[0]["name"]], + approval_status="aaa", # noqa + items=[ATTACHMENT_LIST[0]["name"]], ) + + +class TestDocumentSetApprovalStatuses(BaseTestCase): + PROJECT_NAME = "TestDocumentSetApprovalStatuses" + PROJECT_DESCRIPTION = "TestDocumentSetApprovalStatuses" + PROJECT_TYPE = "Document" + + def test_item_approval_status(self): + sa.attach_items(self.PROJECT_NAME, ATTACHMENT_LIST) + + sa.set_approval_statuses( + self.PROJECT_NAME, + "Approved", + ) + for item in sa.search_items(self.PROJECT_NAME): + self.assertEqual(item["approval_status"], "Approved") diff --git a/tests/integration/projects/test_basic_project.py b/tests/integration/projects/test_basic_project.py index 89e22d9c7..ef094234e 100644 --- a/tests/integration/projects/test_basic_project.py +++ b/tests/integration/projects/test_basic_project.py @@ -24,12 +24,10 @@ def test_workflow_get(self): [ { "name": "tall", - "is_multiselect": 0, "attributes": [{"name": "yes"}, {"name": "no"}], }, { "name": "age", - "is_multiselect": 0, "attributes": [{"name": "young"}, {"name": "old"}], }, ], @@ -41,12 +39,10 @@ def test_workflow_get(self): [ { "name": "tall", - "is_multiselect": 0, "attributes": [{"name": "yes"}, {"name": "no"}], }, { "name": "age", - "is_multiselect": 0, "attributes": [{"name": "young"}, {"name": "old"}], }, ], diff --git a/tests/integration/projects/test_clone_project.py b/tests/integration/projects/test_clone_project.py index 0cbf19c1a..1da9d494a 100644 --- a/tests/integration/projects/test_clone_project.py +++ b/tests/integration/projects/test_clone_project.py @@ -20,12 +20,10 @@ class TestCloneProject(TestCase): ANNOTATION_CLASSES = [ { "name": "tall", - "is_multiselect": 0, "attributes": [{"name": "yes"}, {"name": "no"}], }, { "name": "age", - "is_multiselect": 0, "attributes": [{"name": "young"}, {"name": "old"}], }, ] @@ -151,12 +149,10 @@ def test_create_like_project(self): [ { "name": "tall", - "is_multiselect": 0, "attributes": [{"name": "yes"}, {"name": "no"}], }, { "name": "age", - "is_multiselect": 0, "attributes": [{"name": "young"}, {"name": "old"}], }, ], diff --git a/tests/integration/projects/test_get_project_metadata.py b/tests/integration/projects/test_get_project_metadata.py index ee82d7424..b403b74b7 100644 --- a/tests/integration/projects/test_get_project_metadata.py +++ b/tests/integration/projects/test_get_project_metadata.py @@ -1,4 +1,5 @@ from src.superannotate import SAClient +from tests import compare_result from tests.integration.base import BaseTestCase sa = SAClient() @@ -8,6 +9,21 @@ class TestGetProjectMetadata(BaseTestCase): PROJECT_NAME = "TestGetProjectMetadata" PROJECT_TYPE = "Vector" PROJECT_DESCRIPTION = "DESCRIPTION" + IGNORE_KEYS = {"id", "creator_id", "team_id", "createdAt", "updatedAt"} + EXPECTED_PROJECT_METADATA = { + "name": "TestGetProjectMetadata", + "type": "Vector", + "description": "DESCRIPTION", + "instructions_link": None, + "entropy_status": 1, + "sharing_status": None, + "status": "NotStarted", + "folder_id": None, + "upload_state": "EXTERNAL", + "users": [], + "completed_items_count": None, + "root_folder_completed_items_count": None, + } def test_metadata_payload(self): """ @@ -23,3 +39,6 @@ def test_metadata_payload(self): assert project["item_count"] == 10 projects = sa.search_projects(name=self.PROJECT_NAME, return_metadata=True) assert "item_count" not in projects[0] + assert compare_result( + projects[0], self.EXPECTED_PROJECT_METADATA, self.IGNORE_KEYS + ) diff --git a/tests/integration/subsets/test_subsets.py b/tests/integration/subsets/test_subsets.py index a3a06bd9b..088f36179 100644 --- a/tests/integration/subsets/test_subsets.py +++ b/tests/integration/subsets/test_subsets.py @@ -18,4 +18,25 @@ def test_add_items_to_subset(self): subset_data = [] for i in item_names: subset_data.append({"name": i["name"], "path": self.PROJECT_NAME}) - sa.add_items_to_subset(self.PROJECT_NAME, self.SUBSET_NAME, subset_data) + result = sa.add_items_to_subset( + self.PROJECT_NAME, self.SUBSET_NAME, subset_data + ) + assert len(subset_data) == len(result["succeeded"]) + + def test_add_to_subset_with_duplicates_items(self): + with self.assertLogs("sa", level="INFO") as cm: + sa.attach_items( + self.PROJECT_NAME, [{"name": "earth_mov_001.jpg", "url": "url_1"}] + ) # noqa + item_metadata = sa.get_item_metadata(self.PROJECT_NAME, "earth_mov_001.jpg") + subset_data = [ + {"name": "earth_mov_001.jpg", "path": self.PROJECT_NAME}, + {"id": item_metadata["id"]}, + ] + result = sa.add_items_to_subset( + self.PROJECT_NAME, self.SUBSET_NAME, subset_data + ) + assert len(result["succeeded"]) == 1 + assert ( + "INFO:sa:Dropping duplicates. Found 1 / 2 unique items." == cm.output[2] + ) diff --git a/tests/integration/test_cli.py b/tests/integration/test_cli.py index a2f536373..99fcf0fd1 100644 --- a/tests/integration/test_cli.py +++ b/tests/integration/test_cli.py @@ -199,13 +199,6 @@ def test_attach_document_urls(self): ) self.assertEqual(3, len(sa.search_items(self.PROJECT_NAME))) - def test_create_server(self): - with tempfile.TemporaryDirectory() as temp_dir: - self._cli.create_server("test", temp_dir) - # self._cli.create_server('testo', '/Users/vaghinak.basentsyan/www/for_fun') - assert (Path(temp_dir) / "test" / "app.py").exists() - assert (Path(temp_dir) / "test" / "wsgi.py").exists() - def test_init(self): _token = "asd=123" with tempfile.TemporaryDirectory() as config_dir: diff --git a/tests/integration/test_convert_project_type.py b/tests/integration/test_convert_project_type.py index 373c077fd..bccd375ea 100644 --- a/tests/integration/test_convert_project_type.py +++ b/tests/integration/test_convert_project_type.py @@ -19,13 +19,26 @@ def folder_path(self): def test_convert_pixel_with_holes_to_vector(self): with tempfile.TemporaryDirectory() as temp_dir: - convert_project_type(self.folder_path, temp_dir) + convert_project_type(self.folder_path, temp_dir, "Vector") assert len(list(Path(temp_dir).glob("*"))) == 5 - annotation_files = [i.name for i in Path(temp_dir).glob("*___objects.json")] + annotation_files = [i.name for i in Path(temp_dir).glob("*.json")] assert len(annotation_files) == 2 - with open( - os.path.join(temp_dir, f"{self.SECOND_IMAGE}___objects.json") - ) as file: + with open(os.path.join(temp_dir, f"{self.SECOND_IMAGE}.json")) as file: data = json.load(file) assert len(data["instances"][0]["exclude"]) == 4 + + +class TestConvertProjectTypeVector(TestCase): + TEST_FOLDER_PATH = "sample_project_vector" + + @property + def folder_path(self): + return os.path.join(DATA_SET_PATH, self.TEST_FOLDER_PATH) + + def test_convert_pixel_with_holes_to_vector(self): + with tempfile.TemporaryDirectory() as temp_dir: + convert_project_type(self.folder_path, temp_dir, "Pixel") + assert len(list(Path(temp_dir).glob("*"))) == 13 + annotation_files = [i.name for i in Path(temp_dir).glob("*.json")] + assert len(annotation_files) == 4 diff --git a/tests/integration/test_export_import.py b/tests/integration/test_export_import.py deleted file mode 100644 index 4fa195ec8..000000000 --- a/tests/integration/test_export_import.py +++ /dev/null @@ -1,38 +0,0 @@ -import os -import tempfile -from os.path import dirname - -from src.superannotate import SAClient -from tests.integration.base import BaseTestCase - -sa = SAClient() - - -class TestExportImport(BaseTestCase): - PROJECT_NAME = "export_import" - PROJECT_DESCRIPTION = "Desc" - PROJECT_TYPE = "Vector" - TEST_FOLDER_PTH = "data_set" - TEST_FOLDER_PATH = "data_set/sample_project_vector" - - @property - def folder_path(self): - return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH) - - @property - def classes_path(self): - return os.path.join( - dirname(dirname(__file__)), self.TEST_FOLDER_PATH, "classes/classes.json" - ) - - def test_export_import(self): - sa.upload_images_from_folder_to_project( - self.PROJECT_NAME, - self.folder_path, - annotation_status="InProgress", - ) - - with tempfile.TemporaryDirectory() as tmpdir_name: - export = sa.prepare_export(self.PROJECT_NAME, include_fuse=True) - sa.download_export(self.PROJECT_NAME, export, tmpdir_name) - self.assertEqual(len(os.listdir(tmpdir_name)), 13) diff --git a/tests/integration/test_export_upload_s3.py b/tests/integration/test_export_upload_s3.py deleted file mode 100644 index 2df7ab26b..000000000 --- a/tests/integration/test_export_upload_s3.py +++ /dev/null @@ -1,55 +0,0 @@ -import os -from os.path import dirname - -import boto3 -from src.superannotate import SAClient -from tests.integration.base import BaseTestCase - - -sa = SAClient() - -s3_client = boto3.client("s3") - - -class TestExportUploadS3(BaseTestCase): - PROJECT_NAME = "export_upload_s3" - PROJECT_DESCRIPTION = "Desc" - PROJECT_TYPE = "Vector" - TEST_FOLDER_PTH = "data_set" - TEST_FOLDER_PATH = "data_set/sample_project_vector" - TEST_S3_BUCKET = "superannotate-python-sdk-test" - TMP_DIR = "TMP_DIR" - - def tearDown(self) -> None: - super().tearDown() - for object_data in s3_client.list_objects_v2( - Bucket=self.TEST_S3_BUCKET, Prefix=self.TMP_DIR - ).get("Contents", []): - s3_client.delete_object(Bucket=self.TEST_S3_BUCKET, Key=object_data["Key"]) - - @property - def folder_path(self): - return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH) - - def test_export_upload(self): - sa.create_folder(self.PROJECT_NAME, self.TEST_FOLDER_PTH) - sa.upload_images_from_folder_to_project( - project=f"{self.PROJECT_NAME}/{self.TEST_FOLDER_PTH}", - folder_path=self.folder_path, - annotation_status="QualityCheck", - ) - - files = [] - new_export = sa.prepare_export(self.PROJECT_NAME, include_fuse=True) - sa.download_export( - project=self.PROJECT_NAME, - export=new_export, - folder_path=self.TMP_DIR, - to_s3_bucket=self.TEST_S3_BUCKET, - extract_zip_contents=True, - ) - for object_data in s3_client.list_objects_v2( - Bucket=self.TEST_S3_BUCKET, Prefix=self.TMP_DIR - ).get("Contents", []): - files.append(object_data["Key"]) - self.assertEqual(13, len(files)) diff --git a/tests/integration/test_get_exports.py b/tests/integration/test_get_exports.py deleted file mode 100644 index 07090224a..000000000 --- a/tests/integration/test_get_exports.py +++ /dev/null @@ -1,43 +0,0 @@ -import glob -import os -import tempfile -from os.path import dirname - -from src.superannotate import SAClient -from tests.integration.base import BaseTestCase - -sa = SAClient() - - -class TestGetExports(BaseTestCase): - PROJECT_NAME = "get_exports" - PROJECT_DESCRIPTION = "Desc" - PROJECT_TYPE = "Vector" - TEST_FOLDER_PTH = "data_set" - TEST_FOLDER_PATH = "data_set/sample_project_vector" - - @property - def folder_path(self): - return os.path.join(dirname(dirname(__file__)), self.TEST_FOLDER_PATH) - - def setUp(self, *args, **kwargs): - super().setUp() - sa.upload_images_from_folder_to_project( - project=self._project["name"], folder_path=self.folder_path - ) - sa.upload_annotations_from_folder_to_project( - project=self._project["name"], folder_path=self.folder_path - ) - - def test_get_exports(self): - tmpdir = tempfile.TemporaryDirectory() - exports_old = sa.get_exports(self.PROJECT_NAME) - export = sa.prepare_export(self.PROJECT_NAME) - sa.download_export(self.PROJECT_NAME, export["name"], tmpdir.name) - js = list(glob.glob(tmpdir.name + "/*.json")) - - assert len(js) == 4 - - exports_new = sa.get_exports(self.PROJECT_NAME) - - assert len(exports_new) == len(exports_old) + 1 diff --git a/tests/integration/test_interface.py b/tests/integration/test_interface.py index d7b9cdf36..a1b867a6b 100644 --- a/tests/integration/test_interface.py +++ b/tests/integration/test_interface.py @@ -3,7 +3,6 @@ from os.path import dirname import pytest -from src.superannotate import AppException from src.superannotate import export_annotation from src.superannotate import SAClient from tests.integration.base import BaseTestCase @@ -43,30 +42,6 @@ def folder_path_with_multiple_images(self): dirname(dirname(__file__)), self.TEST_FOLDER_PATH_WITH_MULTIPLE_IMAGERS ) - def test_delete_folder(self): - with self.assertRaises(AppException): - sa.delete_folders(self.PROJECT_NAME, ["non-existing folder"]) - - def test_get_project_metadata(self): - metadata = sa.get_project_metadata(self.PROJECT_NAME) - self.assertIsNotNone(metadata["id"]) - self.assertListEqual(metadata.get("contributors", []), []) - sa.create_annotation_class(self.PROJECT_NAME, "tt", "#FFFFFF", class_type="tag") - metadata_with_users = sa.get_project_metadata( - self.PROJECT_NAME, - include_annotation_classes=True, - include_contributors=True, - ) - self.assertEqual(metadata_with_users["classes"][0]["type"], "tag") - self.assertIsNotNone(metadata_with_users.get("contributors")) - - def test_upload_annotations_from_folder_to_project(self): - self._attach_items(count=4) - uploaded_annotations, _, _ = sa.upload_annotations_from_folder_to_project( - self.PROJECT_NAME, self.folder_path - ) - self.assertEqual(len(uploaded_annotations), 4) - def test_download_image_annotations(self): sa.upload_images_from_folder_to_project(self.PROJECT_NAME, self.folder_path) with tempfile.TemporaryDirectory() as temp_dir: @@ -74,16 +49,6 @@ def test_download_image_annotations(self): self.PROJECT_NAME, self.EXAMPLE_IMAGE_1, temp_dir ) - def test_search_project(self): - sa.upload_images_from_folder_to_project(self.PROJECT_NAME, self.folder_path) - sa.set_annotation_statuses( - self.PROJECT_NAME, "Completed", [self.EXAMPLE_IMAGE_1] - ) - data = sa.search_projects( - self.PROJECT_NAME, return_metadata=True, include_complete_item_count=True - ) - self.assertIsNotNone(data[0]["completed_items_count"]) - def test_overlay_fuse(self): sa.upload_image_to_project( self.PROJECT_NAME, f"{self.folder_path}/{self.EXAMPLE_IMAGE_1}" @@ -107,33 +72,6 @@ def test_overlay_fuse(self): ) self.assertIsNotNone(paths) - def test_upload_images_to_project_returned_data(self): - upload, not_uploaded, duplicated = sa.upload_images_to_project( - self.PROJECT_NAME, - [ - f"{self.folder_path}/{self.EXAMPLE_IMAGE_1}", - f"{self.folder_path}/{self.EXAMPLE_IMAGE_2}", - ], - ) - self.assertEqual(2, len(upload)) - upload, not_uploaded, duplicated = sa.upload_images_to_project( - self.PROJECT_NAME, - [ - f"{self.folder_path}/{self.EXAMPLE_IMAGE_1}", - f"{self.folder_path}/{self.EXAMPLE_IMAGE_2}", - ], - ) - self.assertEqual(2, len(duplicated)) - - def test_upload_images_to_project_image_quality_in_editor(self): - self.assertRaises( - Exception, - sa.upload_images_to_project, - self.PROJECT_NAME, - [self.EXAMPLE_IMAGE_1], - image_quality_in_editor="random_string", - ) - def test_download_fuse_without_classes(self): sa.upload_image_to_project( self.PROJECT_NAME, f"{self.folder_path}/{self.EXAMPLE_IMAGE_1}" diff --git a/tests/unit/test_classes_serialization.py b/tests/unit/test_classes_serialization.py index 9ca92e956..f5e5ca3b1 100644 --- a/tests/unit/test_classes_serialization.py +++ b/tests/unit/test_classes_serialization.py @@ -50,14 +50,16 @@ def test_empty_multiselect_bool_serializer(self): annotation_class = AnnotationClassEntity( name="asd", color="blue", - attribute_groups=[AttributeGroup(name="sad", is_multiselect="True")], + attribute_groups=[ + AttributeGroup(name="sad", is_multiselect="True") + ], # noqa ) serializer_data = json.loads(json.dumps(annotation_class, cls=PydanticEncoder)) assert { "type": 1, "name": "asd", "color": "#0000FF", - "attribute_groups": [{"name": "sad", "is_multiselect": True}], + "attribute_groups": [{"name": "sad"}], } == serializer_data def test_group_type_wrong_arg(self): @@ -66,7 +68,9 @@ def test_group_type_wrong_arg(self): name="asd", color="blue", attribute_groups=[ - AttributeGroup(name="sad", is_multiselect=True, group_type="asd") + AttributeGroup( + name="sad", is_multiselect=True, group_type="asd" + ) # noqa ], ) except ValidationError as e: diff --git a/tests/unit/test_per_frame_convertor.py b/tests/unit/test_per_frame_convertor.py index 0926bdf86..2cb958949 100644 --- a/tests/unit/test_per_frame_convertor.py +++ b/tests/unit/test_per_frame_convertor.py @@ -8,6 +8,12 @@ class TestConvertor(TestCase): ANNOTATION_PATH = os.path.join(DATA_SET_PATH, "unit", "video_annotation.json") + CUSTOM_CASE_5_FRAME_ANNOTATION_PATH = os.path.join( + DATA_SET_PATH, "unit", "annotation_5_frame.json" + ) + CUSTOM_CASE_5_FRAME_EXPECTED_ANNOTATION_PATH = os.path.join( + DATA_SET_PATH, "unit", "annotation_5_frame_expected.json" + ) ONE_FRAME_ANNOTATION_PATH = os.path.join( DATA_SET_PATH, "unit", "one_frame_video_annotation.json" ) @@ -95,3 +101,10 @@ def test_polygon_polyline_convertor(self): # generator = VideoFrameGenerator(payload, fps=10) # data = [i for i in generator] # assert data + + def test_custom_case_5_frame(self): + payload = json.load(open(self.CUSTOM_CASE_5_FRAME_ANNOTATION_PATH)) + generator = VideoFrameGenerator(payload, fps=1) + data = [i for i in generator] + expected = json.load(open(self.CUSTOM_CASE_5_FRAME_EXPECTED_ANNOTATION_PATH)) + assert expected == data