supervisely 6.73.238__py3-none-any.whl → 6.73.240__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.
Files changed (138) hide show
  1. supervisely/annotation/annotation.py +2 -2
  2. supervisely/api/entity_annotation/tag_api.py +11 -4
  3. supervisely/api/file_api.py +17 -3
  4. supervisely/nn/__init__.py +1 -0
  5. supervisely/nn/benchmark/__init__.py +14 -2
  6. supervisely/nn/benchmark/base_benchmark.py +84 -37
  7. supervisely/nn/benchmark/base_evaluator.py +120 -0
  8. supervisely/nn/benchmark/base_visualizer.py +265 -0
  9. supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py +5 -5
  10. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/calibration_score.py +2 -2
  11. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/explore_predicttions.py +39 -16
  12. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/localization_accuracy.py +1 -1
  13. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/outcome_counts.py +4 -4
  14. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py +12 -11
  15. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/pr_curve.py +1 -1
  16. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/precision_recal_f1.py +6 -6
  17. supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/speedtest.py +3 -3
  18. supervisely/nn/benchmark/{instance_segmentation_benchmark.py → instance_segmentation/benchmark.py} +9 -3
  19. supervisely/nn/benchmark/instance_segmentation/evaluator.py +58 -0
  20. supervisely/nn/benchmark/{visualization/text_templates/instance_segmentation_text.py → instance_segmentation/text_templates.py} +53 -69
  21. supervisely/nn/benchmark/instance_segmentation/visualizer.py +18 -0
  22. supervisely/nn/benchmark/object_detection/__init__.py +0 -0
  23. supervisely/nn/benchmark/object_detection/base_vis_metric.py +51 -0
  24. supervisely/nn/benchmark/{object_detection_benchmark.py → object_detection/benchmark.py} +4 -2
  25. supervisely/nn/benchmark/object_detection/evaluation_params.yaml +2 -0
  26. supervisely/nn/benchmark/{evaluation/object_detection_evaluator.py → object_detection/evaluator.py} +67 -9
  27. supervisely/nn/benchmark/{evaluation/coco → object_detection}/metric_provider.py +13 -14
  28. supervisely/nn/benchmark/{visualization/text_templates/object_detection_text.py → object_detection/text_templates.py} +49 -41
  29. supervisely/nn/benchmark/object_detection/vis_metrics/__init__.py +48 -0
  30. supervisely/nn/benchmark/{visualization → object_detection}/vis_metrics/confidence_distribution.py +20 -24
  31. supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py +119 -0
  32. supervisely/nn/benchmark/{visualization → object_detection}/vis_metrics/confusion_matrix.py +34 -22
  33. supervisely/nn/benchmark/object_detection/vis_metrics/explore_predictions.py +129 -0
  34. supervisely/nn/benchmark/{visualization → object_detection}/vis_metrics/f1_score_at_different_iou.py +21 -26
  35. supervisely/nn/benchmark/object_detection/vis_metrics/frequently_confused.py +137 -0
  36. supervisely/nn/benchmark/object_detection/vis_metrics/iou_distribution.py +106 -0
  37. supervisely/nn/benchmark/object_detection/vis_metrics/key_metrics.py +136 -0
  38. supervisely/nn/benchmark/{visualization → object_detection}/vis_metrics/model_predictions.py +53 -49
  39. supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts.py +188 -0
  40. supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py +191 -0
  41. supervisely/nn/benchmark/object_detection/vis_metrics/overview.py +116 -0
  42. supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve.py +106 -0
  43. supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve_by_class.py +49 -0
  44. supervisely/nn/benchmark/object_detection/vis_metrics/precision.py +72 -0
  45. supervisely/nn/benchmark/object_detection/vis_metrics/precision_avg_per_class.py +59 -0
  46. supervisely/nn/benchmark/object_detection/vis_metrics/recall.py +71 -0
  47. supervisely/nn/benchmark/object_detection/vis_metrics/recall_vs_precision.py +56 -0
  48. supervisely/nn/benchmark/object_detection/vis_metrics/reliability_diagram.py +110 -0
  49. supervisely/nn/benchmark/object_detection/vis_metrics/speedtest.py +151 -0
  50. supervisely/nn/benchmark/object_detection/visualizer.py +697 -0
  51. supervisely/nn/benchmark/semantic_segmentation/__init__.py +9 -0
  52. supervisely/nn/benchmark/semantic_segmentation/base_vis_metric.py +55 -0
  53. supervisely/nn/benchmark/semantic_segmentation/benchmark.py +32 -0
  54. supervisely/nn/benchmark/semantic_segmentation/evaluation_params.yaml +0 -0
  55. supervisely/nn/benchmark/semantic_segmentation/evaluator.py +162 -0
  56. supervisely/nn/benchmark/semantic_segmentation/metric_provider.py +153 -0
  57. supervisely/nn/benchmark/semantic_segmentation/text_templates.py +130 -0
  58. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/__init__.py +0 -0
  59. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/acknowledgement.py +15 -0
  60. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/classwise_error_analysis.py +57 -0
  61. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/confusion_matrix.py +92 -0
  62. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/explore_predictions.py +84 -0
  63. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/frequently_confused.py +101 -0
  64. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/iou_eou.py +45 -0
  65. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/key_metrics.py +60 -0
  66. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/model_predictions.py +107 -0
  67. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/overview.py +112 -0
  68. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/renormalized_error_ou.py +48 -0
  69. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/speedtest.py +178 -0
  70. supervisely/nn/benchmark/semantic_segmentation/vis_metrics/vis_texts.py +21 -0
  71. supervisely/nn/benchmark/semantic_segmentation/visualizer.py +304 -0
  72. supervisely/nn/benchmark/utils/__init__.py +12 -0
  73. supervisely/nn/benchmark/utils/detection/__init__.py +2 -0
  74. supervisely/nn/benchmark/{evaluation/coco → utils/detection}/calculate_metrics.py +6 -4
  75. supervisely/nn/benchmark/utils/detection/metric_provider.py +533 -0
  76. supervisely/nn/benchmark/{coco_utils → utils/detection}/sly2coco.py +4 -4
  77. supervisely/nn/benchmark/{coco_utils/utils.py → utils/detection/utlis.py} +11 -0
  78. supervisely/nn/benchmark/utils/semantic_segmentation/__init__.py +0 -0
  79. supervisely/nn/benchmark/utils/semantic_segmentation/calculate_metrics.py +35 -0
  80. supervisely/nn/benchmark/utils/semantic_segmentation/evaluator.py +804 -0
  81. supervisely/nn/benchmark/utils/semantic_segmentation/loader.py +65 -0
  82. supervisely/nn/benchmark/utils/semantic_segmentation/utils.py +109 -0
  83. supervisely/nn/benchmark/visualization/evaluation_result.py +17 -3
  84. supervisely/nn/benchmark/visualization/vis_click_data.py +1 -1
  85. supervisely/nn/benchmark/visualization/widgets/__init__.py +3 -0
  86. supervisely/nn/benchmark/visualization/widgets/chart/chart.py +12 -4
  87. supervisely/nn/benchmark/visualization/widgets/gallery/gallery.py +35 -8
  88. supervisely/nn/benchmark/visualization/widgets/gallery/template.html +8 -4
  89. supervisely/nn/benchmark/visualization/widgets/markdown/markdown.py +1 -1
  90. supervisely/nn/benchmark/visualization/widgets/notification/notification.py +11 -7
  91. supervisely/nn/benchmark/visualization/widgets/radio_group/__init__.py +0 -0
  92. supervisely/nn/benchmark/visualization/widgets/radio_group/radio_group.py +34 -0
  93. supervisely/nn/benchmark/visualization/widgets/table/table.py +9 -3
  94. supervisely/nn/benchmark/visualization/widgets/widget.py +4 -0
  95. supervisely/project/project.py +18 -6
  96. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/METADATA +3 -1
  97. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/RECORD +104 -82
  98. supervisely/nn/benchmark/coco_utils/__init__.py +0 -2
  99. supervisely/nn/benchmark/evaluation/__init__.py +0 -3
  100. supervisely/nn/benchmark/evaluation/base_evaluator.py +0 -64
  101. supervisely/nn/benchmark/evaluation/coco/__init__.py +0 -2
  102. supervisely/nn/benchmark/evaluation/instance_segmentation_evaluator.py +0 -88
  103. supervisely/nn/benchmark/utils.py +0 -13
  104. supervisely/nn/benchmark/visualization/inference_speed/__init__.py +0 -19
  105. supervisely/nn/benchmark/visualization/inference_speed/speedtest_batch.py +0 -161
  106. supervisely/nn/benchmark/visualization/inference_speed/speedtest_intro.py +0 -28
  107. supervisely/nn/benchmark/visualization/inference_speed/speedtest_overview.py +0 -141
  108. supervisely/nn/benchmark/visualization/inference_speed/speedtest_real_time.py +0 -63
  109. supervisely/nn/benchmark/visualization/text_templates/inference_speed_text.py +0 -23
  110. supervisely/nn/benchmark/visualization/vis_metric_base.py +0 -337
  111. supervisely/nn/benchmark/visualization/vis_metrics/__init__.py +0 -67
  112. supervisely/nn/benchmark/visualization/vis_metrics/classwise_error_analysis.py +0 -55
  113. supervisely/nn/benchmark/visualization/vis_metrics/confidence_score.py +0 -93
  114. supervisely/nn/benchmark/visualization/vis_metrics/explorer_grid.py +0 -144
  115. supervisely/nn/benchmark/visualization/vis_metrics/frequently_confused.py +0 -115
  116. supervisely/nn/benchmark/visualization/vis_metrics/iou_distribution.py +0 -86
  117. supervisely/nn/benchmark/visualization/vis_metrics/outcome_counts.py +0 -119
  118. supervisely/nn/benchmark/visualization/vis_metrics/outcome_counts_per_class.py +0 -148
  119. supervisely/nn/benchmark/visualization/vis_metrics/overall_error_analysis.py +0 -109
  120. supervisely/nn/benchmark/visualization/vis_metrics/overview.py +0 -189
  121. supervisely/nn/benchmark/visualization/vis_metrics/percision_avg_per_class.py +0 -57
  122. supervisely/nn/benchmark/visualization/vis_metrics/pr_curve.py +0 -101
  123. supervisely/nn/benchmark/visualization/vis_metrics/pr_curve_by_class.py +0 -46
  124. supervisely/nn/benchmark/visualization/vis_metrics/precision.py +0 -56
  125. supervisely/nn/benchmark/visualization/vis_metrics/recall.py +0 -54
  126. supervisely/nn/benchmark/visualization/vis_metrics/recall_vs_precision.py +0 -57
  127. supervisely/nn/benchmark/visualization/vis_metrics/reliability_diagram.py +0 -88
  128. supervisely/nn/benchmark/visualization/vis_metrics/what_is.py +0 -23
  129. supervisely/nn/benchmark/visualization/vis_templates.py +0 -241
  130. supervisely/nn/benchmark/visualization/vis_widgets.py +0 -128
  131. supervisely/nn/benchmark/visualization/visualizer.py +0 -729
  132. /supervisely/nn/benchmark/{visualization/text_templates → instance_segmentation}/__init__.py +0 -0
  133. /supervisely/nn/benchmark/{evaluation/coco → instance_segmentation}/evaluation_params.yaml +0 -0
  134. /supervisely/nn/benchmark/{evaluation/coco → utils/detection}/metrics.py +0 -0
  135. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/LICENSE +0 -0
  136. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/WHEEL +0 -0
  137. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/entry_points.txt +0 -0
  138. {supervisely-6.73.238.dist-info → supervisely-6.73.240.dist-info}/top_level.txt +0 -0
@@ -5,7 +5,7 @@ supervisely/function_wrapper.py,sha256=R5YajTQ0GnRp2vtjwfC9hINkzQc0JiyGsu8TER373
5
5
  supervisely/sly_logger.py,sha256=LG1wTyyctyEKuCuKM2IKf_SMPH7BzkTsFdO-0tnorzg,6225
6
6
  supervisely/tiny_timer.py,sha256=hkpe_7FE6bsKL79blSs7WBaktuPavEVu67IpEPrfmjE,183
7
7
  supervisely/annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- supervisely/annotation/annotation.py,sha256=RkAv9QO1_8KYJ_qKO_xCD5nv4Jy7g4bmim6uV2-Arek,109260
8
+ supervisely/annotation/annotation.py,sha256=8ogjbQyAmarXg21IMCRtTWWNMdoVr0uRNXwNTmdcq5U,109308
9
9
  supervisely/annotation/annotation_transforms.py,sha256=TlVy_gUbM-XH6GbLpZPrAi6pMIGTr7Ow02iSKOSTa-I,9582
10
10
  supervisely/annotation/json_geometries_map.py,sha256=nL6AmMhFy02fw9ryBm75plKyOkDh61QdOToSuLAcz_Q,1659
11
11
  supervisely/annotation/label.py,sha256=NpHZ5o2H6dI4KiII22o2HpiLXG1yekh-bEy8WvI2Ljg,37498
@@ -25,7 +25,7 @@ supervisely/api/annotation_api.py,sha256=s9kd1G759R8YSvbDcNXrPa9xv95j1cWE1RgD6Xe
25
25
  supervisely/api/api.py,sha256=SI7DuSi2Jnj5NFS_V9aQ9Sg3CrS97Y5p1pqeeb-4Jb4,64729
26
26
  supervisely/api/app_api.py,sha256=-T4sISQ7POyR2yirf1kEWj4JaJFpJxCyRWqbf_99Jak,67036
27
27
  supervisely/api/dataset_api.py,sha256=2-SQBlgEnIN-0uvDbtPlSXr6ztBeZ3WPryhkOtpBmk4,40786
28
- supervisely/api/file_api.py,sha256=WMg80fxqMKOo3ai-IGON2w-IDAySPk90USoVk29JOdE,82415
28
+ supervisely/api/file_api.py,sha256=c4iIzH2BF8-GLFLk_wc9Qz225AbHhbzH22wv5HdsGg4,83128
29
29
  supervisely/api/github_api.py,sha256=NIexNjEer9H5rf5sw2LEZd7C1WR-tK4t6IZzsgeAAwQ,623
30
30
  supervisely/api/image_annotation_tool_api.py,sha256=YcUo78jRDBJYvIjrd-Y6FJAasLta54nnxhyaGyanovA,5237
31
31
  supervisely/api/image_api.py,sha256=_wXn10tKKCcfvTiQax0O2X9lnE54nXucwQHTjA1WbRM,169172
@@ -51,7 +51,7 @@ supervisely/api/entity_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
51
51
  supervisely/api/entity_annotation/entity_annotation_api.py,sha256=K79KdDyepQv4FiNQHBj9V4-zLIemxK9WG1ig1bfBKb8,3083
52
52
  supervisely/api/entity_annotation/figure_api.py,sha256=WgeB6h8ZQsgeORXnEAq2LCCezLIMeVibetFTC1PxQM8,20896
53
53
  supervisely/api/entity_annotation/object_api.py,sha256=gbcNvN_KY6G80Me8fHKQgryc2Co7VU_kfFd1GYILZ4E,8875
54
- supervisely/api/entity_annotation/tag_api.py,sha256=3PQEpLZaIL_3Ds2QWfyjHZctXA1KqvVVRYbVLw7npHU,10881
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
56
56
  supervisely/api/pointcloud/pointcloud_annotation_api.py,sha256=_QABI38FCKBc4_VQ0B7jLOKMoRN9FFSt-w-zlEHd44s,7658
57
57
  supervisely/api/pointcloud/pointcloud_api.py,sha256=pn72znCr5hkAfgniXxfD6Vi8-HqRb1Nrf6l23-HQ7Bc,53277
@@ -705,7 +705,7 @@ supervisely/metric/metrics_tests.py,sha256=59L-J9ihYZdX5we8z_qMPZKKUxEPGTgVJqPgJ
705
705
  supervisely/metric/pixel_accuracy.py,sha256=qjtxInOTkGDwPeLUnjBdzOrVRT3V6kGGOWjBZMqMJhw,3273
706
706
  supervisely/metric/precision_recall_metric.py,sha256=4AQCkcB84mpYQS94yJ-wkG1LBuXlQf3X_tI9f67vtR8,3426
707
707
  supervisely/metric/projects_applier.py,sha256=ORtgLQHYtNi4KYsSGaGPPWiZPexTJF9IWqX_RuLRxPk,3415
708
- supervisely/nn/__init__.py,sha256=3TVBx23BSDsfY8iaoqBCprzL1oV_Sjcnu5rifbMl1OM,391
708
+ supervisely/nn/__init__.py,sha256=oPFuFcvgKeMTRiklKHvJMBFaT0FMUmndS52hgF02t9M,436
709
709
  supervisely/nn/prediction_dto.py,sha256=8QQE6h_feOf3bjWtyG_PoU8FIQrr4g8PoMOyoscmqJM,1697
710
710
  supervisely/nn/task_type.py,sha256=UJvSJ4L3I08j_e6sU6Ptu7kS5p1H09rfhfoDUSZ2iys,522
711
711
  supervisely/nn/utils.py,sha256=diMo6P1FDRChLTmuxRryGvxyMenyRfUqcSi38wjQBOo,1314
@@ -721,100 +721,122 @@ supervisely/nn/artifacts/rtdetr.py,sha256=xjH3TzbHHqC06vOb_bVHTSNsWsKPwRDLN39ivQ
721
721
  supervisely/nn/artifacts/unet.py,sha256=Gn8ADfwC4F-MABVDPRY7g_ZaAIaaOAEbhhIGII-oiA4,1450
722
722
  supervisely/nn/artifacts/yolov5.py,sha256=6KDCyDlLO7AT9of1qHjCaG5mmxCv6C0p-zCk9KJ0PH4,1478
723
723
  supervisely/nn/artifacts/yolov8.py,sha256=c3MzbOTYD6RT5N4F9oZ0SWXxyonjJ6ZQfZLYUHPRZg4,1204
724
- supervisely/nn/benchmark/__init__.py,sha256=RxqbBx7cbzookq2DRvxYIaRofON9uxHeY5h8DqDbZq0,187
725
- supervisely/nn/benchmark/base_benchmark.py,sha256=LoDsT_F86Y9xztrTyfz74FmT619_rrZVUKnEtTzav0A,22755
724
+ supervisely/nn/benchmark/__init__.py,sha256=7jDezvavJFtO9mDeB2TqW8N4sD8TsHQBPpA9RESleIQ,610
725
+ supervisely/nn/benchmark/base_benchmark.py,sha256=8dnDPblZErN6LuoUduy7Q9XivHD-j4FXqjSJh7TqLf4,25015
726
+ supervisely/nn/benchmark/base_evaluator.py,sha256=fxmUDsIIAahaA8yshxMA2a8klxNAOelx_pswUWVa3-o,3644
727
+ supervisely/nn/benchmark/base_visualizer.py,sha256=APW2y-rRC6sriqn-jPRY_3oMTtP7jSviEPM2F8QCQbY,10210
726
728
  supervisely/nn/benchmark/cv_tasks.py,sha256=ShoAbuNzfMYj0Se-KOnl_-dJnrmvN6Aukxa0eq28bFw,239
727
- supervisely/nn/benchmark/instance_segmentation_benchmark.py,sha256=9iiWEH7KDw7ps0mQQdzIrCtCKg4umHekF3ws7jIGjmE,938
728
- supervisely/nn/benchmark/object_detection_benchmark.py,sha256=s1S-L952etgz-UsDPyg69AgmFfAoJXvFHhITT8zB5iw,956
729
- supervisely/nn/benchmark/utils.py,sha256=evcoUFPkeEW1-GvAPYp8EoOv3WAsqzaSmCY4lbLLfAQ,607
730
- supervisely/nn/benchmark/coco_utils/__init__.py,sha256=MKxuzzBWpRCwR8kOb5NXUK8vD-2mroJn48xd6tv9FeI,139
731
- supervisely/nn/benchmark/coco_utils/sly2coco.py,sha256=iudlcHNynthscH-V5qwCLk6VgIcxYrMEuAfGIjrOjZ0,6867
732
- supervisely/nn/benchmark/coco_utils/utils.py,sha256=J9kM_Cn4XxfsrSQ8Rx6eb1UsS65-wOybaCkI9rQDeiU,504
733
729
  supervisely/nn/benchmark/comparison/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
734
730
  supervisely/nn/benchmark/comparison/model_comparison.py,sha256=HHSdMHjhR355nnxn4RqP4ew2oYvWKWQiB_enUjmBYe0,3321
735
731
  supervisely/nn/benchmark/comparison/detection_visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
736
- supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py,sha256=mkv0lqlnpp-Dtlqk7G5UmUbs6hfStbxEL-1RGOw626s,28357
732
+ supervisely/nn/benchmark/comparison/detection_visualization/text_templates.py,sha256=lBqcNsyOX04R2jL6Efu43xB2aHC1qx28Kw27DLuk66o,28336
737
733
  supervisely/nn/benchmark/comparison/detection_visualization/visualizer.py,sha256=JuLtDL37nY5pYZW2aHq4exqyqwRcWvyC9_yO45NxoeU,12869
738
734
  supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/__init__.py,sha256=L01ExPfYQsAUVKeDyR7sybDo4lqW152q8ubs4mYMi80,1126
739
735
  supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/avg_precision_by_class.py,sha256=0_2sUoS-9e7ZSpTCJBepwbZHYQiE9mJtWlwZMBmM1Lk,4634
740
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/calibration_score.py,sha256=VZ9SG4v7Cb2Yk9RT5hBTKzjOwvVSAX8UKSlUtUJmXks,7641
741
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/explore_predicttions.py,sha256=Fym-9QX4OKSGnLkV_12ov2dFHvNvTev3wJXoSbWDt1I,5005
742
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/localization_accuracy.py,sha256=6O-ddSIcoG5jYWZvFShAYNMxwczzUgrmWfW5ywMWibU,5391
743
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/outcome_counts.py,sha256=h1qhI-GDDqW1B-y30Vh2ZuJRh60xOk2Tujr1pMmi2i4,13136
744
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py,sha256=gHiUweroxt69fVf7eOu-lgCzkxYf6aO2lnPidR_MwEY,9432
745
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/pr_curve.py,sha256=eiQ1uQbYo6idjVpW4vgnhwQ1P_pVZ6fx4zLuqAy2LNI,4846
746
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/precision_recal_f1.py,sha256=HXpcgPDot18NnWV-Xz30zqr7Wg1RGEVLYFYz2N5TEsI,11460
747
- supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/speedtest.py,sha256=FyIG-1iNNd4NyDsJkSGdFJmcrA7vMrWH15UbC8jVs8M,10583
736
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/calibration_score.py,sha256=ut6xDtDSjvgZaxdlwni3R2KL41_Ze0WPCFy0IBd_oNY,7653
737
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/explore_predicttions.py,sha256=oADcHrid3GcvZVwM5UHHgIxJswpTBQBB4Ih3RvYXdGA,6392
738
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/localization_accuracy.py,sha256=-fAvX4WPMrEoam170ROqAeeYg8pfobJBW6TXZMHhafo,5397
739
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/outcome_counts.py,sha256=QlMha7kdqJl_hshC1ZAuDgi0afZHwp8SyMGRpbtXT3s,13201
740
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/overview.py,sha256=TZen3vC1TCOEm54vZbyKNkZtHb0mSvvSTzQnWx4sJu0,9592
741
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/pr_curve.py,sha256=vBqkfdDmtlOG23CtFD9MYXrOzcQnLXsMmOF7sNQOdOc,4852
742
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/precision_recal_f1.py,sha256=9k49G-SRxT2CeE0LZtFVqV4e0uX_YqjgxCyvRPRABS4,11496
743
+ supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/speedtest.py,sha256=0NtSB-SHkw4ynRaIl8Mm0ed-h6bFr9L-ZKxnzXJbn70,10658
748
744
  supervisely/nn/benchmark/comparison/detection_visualization/vis_metrics/vis_metric.py,sha256=sRIf1q9a2ulTgm2xEZ3IMOsse8ZljbMake0_VGCnbbU,587
749
- supervisely/nn/benchmark/evaluation/__init__.py,sha256=1NGV_xEGe9lyPdE5gJ8AASKzm2WyZ_jKlh9WVvCQIaY,287
750
- supervisely/nn/benchmark/evaluation/base_evaluator.py,sha256=htei2QGHsx-1DO16j-lUjflmUFpfSIv0drhGfe60qAU,1995
751
- supervisely/nn/benchmark/evaluation/instance_segmentation_evaluator.py,sha256=p2VC4WXB2RQlmeRt14u74QTXSOwhkyQPCznw7Kqe32k,3773
752
- supervisely/nn/benchmark/evaluation/object_detection_evaluator.py,sha256=0Sp0h9kNQUQYVRL3WrV9Vm7OniJPMYriEFbwcCejOBs,3615
753
- supervisely/nn/benchmark/evaluation/coco/__init__.py,sha256=l6dFxp9aenywosQzQkIaDEI1p-DDQ63OgJJXxSVB4Mk,172
754
- supervisely/nn/benchmark/evaluation/coco/calculate_metrics.py,sha256=Pe5_bXJ57343PQ0TuYEkCMNUyp-YTyIXnPXUESuXQBk,11430
755
- supervisely/nn/benchmark/evaluation/coco/evaluation_params.yaml,sha256=POzpiaxnxuwAPSNQOGgjoUPfsk6Lf5hb9GLHwltWY5Y,94
756
- supervisely/nn/benchmark/evaluation/coco/metric_provider.py,sha256=4_-RJNtpyEiUfY8NexeXzCjScQvB6xn07u_M9IVs9ak,19951
757
- supervisely/nn/benchmark/evaluation/coco/metrics.py,sha256=oyictdJ7rRDUkaVvHoxntywW5zZweS8pIJ1bN6JgXtE,2420
745
+ supervisely/nn/benchmark/instance_segmentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
746
+ supervisely/nn/benchmark/instance_segmentation/benchmark.py,sha256=_KeKEppSCDi1g9Wgo3klp5XwS8FSFt2S4mkanYrN4Rc,1170
747
+ supervisely/nn/benchmark/instance_segmentation/evaluation_params.yaml,sha256=POzpiaxnxuwAPSNQOGgjoUPfsk6Lf5hb9GLHwltWY5Y,94
748
+ supervisely/nn/benchmark/instance_segmentation/evaluator.py,sha256=Spmo4a5LMFe5zW3s0mS-pbVKAgb27Wlxuj91Z3YXqTo,2305
749
+ supervisely/nn/benchmark/instance_segmentation/text_templates.py,sha256=sGiGnpIyuOP35f4NoDT0BWNmscsx_T1XZ_igGvCkkBg,25481
750
+ supervisely/nn/benchmark/instance_segmentation/visualizer.py,sha256=8NscOKy7JK4AG-Czu3SM0qJQXLDfKD9URdG1d4nz89E,564
751
+ supervisely/nn/benchmark/object_detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
752
+ supervisely/nn/benchmark/object_detection/base_vis_metric.py,sha256=XjUnFCnCMYLrpjojIOwiRNaSsSLYpozTHWfwLkaCd5U,1612
753
+ supervisely/nn/benchmark/object_detection/benchmark.py,sha256=SXdCGFH2KWl5UYDZBdx-J0P15GyHDs0aQOR7ZudBEBw,1085
754
+ supervisely/nn/benchmark/object_detection/evaluation_params.yaml,sha256=POzpiaxnxuwAPSNQOGgjoUPfsk6Lf5hb9GLHwltWY5Y,94
755
+ supervisely/nn/benchmark/object_detection/evaluator.py,sha256=g-QgWzbBLGzBTrv1jonNYCKkYx-M5zSkzs0KkuIVrzg,5667
756
+ supervisely/nn/benchmark/object_detection/metric_provider.py,sha256=NWN1yWK0YIE_Fz24OnhwylGlkzxJKrLP8FLVf3-L8ts,19930
757
+ supervisely/nn/benchmark/object_detection/text_templates.py,sha256=wv6BkcrfdEKldbXtz4ljkbENIIOdeiUr79U4iRgUx6A,25727
758
+ supervisely/nn/benchmark/object_detection/visualizer.py,sha256=drqndVZT-APwwTiDuMWeYXpnHF89rDsIEspneWqYSSE,31838
759
+ supervisely/nn/benchmark/object_detection/vis_metrics/__init__.py,sha256=AXCLHEySEdR-B-5sfDoWBmmOLBVlyW2U_xr8Ta42sQI,2096
760
+ supervisely/nn/benchmark/object_detection/vis_metrics/confidence_distribution.py,sha256=OlwkPgzEQ-RegcLZHVUVOL0n6I_2iayPVpAIie4y2O8,3615
761
+ supervisely/nn/benchmark/object_detection/vis_metrics/confidence_score.py,sha256=r_saaZI4WB7C7ykNb1obmf8kEOkphLA4pInDoS6dXXU,4005
762
+ supervisely/nn/benchmark/object_detection/vis_metrics/confusion_matrix.py,sha256=2PJUt0-njRpzN7XBGjkSt9kkh5tDPuv_Sne-2v8DWHc,3731
763
+ supervisely/nn/benchmark/object_detection/vis_metrics/explore_predictions.py,sha256=wIYfq3izM2XNJHr56h3j5XhuU8W8Y3wO_RKAwxntQs4,4855
764
+ supervisely/nn/benchmark/object_detection/vis_metrics/f1_score_at_different_iou.py,sha256=6y2Kx-R_t4SdJkdWNyZQ6TGjCC-u6KhXb4cCno4GuTk,2882
765
+ supervisely/nn/benchmark/object_detection/vis_metrics/frequently_confused.py,sha256=7rObk7WNsfwK7xBWl3aOxcn0uD48njEc04fQIPHc3_4,4678
766
+ supervisely/nn/benchmark/object_detection/vis_metrics/iou_distribution.py,sha256=lv4Bk8W4X8ZhvQKyMXI46d240PNlMFx1hdji_aoTS50,3601
767
+ supervisely/nn/benchmark/object_detection/vis_metrics/key_metrics.py,sha256=Z8qArtjqjjRW5Z4mBuanzK3b4LLfH6NgNbO2Lt0kXyo,4316
768
+ supervisely/nn/benchmark/object_detection/vis_metrics/model_predictions.py,sha256=gsGDsesiwOcqeFvHr33b4PSJNw6MoA5brO-qRydRtsA,5944
769
+ supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts.py,sha256=HuTgisYmXCSUeF5WOahy-uaCdvRLsNzg28BDrZ-5hww,7161
770
+ supervisely/nn/benchmark/object_detection/vis_metrics/outcome_counts_per_class.py,sha256=GBq0KlPka5z4cxHcKCe2eVOI_h3qlWUqGCyhYs6mjrk,6825
771
+ supervisely/nn/benchmark/object_detection/vis_metrics/overview.py,sha256=2ToNTbgzQA6EGdtGFPqd9jHzcLCCzpIL1FS7jwstQLg,5131
772
+ supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve.py,sha256=EeZmyNlTVQLQ-0wIDGdvFmRkahJBBiOKSmWiAJ8Bfks,3478
773
+ supervisely/nn/benchmark/object_detection/vis_metrics/pr_curve_by_class.py,sha256=Bl_buVvH8SVqwsc4DcHnojMOqpwTnRgXFt9yw_Y1BR0,1607
774
+ supervisely/nn/benchmark/object_detection/vis_metrics/precision.py,sha256=473bhBQ31-kFoyNsDNTs4GPwOiexSskxKPP8AP_nHDg,2605
775
+ supervisely/nn/benchmark/object_detection/vis_metrics/precision_avg_per_class.py,sha256=X-hyf7OP7hzQzI5Yb2yDU536hxYQLvxcnVyYa3x27XA,2076
776
+ supervisely/nn/benchmark/object_detection/vis_metrics/recall.py,sha256=VQZqrlYLUbrFV7ugp2Bo1SIaKCs_jA7qrodatzB4_rE,2483
777
+ supervisely/nn/benchmark/object_detection/vis_metrics/recall_vs_precision.py,sha256=md9pj3V5hL7GE92ehVhhCz3uEWd3HsqtGIfyIZPas68,1937
778
+ supervisely/nn/benchmark/object_detection/vis_metrics/reliability_diagram.py,sha256=_8ie3dPfwOyNCg-YhqO5jFW6kubCfQC2Obn9QSZFVeQ,3615
779
+ supervisely/nn/benchmark/object_detection/vis_metrics/speedtest.py,sha256=uAYu42WUcQCBdfm-PZxOPAGLDsPlcnDJL7PCXDRStbY,5449
780
+ supervisely/nn/benchmark/semantic_segmentation/__init__.py,sha256=Hx5bFhRZq8BXvN_ATAxlrhsxWcVy32pT4xIkqa-16RM,326
781
+ supervisely/nn/benchmark/semantic_segmentation/base_vis_metric.py,sha256=mwGjRUTPrIj56WHsxNW_4fcZM0uw1xm6B5wh25FijyQ,1788
782
+ supervisely/nn/benchmark/semantic_segmentation/benchmark.py,sha256=8rnU6I94q0GUdXWwluZu0_Sac_eU2-Az133tHF1dA3U,1202
783
+ supervisely/nn/benchmark/semantic_segmentation/evaluation_params.yaml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
784
+ supervisely/nn/benchmark/semantic_segmentation/evaluator.py,sha256=SjFGBju1rghXeBkOZjnaCnyIo04C6aEb1ltDKvR2ME4,6158
785
+ supervisely/nn/benchmark/semantic_segmentation/metric_provider.py,sha256=KvbiiEqNOuTSwp4IfV6GC8azYFb-9OZ6ZrYV7pw4KEc,6491
786
+ supervisely/nn/benchmark/semantic_segmentation/text_templates.py,sha256=fYJQeO75LTMzbz0KG01TPGYrMatEuHAF9cnPWolUsoQ,8585
787
+ supervisely/nn/benchmark/semantic_segmentation/visualizer.py,sha256=qbpz6b3aUhvByTFvE44u0X7DdTRgaITTBYD4TWIysI4,13102
788
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
789
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/acknowledgement.py,sha256=Lm82x8AIMKv1WqmqA0W9fugSlQ_JrP9dwYYYReZmhvI,440
790
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/classwise_error_analysis.py,sha256=0bmL43a4cqw3grFoG68NN8Y1fkRpHBIRJptcxMor-78,1884
791
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/confusion_matrix.py,sha256=xpvicxgwDaih-64VSAsxdNvoFxeA_iaUGOK9gpvNyuQ,3233
792
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/explore_predictions.py,sha256=QVtcGQv4S8W7jLANUsvuJaPP-OrUQ_LB2oEpjpLBecw,2936
793
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/frequently_confused.py,sha256=SyVgMD66EFLfgrClb5RCJjLhgRfTYqGsUORPYIuSe58,3697
794
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/iou_eou.py,sha256=IdUho3712dDLyVsgR01aNSQBcraPzYwpJmTc9AB0Txw,1401
795
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/key_metrics.py,sha256=vJb30-aQ-ffUTo_vX4ZQL8wjN0VYI6jwR2ILH5jXGDw,1886
796
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/model_predictions.py,sha256=1ysQLOmYJvrCPdqkXhRb5p_TyyXWdAVBDXoCJpfZrNo,3807
797
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/overview.py,sha256=3E8TqjTWkhFFvcl0v0SjVz7muIkaZRfsG6fiW76ooqE,4851
798
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/renormalized_error_ou.py,sha256=w4oqirf_o7uz0fwaapaFR0ByjCBSEfMv--ZgEZTkuFQ,1575
799
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/speedtest.py,sha256=0UP_HReIciHQyU6sOXnWhAzyVBoGznV7ZHF8m4vEVX0,5941
800
+ supervisely/nn/benchmark/semantic_segmentation/vis_metrics/vis_texts.py,sha256=rRdYZxmhQX4T3RsXJVGp34NMZPz8jUHtVvBN5BpPJ5I,603
801
+ supervisely/nn/benchmark/utils/__init__.py,sha256=JHT73gWdwgLJKTiCpDdwggm1t_EWB0JCC90-zD7reXM,741
802
+ supervisely/nn/benchmark/utils/detection/__init__.py,sha256=L3QKGuKUlR2N_QFRTRsa6gfLDbksIaFMYO0Hukxxy1U,172
803
+ supervisely/nn/benchmark/utils/detection/calculate_metrics.py,sha256=DyGNBhnifAFZL8-OwRrrFritzLKJeCcEwEZsLXPd148,11446
804
+ supervisely/nn/benchmark/utils/detection/metric_provider.py,sha256=cgF6uzF7XOvU2CpxyU7zuK1HH6hhNiIV3vQc8MAzwMU,19934
805
+ supervisely/nn/benchmark/utils/detection/metrics.py,sha256=oyictdJ7rRDUkaVvHoxntywW5zZweS8pIJ1bN6JgXtE,2420
806
+ supervisely/nn/benchmark/utils/detection/sly2coco.py,sha256=0O2LSCU5zIX34mD4hZIv8O3-j6LwnB0DqhiVPAiosO8,6883
807
+ supervisely/nn/benchmark/utils/detection/utlis.py,sha256=pDmlq_lb90L1D1avsTPlqd4-t19UlERrWyIzSNU3K60,902
808
+ supervisely/nn/benchmark/utils/semantic_segmentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
809
+ supervisely/nn/benchmark/utils/semantic_segmentation/calculate_metrics.py,sha256=4ifC5r_Q880yIr8gWnjEzwKbS0vizMWqSF4XeyaMvh0,924
810
+ supervisely/nn/benchmark/utils/semantic_segmentation/evaluator.py,sha256=R1U_mnOiUUH6P87xiKalYqMpj1uGCJKuOBcsTmVHawY,32894
811
+ supervisely/nn/benchmark/utils/semantic_segmentation/loader.py,sha256=_5ZZ7Nkd8WWYJnKwc1Dx3bEPS_1R84gG_hQc0w0TXWw,1957
812
+ supervisely/nn/benchmark/utils/semantic_segmentation/utils.py,sha256=nV9T7PCUxOdipFIBPrpdwLJXs0GJNp_Eft2MJmrKJRM,3787
758
813
  supervisely/nn/benchmark/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
759
- supervisely/nn/benchmark/visualization/evaluation_result.py,sha256=TT4ADr6uSOKzohWpbLsamfHnbsNMMcyWSVSWgoj8TVY,9835
814
+ supervisely/nn/benchmark/visualization/evaluation_result.py,sha256=733HJL4rJa5XqCJydW9vSyaepvpHzym9wQsw1wFEgeI,10251
760
815
  supervisely/nn/benchmark/visualization/renderer.py,sha256=qxWUYu2glTqksxI5UG08nwDmZA4A2bfGb1wk9DaDct8,3340
761
816
  supervisely/nn/benchmark/visualization/report_template.html,sha256=tylBK5Bb2cqKACK1GZUKyIjPS9yHQFHAS-QeEEwhqTE,2172
762
- supervisely/nn/benchmark/visualization/vis_click_data.py,sha256=4QdBZqJmmPYdcB7x565zOtXhDFRyXIB4tpu0V-_otoc,3724
763
- supervisely/nn/benchmark/visualization/vis_metric_base.py,sha256=hXnbGAijnZ700GuzfvaHBxU5elQR0wXkBUNbmcSWCno,13941
764
- supervisely/nn/benchmark/visualization/vis_templates.py,sha256=Vy019K8G8oJ9vN35tvsSjYA21xdldqIP-BALGEuy_eM,10169
765
- supervisely/nn/benchmark/visualization/vis_widgets.py,sha256=oavMM2Z-05Hp_Fj086NgXAqDq2KPAqXfT-nJb5qlDsg,4103
766
- supervisely/nn/benchmark/visualization/visualizer.py,sha256=1VhcuM44LIZv6RHzsSpU9K-Yq3MqAhuwO2JGuWN5Ots,32149
767
- supervisely/nn/benchmark/visualization/inference_speed/__init__.py,sha256=6Nahwt9R61_Jc1eWupXa70CgyRQ7tbUeiDWR26017rY,554
768
- supervisely/nn/benchmark/visualization/inference_speed/speedtest_batch.py,sha256=73gbXs1uTfxxWH-UCJdR72m-48jMD5qVyMyolf5jNoc,6140
769
- supervisely/nn/benchmark/visualization/inference_speed/speedtest_intro.py,sha256=ivUVriKyhx9ZtwVSqrAkUqq1SJGYYxNLwLQR1UgE4aM,900
770
- supervisely/nn/benchmark/visualization/inference_speed/speedtest_overview.py,sha256=QLgiiHJzmasnNmn6OGWfLef01gLOiM84uVBK5P8c954,4887
771
- supervisely/nn/benchmark/visualization/inference_speed/speedtest_real_time.py,sha256=bVpNS3YBP0TGsqE_XQBuFMJI5ybDM0RZpEzFyT7cbkA,2157
772
- supervisely/nn/benchmark/visualization/text_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
773
- supervisely/nn/benchmark/visualization/text_templates/inference_speed_text.py,sha256=XGeBrbP-ROyKYbqYZzA281_IG45Ygu9NKyqG2I3o5TU,1124
774
- supervisely/nn/benchmark/visualization/text_templates/instance_segmentation_text.py,sha256=ud_XqN3q8nbpAvk3JvW_8LNcmnkq7B-MuLgILgSVeJA,25116
775
- supervisely/nn/benchmark/visualization/text_templates/object_detection_text.py,sha256=jKHeKZGwEP1rnKpKHpf9x5iP9L8JaFMkvnFcayxvgeI,24508
776
- supervisely/nn/benchmark/visualization/vis_metrics/__init__.py,sha256=Qrd9NMgFUQ1nbEy4NEu59RXR4OmVaBdK_iLOGpwVRCA,2249
777
- supervisely/nn/benchmark/visualization/vis_metrics/classwise_error_analysis.py,sha256=8S_XYSA_qyVWAEnvebdjuw9ktJScDHgTVvZRfh-bvpc,1841
778
- supervisely/nn/benchmark/visualization/vis_metrics/confidence_distribution.py,sha256=m-z0-jPn3dd_X-w49Zjkb4qEEP6Rw6fVpSjgSuJoeRw,3794
779
- supervisely/nn/benchmark/visualization/vis_metrics/confidence_score.py,sha256=F38WSVF2a2ePV7DWfYdxDlSjM68NvjPMccfaTQWg0uI,3356
780
- supervisely/nn/benchmark/visualization/vis_metrics/confusion_matrix.py,sha256=SFDRpoJX-IJYv-SoCXOyhXZTpVUm6G1IYCe15Nei9Uc,3362
781
- supervisely/nn/benchmark/visualization/vis_metrics/explorer_grid.py,sha256=-TmGMWr6bHZd80TBGk3S_qdDQ-xlAL-zczAYw8h9vtU,5738
782
- supervisely/nn/benchmark/visualization/vis_metrics/f1_score_at_different_iou.py,sha256=QbHUT0-beBs0z8anbma1MS6iNEG89CmL6iSj8-ejnlc,3158
783
- supervisely/nn/benchmark/visualization/vis_metrics/frequently_confused.py,sha256=2lhwqaXdIEXhFSaqBYcJjRLp_OgBTEYxajYib0v4qRQ,3992
784
- supervisely/nn/benchmark/visualization/vis_metrics/iou_distribution.py,sha256=Kir2F3piCBf-xKhoQzVXbo38zyrLLhOr3bYay90H1-g,3015
785
- supervisely/nn/benchmark/visualization/vis_metrics/model_predictions.py,sha256=VmsvHwG1YJ6mMlU676cyNRXkVOcNbSvKwyVpxs4SMis,6108
786
- supervisely/nn/benchmark/visualization/vis_metrics/outcome_counts.py,sha256=rsm_hdE0pYCHY-5v0pjDIid71y2tPbzYbmH2Qw-RS-4,3983
787
- supervisely/nn/benchmark/visualization/vis_metrics/outcome_counts_per_class.py,sha256=lSb2-jfplyERIUCi8_6P9aq6C77JGOKOJK20J824sEE,5623
788
- supervisely/nn/benchmark/visualization/vis_metrics/overall_error_analysis.py,sha256=YHfueea2EkUgNGP4FCyKyCaCtCwaYeYNJ3WwfF-Hzi4,3553
789
- supervisely/nn/benchmark/visualization/vis_metrics/overview.py,sha256=V-uNrtNhR5idywyfFSNOA4zFesTf5d6i2g8MNtLOhIw,6997
790
- supervisely/nn/benchmark/visualization/vis_metrics/percision_avg_per_class.py,sha256=mm8IVM90EoIC_9GsiM-Jyhh6jPqQcHMo788VAvRAzMY,1877
791
- supervisely/nn/benchmark/visualization/vis_metrics/pr_curve.py,sha256=4-AwEQk1ywuW4zXO_EXo7_aFMjenwhnLlGX2PWqiu0k,3574
792
- supervisely/nn/benchmark/visualization/vis_metrics/pr_curve_by_class.py,sha256=9Uuibo38HVGPChPbCW8i3cMYdb6-NFlys1TBisp5zOU,1442
793
- supervisely/nn/benchmark/visualization/vis_metrics/precision.py,sha256=_ATnCkson-tSOv3xp7LI7BmwzIax75zuKs7VoeBZ_ds,2156
794
- supervisely/nn/benchmark/visualization/vis_metrics/recall.py,sha256=trRMw8ziWMaDp5cmJuwFaJ6aO_rfsTbCYb9LMdr9D_Q,2078
795
- supervisely/nn/benchmark/visualization/vis_metrics/recall_vs_precision.py,sha256=RuN3tQA3Zt5MmCha8T0WgWDIvzURjsqfL4ap_LYqN-Y,1859
796
- supervisely/nn/benchmark/visualization/vis_metrics/reliability_diagram.py,sha256=Vxta2s0RTTcV0GCcMiF8CykCtZYryLTwGjW9vVUrK3I,3107
797
- supervisely/nn/benchmark/visualization/vis_metrics/what_is.py,sha256=MDnYR-o7Mj-YE1Jwu9EcLUEPcu6rLknRx7LvV4nnUBo,842
798
- supervisely/nn/benchmark/visualization/widgets/__init__.py,sha256=pH-S6KlLE12uFl3KUHTyxvgd75NhI229SZ96sh-buJI,840
799
- supervisely/nn/benchmark/visualization/widgets/widget.py,sha256=X96Gan8xlAuhKJMW_twFXMXbIWjS0idL5abcvircSA0,702
817
+ supervisely/nn/benchmark/visualization/vis_click_data.py,sha256=hBeVepHngTGVHK3MiWe8qZY87taifxnoUXq22W2xaqo,3724
818
+ supervisely/nn/benchmark/visualization/widgets/__init__.py,sha256=UovmhwLH4Au81JFrFz0NwPasaIqPEI-zXN-JntTc2FU,949
819
+ supervisely/nn/benchmark/visualization/widgets/widget.py,sha256=1cpfyaZjug8ZQIRR5SB4BgkSxP3BMwkYFRWH36U1eF0,818
800
820
  supervisely/nn/benchmark/visualization/widgets/chart/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
801
- supervisely/nn/benchmark/visualization/widgets/chart/chart.py,sha256=BhGQgG5t0mIuGK3sU4_xwoTZqkQOBXbFtJaoHqQ5L8I,2288
821
+ supervisely/nn/benchmark/visualization/widgets/chart/chart.py,sha256=wBq0HaSixzxzlosGys2jFGLfKuFIld6p3tLWD0TF_Jo,2553
802
822
  supervisely/nn/benchmark/visualization/widgets/chart/template.html,sha256=X3jm8P3BngF_XCV9NOypOsrGH0NuesUdxvhO3tZs9yQ,637
803
823
  supervisely/nn/benchmark/visualization/widgets/collapse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
804
824
  supervisely/nn/benchmark/visualization/widgets/collapse/collapse.py,sha256=iRtf5kThl5zzzYwBbA0WepAroK_LRgNJBcP0TvDHwEo,916
805
825
  supervisely/nn/benchmark/visualization/widgets/container/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
806
826
  supervisely/nn/benchmark/visualization/widgets/container/container.py,sha256=ZV7auhFLZDsEVv8FoAKygiGKCeFjDG078Wmcpx7U6-w,1802
807
827
  supervisely/nn/benchmark/visualization/widgets/gallery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
808
- supervisely/nn/benchmark/visualization/widgets/gallery/gallery.py,sha256=KRpfqfSFwWNabcIdFzT4huzWLzmpFiQVxgx8-Vp6vKM,4504
809
- supervisely/nn/benchmark/visualization/widgets/gallery/template.html,sha256=7UPZexDEVTzQxORXlMDidl4RWb9SSh8kLxEiE2ySC6o,1882
828
+ supervisely/nn/benchmark/visualization/widgets/gallery/gallery.py,sha256=Lid8sZexDfgoWDupCWOiHowVnKn687F7S1fnDomrtfA,5578
829
+ supervisely/nn/benchmark/visualization/widgets/gallery/template.html,sha256=GuxIVCuqUN41Pe-F11RrrMZxomkWld2UM6j5U8RL2UU,2003
810
830
  supervisely/nn/benchmark/visualization/widgets/markdown/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
811
- supervisely/nn/benchmark/visualization/widgets/markdown/markdown.py,sha256=jQOHBgLFZROUPYC1JxlHOjp06tmpLNSuNzQZ7604TmY,1531
831
+ supervisely/nn/benchmark/visualization/widgets/markdown/markdown.py,sha256=j0e3lVZJZVrFrtAxpNTOlmUpsjeqoS9yJHR5m8zJMiI,1528
812
832
  supervisely/nn/benchmark/visualization/widgets/notification/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
813
- supervisely/nn/benchmark/visualization/widgets/notification/notification.py,sha256=PIVGiIlpkLMJ40anqSmXFkXbAK6umuZNJCPeT5NnFac,1054
833
+ supervisely/nn/benchmark/visualization/widgets/notification/notification.py,sha256=J-n_RXRl6o67-qbCHp-l-_Kw1prkTmfeigwxx7tRQLI,1183
834
+ supervisely/nn/benchmark/visualization/widgets/radio_group/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
835
+ supervisely/nn/benchmark/visualization/widgets/radio_group/radio_group.py,sha256=NtX5LB1kRbYC8KLVOUqiZECt7jvrYfHpaFqAXcTRCCg,925
814
836
  supervisely/nn/benchmark/visualization/widgets/sidebar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
815
837
  supervisely/nn/benchmark/visualization/widgets/sidebar/sidebar.py,sha256=tKPURRSF6_zZReG06MJ5a1nrRWBNtCDFKGm_eEAOp8I,2084
816
838
  supervisely/nn/benchmark/visualization/widgets/table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
817
- supervisely/nn/benchmark/visualization/widgets/table/table.py,sha256=YiCpt-mdINJnNBWsUTPkRR_9w09Ne2Y0n93DY8vsE8I,4090
839
+ supervisely/nn/benchmark/visualization/widgets/table/table.py,sha256=atmDnF1Af6qLQBUjLhK18RMDKAYlxnsuVHMSEa5a-e8,4319
818
840
  supervisely/nn/inference/__init__.py,sha256=mtEci4Puu-fRXDnGn8RP47o97rv3VTE0hjbYO34Zwqg,1622
819
841
  supervisely/nn/inference/cache.py,sha256=KvzCgMbEBLdiJAxJDLicIPKAlYb52P9_kpNPWfiVY8Y,28194
820
842
  supervisely/nn/inference/inference.py,sha256=CmQe6QnhZuUV128jcIp2YKsgeggAtmc1NL7PdFnc_hw,116997
@@ -935,7 +957,7 @@ supervisely/project/data_version.py,sha256=nknaWJSUCwoDyNG9_d1KA-GjzidhV9zd9Cn8c
935
957
  supervisely/project/download.py,sha256=qonvHBiKX-leHW9qWJdyBqFNmpI2_t9s54e68h9orq0,23687
936
958
  supervisely/project/pointcloud_episode_project.py,sha256=fcaFAaHVn_VvdiIfHl4IyEFE5-Q3VFGfo7_YoxEma0I,41341
937
959
  supervisely/project/pointcloud_project.py,sha256=Y8Xhi6Hg-KyztwFncezuDfKTt2FILss96EU_LdXzmrA,49172
938
- supervisely/project/project.py,sha256=byf0WUxIvfoqFwq57Yea0hnljHWVrZMYMH8cGCH_rCM,181356
960
+ supervisely/project/project.py,sha256=UB0DdouhKsER4lhW8BlLRfzf_ZzuUv0lKRKUpA46GiM,182025
939
961
  supervisely/project/project_meta.py,sha256=26s8IiHC5Pg8B1AQi6_CrsWteioJP2in00cRNe8QlW0,51423
940
962
  supervisely/project/project_settings.py,sha256=NLThzU_DCynOK6hkHhVdFyezwprn9UqlnrLDe_3qhkY,9347
941
963
  supervisely/project/project_type.py,sha256=_3RqW2CnDBKFOvSIrQT1RJQaiHirs34_jiQS8CkwCpo,530
@@ -997,9 +1019,9 @@ supervisely/worker_proto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
997
1019
  supervisely/worker_proto/worker_api_pb2.py,sha256=VQfi5JRBHs2pFCK1snec3JECgGnua3Xjqw_-b3aFxuM,59142
998
1020
  supervisely/worker_proto/worker_api_pb2_grpc.py,sha256=3BwQXOaP9qpdi0Dt9EKG--Lm8KGN0C5AgmUfRv77_Jk,28940
999
1021
  supervisely_lib/__init__.py,sha256=7-3QnN8Zf0wj8NCr2oJmqoQWMKKPKTECvjH9pd2S5vY,159
1000
- supervisely-6.73.238.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1001
- supervisely-6.73.238.dist-info/METADATA,sha256=j1-Fhh_Bn7kB7RBO05jQFsdygCHuK041cngXQYcClig,33157
1002
- supervisely-6.73.238.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
1003
- supervisely-6.73.238.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1004
- supervisely-6.73.238.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1005
- supervisely-6.73.238.dist-info/RECORD,,
1022
+ supervisely-6.73.240.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
1023
+ supervisely-6.73.240.dist-info/METADATA,sha256=AIoj0IdizC_kg3QG2ExZsXz19mHqbh7qFPZF7OPO_nY,33277
1024
+ supervisely-6.73.240.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
1025
+ supervisely-6.73.240.dist-info/entry_points.txt,sha256=U96-5Hxrp2ApRjnCoUiUhWMqijqh8zLR03sEhWtAcms,102
1026
+ supervisely-6.73.240.dist-info/top_level.txt,sha256=kcFVwb7SXtfqZifrZaSE3owHExX4gcNYe7Q2uoby084,28
1027
+ supervisely-6.73.240.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- from supervisely.nn.benchmark.coco_utils.sly2coco import sly2coco
2
- from supervisely.nn.benchmark.coco_utils.utils import read_coco_datasets
@@ -1,3 +0,0 @@
1
- from supervisely.nn.benchmark.evaluation.base_evaluator import BaseEvaluator
2
- from supervisely.nn.benchmark.evaluation.object_detection_evaluator import ObjectDetectionEvaluator
3
- from supervisely.nn.benchmark.evaluation.instance_segmentation_evaluator import InstanceSegmentationEvaluator
@@ -1,64 +0,0 @@
1
- import os
2
- import pickle
3
- from typing import List, Optional, Union
4
-
5
- import yaml
6
-
7
- from supervisely.app.widgets import SlyTqdm
8
- from supervisely.task.progress import tqdm_sly
9
-
10
-
11
- class BaseEvaluator:
12
- EVALUATION_PARAMS_YAML_PATH: str = None
13
-
14
- def __init__(
15
- self,
16
- gt_project_path: str,
17
- dt_project_path: str,
18
- result_dir: str = "./evaluation",
19
- progress: Optional[SlyTqdm] = None,
20
- items_count: Optional[int] = None, # TODO: is it needed?
21
- classes_whitelist: Optional[List[str]] = None,
22
- evaluation_params: Optional[dict] = None,
23
- ):
24
- self.gt_project_path = gt_project_path
25
- self.dt_project_path = dt_project_path
26
- self.result_dir = result_dir
27
- self.total_items = items_count
28
- self.pbar = progress or tqdm_sly
29
- os.makedirs(result_dir, exist_ok=True)
30
- self.classes_whitelist = classes_whitelist
31
-
32
- if evaluation_params is None:
33
- evaluation_params = self._get_default_evaluation_params()
34
- self.evaluation_params = evaluation_params
35
- if self.evaluation_params:
36
- self.validate_evaluation_params(self.evaluation_params)
37
-
38
- def evaluate(self):
39
- raise NotImplementedError()
40
-
41
- def get_result_dir(self) -> str:
42
- return self.result_dir
43
-
44
- @classmethod
45
- def load_yaml_evaluation_params(cls) -> Union[str, None]:
46
- if cls.EVALUATION_PARAMS_YAML_PATH is None:
47
- return None
48
- with open(cls.EVALUATION_PARAMS_YAML_PATH, "r") as f:
49
- return f.read()
50
-
51
- @classmethod
52
- def validate_evaluation_params(cls, evaluation_params: dict) -> None:
53
- pass
54
-
55
- @classmethod
56
- def _get_default_evaluation_params(cls) -> dict:
57
- if cls.EVALUATION_PARAMS_YAML_PATH is None:
58
- return {}
59
- else:
60
- return yaml.safe_load(cls.load_yaml_evaluation_params())
61
-
62
- def _dump_pickle(self, data, file_path):
63
- with open(file_path, "wb") as f:
64
- pickle.dump(data, f)
@@ -1,2 +0,0 @@
1
- from supervisely.nn.benchmark.evaluation.coco.calculate_metrics import calculate_metrics
2
- from supervisely.nn.benchmark.evaluation.coco.metric_provider import MetricProvider
@@ -1,88 +0,0 @@
1
- import os
2
-
3
- from supervisely.io.json import dump_json_file
4
- from supervisely.nn.benchmark.coco_utils import read_coco_datasets, sly2coco
5
- from supervisely.nn.benchmark.evaluation import BaseEvaluator
6
- from supervisely.nn.benchmark.evaluation.coco import calculate_metrics
7
- from pathlib import Path
8
-
9
-
10
- class InstanceSegmentationEvaluator(BaseEvaluator):
11
- EVALUATION_PARAMS_YAML_PATH = f"{Path(__file__).parent}/coco/evaluation_params.yaml"
12
-
13
- def evaluate(self):
14
- try:
15
- self.cocoGt_json, self.cocoDt_json = self._convert_to_coco()
16
- except AssertionError as e:
17
- raise ValueError(
18
- f"{e}. Please make sure that your GT and DT projects are correct. "
19
- "If GT project has nested datasets and DT project was crated with NN app, "
20
- "try to use newer version of NN app."
21
- )
22
-
23
- self._dump_datasets()
24
- self.cocoGt, self.cocoDt = read_coco_datasets(self.cocoGt_json, self.cocoDt_json)
25
- with self.pbar(message="Evaluation: Calculating metrics", total=5) as p:
26
- self.eval_data = calculate_metrics(
27
- self.cocoGt,
28
- self.cocoDt,
29
- iouType="segm",
30
- progress_cb=p.update,
31
- evaluation_params=self.evaluation_params,
32
- )
33
- self._dump_eval_results()
34
-
35
- @classmethod
36
- def validate_evaluation_params(cls, evaluation_params: dict) -> None:
37
- iou_threshold = evaluation_params.get("iou_threshold")
38
- if iou_threshold is not None:
39
- assert iou_threshold in [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95], (
40
- f"iou_threshold must be one of [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95], "
41
- f"but got {iou_threshold}"
42
- )
43
-
44
- def _convert_to_coco(self):
45
- cocoGt_json = sly2coco(
46
- self.gt_project_path,
47
- is_dt_dataset=False,
48
- accepted_shapes=["polygon", "bitmap"],
49
- progress=self.pbar,
50
- classes_whitelist=self.classes_whitelist,
51
- )
52
- cocoDt_json = sly2coco(
53
- self.dt_project_path,
54
- is_dt_dataset=True,
55
- accepted_shapes=["polygon", "bitmap"],
56
- progress=self.pbar,
57
- classes_whitelist=self.classes_whitelist,
58
- )
59
- if len(cocoGt_json["annotations"]) == 0:
60
- raise ValueError("Not found any annotations in GT project")
61
- if len(cocoDt_json["annotations"]) == 0:
62
- raise ValueError(
63
- "Not found any predictions. "
64
- "Please make sure that your model produces predictions."
65
- )
66
- assert (
67
- cocoDt_json["categories"] == cocoGt_json["categories"]
68
- ), "Object classes in GT and DT projects are different"
69
- assert [f'{x["dataset"]}/{x["file_name"]}' for x in cocoDt_json["images"]] == [
70
- f'{x["dataset"]}/{x["file_name"]}' for x in cocoGt_json["images"]
71
- ], "Images in GT and DT projects are different"
72
- return cocoGt_json, cocoDt_json
73
-
74
- def _dump_datasets(self):
75
- cocoGt_path, cocoDt_path, eval_data_path = self._get_eval_paths()
76
- dump_json_file(self.cocoGt_json, cocoGt_path, indent=None)
77
- dump_json_file(self.cocoDt_json, cocoDt_path, indent=None)
78
-
79
- def _dump_eval_results(self):
80
- cocoGt_path, cocoDt_path, eval_data_path = self._get_eval_paths()
81
- self._dump_pickle(self.eval_data, eval_data_path)
82
-
83
- def _get_eval_paths(self):
84
- base_dir = self.result_dir
85
- cocoGt_path = os.path.join(base_dir, "cocoGt.json")
86
- cocoDt_path = os.path.join(base_dir, "cocoDt.json")
87
- eval_data_path = os.path.join(base_dir, "eval_data.pkl")
88
- return cocoGt_path, cocoDt_path, eval_data_path
@@ -1,13 +0,0 @@
1
- from supervisely.nn.inference import SessionJSON
2
-
3
- WORKSPACE_NAME = "Model Benchmark: predictions and differences"
4
- WORKSPACE_DESCRIPTION = "Technical workspace for model benchmarking. Contains predictions and differences between ground truth and predictions."
5
-
6
- def try_set_conf_auto(session: SessionJSON, conf: float):
7
- conf_names = ["conf", "confidence", "confidence_threshold", "confidence_thresh"]
8
- default = session.get_default_inference_settings()
9
- for name in conf_names:
10
- if name in default:
11
- session.inference_settings[name] = conf
12
- return True
13
- return False
@@ -1,19 +0,0 @@
1
- from supervisely.nn.benchmark.visualization.inference_speed.speedtest_batch import (
2
- SpeedtestBatch,
3
- )
4
- from supervisely.nn.benchmark.visualization.inference_speed.speedtest_intro import (
5
- SpeedtestIntro,
6
- )
7
- from supervisely.nn.benchmark.visualization.inference_speed.speedtest_overview import (
8
- SpeedtestOverview,
9
- )
10
- from supervisely.nn.benchmark.visualization.inference_speed.speedtest_real_time import (
11
- SpeedtestRealTime,
12
- )
13
-
14
- SPEEDTEST_METRICS = [
15
- SpeedtestIntro,
16
- SpeedtestOverview,
17
- # SpeedtestRealTime,
18
- SpeedtestBatch,
19
- ]
@@ -1,161 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import TYPE_CHECKING
4
-
5
- from supervisely.nn.benchmark.visualization.vis_metric_base import MetricVis
6
- from supervisely.nn.benchmark.visualization.vis_widgets import Schema, Widget
7
-
8
- if TYPE_CHECKING:
9
- from supervisely.nn.benchmark.visualization.visualizer import Visualizer
10
-
11
-
12
- class SpeedtestBatch(MetricVis):
13
-
14
- def __init__(self, loader: Visualizer) -> None:
15
- super().__init__(loader)
16
- self.schema = Schema(
17
- self._loader.inference_speed_text,
18
- markdown_batch_inference=Widget.Markdown(title="Batch inference"),
19
- chart=Widget.Chart(),
20
- )
21
-
22
- def get_figure(self, widget: Widget.Chart): # -> Optional[go.Figure]
23
- import plotly.graph_objects as go # pylint: disable=import-error
24
- from plotly.subplots import make_subplots # pylint: disable=import-error
25
-
26
- fig = make_subplots(cols=2)
27
-
28
- ms_color = "#e377c2"
29
- fps_color = "#17becf"
30
-
31
- temp_res = {}
32
- for test in self._loader.speedtest["speedtest"]:
33
- batch_size = test["batch_size"]
34
-
35
- std = test["benchmark_std"]["total"]
36
- ms = test["benchmark"]["total"]
37
- fps = round(1000 / test["benchmark"]["total"] * batch_size)
38
- # fps_upper = round(1000 / (ms - std) * batch_size)
39
- # fps_std = round(fps_upper - fps)
40
-
41
- ms_line = temp_res.setdefault("ms", {})
42
- fps_line = temp_res.setdefault("fps", {})
43
- ms_std_line = temp_res.setdefault("ms_std", {})
44
- # fps_std_line = temp_res.setdefault("fps_std", {})
45
-
46
- ms_line[batch_size] = ms
47
- fps_line[batch_size] = fps
48
- ms_std_line[batch_size] = round(std, 2)
49
- # fps_std_line[batch_size] = fps_std
50
-
51
- fig.add_trace(
52
- go.Scatter(
53
- x=list(temp_res["ms"].keys()),
54
- y=list(temp_res["ms"].values()),
55
- name="Infrence time (ms)",
56
- line=dict(color=ms_color),
57
- customdata=list(temp_res["ms_std"].values()),
58
- error_y=dict(
59
- type="data",
60
- array=list(temp_res["ms_std"].values()),
61
- visible=True,
62
- color="rgba(227, 119, 194, 0.7)",
63
- ),
64
- hovertemplate="Batch Size: %{x}<br>Time: %{y:.2f} ms<br> Standard deviation: %{customdata:.2f} ms<extra></extra>",
65
- ),
66
- col=1,
67
- row=1,
68
- )
69
- fig.add_trace(
70
- go.Scatter(
71
- x=list(temp_res["fps"].keys()),
72
- y=list(temp_res["fps"].values()),
73
- name="FPS",
74
- line=dict(color=fps_color),
75
- # customdata=list(temp_res["fps_std"].values()),
76
- # error_y=dict(
77
- # type="data",
78
- # array=list(temp_res["fps_std"].values()),
79
- # visible=True,
80
- # color="rgba(23, 190, 207, 0.7)",
81
- # ),
82
- hovertemplate="Batch Size: %{x}<br>FPS: %{y:.2f}<extra></extra>", # <br> Standard deviation: %{customdata:.2f}<extra></extra>",
83
- ),
84
- col=2,
85
- row=1,
86
- )
87
-
88
- fig.update_xaxes(title_text="Batch size", col=1, dtick=1)
89
- fig.update_xaxes(title_text="Batch size", col=2, dtick=1)
90
-
91
- fig.update_yaxes(title_text="Time (ms)", col=1)
92
- fig.update_yaxes(title_text="FPS", col=2)
93
- fig.update_layout(height=400)
94
-
95
- return fig
96
-
97
-
98
- ## ========================backup (for public benchmark)==========================
99
- # class SpeedtestBatch(MetricVis):
100
-
101
- # def __init__(self, loader: Visualizer) -> None:
102
- # super().__init__(loader)
103
- # self.switchable: bool = True
104
- # self.schema = Schema(
105
- # self._loader.inference_speed_text,
106
- # markdown_batch_inference=Widget.Markdown(title="Batch inference"),
107
- # chart1=Widget.Chart(switch_key="ms"),
108
- # chart2=Widget.Chart(switch_key="fps"),
109
- # )
110
-
111
- # def get_figure(self, widget: Widget.Chart): # -> Optional[go.Figure]
112
- # import plotly.graph_objects as go # pylint: disable=import-error
113
-
114
- # colors = iter(["#17becf", "#e377c2", "#bcbd22", "#ff7f0e", "#9467bd", "#2ca02c"])
115
-
116
- # data = {}
117
- # for test in self._loader.speedtest["speedtest"]:
118
- # device = "GPU" if "cuda" in test["device"] else "CPU"
119
- # runtime = test["runtime"]
120
- # runtime_and_device = f"{device} {runtime}"
121
- # batch_size = test["batch_size"]
122
-
123
- # if widget.switch_key == "ms":
124
- # total = test["benchmark"]["total"]
125
- # else:
126
- # total = round(1000 / test["benchmark"]["total"] * batch_size)
127
-
128
- # line = data.setdefault(runtime_and_device, {})
129
- # line[batch_size] = total
130
-
131
- # fig = go.Figure()
132
- # min_x, max_y, min_x_idx = float("inf"), 0, 0
133
- # for idx, (runtime_and_device, line) in enumerate(data.items()):
134
- # max_y = max(max_y, max(line.values()))
135
- # if min_x > min(line.keys()):
136
- # min_x = min(line.keys())
137
- # min_x_idx = idx
138
- # fig.add_trace(
139
- # go.Scatter(
140
- # x=list(line.keys()),
141
- # y=list(line.values()),
142
- # mode="lines+markers",
143
- # name=runtime_and_device,
144
- # line=dict(color=next(colors)),
145
- # )
146
- # )
147
-
148
- # fig.update_layout(
149
- # xaxis_title="Batch Size",
150
- # yaxis_title="Time (ms)" if widget.switch_key == "ms" else "Images per second (FPS)",
151
- # legend=dict(x=min_x_idx, y=max_y * 0.7),
152
- # width=700,
153
- # height=500,
154
- # )
155
-
156
- # if widget.switch_key == "ms":
157
- # hovertemplate = "Batch Size: %{x}<br>Time: %{y:.2f} ms<extra></extra>"
158
- # else:
159
- # hovertemplate = "Batch Size: %{x}<br>FPS: %{y:.2f}<extra></extra>"
160
- # fig.update_traces(hovertemplate=hovertemplate)
161
- # return fig