supervisely 6.73.283__py3-none-any.whl → 6.73.285__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/_utils.py +9 -0
- supervisely/api/entity_annotation/figure_api.py +3 -0
- supervisely/api/module_api.py +35 -1
- supervisely/api/video/video_api.py +1 -1
- supervisely/api/video_annotation_tool_api.py +58 -7
- supervisely/nn/benchmark/base_benchmark.py +13 -2
- supervisely/nn/benchmark/base_evaluator.py +2 -0
- supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py +5 -0
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py +25 -0
- supervisely/nn/benchmark/comparison/detection_visualization/visualizer.py +9 -3
- supervisely/nn/benchmark/instance_segmentation/evaluator.py +1 -0
- supervisely/nn/benchmark/instance_segmentation/text_templates.py +7 -0
- supervisely/nn/benchmark/object_detection/evaluator.py +15 -3
- supervisely/nn/benchmark/object_detection/metric_provider.py +21 -1
- supervisely/nn/benchmark/object_detection/text_templates.py +7 -0
- supervisely/nn/benchmark/object_detection/vis_metrics/key_metrics.py +12 -0
- supervisely/nn/benchmark/object_detection/vis_metrics/overview.py +41 -2
- supervisely/nn/benchmark/object_detection/visualizer.py +20 -0
- supervisely/nn/benchmark/semantic_segmentation/evaluator.py +1 -0
- supervisely/nn/benchmark/utils/detection/calculate_metrics.py +31 -33
- supervisely/nn/benchmark/visualization/renderer.py +2 -0
- supervisely/nn/inference/cache.py +19 -1
- supervisely/nn/inference/inference.py +22 -0
- supervisely/nn/inference/tracking/base_tracking.py +362 -0
- supervisely/nn/inference/tracking/bbox_tracking.py +179 -129
- supervisely/nn/inference/tracking/mask_tracking.py +420 -329
- supervisely/nn/inference/tracking/point_tracking.py +325 -288
- supervisely/nn/inference/tracking/tracker_interface.py +346 -13
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/METADATA +1 -1
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/RECORD +34 -33
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/LICENSE +0 -0
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/WHEEL +0 -0
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.283.dist-info → supervisely-6.73.285.dist-info}/top_level.txt +0 -0
|
@@ -1,15 +1,26 @@
|
|
|
1
|
+
import time
|
|
1
2
|
import uuid
|
|
2
|
-
from collections import OrderedDict
|
|
3
|
+
from collections import OrderedDict, namedtuple
|
|
3
4
|
from logging import Logger
|
|
4
|
-
from
|
|
5
|
+
from queue import Queue
|
|
6
|
+
from threading import Lock, Thread
|
|
7
|
+
from typing import Any, Callable, Dict, Generator, List, Optional
|
|
5
8
|
from typing import OrderedDict as OrderedDictType
|
|
6
9
|
|
|
7
10
|
import numpy as np
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
from supervisely._utils import find_value_by_keys
|
|
13
|
+
from supervisely.api.api import Api
|
|
10
14
|
from supervisely.api.module_api import ApiField
|
|
11
15
|
from supervisely.geometry.geometry import Geometry
|
|
12
|
-
from supervisely.
|
|
16
|
+
from supervisely.geometry.graph import GraphNodes
|
|
17
|
+
from supervisely.geometry.helpers import deserialize_geometry
|
|
18
|
+
from supervisely.geometry.point import Point
|
|
19
|
+
from supervisely.geometry.polygon import Polygon
|
|
20
|
+
from supervisely.geometry.polyline import Polyline
|
|
21
|
+
from supervisely.nn.inference.cache import InferenceImageCache
|
|
22
|
+
from supervisely.sly_logger import logger
|
|
23
|
+
from supervisely.video_annotation.key_id_map import KeyIdMap
|
|
13
24
|
|
|
14
25
|
|
|
15
26
|
class TrackerInterface:
|
|
@@ -20,11 +31,11 @@ class TrackerInterface:
|
|
|
20
31
|
load_all_frames=False,
|
|
21
32
|
notify_in_predict=False,
|
|
22
33
|
per_point_polygon_tracking=True,
|
|
23
|
-
frame_loader: Callable[[
|
|
24
|
-
frames_loader: Callable[[
|
|
34
|
+
frame_loader: Callable[[Api, int, int], np.ndarray] = None,
|
|
35
|
+
frames_loader: Callable[[Api, int, List[int]], List[np.ndarray]] = None,
|
|
25
36
|
should_notify: bool = True,
|
|
26
37
|
):
|
|
27
|
-
self.api:
|
|
38
|
+
self.api: Api = api
|
|
28
39
|
self.logger: Logger = api.logger
|
|
29
40
|
self.frame_index = context["frameIndex"]
|
|
30
41
|
self.frames_count = context["frames"]
|
|
@@ -131,7 +142,7 @@ class TrackerInterface:
|
|
|
131
142
|
for geometry, frame_index in geometries_frame_indexes
|
|
132
143
|
]
|
|
133
144
|
figures_keys = [uuid.uuid4() for _ in figures_json]
|
|
134
|
-
key_id_map =
|
|
145
|
+
key_id_map = KeyIdMap()
|
|
135
146
|
self.api.video.figure._append_bulk(
|
|
136
147
|
entity_id=self.video_id,
|
|
137
148
|
figures_json=figures_json,
|
|
@@ -169,19 +180,19 @@ class TrackerInterface:
|
|
|
169
180
|
points = 0
|
|
170
181
|
for figure_id in self.figure_ids:
|
|
171
182
|
figure = self.api.video.figure.get_info_by_id(figure_id)
|
|
172
|
-
geometry =
|
|
183
|
+
geometry = deserialize_geometry(figure.geometry_type, figure.geometry)
|
|
173
184
|
self.geometries[figure_id] = geometry
|
|
174
185
|
|
|
175
186
|
self.api.logger.debug(f"Added {figure.geometry_type} #{figure_id}")
|
|
176
187
|
|
|
177
188
|
# per point track notification
|
|
178
|
-
if isinstance(geometry,
|
|
189
|
+
if isinstance(geometry, Point):
|
|
179
190
|
points += 1
|
|
180
|
-
elif isinstance(geometry,
|
|
191
|
+
elif isinstance(geometry, Polygon):
|
|
181
192
|
points += len(geometry.exterior) + len(geometry.interior)
|
|
182
|
-
elif isinstance(geometry,
|
|
193
|
+
elif isinstance(geometry, GraphNodes):
|
|
183
194
|
points += len(geometry.nodes.items())
|
|
184
|
-
elif isinstance(geometry,
|
|
195
|
+
elif isinstance(geometry, Polyline):
|
|
185
196
|
points += len(geometry.exterior)
|
|
186
197
|
|
|
187
198
|
if self.per_point_polygon_tracking:
|
|
@@ -289,3 +300,325 @@ class TrackerInterface:
|
|
|
289
300
|
"""Use this in prediction."""
|
|
290
301
|
self._notify(task="get frames")
|
|
291
302
|
return self._frames
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
class ThreadSafeStopIndicator:
|
|
306
|
+
def __init__(self):
|
|
307
|
+
self._stopped = False
|
|
308
|
+
self._reason = None
|
|
309
|
+
self._lock = Lock()
|
|
310
|
+
|
|
311
|
+
def stop(self, reason: Any = None):
|
|
312
|
+
if self.is_stopped():
|
|
313
|
+
return
|
|
314
|
+
with self._lock:
|
|
315
|
+
self._stopped = True
|
|
316
|
+
self._reason = reason
|
|
317
|
+
|
|
318
|
+
def is_stopped(self):
|
|
319
|
+
with self._lock:
|
|
320
|
+
return self._stopped
|
|
321
|
+
|
|
322
|
+
def get_reason(self):
|
|
323
|
+
with self._lock:
|
|
324
|
+
return self._reason
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
FrameImage = namedtuple("FrameImage", ["frame_index", "image"])
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
class TrackerInterfaceV2:
|
|
331
|
+
UPLOAD_SLEEP_TIME = 0.001 # 1ms
|
|
332
|
+
NOTIFY_SLEEP_TIME = 1 # 1s
|
|
333
|
+
|
|
334
|
+
def __init__(
|
|
335
|
+
self,
|
|
336
|
+
api: Api,
|
|
337
|
+
context: Dict,
|
|
338
|
+
cache: InferenceImageCache,
|
|
339
|
+
):
|
|
340
|
+
self.api = api
|
|
341
|
+
self.context = context
|
|
342
|
+
self.video_id = find_value_by_keys(context, ["videoId", "video_id"])
|
|
343
|
+
self.frame_index = find_value_by_keys(context, ["frameIndex", "frame_index"])
|
|
344
|
+
self.frames_count = find_value_by_keys(context, ["frames", "framesCount", "frames_count"])
|
|
345
|
+
self.track_id = context.get("trackId", "auto")
|
|
346
|
+
self.direction = context.get("direction", "forward")
|
|
347
|
+
self.session_id = find_value_by_keys(context, ["sessionId", "session_id"], None)
|
|
348
|
+
self.figures = context.get("figures", None)
|
|
349
|
+
self.direct_progress = context.get("useDirectProgressMessages", False)
|
|
350
|
+
self.direction_n = 1 if self.direction == "forward" else -1
|
|
351
|
+
self.stop_indicator = ThreadSafeStopIndicator()
|
|
352
|
+
self.cache = cache
|
|
353
|
+
self.frame_indexes = list(
|
|
354
|
+
range(
|
|
355
|
+
self.frame_index,
|
|
356
|
+
self.frame_index + self.frames_count * self.direction_n + self.direction_n,
|
|
357
|
+
self.direction_n,
|
|
358
|
+
)
|
|
359
|
+
)
|
|
360
|
+
|
|
361
|
+
self.log_extra = {
|
|
362
|
+
"video_id": self.video_id,
|
|
363
|
+
"track_id": self.track_id,
|
|
364
|
+
"session_id": self.session_id,
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
# start caching task
|
|
368
|
+
self.run_cache_frames_task()
|
|
369
|
+
|
|
370
|
+
self.upload_sleep_time = self.UPLOAD_SLEEP_TIME
|
|
371
|
+
self.notify_sleep_time = self.NOTIFY_SLEEP_TIME
|
|
372
|
+
self.upload_queue = Queue()
|
|
373
|
+
self.notify_queue = Queue()
|
|
374
|
+
self.upload_thread = None
|
|
375
|
+
self.notify_thread = None
|
|
376
|
+
self._upload_f = None
|
|
377
|
+
self._notify_f = None
|
|
378
|
+
|
|
379
|
+
def __call__(self, upload_f, notify_f):
|
|
380
|
+
self.upload_f = upload_f
|
|
381
|
+
self.notify_f = notify_f
|
|
382
|
+
return self
|
|
383
|
+
|
|
384
|
+
def __enter__(self):
|
|
385
|
+
self.start()
|
|
386
|
+
return self
|
|
387
|
+
|
|
388
|
+
def __exit__(self, exc_type, exc_value, traceback):
|
|
389
|
+
self.wait_stop(exception=exc_value)
|
|
390
|
+
return False
|
|
391
|
+
|
|
392
|
+
@property
|
|
393
|
+
def upload_f(self):
|
|
394
|
+
return self._upload_f
|
|
395
|
+
|
|
396
|
+
@upload_f.setter
|
|
397
|
+
def upload_f(self, upload_f):
|
|
398
|
+
self._upload_f = upload_f
|
|
399
|
+
self.upload_thread = Thread(
|
|
400
|
+
target=self._upload_loop,
|
|
401
|
+
args=[
|
|
402
|
+
self.upload_queue,
|
|
403
|
+
self.notify_queue,
|
|
404
|
+
self.stop_indicator,
|
|
405
|
+
self._upload_f,
|
|
406
|
+
self.upload_sleep_time,
|
|
407
|
+
self._upload_exception_handler,
|
|
408
|
+
],
|
|
409
|
+
daemon=True,
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
@property
|
|
413
|
+
def notify_f(self):
|
|
414
|
+
return self._notify_f
|
|
415
|
+
|
|
416
|
+
@notify_f.setter
|
|
417
|
+
def notify_f(self, notify_f):
|
|
418
|
+
self._notify_f = notify_f
|
|
419
|
+
self.notify_thread = Thread(
|
|
420
|
+
target=self._nofify_loop,
|
|
421
|
+
args=[
|
|
422
|
+
self.notify_queue,
|
|
423
|
+
self.stop_indicator,
|
|
424
|
+
self._notify_f,
|
|
425
|
+
self.notify_sleep_time,
|
|
426
|
+
self._notify_exception_handler,
|
|
427
|
+
],
|
|
428
|
+
daemon=True,
|
|
429
|
+
)
|
|
430
|
+
|
|
431
|
+
def start(self):
|
|
432
|
+
if self.upload_thread is not None:
|
|
433
|
+
self.upload_thread.start()
|
|
434
|
+
if self.notify_thread is not None:
|
|
435
|
+
self.notify_thread.start()
|
|
436
|
+
|
|
437
|
+
def stop(self, exception: Exception = None):
|
|
438
|
+
self.stop_indicator.stop(exception)
|
|
439
|
+
|
|
440
|
+
def join(self, timeout: Optional[float] = 5 * 60):
|
|
441
|
+
if self.upload_thread is not None and self.upload_thread.is_alive():
|
|
442
|
+
self.upload_thread.join(timeout=timeout)
|
|
443
|
+
if self.notify_thread is not None and self.notify_thread.is_alive():
|
|
444
|
+
self.notify_thread.join(timeout=timeout)
|
|
445
|
+
|
|
446
|
+
def wait_stop(self, exception: Exception = None, timeout: Optional[float] = 5 * 60):
|
|
447
|
+
self.stop(exception)
|
|
448
|
+
self.join(timeout=timeout)
|
|
449
|
+
|
|
450
|
+
def is_stopped(self):
|
|
451
|
+
return self.stop_indicator.is_stopped()
|
|
452
|
+
|
|
453
|
+
def stop_reason(self):
|
|
454
|
+
return self.stop_indicator.get_reason()
|
|
455
|
+
|
|
456
|
+
@classmethod
|
|
457
|
+
def _upload_loop(
|
|
458
|
+
cls,
|
|
459
|
+
q: Queue,
|
|
460
|
+
notify_q: Queue,
|
|
461
|
+
stop_indicator: ThreadSafeStopIndicator,
|
|
462
|
+
upload_f: callable = None,
|
|
463
|
+
upload_sleep_time: float = None,
|
|
464
|
+
exception_handler: callable = None,
|
|
465
|
+
):
|
|
466
|
+
logger.debug("Upload loop started")
|
|
467
|
+
if upload_f is None:
|
|
468
|
+
logger.warning("Upload function is not provided. Exiting upload loop.")
|
|
469
|
+
return
|
|
470
|
+
upload_sleep_time = upload_sleep_time or cls.UPLOAD_SLEEP_TIME
|
|
471
|
+
try:
|
|
472
|
+
while True:
|
|
473
|
+
items = []
|
|
474
|
+
while not q.empty():
|
|
475
|
+
items.append(q.get_nowait())
|
|
476
|
+
if len(items) > 0:
|
|
477
|
+
upload_f(items)
|
|
478
|
+
for item in items:
|
|
479
|
+
notify_q.put(item)
|
|
480
|
+
elif stop_indicator.is_stopped():
|
|
481
|
+
logger.debug("stop event is set. returning from upload loop")
|
|
482
|
+
return
|
|
483
|
+
time.sleep(upload_sleep_time)
|
|
484
|
+
except Exception as e:
|
|
485
|
+
if exception_handler is not None:
|
|
486
|
+
e = exception_handler(e)
|
|
487
|
+
if not isinstance(e, Exception):
|
|
488
|
+
return
|
|
489
|
+
raise e
|
|
490
|
+
logger.error("Error in upload loop: %s", str(e), exc_info=True)
|
|
491
|
+
raise
|
|
492
|
+
|
|
493
|
+
@classmethod
|
|
494
|
+
def _nofify_loop(
|
|
495
|
+
cls,
|
|
496
|
+
q: Queue,
|
|
497
|
+
stop_indicator: ThreadSafeStopIndicator,
|
|
498
|
+
notify_f: callable = None,
|
|
499
|
+
notify_sleep_time: float = None,
|
|
500
|
+
exception_handler: callable = None,
|
|
501
|
+
):
|
|
502
|
+
logger.debug("Notify loop started")
|
|
503
|
+
if notify_f is None:
|
|
504
|
+
logger.warning("Notify function is not provided. Exiting notify loop.")
|
|
505
|
+
return
|
|
506
|
+
notify_sleep_time = notify_sleep_time or cls.NOTIFY_SLEEP_TIME
|
|
507
|
+
try:
|
|
508
|
+
while True:
|
|
509
|
+
items = []
|
|
510
|
+
while not q.empty():
|
|
511
|
+
items.append(q.get_nowait())
|
|
512
|
+
if len(items) > 0:
|
|
513
|
+
notify_f(items)
|
|
514
|
+
elif stop_indicator.is_stopped():
|
|
515
|
+
logger.debug(f"stop event is set. returning from notify loop")
|
|
516
|
+
return
|
|
517
|
+
time.sleep(notify_sleep_time)
|
|
518
|
+
except Exception as e:
|
|
519
|
+
if exception_handler is not None:
|
|
520
|
+
e = exception_handler(e)
|
|
521
|
+
if not isinstance(e, Exception):
|
|
522
|
+
return
|
|
523
|
+
raise e
|
|
524
|
+
logger.error("Error in notify loop: %s", str(e), exc_info=True)
|
|
525
|
+
raise
|
|
526
|
+
|
|
527
|
+
def run_cache_frames_task(self):
|
|
528
|
+
if self.cache.is_persistent:
|
|
529
|
+
frame_ranges = None
|
|
530
|
+
else:
|
|
531
|
+
frame_ranges = [
|
|
532
|
+
self.frame_index,
|
|
533
|
+
self.frame_index + self.frames_count * self.direction_n,
|
|
534
|
+
]
|
|
535
|
+
if self.direction_n == -1:
|
|
536
|
+
frame_ranges = frame_ranges[::-1]
|
|
537
|
+
frame_ranges = [frame_ranges]
|
|
538
|
+
self.cache.run_cache_task_manually(
|
|
539
|
+
self.api,
|
|
540
|
+
frame_ranges,
|
|
541
|
+
video_id=self.video_id,
|
|
542
|
+
)
|
|
543
|
+
|
|
544
|
+
def frames_loader_generator(
|
|
545
|
+
self, batch_size=2, step=1
|
|
546
|
+
) -> Generator[List[FrameImage], None, None]:
|
|
547
|
+
step = step * self.direction_n
|
|
548
|
+
batch = []
|
|
549
|
+
t = time.monotonic()
|
|
550
|
+
for frame_i, frame in zip(
|
|
551
|
+
self.frame_indexes,
|
|
552
|
+
self.cache.frames_loader(
|
|
553
|
+
self.api, video_id=self.video_id, frame_indexes=self.frame_indexes
|
|
554
|
+
),
|
|
555
|
+
):
|
|
556
|
+
batch.append(FrameImage(frame_i, frame))
|
|
557
|
+
if len(batch) == batch_size:
|
|
558
|
+
_get_indexes_str = lambda b: ", ".join(map(lambda x: str(x.frame_index), b))
|
|
559
|
+
if len(batch) > 16:
|
|
560
|
+
batch_indexes_str = (
|
|
561
|
+
_get_indexes_str(batch[:8]) + " ... " + _get_indexes_str(batch[-8:])
|
|
562
|
+
)
|
|
563
|
+
else:
|
|
564
|
+
batch_indexes_str = _get_indexes_str(batch)
|
|
565
|
+
|
|
566
|
+
logger.debug(
|
|
567
|
+
f"Frames [{batch_indexes_str}] loaded. Time: {time.monotonic() - t}",
|
|
568
|
+
extra=self.log_extra,
|
|
569
|
+
)
|
|
570
|
+
yield batch
|
|
571
|
+
t = time.monotonic()
|
|
572
|
+
batch = batch[step:]
|
|
573
|
+
|
|
574
|
+
def load_all_frames(self):
|
|
575
|
+
return next(self.frames_loader_generator(batch_size=len(self.frame_indexes)))
|
|
576
|
+
|
|
577
|
+
def add_prediction(self, item: Any):
|
|
578
|
+
self.upload_queue.put(item)
|
|
579
|
+
|
|
580
|
+
def notify_progress(
|
|
581
|
+
self,
|
|
582
|
+
progress_current: int,
|
|
583
|
+
progress_total: int,
|
|
584
|
+
frame_range: List[int] = None,
|
|
585
|
+
):
|
|
586
|
+
logger.debug(
|
|
587
|
+
f"Notify progress: {progress_current}/{progress_total} on frames {frame_range}",
|
|
588
|
+
extra=self.log_extra,
|
|
589
|
+
)
|
|
590
|
+
if self.direct_progress:
|
|
591
|
+
self.api.vid_ann_tool.set_direct_tracking_progress(
|
|
592
|
+
self.session_id,
|
|
593
|
+
self.video_id,
|
|
594
|
+
self.track_id,
|
|
595
|
+
frame_range=frame_range,
|
|
596
|
+
progress_current=progress_current,
|
|
597
|
+
progress_total=progress_total,
|
|
598
|
+
)
|
|
599
|
+
else:
|
|
600
|
+
stopped = self.api.video.notify_progress(
|
|
601
|
+
self.track_id,
|
|
602
|
+
self.video_id,
|
|
603
|
+
frame_range[0],
|
|
604
|
+
frame_range[1],
|
|
605
|
+
progress_current,
|
|
606
|
+
progress_total,
|
|
607
|
+
)
|
|
608
|
+
if stopped and progress_current < progress_total:
|
|
609
|
+
logger.info("Task stopped by user.", extra=self.log_extra)
|
|
610
|
+
self.stop()
|
|
611
|
+
|
|
612
|
+
def _upload_exception_handler(self, exception: Exception):
|
|
613
|
+
logger.error(
|
|
614
|
+
"Error in upload loop: %s", str(exception), exc_info=True, extra=self.log_extra
|
|
615
|
+
)
|
|
616
|
+
self.stop_indicator.stop(exception)
|
|
617
|
+
raise exception
|
|
618
|
+
|
|
619
|
+
def _notify_exception_handler(self, exception: Exception):
|
|
620
|
+
logger.error(
|
|
621
|
+
"Error in notify loop: %s", str(exception), exc_info=True, extra=self.log_extra
|
|
622
|
+
)
|
|
623
|
+
self.stop_indicator.stop(exception)
|
|
624
|
+
raise exception
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
supervisely/README.md,sha256=XM-DiMC6To3I9RjQZ0c61905EFRR_jnCUx2q3uNR-X8,3331
|
|
2
2
|
supervisely/__init__.py,sha256=bvuMHtPSeGkhj3vVvcVtyhVcMqI5OEBPflLcy8HIqN8,10833
|
|
3
|
-
supervisely/_utils.py,sha256=
|
|
3
|
+
supervisely/_utils.py,sha256=DX_2n8zWTG2AzW8bCvU9z9joLzcwzVjLmvslVF39pE8,16022
|
|
4
4
|
supervisely/function_wrapper.py,sha256=R5YajTQ0GnRp2vtjwfC9hINkzQc0JiyGsu8TER373xY,1912
|
|
5
5
|
supervisely/sly_logger.py,sha256=LG1wTyyctyEKuCuKM2IKf_SMPH7BzkTsFdO-0tnorzg,6225
|
|
6
6
|
supervisely/tiny_timer.py,sha256=hkpe_7FE6bsKL79blSs7WBaktuPavEVu67IpEPrfmjE,183
|
|
@@ -32,7 +32,7 @@ supervisely/api/image_api.py,sha256=qZwTjeCo6bkEuXDuB8RhhP0g6PzlRuCXJkUfN9rsUZ4,
|
|
|
32
32
|
supervisely/api/import_storage_api.py,sha256=BDCgmR0Hv6OoiRHLCVPKt3iDxSVlQp1WrnKhAK_Zl84,460
|
|
33
33
|
supervisely/api/issues_api.py,sha256=BqDJXmNoTzwc3xe6_-mA7FDFC5QQ-ahGbXk_HmpkSeQ,17925
|
|
34
34
|
supervisely/api/labeling_job_api.py,sha256=odnzZjp29yM16Gq-FYkv-OA4WFMNJCLFo4qSikW2A7c,56280
|
|
35
|
-
supervisely/api/module_api.py,sha256=
|
|
35
|
+
supervisely/api/module_api.py,sha256=HrHndEvG684ULGchmFiFx0VsbSoihkq97iFPBFMY-dM,44345
|
|
36
36
|
supervisely/api/neural_network_api.py,sha256=ktPVRO4Jeulougio8F0mioJJHwRJcX250Djp1wBoQ9c,7620
|
|
37
37
|
supervisely/api/object_class_api.py,sha256=-rQcKwhBw3iL9KNH9c1ROgoimgWM1ls6Wi_tb1R-MzY,7683
|
|
38
38
|
supervisely/api/plugin_api.py,sha256=TlfrosdRuYG4NUxk92QiQoVaOdztFspPpygyVa3M3zk,5283
|
|
@@ -45,11 +45,11 @@ supervisely/api/storage_api.py,sha256=FPGYf3Rn3LBoe38RBNdoiURs306oshzvKOEOQ56XAb
|
|
|
45
45
|
supervisely/api/task_api.py,sha256=yX0GqL5Kg5DuPXP0GpoRSVmjrzSzIvMMHo5Lrf4_R1c,39610
|
|
46
46
|
supervisely/api/team_api.py,sha256=bEoz3mrykvliLhKnzEy52vzdd_H8VBJCpxF-Bnek9Q8,19467
|
|
47
47
|
supervisely/api/user_api.py,sha256=4S97yIc6AMTZCa0N57lzETnpIE8CeqClvCb6kjUkgfc,24940
|
|
48
|
-
supervisely/api/video_annotation_tool_api.py,sha256=
|
|
48
|
+
supervisely/api/video_annotation_tool_api.py,sha256=3A9-U8WJzrTShP_n9T8U01M9FzGYdeS51CCBTzUnooo,6686
|
|
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=deYCZNG7JeDhxlYew51FyGvqY3dc7fkERtwmBPJmHcw,24503
|
|
53
53
|
supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2Co7VU_kfFd1GYILZ4E,8875
|
|
54
54
|
supervisely/api/entity_annotation/tag_api.py,sha256=M-28m9h8R4k9Eqo6P1S0UH8_D5kqCwAvQLYY6_Yz4oM,11161
|
|
55
55
|
supervisely/api/pointcloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -64,7 +64,7 @@ supervisely/api/pointcloud/pointcloud_object_api.py,sha256=bO1USWb9HAywG_CW4CDu1
|
|
|
64
64
|
supervisely/api/pointcloud/pointcloud_tag_api.py,sha256=iShtr052nOElxsyMyZEUT2vypEm6kP00gnP13ABX24A,4691
|
|
65
65
|
supervisely/api/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
66
|
supervisely/api/video/video_annotation_api.py,sha256=nvbn_ofcqFCZ2qKgu0O5y5zOHxFc4tsY-o93sUgqlWk,14134
|
|
67
|
-
supervisely/api/video/video_api.py,sha256=
|
|
67
|
+
supervisely/api/video/video_api.py,sha256=ma33Et1LKlACpyvksBYG9tbGNV_1ZSEuSAAsYpLP8qU,94666
|
|
68
68
|
supervisely/api/video/video_figure_api.py,sha256=quksohjhgrK2l2-PtbbNE99fOW6uWXX59-_4xfc-I-k,6244
|
|
69
69
|
supervisely/api/video/video_frame_api.py,sha256=4GwSI4xdCNYEUvTqzKc-Ewd44fw5zqkFoD24jrrN_aY,10214
|
|
70
70
|
supervisely/api/video/video_object_api.py,sha256=IC0NP8EoIT_d3xxDRgz2cA3ixSiuJ5ymy64eS-RfmDM,2227
|
|
@@ -744,23 +744,23 @@ supervisely/nn/artifacts/utils.py,sha256=C4EaMi95MAwtK5TOnhK4sQ1BWvgwYBxXyRStkhY
|
|
|
744
744
|
supervisely/nn/artifacts/yolov5.py,sha256=slh05EpQsxqgKwB9KMClshdBxPBN3ZWZ6S4B80ECEt4,1724
|
|
745
745
|
supervisely/nn/artifacts/yolov8.py,sha256=sFd9kU7Gdowq6WH1S3NdlQeoL9jjQKmRYb51fG_wbDk,1446
|
|
746
746
|
supervisely/nn/benchmark/__init__.py,sha256=7jDezvavJFtO9mDeB2TqW8N4sD8TsHQBPpA9RESleIQ,610
|
|
747
|
-
supervisely/nn/benchmark/base_benchmark.py,sha256=
|
|
748
|
-
supervisely/nn/benchmark/base_evaluator.py,sha256=
|
|
747
|
+
supervisely/nn/benchmark/base_benchmark.py,sha256=Xnb0jL0voBPC-s_eVYSYbYv-xVfLYtQf1tHLnJ9ktq8,25713
|
|
748
|
+
supervisely/nn/benchmark/base_evaluator.py,sha256=sc8gNn3myGA8sGnP6EIiTp24JPXUQ9Ou-8BmTf-Dt7w,5248
|
|
749
749
|
supervisely/nn/benchmark/base_visualizer.py,sha256=7woiYmztDzYZlbhL1hTfJnIi26RFi4obF2VLA519uxQ,10092
|
|
750
750
|
supervisely/nn/benchmark/cv_tasks.py,sha256=ShoAbuNzfMYj0Se-KOnl_-dJnrmvN6Aukxa0eq28bFw,239
|
|
751
751
|
supervisely/nn/benchmark/comparison/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
752
752
|
supervisely/nn/benchmark/comparison/base_visualizer.py,sha256=ldJHfGnrbudbxP6ErzBIorPv9r2L9vV8o6UTNqLBfGI,5341
|
|
753
753
|
supervisely/nn/benchmark/comparison/model_comparison.py,sha256=qgd8TwXJ2aiIqB29__EnDV391fBcRfdaIzUYpTyFp9w,7055
|
|
754
754
|
supervisely/nn/benchmark/comparison/detection_visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
755
|
-
supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py,sha256=
|
|
756
|
-
supervisely/nn/benchmark/comparison/detection_visualization/visualizer.py,sha256=
|
|
755
|
+
supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py,sha256=JQ2DqGsvUBbjVmEsq9pGc41U8WQrtaX_Gin4IBguIow,28735
|
|
756
|
+
supervisely/nn/benchmark/comparison/detection_visualization/visualizer.py,sha256=1PZU9P7VP4lPZDuv9dg_f3il03SQ_zRr5G_L6Q72gbQ,11421
|
|
757
757
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/__init__.py,sha256=2cqjAOwahJoptYhbFKEWws8gRW3K3bxlA9KnQleCrsA,1125
|
|
758
758
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/avg_precision_by_class.py,sha256=f4FMY-XCiNs0VA-e0aOFVNImjTQSnF4wTLNRSlj2oYA,4636
|
|
759
759
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/calibration_score.py,sha256=IKg2rofo21xGxQIoQyNlZ-UqOpAVviSn_A9SDkokC0w,7592
|
|
760
760
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/explore_predictions.py,sha256=axaviTZ4dLVWIc2R-o0Kv8g8Zr1SQVfyeokoLEA9Eqw,6484
|
|
761
761
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/localization_accuracy.py,sha256=OYmnloods1UYQ8SIPAcyOK33w0iYSn637OeMKNTrgbA,5342
|
|
762
762
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/outcome_counts.py,sha256=vev6EOc7-01i-5VAyQQwm9FGOMFYcWfJ2Y6ufUWg-DQ,13143
|
|
763
|
-
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py,sha256=
|
|
763
|
+
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py,sha256=drRm_Hn8Da4Oc_dsa4ol_mZSeMRNYT1-Zkmb0LbiEAA,10193
|
|
764
764
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/pr_curve.py,sha256=66hs426dR1_TUps9K-UhBp5_xBiFjIouKcF_5gP-Hn8,4797
|
|
765
765
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/precision_recal_f1.py,sha256=602GFNpKZjeRhxUTdlcE6ZczcFEGEjp0qLoTbkM54M4,11558
|
|
766
766
|
supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/speedtest.py,sha256=sQDkzfpVNaSYBHVcHYqydRSWN0i-yV9uhtEAggg295A,10879
|
|
@@ -778,17 +778,17 @@ supervisely/nn/benchmark/comparison/semantic_segmentation/vis_metrics/speedtest.
|
|
|
778
778
|
supervisely/nn/benchmark/instance_segmentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
779
779
|
supervisely/nn/benchmark/instance_segmentation/benchmark.py,sha256=lTDzgKGpfeF5o_a2nS56wiAsUQPH1eubk37b9CaB2KI,1171
|
|
780
780
|
supervisely/nn/benchmark/instance_segmentation/evaluation_params.yaml,sha256=POzpiaxnxuwAPSNQOGgjoUPfsk6Lf5hb9GLHwltWY5Y,94
|
|
781
|
-
supervisely/nn/benchmark/instance_segmentation/evaluator.py,sha256=
|
|
782
|
-
supervisely/nn/benchmark/instance_segmentation/text_templates.py,sha256=
|
|
781
|
+
supervisely/nn/benchmark/instance_segmentation/evaluator.py,sha256=mpCi8S6YNwlVvgcERQSHBOhC9PrSfQkQ55pPTcK6V9c,2811
|
|
782
|
+
supervisely/nn/benchmark/instance_segmentation/text_templates.py,sha256=_ZIU_3-xlUGKTcbEthxB4Ngt12azdC7pxpgqHHw7M3I,25780
|
|
783
783
|
supervisely/nn/benchmark/instance_segmentation/visualizer.py,sha256=8NscOKy7JK4AG-Czu3SM0qJQXLDfKD9URdG1d4nz89E,564
|
|
784
784
|
supervisely/nn/benchmark/object_detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
785
785
|
supervisely/nn/benchmark/object_detection/base_vis_metric.py,sha256=XjUnFCnCMYLrpjojIOwiRNaSsSLYpozTHWfwLkaCd5U,1612
|
|
786
786
|
supervisely/nn/benchmark/object_detection/benchmark.py,sha256=Wb4xlFXilIMVfsifNNQY25uE52NeEDLzQpnq8QPYq9U,1086
|
|
787
787
|
supervisely/nn/benchmark/object_detection/evaluation_params.yaml,sha256=POzpiaxnxuwAPSNQOGgjoUPfsk6Lf5hb9GLHwltWY5Y,94
|
|
788
|
-
supervisely/nn/benchmark/object_detection/evaluator.py,sha256=
|
|
789
|
-
supervisely/nn/benchmark/object_detection/metric_provider.py,sha256=
|
|
790
|
-
supervisely/nn/benchmark/object_detection/text_templates.py,sha256=
|
|
791
|
-
supervisely/nn/benchmark/object_detection/visualizer.py,sha256=
|
|
788
|
+
supervisely/nn/benchmark/object_detection/evaluator.py,sha256=EOQQbmwQqjjvbRu3tY24SRA7K8nyqshR92gUcP1lcrY,7371
|
|
789
|
+
supervisely/nn/benchmark/object_detection/metric_provider.py,sha256=MLVRnSwMQ9lfrlgBt4ThIHTVKY-6zuuEWK5-yVsmaj0,21140
|
|
790
|
+
supervisely/nn/benchmark/object_detection/text_templates.py,sha256=J5xUPCGY-QWxc5AEt_u9_2r5q0LBlIzsa007H0GgoeU,26026
|
|
791
|
+
supervisely/nn/benchmark/object_detection/visualizer.py,sha256=NpLKVW5fo6N0kYzgLsfY66wvCv38G3k-SNm4HImXt6g,32366
|
|
792
792
|
supervisely/nn/benchmark/object_detection/vis_metrics/__init__.py,sha256=AXCLHEySEdR-B-5sfDoWBmmOLBVlyW2U_xr8Ta42sQI,2096
|
|
793
793
|
supervisely/nn/benchmark/object_detection/vis_metrics/confidence_distribution.py,sha256=OlwkPgzEQ-RegcLZHVUVOL0n6I_2iayPVpAIie4y2O8,3615
|
|
794
794
|
supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py,sha256=r_saaZI4WB7C7ykNb1obmf8kEOkphLA4pInDoS6dXXU,4005
|
|
@@ -797,11 +797,11 @@ supervisely/nn/benchmark/object_detection/vis_metrics/explore_predictions.py,sha
|
|
|
797
797
|
supervisely/nn/benchmark/object_detection/vis_metrics/f1_score_at_different_iou.py,sha256=6y2Kx-R_t4SdJkdWNyZQ6TGjCC-u6KhXb4cCno4GuTk,2882
|
|
798
798
|
supervisely/nn/benchmark/object_detection/vis_metrics/frequently_confused.py,sha256=7rObk7WNsfwK7xBWl3aOxcn0uD48njEc04fQIPHc3_4,4678
|
|
799
799
|
supervisely/nn/benchmark/object_detection/vis_metrics/iou_distribution.py,sha256=lv4Bk8W4X8ZhvQKyMXI46d240PNlMFx1hdji_aoTS50,3601
|
|
800
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/key_metrics.py,sha256=
|
|
800
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/key_metrics.py,sha256=byucJuHYWSXIZU8U1Dc44QDpG3lTlhoNdUfD1b-uriw,4721
|
|
801
801
|
supervisely/nn/benchmark/object_detection/vis_metrics/model_predictions.py,sha256=gsGDsesiwOcqeFvHr33b4PSJNw6MoA5brO-qRydRtsA,5944
|
|
802
802
|
supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts.py,sha256=HuTgisYmXCSUeF5WOahy-uaCdvRLsNzg28BDrZ-5hww,7161
|
|
803
803
|
supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py,sha256=GBq0KlPka5z4cxHcKCe2eVOI_h3qlWUqGCyhYs6mjrk,6825
|
|
804
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/overview.py,sha256=
|
|
804
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/overview.py,sha256=M6E--Yd1ztP4VBjR6VDUVrj2hgs5mwJF-vhWIjgVGkw,6376
|
|
805
805
|
supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve.py,sha256=EeZmyNlTVQLQ-0wIDGdvFmRkahJBBiOKSmWiAJ8Bfks,3478
|
|
806
806
|
supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve_by_class.py,sha256=Bl_buVvH8SVqwsc4DcHnojMOqpwTnRgXFt9yw_Y1BR0,1607
|
|
807
807
|
supervisely/nn/benchmark/object_detection/vis_metrics/precision.py,sha256=cAgMrp13uulHfM8xnPDZyR6PqS8nck1Fo7YPpvHPCbw,2708
|
|
@@ -814,7 +814,7 @@ supervisely/nn/benchmark/semantic_segmentation/__init__.py,sha256=Hx5bFhRZq8BXvN
|
|
|
814
814
|
supervisely/nn/benchmark/semantic_segmentation/base_vis_metric.py,sha256=mwGjRUTPrIj56WHsxNW_4fcZM0uw1xm6B5wh25FijyQ,1788
|
|
815
815
|
supervisely/nn/benchmark/semantic_segmentation/benchmark.py,sha256=8rnU6I94q0GUdXWwluZu0_Sac_eU2-Az133tHF1dA3U,1202
|
|
816
816
|
supervisely/nn/benchmark/semantic_segmentation/evaluation_params.yaml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
817
|
-
supervisely/nn/benchmark/semantic_segmentation/evaluator.py,sha256=
|
|
817
|
+
supervisely/nn/benchmark/semantic_segmentation/evaluator.py,sha256=XafPMpGL6v0ZQ-m7DkEjoY7W6fGCJNKolql5BA3M8V0,7261
|
|
818
818
|
supervisely/nn/benchmark/semantic_segmentation/metric_provider.py,sha256=GwdRvyG0_nFpng6jN8ISFcMLfDbBd-fwdtoWR2XPKw4,6552
|
|
819
819
|
supervisely/nn/benchmark/semantic_segmentation/text_templates.py,sha256=7yRRD2FAdJHGSRqBVIjNjzCduKzaepA1OWtggi7B0Dg,8580
|
|
820
820
|
supervisely/nn/benchmark/semantic_segmentation/visualizer.py,sha256=Nt2-OOWKQ8fbaXFk5QeEaMtMURKPQebgjzDytVgQk0g,13196
|
|
@@ -833,7 +833,7 @@ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/speedtest.py,sha256=0
|
|
|
833
833
|
supervisely/nn/benchmark/semantic_segmentation/vis_metrics/vis_texts.py,sha256=rRdYZxmhQX4T3RsXJVGp34NMZPz8jUHtVvBN5BpPJ5I,603
|
|
834
834
|
supervisely/nn/benchmark/utils/__init__.py,sha256=JHT73gWdwgLJKTiCpDdwggm1t_EWB0JCC90-zD7reXM,741
|
|
835
835
|
supervisely/nn/benchmark/utils/detection/__init__.py,sha256=L3QKGuKUlR2N_QFRTRsa6gfLDbksIaFMYO0Hukxxy1U,172
|
|
836
|
-
supervisely/nn/benchmark/utils/detection/calculate_metrics.py,sha256=
|
|
836
|
+
supervisely/nn/benchmark/utils/detection/calculate_metrics.py,sha256=LXZET5yLp9S7Uq2eX4HpAMnBMxTI5Q2CgKSc1mCfaRM,11388
|
|
837
837
|
supervisely/nn/benchmark/utils/detection/metric_provider.py,sha256=cgF6uzF7XOvU2CpxyU7zuK1HH6hhNiIV3vQc8MAzwMU,19934
|
|
838
838
|
supervisely/nn/benchmark/utils/detection/metrics.py,sha256=oyictdJ7rRDUkaVvHoxntywW5zZweS8pIJ1bN6JgXtE,2420
|
|
839
839
|
supervisely/nn/benchmark/utils/detection/sly2coco.py,sha256=0O2LSCU5zIX34mD4hZIv8O3-j6LwnB0DqhiVPAiosO8,6883
|
|
@@ -845,7 +845,7 @@ supervisely/nn/benchmark/utils/semantic_segmentation/loader.py,sha256=_5ZZ7Nkd8W
|
|
|
845
845
|
supervisely/nn/benchmark/utils/semantic_segmentation/utils.py,sha256=X5NiR02R-0To2_SuSGHZZccl_-Bupg5F9d7nziIMRMc,3874
|
|
846
846
|
supervisely/nn/benchmark/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
847
847
|
supervisely/nn/benchmark/visualization/evaluation_result.py,sha256=733HJL4rJa5XqCJydW9vSyaepvpHzym9wQsw1wFEgeI,10251
|
|
848
|
-
supervisely/nn/benchmark/visualization/renderer.py,sha256=
|
|
848
|
+
supervisely/nn/benchmark/visualization/renderer.py,sha256=j6dFqIGa9M0DbVVR-jgJab-MzUUiw47coHiiBF_H_jQ,3923
|
|
849
849
|
supervisely/nn/benchmark/visualization/report_template.html,sha256=tylBK5Bb2cqKACK1GZUKyIjPS9yHQFHAS-QeEEwhqTE,2172
|
|
850
850
|
supervisely/nn/benchmark/visualization/vis_click_data.py,sha256=hBeVepHngTGVHK3MiWe8qZY87taifxnoUXq22W2xaqo,3724
|
|
851
851
|
supervisely/nn/benchmark/visualization/widgets/__init__.py,sha256=UovmhwLH4Au81JFrFz0NwPasaIqPEI-zXN-JntTc2FU,949
|
|
@@ -871,8 +871,8 @@ supervisely/nn/benchmark/visualization/widgets/sidebar/sidebar.py,sha256=tKPURRS
|
|
|
871
871
|
supervisely/nn/benchmark/visualization/widgets/table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
872
872
|
supervisely/nn/benchmark/visualization/widgets/table/table.py,sha256=atmDnF1Af6qLQBUjLhK18RMDKAYlxnsuVHMSEa5a-e8,4319
|
|
873
873
|
supervisely/nn/inference/__init__.py,sha256=mtEci4Puu-fRXDnGn8RP47o97rv3VTE0hjbYO34Zwqg,1622
|
|
874
|
-
supervisely/nn/inference/cache.py,sha256=
|
|
875
|
-
supervisely/nn/inference/inference.py,sha256=
|
|
874
|
+
supervisely/nn/inference/cache.py,sha256=h-pP_7th0ana3oJ75sFfTbead3hdKUvYA8Iq2OXDx3I,31317
|
|
875
|
+
supervisely/nn/inference/inference.py,sha256=fDPiX9VNnyGgdCxNzUz456ihTD44uxuLdSOuNgvrwwY,144860
|
|
876
876
|
supervisely/nn/inference/session.py,sha256=jmkkxbe2kH-lEgUU6Afh62jP68dxfhF5v6OGDfLU62E,35757
|
|
877
877
|
supervisely/nn/inference/video_inference.py,sha256=8Bshjr6rDyLay5Za8IB8Dr6FURMO2R_v7aELasO8pR4,5746
|
|
878
878
|
supervisely/nn/inference/gui/__init__.py,sha256=wCxd-lF5Zhcwsis-wScDA8n1Gk_1O00PKgDviUZ3F1U,221
|
|
@@ -905,13 +905,14 @@ supervisely/nn/inference/salient_object_segmentation/salient_object_segmentation
|
|
|
905
905
|
supervisely/nn/inference/semantic_segmentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
906
906
|
supervisely/nn/inference/semantic_segmentation/semantic_segmentation.py,sha256=xpmViSYm1v_ZxlYyqiD_DiB7_LEynv9ZoU0t2QHEx8A,3370
|
|
907
907
|
supervisely/nn/inference/tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
908
|
-
supervisely/nn/inference/tracking/
|
|
908
|
+
supervisely/nn/inference/tracking/base_tracking.py,sha256=OW7Rt7MIoyKvMEFBMpdCp80Kj7cLoZ3bkYE4YaYtN0I,13865
|
|
909
|
+
supervisely/nn/inference/tracking/bbox_tracking.py,sha256=sPE-jZjSKf5QuMXmYUOkP1N6guOHK1_MvXK30MapB8A,21090
|
|
909
910
|
supervisely/nn/inference/tracking/functional.py,sha256=LpVu2gvOOpr9D_uvwTPZey1wUCAhV-E20RPKmCSIrK4,1774
|
|
910
|
-
supervisely/nn/inference/tracking/mask_tracking.py,sha256=
|
|
911
|
+
supervisely/nn/inference/tracking/mask_tracking.py,sha256=1G0yHMw5BSzDGD4Ps-yRhr50ZeB88pMY6b-rmg2FFHw,25576
|
|
911
912
|
supervisely/nn/inference/tracking/object_tracking_3d.py,sha256=Kqvx1qe1G8F1VtdBiy2HJ251rJU6s3LWhj0ZedhrmUw,4327
|
|
912
|
-
supervisely/nn/inference/tracking/point_tracking.py,sha256=
|
|
913
|
+
supervisely/nn/inference/tracking/point_tracking.py,sha256=I0kT_YGqOudyX4LMSZfnWkB1UnUQ9ucawTyR-tFonc8,24644
|
|
913
914
|
supervisely/nn/inference/tracking/tracker3d_interface.py,sha256=7yIkNO9rgkzQuyXUUccLwqlv5k7RPbxTqz9uI4FylLE,2781
|
|
914
|
-
supervisely/nn/inference/tracking/tracker_interface.py,sha256=
|
|
915
|
+
supervisely/nn/inference/tracking/tracker_interface.py,sha256=lrIo6ULa4GYd_QclALt82k5d9cLpH0Ss3--XFhPBgUQ,21913
|
|
915
916
|
supervisely/nn/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
916
917
|
supervisely/nn/legacy/config.py,sha256=TKdyGtURJKzKoyydCZAfujoUnbC0SO8GeVLTSnoyS_w,2994
|
|
917
918
|
supervisely/nn/legacy/dataset.py,sha256=-56EI6OYbkTWx4y8hOgD76y47zUoJNjGFyZ6JaP8iqg,6055
|
|
@@ -1070,9 +1071,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
1070
1071
|
supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
|
|
1071
1072
|
supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
|
|
1072
1073
|
supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
|
|
1073
|
-
supervisely-6.73.
|
|
1074
|
-
supervisely-6.73.
|
|
1075
|
-
supervisely-6.73.
|
|
1076
|
-
supervisely-6.73.
|
|
1077
|
-
supervisely-6.73.
|
|
1078
|
-
supervisely-6.73.
|
|
1074
|
+
supervisely-6.73.285.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1075
|
+
supervisely-6.73.285.dist-info/METADATA,sha256=0qWYnG2O4PsezzNGKkLm6lvjIHZOJ-SNsLoKRnyuXQI,33573
|
|
1076
|
+
supervisely-6.73.285.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
1077
|
+
supervisely-6.73.285.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
1078
|
+
supervisely-6.73.285.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
1079
|
+
supervisely-6.73.285.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|