supervisely 6.73.285__py3-none-any.whl → 6.73.287__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/__init__.py +1 -1
- supervisely/app/fastapi/subapp.py +12 -11
- supervisely/nn/benchmark/base_benchmark.py +3 -0
- supervisely/nn/benchmark/base_evaluator.py +1 -1
- supervisely/nn/benchmark/instance_segmentation/text_templates.py +3 -2
- supervisely/nn/benchmark/object_detection/metric_provider.py +38 -12
- supervisely/nn/benchmark/object_detection/text_templates.py +2 -1
- supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py +2 -2
- supervisely/nn/benchmark/object_detection/vis_metrics/f1_score_at_different_iou.py +4 -4
- supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py +4 -5
- supervisely/nn/benchmark/object_detection/vis_metrics/overview.py +4 -1
- supervisely/nn/benchmark/object_detection/vis_metrics/precision_avg_per_class.py +1 -2
- supervisely/nn/inference/inference.py +1 -0
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/METADATA +1 -1
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/RECORD +19 -19
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/LICENSE +0 -0
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/WHEEL +0 -0
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/entry_points.txt +0 -0
- {supervisely-6.73.285.dist-info → supervisely-6.73.287.dist-info}/top_level.txt +0 -0
supervisely/__init__.py
CHANGED
|
@@ -311,4 +311,4 @@ except Exception as e:
|
|
|
311
311
|
# If new changes in Supervisely Python SDK require upgrade of the Supervisely instance
|
|
312
312
|
# set a new value for the environment variable MINIMUM_INSTANCE_VERSION_FOR_SDK, otherwise
|
|
313
313
|
# users can face compatibility issues, if the instance version is lower than the SDK version.
|
|
314
|
-
os.environ["MINIMUM_INSTANCE_VERSION_FOR_SDK"] = "6.12.
|
|
314
|
+
os.environ["MINIMUM_INSTANCE_VERSION_FOR_SDK"] = "6.12.23"
|
|
@@ -926,19 +926,20 @@ class Application(metaclass=Singleton):
|
|
|
926
926
|
self.test_client = TestClient(self._fastapi)
|
|
927
927
|
|
|
928
928
|
if not headless:
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
929
|
+
if is_development() and hot_reload:
|
|
930
|
+
templates = Jinja2Templates()
|
|
931
|
+
self.hot_reload = arel.HotReload([])
|
|
932
|
+
self._fastapi.add_websocket_route(
|
|
933
|
+
"/hot-reload", route=self.hot_reload, name="hot-reload"
|
|
934
|
+
)
|
|
935
|
+
self._fastapi.add_event_handler("startup", self.hot_reload.startup)
|
|
936
|
+
self._fastapi.add_event_handler("shutdown", self.hot_reload.shutdown)
|
|
936
937
|
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
938
|
+
# Setting HOTRELOAD=1 in template context, otherwise the HTML would not have the hot reload script.
|
|
939
|
+
templates.env.globals["HOTRELOAD"] = "1"
|
|
940
|
+
templates.env.globals["hot_reload"] = self.hot_reload
|
|
940
941
|
|
|
941
|
-
|
|
942
|
+
logger.debug("Hot reload is enabled, use app.reload_page() to reload page.")
|
|
942
943
|
|
|
943
944
|
if is_production():
|
|
944
945
|
# to save offline session
|
|
@@ -620,6 +620,9 @@ class BaseBenchmark:
|
|
|
620
620
|
def get_eval_result(self):
|
|
621
621
|
if self._eval_results is None:
|
|
622
622
|
self._eval_results = self.evaluator.get_eval_result()
|
|
623
|
+
if not self._eval_results.inference_info:
|
|
624
|
+
self._eval_results.inference_info["gt_project_id"] = self.gt_project_info.id
|
|
625
|
+
self._eval_results.inference_info["dt_project_id"] = self.dt_project_info.id
|
|
623
626
|
return self._eval_results
|
|
624
627
|
|
|
625
628
|
def get_diff_project_info(self):
|
|
@@ -16,7 +16,7 @@ class BaseEvalResult:
|
|
|
16
16
|
|
|
17
17
|
def __init__(self, directory: Optional[str] = None):
|
|
18
18
|
self.directory = directory
|
|
19
|
-
self.inference_info: Dict =
|
|
19
|
+
self.inference_info: Dict = {}
|
|
20
20
|
self.speedtest_info: Dict = None
|
|
21
21
|
self.eval_data: Dict = None
|
|
22
22
|
self.mp = None
|
|
@@ -14,7 +14,7 @@ definitions = SimpleNamespace(
|
|
|
14
14
|
)
|
|
15
15
|
|
|
16
16
|
docs_url = (
|
|
17
|
-
"https://docs.supervisely.com/neural-networks/model-evaluation-benchmark/
|
|
17
|
+
"https://docs.supervisely.com/neural-networks/model-evaluation-benchmark/instance-segmentation"
|
|
18
18
|
)
|
|
19
19
|
|
|
20
20
|
# <i class="zmdi zmdi-check-circle" style="color: #13ce66; margin-right: 5px"></i>
|
|
@@ -44,6 +44,7 @@ markdown_overview = """
|
|
|
44
44
|
{}
|
|
45
45
|
- **IoU threshold**: {}
|
|
46
46
|
- **Optimal confidence threshold**: {} (calculated automatically), <a href="{}" target="_blank">learn more</a>.
|
|
47
|
+
- **Averaging across IoU thresholds:** {}, <a href="{}" target="_blank">learn more</a>.
|
|
47
48
|
|
|
48
49
|
Learn more about Model Benchmark, implementation details, and how to use the charts in our <a href="{}" target="_blank">Technical Report</a>.
|
|
49
50
|
"""
|
|
@@ -60,7 +61,7 @@ Here, we comprehensively assess the model's performance by presenting a broad se
|
|
|
60
61
|
- **Calibration Score**: This score represents the consistency of predicted probabilities (or <abbr title="{}">confidence scores</abbr>) made by the model. We evaluate how well predicted probabilities align with actual outcomes. A well-calibrated model means that when it predicts an object with, say, 80% confidence, approximately 80% of those predictions should actually be correct.
|
|
61
62
|
"""
|
|
62
63
|
|
|
63
|
-
markdown_AP_custom_description = """> *
|
|
64
|
+
markdown_AP_custom_description = """> *AP_custom - Average Precision with different IoU thresholds for each class, that was set in evaluation params by the user."""
|
|
64
65
|
|
|
65
66
|
markdown_iou_per_class = """### IoU Threshold per Class
|
|
66
67
|
|
|
@@ -90,13 +90,16 @@ class MetricProvider:
|
|
|
90
90
|
self.iouThrs = params["iouThrs"]
|
|
91
91
|
self.recThrs = params["recThrs"]
|
|
92
92
|
|
|
93
|
+
# Evaluation params
|
|
93
94
|
eval_params = params.get("evaluation_params", {})
|
|
94
95
|
self.iou_threshold = eval_params.get("iou_threshold", 0.5)
|
|
95
96
|
self.iou_threshold_idx = np.where(np.isclose(self.iouThrs, self.iou_threshold))[0][0]
|
|
96
|
-
|
|
97
|
-
# IoU per class (optional)
|
|
98
97
|
self.iou_threshold_per_class = eval_params.get("iou_threshold_per_class")
|
|
99
98
|
self.iou_idx_per_class = params.get("iou_idx_per_class") # {cat id: iou_idx}
|
|
99
|
+
if self.iou_threshold_per_class is not None:
|
|
100
|
+
# TODO: temporary solution
|
|
101
|
+
eval_params["average_across_iou_thresholds"] = False
|
|
102
|
+
self.average_across_iou_thresholds = eval_params.get("average_across_iou_thresholds", True)
|
|
100
103
|
|
|
101
104
|
def calculate(self):
|
|
102
105
|
self.m_full = _MetricProvider(
|
|
@@ -199,9 +202,10 @@ class MetricProvider:
|
|
|
199
202
|
}
|
|
200
203
|
|
|
201
204
|
def AP_per_class(self):
|
|
202
|
-
s = self.coco_precision[:, :, :, 0, 2]
|
|
205
|
+
s = self.coco_precision[:, :, :, 0, 2].copy()
|
|
203
206
|
s[s == -1] = np.nan
|
|
204
207
|
ap = np.nanmean(s, axis=(0, 1))
|
|
208
|
+
ap = np.nan_to_num(ap, nan=0)
|
|
205
209
|
return ap
|
|
206
210
|
|
|
207
211
|
def AP_custom_per_class(self):
|
|
@@ -212,6 +216,7 @@ class MetricProvider:
|
|
|
212
216
|
s[:, cat_id - 1] = self.coco_precision[iou_idx, :, cat_id - 1, 0, 2]
|
|
213
217
|
s[s == -1] = np.nan
|
|
214
218
|
ap = np.nanmean(s, axis=0)
|
|
219
|
+
ap = np.nan_to_num(ap, nan=0)
|
|
215
220
|
return ap
|
|
216
221
|
|
|
217
222
|
def AP_custom(self):
|
|
@@ -284,6 +289,14 @@ class _MetricProvider:
|
|
|
284
289
|
self.fp_not_confused_matches = [m for m in self.fp_matches if not m["miss_cls"]]
|
|
285
290
|
self.ious = np.array([m["iou"] for m in self.tp_matches])
|
|
286
291
|
|
|
292
|
+
# Evaluation params
|
|
293
|
+
self.params = params
|
|
294
|
+
self.iou_idx_per_class = np.array(
|
|
295
|
+
[params["iou_idx_per_class"][cat_id] for cat_id in self.cat_ids]
|
|
296
|
+
)[:, None]
|
|
297
|
+
eval_params = params.get("evaluation_params", {})
|
|
298
|
+
self.average_across_iou_thresholds = eval_params.get("average_across_iou_thresholds", True)
|
|
299
|
+
|
|
287
300
|
def _init_counts(self):
|
|
288
301
|
cat_ids = self.cat_ids
|
|
289
302
|
iouThrs = self.iouThrs
|
|
@@ -328,14 +341,22 @@ class _MetricProvider:
|
|
|
328
341
|
self.true_positives = true_positives
|
|
329
342
|
self.false_negatives = false_negatives
|
|
330
343
|
self.false_positives = false_positives
|
|
331
|
-
self.TP_count = int(self.true_positives
|
|
332
|
-
self.FP_count = int(self.false_positives
|
|
333
|
-
self.FN_count = int(self.false_negatives
|
|
344
|
+
self.TP_count = int(self._take_iou_thresholds(true_positives).sum())
|
|
345
|
+
self.FP_count = int(self._take_iou_thresholds(false_positives).sum())
|
|
346
|
+
self.FN_count = int(self._take_iou_thresholds(false_negatives).sum())
|
|
334
347
|
|
|
348
|
+
def _take_iou_thresholds(self, x):
|
|
349
|
+
return np.take_along_axis(x, self.iou_idx_per_class, axis=1)
|
|
350
|
+
|
|
335
351
|
def base_metrics(self):
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
352
|
+
if self.average_across_iou_thresholds:
|
|
353
|
+
tp = self.true_positives
|
|
354
|
+
fp = self.false_positives
|
|
355
|
+
fn = self.false_negatives
|
|
356
|
+
else:
|
|
357
|
+
tp = self._take_iou_thresholds(self.true_positives)
|
|
358
|
+
fp = self._take_iou_thresholds(self.false_positives)
|
|
359
|
+
fn = self._take_iou_thresholds(self.false_negatives)
|
|
339
360
|
confuse_count = len(self.confused_matches)
|
|
340
361
|
|
|
341
362
|
mAP = self.coco_mAP
|
|
@@ -358,9 +379,14 @@ class _MetricProvider:
|
|
|
358
379
|
}
|
|
359
380
|
|
|
360
381
|
def per_class_metrics(self):
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
382
|
+
if self.average_across_iou_thresholds:
|
|
383
|
+
tp = self.true_positives.mean(1)
|
|
384
|
+
fp = self.false_positives.mean(1)
|
|
385
|
+
fn = self.false_negatives.mean(1)
|
|
386
|
+
else:
|
|
387
|
+
tp = self._take_iou_thresholds(self.true_positives).flatten()
|
|
388
|
+
fp = self._take_iou_thresholds(self.false_positives).flatten()
|
|
389
|
+
fn = self._take_iou_thresholds(self.false_negatives).flatten()
|
|
364
390
|
pr = tp / (tp + fp)
|
|
365
391
|
rc = tp / (tp + fn)
|
|
366
392
|
f1 = 2 * pr * rc / (pr + rc)
|
|
@@ -44,6 +44,7 @@ markdown_overview = """
|
|
|
44
44
|
{}
|
|
45
45
|
- **IoU threshold**: {}
|
|
46
46
|
- **Optimal confidence threshold**: {} (calculated automatically), <a href="{}" target="_blank">learn more</a>.
|
|
47
|
+
- **Averaging across IoU thresholds:** {}, <a href="{}" target="_blank">learn more</a>.
|
|
47
48
|
|
|
48
49
|
Learn more about Model Benchmark, implementation details, and how to use the charts in our <a href="{}" target="_blank">Technical Report</a>.
|
|
49
50
|
"""
|
|
@@ -65,7 +66,7 @@ Here, we comprehensively assess the model's performance by presenting a broad se
|
|
|
65
66
|
- **Calibration Score**: This score represents the consistency of predicted probabilities (or <abbr title="{}">confidence scores</abbr>) made by the model. We evaluate how well predicted probabilities align with actual outcomes. A well-calibrated model means that when it predicts an object with, say, 80% confidence, approximately 80% of those predictions should actually be correct.
|
|
66
67
|
"""
|
|
67
68
|
|
|
68
|
-
markdown_AP_custom_description = """> *
|
|
69
|
+
markdown_AP_custom_description = """> *AP_custom - Average Precision with different IoU thresholds for each class, that was set in evaluation params by the user."""
|
|
69
70
|
|
|
70
71
|
markdown_iou_per_class = """### IoU Threshold per Class
|
|
71
72
|
|
|
@@ -72,13 +72,13 @@ class ConfidenceScore(DetectionVisMetric):
|
|
|
72
72
|
self.eval_result.dfsp_down,
|
|
73
73
|
x="scores",
|
|
74
74
|
y=["precision", "recall", "f1"],
|
|
75
|
-
labels={"value": "
|
|
75
|
+
labels={"value": "Metric", "variable": "Metric", "scores": "Confidence Score"},
|
|
76
76
|
width=None,
|
|
77
77
|
height=500,
|
|
78
78
|
color_discrete_map=color_map,
|
|
79
79
|
)
|
|
80
80
|
fig.update_traces(
|
|
81
|
-
hovertemplate="Confidence
|
|
81
|
+
hovertemplate="Confidence score: %{x:.2f}<br>Metric: %{y:.2f}<extra></extra>"
|
|
82
82
|
)
|
|
83
83
|
fig.update_layout(yaxis=dict(range=[0, 1]), xaxis=dict(range=[0, 1], tick0=0, dtick=0.1))
|
|
84
84
|
|
|
@@ -39,7 +39,7 @@ class F1ScoreAtDifferentIOU(DetectionVisMetric):
|
|
|
39
39
|
np.concatenate([self.eval_result.dfsp_down["scores"].values[:, None], f1s_down.T], 1),
|
|
40
40
|
columns=["scores"] + iou_names,
|
|
41
41
|
)
|
|
42
|
-
labels = {"value": "
|
|
42
|
+
labels = {"value": "F1-score", "variable": "IoU threshold", "scores": "Confidence Score"}
|
|
43
43
|
|
|
44
44
|
fig = px.line(
|
|
45
45
|
df,
|
|
@@ -51,19 +51,19 @@ class F1ScoreAtDifferentIOU(DetectionVisMetric):
|
|
|
51
51
|
height=500,
|
|
52
52
|
)
|
|
53
53
|
fig.update_traces(
|
|
54
|
-
hovertemplate="Confidence Score: %{x:.2f}<br>
|
|
54
|
+
hovertemplate="Confidence Score: %{x:.2f}<br>F1-score: %{y:.2f}<extra></extra>"
|
|
55
55
|
)
|
|
56
56
|
fig.update_layout(yaxis=dict(range=[0, 1]), xaxis=dict(range=[0, 1], tick0=0, dtick=0.1))
|
|
57
57
|
|
|
58
58
|
# add annotations for maximum F1-Score for each IoU threshold
|
|
59
59
|
for i, iou in enumerate(iou_names):
|
|
60
|
-
argmax_f1 = f1s[i]
|
|
60
|
+
argmax_f1 = np.nanargmax(f1s[i])
|
|
61
61
|
max_f1 = f1s[i][argmax_f1]
|
|
62
62
|
score = self.eval_result.mp.m_full.score_profile["scores"][argmax_f1]
|
|
63
63
|
fig.add_annotation(
|
|
64
64
|
x=score,
|
|
65
65
|
y=max_f1,
|
|
66
|
-
text=f"Best
|
|
66
|
+
text=f"Best conf: {score:.2f}",
|
|
67
67
|
showarrow=True,
|
|
68
68
|
arrowhead=1,
|
|
69
69
|
arrowcolor="black",
|
|
@@ -86,11 +86,10 @@ class PerClassOutcomeCounts(DetectionVisMetric):
|
|
|
86
86
|
import plotly.express as px # pylint: disable=import-error
|
|
87
87
|
|
|
88
88
|
# Per-class Counts
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
fn = self.eval_result.mp.false_negatives[:, iou_thres]
|
|
89
|
+
mp = self.eval_result.mp
|
|
90
|
+
tp = mp.m._take_iou_thresholds(mp.true_positives).flatten()
|
|
91
|
+
fp = mp.m._take_iou_thresholds(mp.false_positives).flatten()
|
|
92
|
+
fn = mp.m._take_iou_thresholds(mp.false_negatives).flatten()
|
|
94
93
|
|
|
95
94
|
# normalize
|
|
96
95
|
support = tp + fn
|
|
@@ -20,7 +20,7 @@ class Overview(DetectionVisMetric):
|
|
|
20
20
|
url = self.eval_result.inference_info.get("checkpoint_url")
|
|
21
21
|
link_text = self.eval_result.inference_info.get("custom_checkpoint_path")
|
|
22
22
|
if link_text is None:
|
|
23
|
-
link_text = url
|
|
23
|
+
link_text = url or ""
|
|
24
24
|
link_text = link_text.replace("_", "\_")
|
|
25
25
|
|
|
26
26
|
model_name = self.eval_result.inference_info.get("model_name") or "Custom"
|
|
@@ -31,6 +31,7 @@ class Overview(DetectionVisMetric):
|
|
|
31
31
|
|
|
32
32
|
# link to scroll to the optimal confidence section
|
|
33
33
|
opt_conf_url = self.vis_texts.docs_url + "#f1-optimal-confidence-threshold"
|
|
34
|
+
average_url = self.vis_texts.docs_url + "#averaging-iou-thresholds"
|
|
34
35
|
|
|
35
36
|
iou_threshold = self.eval_result.mp.iou_threshold
|
|
36
37
|
if self.eval_result.different_iou_thresholds_per_class:
|
|
@@ -52,6 +53,8 @@ class Overview(DetectionVisMetric):
|
|
|
52
53
|
iou_threshold,
|
|
53
54
|
round(self.eval_result.mp.f1_optimal_conf, 4),
|
|
54
55
|
opt_conf_url,
|
|
56
|
+
self.eval_result.mp.average_across_iou_thresholds,
|
|
57
|
+
average_url,
|
|
55
58
|
self.vis_texts.docs_url,
|
|
56
59
|
]
|
|
57
60
|
|
|
@@ -32,8 +32,7 @@ class PerClassAvgPrecision(DetectionVisMetric):
|
|
|
32
32
|
import plotly.express as px # pylint: disable=import-error
|
|
33
33
|
|
|
34
34
|
# AP per-class
|
|
35
|
-
ap_per_class = self.eval_result.mp.
|
|
36
|
-
ap_per_class[ap_per_class == -1] = 0 # -1 is a placeholder for no GT
|
|
35
|
+
ap_per_class = self.eval_result.mp.AP_per_class()
|
|
37
36
|
labels = dict(r="Average Precision", theta="Class")
|
|
38
37
|
fig = px.scatter_polar(
|
|
39
38
|
r=ap_per_class,
|
|
@@ -2654,6 +2654,7 @@ class Inference:
|
|
|
2654
2654
|
|
|
2655
2655
|
# Ger rid of `pending_results` to less response size
|
|
2656
2656
|
inference_request["pending_results"] = []
|
|
2657
|
+
inference_request.pop("lock", None)
|
|
2657
2658
|
return inference_request
|
|
2658
2659
|
|
|
2659
2660
|
@server.post(f"/pop_inference_results")
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
supervisely/README.md,sha256=XM-DiMC6To3I9RjQZ0c61905EFRR_jnCUx2q3uNR-X8,3331
|
|
2
|
-
supervisely/__init__.py,sha256=
|
|
2
|
+
supervisely/__init__.py,sha256=xrUgQsIthS0kN4wPKAWP38oNX1KGQSg6MtJux9joKbA,10833
|
|
3
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
|
|
@@ -93,7 +93,7 @@ supervisely/app/fastapi/index.html,sha256=wMMWSRCoVeOnIJYUHR6Aj-jebOuian963Si-cz
|
|
|
93
93
|
supervisely/app/fastapi/no_html_main.html,sha256=NhQP7noyORBx72lFh1CQKgBRupkWjiq6Gaw-9Hkvg7c,37
|
|
94
94
|
supervisely/app/fastapi/offline.py,sha256=CwMMkJ1frD6wiZS-SEoNDtQ1UJcJe1Ob6ohE3r4CQL8,7414
|
|
95
95
|
supervisely/app/fastapi/request.py,sha256=NU7rKmxJ1pfkDZ7_yHckRcRAueJRQIqCor11UO2OHr8,766
|
|
96
|
-
supervisely/app/fastapi/subapp.py,sha256=
|
|
96
|
+
supervisely/app/fastapi/subapp.py,sha256=MlB2dcHEtF0RPk-hxk67Gb1wBeGHsgCEIqAaBHzLEoY,43653
|
|
97
97
|
supervisely/app/fastapi/templating.py,sha256=sxp8QMYfWd6ARDTl6c4JqY985-BSkM_WLxHEH2kv3bg,2929
|
|
98
98
|
supervisely/app/fastapi/utils.py,sha256=GZuTWLcVRGVx8TL3jVEYUOZIT2FawbwIe2kAOBLw9ho,398
|
|
99
99
|
supervisely/app/fastapi/websocket.py,sha256=TlRSPOAhRItTv1HGvdukK1ZvhRjMUxRa-lJlsRR9rJw,1308
|
|
@@ -744,8 +744,8 @@ 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=2buF7mD58igPMBPiEAJqfWHRO-JdPPzzOVlbR7-nvoA,25956
|
|
748
|
+
supervisely/nn/benchmark/base_evaluator.py,sha256=MJeZnMcWr_cbeJ2r0GJ4SWgjWX5w33Y3pYVR6kCIQMQ,5246
|
|
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
|
|
@@ -779,33 +779,33 @@ supervisely/nn/benchmark/instance_segmentation/__init__.py,sha256=47DEQpj8HBSa-_
|
|
|
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
781
|
supervisely/nn/benchmark/instance_segmentation/evaluator.py,sha256=mpCi8S6YNwlVvgcERQSHBOhC9PrSfQkQ55pPTcK6V9c,2811
|
|
782
|
-
supervisely/nn/benchmark/instance_segmentation/text_templates.py,sha256=
|
|
782
|
+
supervisely/nn/benchmark/instance_segmentation/text_templates.py,sha256=l2I1PbenuBzcCPu_h2J5JE5gQsJCr6lNnoIzk5BEuwc,25868
|
|
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
788
|
supervisely/nn/benchmark/object_detection/evaluator.py,sha256=EOQQbmwQqjjvbRu3tY24SRA7K8nyqshR92gUcP1lcrY,7371
|
|
789
|
-
supervisely/nn/benchmark/object_detection/metric_provider.py,sha256=
|
|
790
|
-
supervisely/nn/benchmark/object_detection/text_templates.py,sha256=
|
|
789
|
+
supervisely/nn/benchmark/object_detection/metric_provider.py,sha256=iV79hlyB-_wj-X25-JPjoXfwQWNxGrMVweha3JZA46M,22557
|
|
790
|
+
supervisely/nn/benchmark/object_detection/text_templates.py,sha256=ZjkcP91dj98_1xqxKSy5TGrU08puXaLhpjNC-c_41A0,26113
|
|
791
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
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py,sha256=
|
|
794
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py,sha256=kuOhQDNwAsBbtjuMU_7GajVzu6j6n3xDJTv_hNKX6o8,4007
|
|
795
795
|
supervisely/nn/benchmark/object_detection/vis_metrics/confusion_matrix.py,sha256=2PJUt0-njRpzN7XBGjkSt9kkh5tDPuv_Sne-2v8DWHc,3731
|
|
796
796
|
supervisely/nn/benchmark/object_detection/vis_metrics/explore_predictions.py,sha256=wIYfq3izM2XNJHr56h3j5XhuU8W8Y3wO_RKAwxntQs4,4855
|
|
797
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/f1_score_at_different_iou.py,sha256=
|
|
797
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/f1_score_at_different_iou.py,sha256=Aewzu2QhxZoPT_k0QJt_G11B8M2DXLCGRjE0MlVYNko,2892
|
|
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
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
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py,sha256=
|
|
804
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/overview.py,sha256=
|
|
803
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py,sha256=BKsb1XGVsg6-aOI5G6NibxvdD5lVzkMjHisI8T85Sns,6853
|
|
804
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/overview.py,sha256=uBxHIz8t0ujS5MI-LASg1RrPx3YqeKKc7dWz3MozHIU,6546
|
|
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
|
|
808
|
-
supervisely/nn/benchmark/object_detection/vis_metrics/precision_avg_per_class.py,sha256=
|
|
808
|
+
supervisely/nn/benchmark/object_detection/vis_metrics/precision_avg_per_class.py,sha256=IetoRTE9xZHHMZlPwUmQyTnaD7cQpnIQ3zJmUUr6fgY,1965
|
|
809
809
|
supervisely/nn/benchmark/object_detection/vis_metrics/recall.py,sha256=AAxg3eJDjWIZEarOMZNcdIcYpVDFFDlbc5bwF4X3GIo,2579
|
|
810
810
|
supervisely/nn/benchmark/object_detection/vis_metrics/recall_vs_precision.py,sha256=u-00HH54XzlhFuzc7U-mk2-IhUSEPYzv23BIIz8STvk,1984
|
|
811
811
|
supervisely/nn/benchmark/object_detection/vis_metrics/reliability_diagram.py,sha256=_8ie3dPfwOyNCg-YhqO5jFW6kubCfQC2Obn9QSZFVeQ,3615
|
|
@@ -872,7 +872,7 @@ supervisely/nn/benchmark/visualization/widgets/table/__init__.py,sha256=47DEQpj8
|
|
|
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
874
|
supervisely/nn/inference/cache.py,sha256=h-pP_7th0ana3oJ75sFfTbead3hdKUvYA8Iq2OXDx3I,31317
|
|
875
|
-
supervisely/nn/inference/inference.py,sha256=
|
|
875
|
+
supervisely/nn/inference/inference.py,sha256=WsxKGawOxxziL5sGQebN_KQ5hi22lZOGXODOM5ev1uE,144908
|
|
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
|
|
@@ -1071,9 +1071,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
1071
1071
|
supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
|
|
1072
1072
|
supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
|
|
1073
1073
|
supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
|
|
1074
|
-
supervisely-6.73.
|
|
1075
|
-
supervisely-6.73.
|
|
1076
|
-
supervisely-6.73.
|
|
1077
|
-
supervisely-6.73.
|
|
1078
|
-
supervisely-6.73.
|
|
1079
|
-
supervisely-6.73.
|
|
1074
|
+
supervisely-6.73.287.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
1075
|
+
supervisely-6.73.287.dist-info/METADATA,sha256=9oifX7yDdPoCm5GaVVjDyURQrPfVIjGIT27n3C10lf8,33573
|
|
1076
|
+
supervisely-6.73.287.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
|
1077
|
+
supervisely-6.73.287.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
|
|
1078
|
+
supervisely-6.73.287.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
|
|
1079
|
+
supervisely-6.73.287.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|