supervisely 6.73.212__py3-none-any.whl → 6.73.213__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of supervisely might be problematic. Click here for more details.
- supervisely/api/entity_annotation/figure_api.py +1 -1
- supervisely/convert/image/cityscapes/cityscapes_helper.py +9 -3
- supervisely/convert/image/coco/coco_helper.py +2 -2
- supervisely/convert/image/image_helper.py +15 -3
- supervisely/convert/image/label_me/label_me_helper.py +2 -0
- supervisely/convert/image/label_studio/label_studio_helper.py +2 -0
- supervisely/convert/image/masks/images_with_masks_converter.py +15 -4
- supervisely/convert/image/pascal_voc/pascal_voc_helper.py +12 -6
- supervisely/convert/image/sly/fast_sly_image_converter.py +17 -4
- supervisely/convert/image/sly/sly_image_converter.py +17 -2
- supervisely/convert/video/video_converter.py +1 -1
- supervisely/project/data_version.py +6 -5
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/METADATA +1 -1
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/RECORD +18 -18
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/LICENSE +0 -0
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/WHEEL +0 -0
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.212.dist-info → supervisely-6.73.213.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
from supervisely import Annotation, Label, PointLocation, Polygon, ProjectMeta, logger,
|
|
1
|
+
from supervisely import Annotation, Label, PointLocation, Polygon, ProjectMeta, logger, Rectangle
|
|
2
2
|
from supervisely.io.json import load_json_file
|
|
3
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
3
4
|
|
|
4
5
|
COLOR_MAP_FILE_NAME = "class_to_id.json"
|
|
5
6
|
|
|
@@ -62,8 +63,11 @@ def convert_points(simple_points):
|
|
|
62
63
|
return [PointLocation(int(p[1]), int(p[0])) for p in simple_points]
|
|
63
64
|
|
|
64
65
|
|
|
65
|
-
def create_ann_from_file(
|
|
66
|
+
def create_ann_from_file(
|
|
67
|
+
ann: Annotation, ann_path: str, meta: ProjectMeta, renamed_classes: dict
|
|
68
|
+
) -> Annotation:
|
|
66
69
|
ann_data = load_json_file(ann_path)
|
|
70
|
+
labels = []
|
|
67
71
|
for obj in ann_data["objects"]:
|
|
68
72
|
class_name = obj["label"]
|
|
69
73
|
class_name = renamed_classes.get(class_name, class_name)
|
|
@@ -83,5 +87,7 @@ def create_ann_from_file(ann: Annotation, ann_path: str, meta: ProjectMeta, rena
|
|
|
83
87
|
interiors = [convert_points(interior) for interior in interiors]
|
|
84
88
|
polygon = Polygon(convert_points(polygon), interiors)
|
|
85
89
|
obj_class = meta.get_obj_class(class_name)
|
|
86
|
-
|
|
90
|
+
labels.append(Label(polygon, obj_class))
|
|
91
|
+
labels = validate_image_bounds(labels, Rectangle.from_size(ann.img_size))
|
|
92
|
+
ann = ann.add_labels(labels)
|
|
87
93
|
return ann
|
|
@@ -7,7 +7,6 @@ from typing import List
|
|
|
7
7
|
import cv2
|
|
8
8
|
import numpy as np
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
class HiddenCocoPrints:
|
|
12
11
|
def __enter__(self):
|
|
13
12
|
self._original_stdout = sys.stdout
|
|
@@ -37,10 +36,10 @@ from supervisely import (
|
|
|
37
36
|
from supervisely.convert.image.image_converter import ImageConverter
|
|
38
37
|
from supervisely.geometry.graph import KeypointsTemplate
|
|
39
38
|
from supervisely.imaging.color import generate_rgb
|
|
39
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
40
40
|
|
|
41
41
|
conflict_classes = []
|
|
42
42
|
|
|
43
|
-
|
|
44
43
|
# COCO Convert funcs
|
|
45
44
|
def create_supervisely_annotation(
|
|
46
45
|
item: ImageConverter.Item,
|
|
@@ -149,6 +148,7 @@ def create_supervisely_annotation(
|
|
|
149
148
|
Rectangle(y, x, y + h, x + w), obj_class_rectangle, binding_key=key
|
|
150
149
|
)
|
|
151
150
|
labels.append(rectangle)
|
|
151
|
+
labels = validate_image_bounds(labels, Rectangle.from_size(item.shape))
|
|
152
152
|
return Annotation(item.shape, labels=labels, img_tags=imag_tags)
|
|
153
153
|
|
|
154
154
|
|
|
@@ -4,9 +4,9 @@ from pathlib import Path
|
|
|
4
4
|
import magic
|
|
5
5
|
import numpy as np
|
|
6
6
|
from PIL import Image
|
|
7
|
-
from typing import Union
|
|
7
|
+
from typing import Union, List
|
|
8
8
|
|
|
9
|
-
from supervisely import logger
|
|
9
|
+
from supervisely import Rectangle, Label, logger
|
|
10
10
|
from supervisely.imaging.image import read, write
|
|
11
11
|
from supervisely.io.fs import (
|
|
12
12
|
get_file_ext,
|
|
@@ -98,4 +98,16 @@ def read_tiff_image(path: str) -> Union[np.ndarray, None]:
|
|
|
98
98
|
f"{name}: transposed shape from {tiff_shape} to {image.shape}"
|
|
99
99
|
)
|
|
100
100
|
|
|
101
|
-
return image
|
|
101
|
+
return image
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def validate_image_bounds(labels: List[Label], img_rect: Rectangle) -> List[Label]:
|
|
105
|
+
"""
|
|
106
|
+
Check if labels are localed inside the image canvas, print a warning and skip them if not.
|
|
107
|
+
"""
|
|
108
|
+
new_labels = [label for label in labels if img_rect.contains(label.geometry.to_bbox())]
|
|
109
|
+
if new_labels != labels:
|
|
110
|
+
logger.warning(
|
|
111
|
+
f"{len(labels) - len(new_labels)} annotation objects are out of image bounds. Skipping..."
|
|
112
|
+
)
|
|
113
|
+
return new_labels
|
|
@@ -21,6 +21,7 @@ from supervisely.io.fs import file_exists
|
|
|
21
21
|
from supervisely.io.json import dump_json_file, load_json_file
|
|
22
22
|
from supervisely.project.project_meta import ProjectMeta
|
|
23
23
|
from supervisely.sly_logger import logger
|
|
24
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
24
25
|
|
|
25
26
|
labelme_shape_types_to_sly_map = {
|
|
26
27
|
"polygon": Polygon,
|
|
@@ -221,6 +222,7 @@ def create_supervisely_annotation(
|
|
|
221
222
|
label = convert_labelme_to_sly(shape, obj_class)
|
|
222
223
|
if label is not None:
|
|
223
224
|
labels.append(label)
|
|
225
|
+
labels = validate_image_bounds(labels, Rectangle.from_size(ann.img_size))
|
|
224
226
|
ann = ann.add_labels(labels)
|
|
225
227
|
|
|
226
228
|
return ann
|
|
@@ -17,6 +17,7 @@ from supervisely.geometry.polygon import Polygon
|
|
|
17
17
|
from supervisely.geometry.rectangle import Rectangle
|
|
18
18
|
from supervisely.project.project_meta import ProjectMeta
|
|
19
19
|
from supervisely.sly_logger import logger
|
|
20
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
20
21
|
|
|
21
22
|
POSSIBLE_SHAPE_TYPES = ["polygonlabels", "rectanglelabels", "brushlabels"]
|
|
22
23
|
POSSIBLE_TAGS_TYPES = ["choices"]
|
|
@@ -211,5 +212,6 @@ def create_supervisely_annotation(image_path: str, ann: Dict, meta: ProjectMeta)
|
|
|
211
212
|
for labels in key_label_map.values():
|
|
212
213
|
res_labels.extend(labels)
|
|
213
214
|
|
|
215
|
+
res_labels = validate_image_bounds(res_labels, Rectangle.from_size(sly_ann.img_size))
|
|
214
216
|
sly_ann = sly_ann.clone(labels=res_labels, img_tags=img_tags)
|
|
215
217
|
return sly_ann, meta
|
|
@@ -2,13 +2,21 @@ import os
|
|
|
2
2
|
from typing import Dict, Optional, Union
|
|
3
3
|
|
|
4
4
|
import supervisely.convert.image.masks.image_with_masks_helper as helper
|
|
5
|
-
from supervisely import
|
|
5
|
+
from supervisely import (
|
|
6
|
+
Annotation,
|
|
7
|
+
ProjectMeta,
|
|
8
|
+
logger,
|
|
9
|
+
ObjClass,
|
|
10
|
+
Bitmap,
|
|
11
|
+
ObjClassCollection,
|
|
12
|
+
Rectangle,
|
|
13
|
+
)
|
|
6
14
|
from supervisely.convert.base_converter import AvailableImageConverters
|
|
7
15
|
from supervisely.convert.image.image_converter import ImageConverter
|
|
8
16
|
from supervisely.io.fs import file_exists, dirs_with_marker, dir_exists, get_file_name, list_files, dirs_filter, remove_junk_from_dir, get_file_ext
|
|
9
17
|
from supervisely.io.json import load_json_file
|
|
10
18
|
from supervisely.project.project_settings import LabelingInterface
|
|
11
|
-
|
|
19
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
12
20
|
|
|
13
21
|
class ImagesWithMasksConverter(ImageConverter):
|
|
14
22
|
def __init__(
|
|
@@ -59,7 +67,7 @@ class ImagesWithMasksConverter(ImageConverter):
|
|
|
59
67
|
return False
|
|
60
68
|
self._meta = key_file_result
|
|
61
69
|
|
|
62
|
-
# possible_dss
|
|
70
|
+
# possible_dss
|
|
63
71
|
def _search_for_dss(dir_path):
|
|
64
72
|
if any([d in os.listdir(dir_path) for d in helper.MASK_DIRS]):
|
|
65
73
|
return True
|
|
@@ -142,8 +150,11 @@ class ImagesWithMasksConverter(ImageConverter):
|
|
|
142
150
|
instance_labels = helper.read_instance_labels(
|
|
143
151
|
instance_masks_paths, meta.obj_classes, renamed_classes
|
|
144
152
|
)
|
|
153
|
+
all_labels = validate_image_bounds(
|
|
154
|
+
semantic_labels + instance_labels, Rectangle.from_size(item.shape)
|
|
155
|
+
)
|
|
145
156
|
|
|
146
|
-
ann = ann.add_labels(labels=
|
|
157
|
+
ann = ann.add_labels(labels=all_labels)
|
|
147
158
|
|
|
148
159
|
return ann
|
|
149
160
|
except Exception as e:
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
from typing import List, Tuple
|
|
3
3
|
|
|
4
4
|
import numpy as np
|
|
5
|
-
|
|
5
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
6
6
|
from supervisely import (
|
|
7
7
|
Annotation,
|
|
8
8
|
Label,
|
|
@@ -87,7 +87,6 @@ def read_colors(colors_file: str) -> Tuple[ObjClassCollection, dict]:
|
|
|
87
87
|
color2class_name = {v: k for k, v in cls2col.items()}
|
|
88
88
|
return obj_classes, color2class_name
|
|
89
89
|
|
|
90
|
-
|
|
91
90
|
def get_ann(
|
|
92
91
|
item,
|
|
93
92
|
color2class_name: dict,
|
|
@@ -97,11 +96,13 @@ def get_ann(
|
|
|
97
96
|
) -> Annotation:
|
|
98
97
|
segm_path, inst_path = item.segm_path, item.inst_path
|
|
99
98
|
height, width = item.shape
|
|
100
|
-
|
|
99
|
+
img_rect = Rectangle.from_size(item.shape)
|
|
101
100
|
ann = Annotation(img_size=(height, width))
|
|
102
101
|
|
|
103
102
|
if item.ann_data is not None:
|
|
104
|
-
bbox_labels = xml_to_sly_labels(
|
|
103
|
+
bbox_labels = xml_to_sly_labels(
|
|
104
|
+
item.ann_data, meta, bbox_classes_map, img_rect, renamed_classes
|
|
105
|
+
)
|
|
105
106
|
ann = ann.add_labels(bbox_labels)
|
|
106
107
|
|
|
107
108
|
if segm_path is None:
|
|
@@ -136,15 +137,18 @@ def get_ann(
|
|
|
136
137
|
cls_name = renamed_classes[cls_name]
|
|
137
138
|
curr_col2cls[color] = cls_name
|
|
138
139
|
|
|
140
|
+
labels = []
|
|
139
141
|
for color, class_name in curr_col2cls.items():
|
|
140
142
|
mask = np.all(colored_img == color, axis=2) # exact match (3-channel img & rgb color)
|
|
141
143
|
bitmap = Bitmap(data=mask)
|
|
142
144
|
obj_class = ObjClass(name=class_name, geometry_type=Bitmap)
|
|
143
|
-
|
|
144
|
-
ann = ann.add_label(Label(bitmap, obj_class))
|
|
145
|
+
labels.append(Label(bitmap, obj_class))
|
|
145
146
|
# clear used pixels in mask to check missing colors, see below
|
|
146
147
|
colored_img[mask] = (0, 0, 0)
|
|
147
148
|
|
|
149
|
+
labels = validate_image_bounds(labels, img_rect)
|
|
150
|
+
ann = ann.add_labels(labels)
|
|
151
|
+
|
|
148
152
|
if np.sum(colored_img) > 0:
|
|
149
153
|
logger.warn(
|
|
150
154
|
f"Not all objects or classes are captured from source segmentation: {item.name}"
|
|
@@ -157,6 +161,7 @@ def xml_to_sly_labels(
|
|
|
157
161
|
xml_path: str,
|
|
158
162
|
meta: ProjectMeta,
|
|
159
163
|
bbox_classes_map: dict,
|
|
164
|
+
img_rect: Rectangle,
|
|
160
165
|
renamed_classes=None,
|
|
161
166
|
) -> List[Label]:
|
|
162
167
|
import xml.etree.ElementTree as ET
|
|
@@ -180,6 +185,7 @@ def xml_to_sly_labels(
|
|
|
180
185
|
bbox = Rectangle(*bbox_coords)
|
|
181
186
|
label = Label(bbox, obj_cls)
|
|
182
187
|
labels.append(label)
|
|
188
|
+
labels = validate_image_bounds(labels, img_rect)
|
|
183
189
|
|
|
184
190
|
return labels
|
|
185
191
|
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
-
from supervisely import
|
|
3
|
+
from supervisely import (
|
|
4
|
+
Annotation,
|
|
5
|
+
Api,
|
|
6
|
+
ProjectMeta,
|
|
7
|
+
Label,
|
|
8
|
+
Rectangle,
|
|
9
|
+
batched,
|
|
10
|
+
is_development,
|
|
11
|
+
logger,
|
|
12
|
+
)
|
|
4
13
|
from supervisely.convert.image.sly.sly_image_converter import SLYImageConverter
|
|
5
14
|
import supervisely.convert.image.sly.sly_image_helper as helper
|
|
6
15
|
from supervisely.convert.image.image_converter import ImageConverter
|
|
7
16
|
from supervisely.io.fs import get_file_ext
|
|
8
17
|
from supervisely.io.json import load_json_file
|
|
18
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
9
19
|
|
|
10
20
|
|
|
11
21
|
class FastSlyImageConverter(SLYImageConverter, ImageConverter):
|
|
@@ -40,7 +50,6 @@ class FastSlyImageConverter(SLYImageConverter, ImageConverter):
|
|
|
40
50
|
self._meta = meta
|
|
41
51
|
return detected_ann_cnt > 0
|
|
42
52
|
|
|
43
|
-
|
|
44
53
|
def to_supervisely(
|
|
45
54
|
self,
|
|
46
55
|
item: ImageConverter.Item,
|
|
@@ -58,12 +67,16 @@ class FastSlyImageConverter(SLYImageConverter, ImageConverter):
|
|
|
58
67
|
ann_json = ann_json["annotation"]
|
|
59
68
|
if renamed_classes or renamed_tags:
|
|
60
69
|
ann_json = helper.rename_in_json(ann_json, renamed_classes, renamed_tags)
|
|
61
|
-
|
|
70
|
+
img_size = list(ann_json["size"].values())
|
|
71
|
+
labels = validate_image_bounds(
|
|
72
|
+
[Label.from_json(obj, meta) for obj in ann_json["objects"]],
|
|
73
|
+
Rectangle.from_size(img_size),
|
|
74
|
+
)
|
|
75
|
+
return Annotation.from_json(ann_json, meta).clone(labels=labels)
|
|
62
76
|
except Exception as e:
|
|
63
77
|
logger.warn(f"Failed to convert annotation: {repr(e)}")
|
|
64
78
|
return None
|
|
65
79
|
|
|
66
|
-
|
|
67
80
|
def upload_dataset(
|
|
68
81
|
self,
|
|
69
82
|
api: Api,
|
|
@@ -2,7 +2,17 @@ import os
|
|
|
2
2
|
from typing import Dict, Optional
|
|
3
3
|
|
|
4
4
|
import supervisely.convert.image.sly.sly_image_helper as sly_image_helper
|
|
5
|
-
from supervisely import
|
|
5
|
+
from supervisely.convert.image.image_helper import validate_image_bounds
|
|
6
|
+
from supervisely import (
|
|
7
|
+
Annotation,
|
|
8
|
+
Dataset,
|
|
9
|
+
OpenMode,
|
|
10
|
+
Project,
|
|
11
|
+
ProjectMeta,
|
|
12
|
+
Rectangle,
|
|
13
|
+
Label,
|
|
14
|
+
logger,
|
|
15
|
+
)
|
|
6
16
|
from supervisely._utils import generate_free_name
|
|
7
17
|
from supervisely.api.api import Api
|
|
8
18
|
from supervisely.convert.base_converter import AvailableImageConverters
|
|
@@ -134,7 +144,12 @@ class SLYImageConverter(ImageConverter):
|
|
|
134
144
|
ann_json = ann_json["annotation"]
|
|
135
145
|
if renamed_classes or renamed_tags:
|
|
136
146
|
ann_json = sly_image_helper.rename_in_json(ann_json, renamed_classes, renamed_tags)
|
|
137
|
-
|
|
147
|
+
img_size = list(ann_json["size"].values())
|
|
148
|
+
labels = validate_image_bounds(
|
|
149
|
+
[Label.from_json(obj, meta) for obj in ann_json["objects"]],
|
|
150
|
+
Rectangle.from_size(img_size),
|
|
151
|
+
)
|
|
152
|
+
return Annotation.from_json(ann_json, meta).clone(labels=labels)
|
|
138
153
|
except Exception as e:
|
|
139
154
|
logger.warn(f"Failed to convert annotation: {repr(e)}")
|
|
140
155
|
return item.create_empty_annotation()
|
|
@@ -399,11 +399,12 @@ class DataVersion(ModuleApiBase):
|
|
|
399
399
|
updated_at = self.versions[str(version_id)]["updated_at"]
|
|
400
400
|
backup_files = self.versions[str(version_id)]["path"]
|
|
401
401
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
402
|
+
# turn off this check for now (treating this as a project clone operation)
|
|
403
|
+
# if updated_at == self.project_info.updated_at:
|
|
404
|
+
# logger.warning(
|
|
405
|
+
# f"Project is already on version {version_num} with the same updated_at timestamp"
|
|
406
|
+
# )
|
|
407
|
+
# return
|
|
407
408
|
|
|
408
409
|
if backup_files is None:
|
|
409
410
|
logger.warning(
|
|
@@ -49,7 +49,7 @@ supervisely/api/video_annotation_tool_api.py,sha256=Uy1MvT-M7vjC6y-0-V4wFCO-fZt8
|
|
|
49
49
|
supervisely/api/workspace_api.py,sha256=5KAxpI9DKBmgF_pyQaXHpGT30HZ9wRtR6DP3FoYFZtY,9228
|
|
50
50
|
supervisely/api/entity_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
51
|
supervisely/api/entity_annotation/entity_annotation_api.py,sha256=K79KdDyepQv4FiNQHBj9V4-zLIemxK9WG1ig1bfBKb8,3083
|
|
52
|
-
supervisely/api/entity_annotation/figure_api.py,sha256=
|
|
52
|
+
supervisely/api/entity_annotation/figure_api.py,sha256=ZO2W2Px4XNHqgEOFhvw-HGsUJpK5Pek5azbNxDOJ47o,20517
|
|
53
53
|
supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2Co7VU_kfFd1GYILZ4E,8875
|
|
54
54
|
supervisely/api/entity_annotation/tag_api.py,sha256=jA6q5XuvJ6qAalM9ktGbscbNM07xw4Qo3odkkstvNKY,10882
|
|
55
55
|
supervisely/api/pointcloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -558,14 +558,14 @@ supervisely/convert/base_converter.py,sha256=F5oCwQZ_w7XlIIQnW-y-2scvA9sC8vCJL2X
|
|
|
558
558
|
supervisely/convert/converter.py,sha256=0F93xZmyprua63C6KxIeh0AbaFab81LiWqlkOVrkaYU,8672
|
|
559
559
|
supervisely/convert/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
560
560
|
supervisely/convert/image/image_converter.py,sha256=Er-QX6qyVO4p72iJ3ae0YMF9gSfm_SUimoH6id0MIIs,9446
|
|
561
|
-
supervisely/convert/image/image_helper.py,sha256=
|
|
561
|
+
supervisely/convert/image/image_helper.py,sha256=RkBAyxxXmDG1Z5WFuO9kBDK8MN1Kl7Z25DX9-CwZ7OI,3647
|
|
562
562
|
supervisely/convert/image/cityscapes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
563
563
|
supervisely/convert/image/cityscapes/cityscapes_converter.py,sha256=msmsR2W-Xiod06dwn-MzmkbrEmQQqlKh7zyfTrW6YQw,7854
|
|
564
|
-
supervisely/convert/image/cityscapes/cityscapes_helper.py,sha256=
|
|
564
|
+
supervisely/convert/image/cityscapes/cityscapes_helper.py,sha256=in5nR7__q_u5dCkVtZmynfZ_ZuvsIAHrTzyTG4EvNgU,2988
|
|
565
565
|
supervisely/convert/image/coco/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
566
566
|
supervisely/convert/image/coco/coco_anntotation_converter.py,sha256=79rhAy_nkudxEgJDLW0BziUz808-fSqTOnlUeN-kvn8,6603
|
|
567
567
|
supervisely/convert/image/coco/coco_converter.py,sha256=7czTd4I1we_HxEc9diQiXPC2pXAtnoqSnFSVCtNOmP4,5431
|
|
568
|
-
supervisely/convert/image/coco/coco_helper.py,sha256=
|
|
568
|
+
supervisely/convert/image/coco/coco_helper.py,sha256=lRr9TcqRVphF_Hlw37-vgJClJBQ-THmCW5xHPYhkxPg,13340
|
|
569
569
|
supervisely/convert/image/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
570
570
|
supervisely/convert/image/csv/csv_converter.py,sha256=iLyc2PAVtlsAq7blnGH4iS1_D7Ai6-4UsdI_RlDVB9Q,11677
|
|
571
571
|
supervisely/convert/image/csv/csv_helper.py,sha256=-nR192IfMU0vTlNRoKXu5FS6tTs9fENqySyeKKyemRs,8409
|
|
@@ -574,13 +574,13 @@ supervisely/convert/image/high_color/high_color_depth.py,sha256=t1LsOnEwhSmXUWxs
|
|
|
574
574
|
supervisely/convert/image/high_color/high_color_helper.py,sha256=bD5Jl6lmKbiNG_8Bpy-WvIYjSJqwdaVmXrHGVZT6o2w,1630
|
|
575
575
|
supervisely/convert/image/label_me/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
576
576
|
supervisely/convert/image/label_me/label_me_converter.py,sha256=E8epO8METLslVLy51AW7FoZto1jrPSFUZHDwzOnHbTk,3081
|
|
577
|
-
supervisely/convert/image/label_me/label_me_helper.py,sha256=
|
|
577
|
+
supervisely/convert/image/label_me/label_me_helper.py,sha256=qysfNlGyUG8dAEn9dS66AfxTSC6S5fTSTg7JMtVA2OU,8430
|
|
578
578
|
supervisely/convert/image/label_studio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
579
579
|
supervisely/convert/image/label_studio/label_studio_converter.py,sha256=eP7Lch9QxTzN29sF71rIJyffeXQdXXaUmoLUPBuC6JM,5117
|
|
580
|
-
supervisely/convert/image/label_studio/label_studio_helper.py,sha256=
|
|
580
|
+
supervisely/convert/image/label_studio/label_studio_helper.py,sha256=aSAvhZnkqqVtGKxSDrw9slLIe-cNte7G1FeH8Tu3yRY,8008
|
|
581
581
|
supervisely/convert/image/masks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
582
582
|
supervisely/convert/image/masks/image_with_masks_helper.py,sha256=TSHiAIH3qlYdjR-9HteDcbJQbvJLM7NfWqoaW5BNTX4,2233
|
|
583
|
-
supervisely/convert/image/masks/images_with_masks_converter.py,sha256=
|
|
583
|
+
supervisely/convert/image/masks/images_with_masks_converter.py,sha256=Won5LihYXZZmimgaJHmK0_rVmOadWYk21OHKri21R08,6866
|
|
584
584
|
supervisely/convert/image/medical2d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
585
585
|
supervisely/convert/image/medical2d/medical2d_converter.py,sha256=cYEaRfr8YFxEG_Pv-_SVMxrqZudi3kWbGQ3aArL2mds,8156
|
|
586
586
|
supervisely/convert/image/medical2d/medical2d_helper.py,sha256=pfLRCSFbFa5EIhmbB7kdmdWRu01OwIEDPXeNHzAeagg,12329
|
|
@@ -590,13 +590,13 @@ supervisely/convert/image/multispectral/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
|
|
|
590
590
|
supervisely/convert/image/multispectral/multispectral_converter.py,sha256=T3etYVNI0AUUrQsQhxw_r85NthXrqhqmdZQfz8kUY0g,5194
|
|
591
591
|
supervisely/convert/image/pascal_voc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
592
592
|
supervisely/convert/image/pascal_voc/pascal_voc_converter.py,sha256=h5Q3qW4riUCXPo5535wuKGurlLvPfKbWGML0RGnMxyg,7648
|
|
593
|
-
supervisely/convert/image/pascal_voc/pascal_voc_helper.py,sha256=
|
|
593
|
+
supervisely/convert/image/pascal_voc/pascal_voc_helper.py,sha256=Brpyet_FRnKAJSTaXrI5wLZLc9yIt3VAAkC6SYUCm1Y,8005
|
|
594
594
|
supervisely/convert/image/pdf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
595
595
|
supervisely/convert/image/pdf/pdf_converter.py,sha256=LKvVng9jPp0cSIjYEjKLOb48wtdOdB7LXS2gjmOdZhE,2442
|
|
596
596
|
supervisely/convert/image/pdf/pdf_helper.py,sha256=IDwLEvsVy8lu-KC1lXvSRkZZ9BCC6ylebnNEtLQU5L4,1288
|
|
597
597
|
supervisely/convert/image/sly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
598
|
-
supervisely/convert/image/sly/fast_sly_image_converter.py,sha256=
|
|
599
|
-
supervisely/convert/image/sly/sly_image_converter.py,sha256=
|
|
598
|
+
supervisely/convert/image/sly/fast_sly_image_converter.py,sha256=bmJTA-ty_P6oU4SBiiUi5PUzX7OfwX8OBXN8XHiSJmw,5308
|
|
599
|
+
supervisely/convert/image/sly/sly_image_converter.py,sha256=Qxp8F_loZMpzLFRiQw1RC4ZWsZeyQ4c3n_ldlBiZZE8,12010
|
|
600
600
|
supervisely/convert/image/sly/sly_image_helper.py,sha256=5Ri8fKb5dzh5b3v8AJ5u8xVFOQfAtoWqZ7HktPsCjTI,7373
|
|
601
601
|
supervisely/convert/image/yolo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
602
602
|
supervisely/convert/image/yolo/yolo_converter.py,sha256=cg5___X5MzvR-rZbNLmaKtr0MdRnyqtEzbBq5UBnYZ0,11171
|
|
@@ -623,7 +623,7 @@ supervisely/convert/pointcloud_episodes/sly/__init__.py,sha256=47DEQpj8HBSa-_TIm
|
|
|
623
623
|
supervisely/convert/pointcloud_episodes/sly/sly_pointcloud_episodes_converter.py,sha256=JD733jWyLXSljRNRAij5OTriaPrnPB6aIdQgQcUc_pg,5889
|
|
624
624
|
supervisely/convert/pointcloud_episodes/sly/sly_pointcloud_episodes_helper.py,sha256=h4WvNH6cEHtjxxhCnU7Hs2vkyJMye0qwabqXNYVTywE,3570
|
|
625
625
|
supervisely/convert/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
626
|
-
supervisely/convert/video/video_converter.py,sha256=
|
|
626
|
+
supervisely/convert/video/video_converter.py,sha256=ZMvZfrzglh5GsSp7fbtQwNsijDqPRrVmPxwAlGVAqOk,10648
|
|
627
627
|
supervisely/convert/video/davis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
628
628
|
supervisely/convert/video/davis/davis_converter.py,sha256=zaPsJdN6AvyPT7fVnswuPbgrz5T-X2RFbHEdkuMhWGk,415
|
|
629
629
|
supervisely/convert/video/mot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -891,7 +891,7 @@ supervisely/pointcloud_annotation/pointcloud_tag_collection.py,sha256=j_TAN23GkT
|
|
|
891
891
|
supervisely/pointcloud_episodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
892
892
|
supervisely/pointcloud_episodes/pointcloud_episodes.py,sha256=NqUkVdHBSIplB2wvzL6a8z8EuGNpAJuOn1j5UrmSrQw,3421
|
|
893
893
|
supervisely/project/__init__.py,sha256=hlzdj9Pgy53Q3qdP8LMtGTChvZHQuuShdtui2eRUQeE,2601
|
|
894
|
-
supervisely/project/data_version.py,sha256=
|
|
894
|
+
supervisely/project/data_version.py,sha256=nknaWJSUCwoDyNG9_d1KA-GjzidhV9zd9Cn8cg15DOU,19270
|
|
895
895
|
supervisely/project/download.py,sha256=HtprYsqdzx0AgBmMlvigerFjhMQDtTGuCE1aQ9LBqN0,19704
|
|
896
896
|
supervisely/project/pointcloud_episode_project.py,sha256=fcaFAaHVn_VvdiIfHl4IyEFE5-Q3VFGfo7_YoxEma0I,41341
|
|
897
897
|
supervisely/project/pointcloud_project.py,sha256=Y8Xhi6Hg-KyztwFncezuDfKTt2FILss96EU_LdXzmrA,49172
|
|
@@ -957,9 +957,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
957
957
|
supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
|
|
958
958
|
supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
|
|
959
959
|
supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
|
|
960
|
-
supervisely-6.73.
|
|
961
|
-
supervisely-6.73.
|
|
962
|
-
supervisely-6.73.
|
|
963
|
-
supervisely-6.73.
|
|
964
|
-
supervisely-6.73.
|
|
965
|
-
supervisely-6.73.
|
|
960
|
+
supervisely-6.73.213.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
961
|
+
supervisely-6.73.213.dist-info/METADATA,sha256=PXttYVP1qxfusv5jsnH9G_sDtKQ4V0e9LJ3mItlP2VY,33086
|
|
962
|
+
supervisely-6.73.213.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
|
963
|
+
supervisely-6.73.213.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
964
|
+
supervisely-6.73.213.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
965
|
+
supervisely-6.73.213.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|