simba-uw-tf-dev 5.3.9__tar.gz → 5.4.1__tar.gz

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 (1062) hide show
  1. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/PKG-INFO +1 -1
  2. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/setup.py +1 -1
  3. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/.recent_projects.txt +2 -0
  4. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/freezing_detector.py +5 -0
  5. simba_uw_tf_dev-5.4.1/simba/data_processors/freezing_detector_v2.py +237 -0
  6. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/mitra_feature_extractor.py +6 -5
  7. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/labelling_interface.py +2 -2
  8. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/standard_labeller.py +50 -18
  9. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/circular_statistics.py +37 -24
  10. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/feature_extraction_mixin.py +4 -0
  11. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/geometry_mixin.py +14 -2
  12. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/timeseries_features_mixin.py +19 -10
  13. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/plot_clf_results_mp.py +8 -8
  14. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/litpose_crop_annotations_bbox_square.py +4 -4
  15. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/data.py +2 -6
  16. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/read_write.py +1 -5
  17. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/PKG-INFO +1 -1
  18. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/SOURCES.txt +1 -0
  19. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  20. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  21. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/bigquery_download_stats.yml +0 -0
  22. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/cleaning.yml +0 -0
  23. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/issue_msg.yml.disabled +0 -0
  24. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/issue_report.yml +0 -0
  25. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/tests_py310.yml +0 -0
  26. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.github/workflows/tests_py36.yml +0 -0
  27. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.gitignore +0 -0
  28. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.pytest.ini +0 -0
  29. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/.readthedocs.yaml +0 -0
  30. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/App.py +0 -0
  31. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/CITATION.cff +0 -0
  32. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/CODE_OF_CONDUCT.md +0 -0
  33. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/LICENSE +0 -0
  34. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/MANIFEST.in +0 -0
  35. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/README.md +0 -0
  36. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/__init__.py +0 -0
  37. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/requirements.txt +0 -0
  38. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/requirements_arm.txt +0 -0
  39. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/requirements_gpu.txt +0 -0
  40. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/requirements_wsl.txt +0 -0
  41. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/__init__.py +0 -0
  42. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/caltech_download.py +0 -0
  43. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/create_issues_report.py +0 -0
  44. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/dataverse_download.py +0 -0
  45. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/gitter_stats.py +0 -0
  46. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/make_qr_code.py +0 -0
  47. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/osf_download.py +0 -0
  48. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/scripts/upgrade_simba_keep_configs.py +0 -0
  49. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/setup.cfg +0 -0
  50. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/.DS_Store +0 -0
  51. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/SimBA.py +0 -0
  52. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/SimBA_logo.ico +0 -0
  53. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/__init__.py +0 -0
  54. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/.DS_Store +0 -0
  55. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/.env +0 -0
  56. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/TheGoldenLab.PNG +0 -0
  57. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/__init__.py +0 -0
  58. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/dash_simba_base.css +0 -0
  59. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/fonts/.DS_Store +0 -0
  60. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/fonts/Playwrite ES Deco.ttf +0 -0
  61. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/fonts/Poppins Bold.ttf +0 -0
  62. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/fonts/Poppins Regular.ttf +0 -0
  63. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/fonts/UbuntuMono-Regular.ttf +0 -0
  64. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/.DS_Store +0 -0
  65. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo.icns +0 -0
  66. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo.ico +0 -0
  67. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo.png +0 -0
  68. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo_3.ico +0 -0
  69. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo_3.png +0 -0
  70. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo_3_small.png +0 -0
  71. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/SimBA_logo_4_small.png +0 -0
  72. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/__init__.py +0 -0
  73. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/abacus.png +0 -0
  74. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/abacus_2.png +0 -0
  75. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/abacus_3.png +0 -0
  76. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/about.png +0 -0
  77. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/add.png +0 -0
  78. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/add_on.png +0 -0
  79. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/analyze_blue.png +0 -0
  80. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/analyze_green.png +0 -0
  81. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/api.png +0 -0
  82. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/application.png +0 -0
  83. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/archive.png +0 -0
  84. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/arrow_down_green.png +0 -0
  85. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/arrow_down_green_2.png +0 -0
  86. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/attributes_large.png +0 -0
  87. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/audio.png +0 -0
  88. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/average.png +0 -0
  89. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/average_2.png +0 -0
  90. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/avi.png +0 -0
  91. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/background.png +0 -0
  92. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bar_graph_blue.png +0 -0
  93. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bar_graph_green.png +0 -0
  94. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bar_graph_light_blue.png +0 -0
  95. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/batch.png +0 -0
  96. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/black_and_white.png +0 -0
  97. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/black_cross.png +0 -0
  98. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/blur.png +0 -0
  99. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bmp.png +0 -0
  100. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bold.png +0 -0
  101. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/boolean.png +0 -0
  102. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/boris.png +0 -0
  103. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/branches_small.png +0 -0
  104. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/brightness.png +0 -0
  105. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/browse.png +0 -0
  106. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/browse_small.png +0 -0
  107. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/brush_large.png +0 -0
  108. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bubble.png +0 -0
  109. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bubble_green.png +0 -0
  110. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bubble_pink.png +0 -0
  111. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bullet_grey.png +0 -0
  112. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bullseye.png +0 -0
  113. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/bw.png +0 -0
  114. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/calipher.png +0 -0
  115. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/camera.png +0 -0
  116. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/category.png +0 -0
  117. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/center.png +0 -0
  118. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/change.png +0 -0
  119. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/check_blue.png +0 -0
  120. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/circle.png +0 -0
  121. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/circle_2.png +0 -0
  122. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/circle_black.png +0 -0
  123. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/circle_large.png +0 -0
  124. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/circle_small.png +0 -0
  125. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clahe.png +0 -0
  126. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clean.png +0 -0
  127. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clean_red.png +0 -0
  128. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clf.png +0 -0
  129. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clf_2.png +0 -0
  130. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clip.png +0 -0
  131. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/clock.png +0 -0
  132. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/close.png +0 -0
  133. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/cluster.png +0 -0
  134. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/cluster_2.png +0 -0
  135. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/coco_small.png +0 -0
  136. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/color_wheel.png +0 -0
  137. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat.png +0 -0
  138. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_icons/__init__.py +0 -0
  139. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_icons/horizontal.png +0 -0
  140. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_icons/mixed_mosaic.png +0 -0
  141. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_icons/mosaic.png +0 -0
  142. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_icons/vertical.png +0 -0
  143. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/concat_videos.png +0 -0
  144. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/convert.png +0 -0
  145. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/counter.png +0 -0
  146. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/cpu_small.png +0 -0
  147. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/create.png +0 -0
  148. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/crop.png +0 -0
  149. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/crop_2.png +0 -0
  150. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/crop_green.png +0 -0
  151. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/crop_red.png +0 -0
  152. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/crossfade.png +0 -0
  153. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/csv_black.png +0 -0
  154. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/csv_grey.png +0 -0
  155. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/curve_black.png +0 -0
  156. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/danger.png +0 -0
  157. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dash_simba.css +0 -0
  158. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/data_table.png +0 -0
  159. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/decision_tree_blue.png +0 -0
  160. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/decision_tree_purple.png +0 -0
  161. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/decision_tree_small.png +0 -0
  162. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/delete_large_orange.png +0 -0
  163. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/delete_large_red.png +0 -0
  164. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dependency.png +0 -0
  165. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/details.png +0 -0
  166. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/developer.png +0 -0
  167. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dice_green.png +0 -0
  168. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dimensionality_reduction.png +0 -0
  169. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/direction.png +0 -0
  170. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/direction_2.png +0 -0
  171. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/direction_3.png +0 -0
  172. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/display_large.png +0 -0
  173. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/distance.png +0 -0
  174. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/distance_red.png +0 -0
  175. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dlc_1.png +0 -0
  176. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dlc_2.png +0 -0
  177. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/documentation.png +0 -0
  178. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/documentation_large.png +0 -0
  179. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/download.png +0 -0
  180. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/draw.png +0 -0
  181. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/dumbbell.png +0 -0
  182. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/duplicate.png +0 -0
  183. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/duplicate_2_large.png +0 -0
  184. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/duplicate_large.png +0 -0
  185. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/duplicate_small.png +0 -0
  186. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ear_right.png +0 -0
  187. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ear_small.png +0 -0
  188. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/edit.png +0 -0
  189. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/edit_roi_large.png +0 -0
  190. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/egocentric.png +0 -0
  191. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/equation_small.png +0 -0
  192. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ethovision.png +0 -0
  193. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/exit.png +0 -0
  194. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/eye.png +0 -0
  195. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/factory.png +0 -0
  196. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fast_forward.png +0 -0
  197. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fast_forward_green.png +0 -0
  198. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fast_forward_large.png +0 -0
  199. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fast_forward_large_2.png +0 -0
  200. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fast_reverse.png +0 -0
  201. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fastforward_green_2.png +0 -0
  202. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/feather_green.png +0 -0
  203. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/features.png +0 -0
  204. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ffmpeg.png +0 -0
  205. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/file.png +0 -0
  206. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/file_type.png +0 -0
  207. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fill.png +0 -0
  208. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/filter.png +0 -0
  209. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/finish.png +0 -0
  210. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fire.png +0 -0
  211. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/first.png +0 -0
  212. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/first_frame_blue.png +0 -0
  213. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/first_green.png +0 -0
  214. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/flip_black.png +0 -0
  215. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/flip_green.png +0 -0
  216. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/flip_red.png +0 -0
  217. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/folder.png +0 -0
  218. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/folder_2.png +0 -0
  219. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/folder_video.png +0 -0
  220. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/font.png +0 -0
  221. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/font_size.png +0 -0
  222. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/forest.png +0 -0
  223. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/forward.png +0 -0
  224. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/forward_large.png +0 -0
  225. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/four_squares.png +0 -0
  226. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/fps.png +0 -0
  227. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/frames.png +0 -0
  228. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/frames_2.png +0 -0
  229. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gamma.png +0 -0
  230. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gantt_large.png +0 -0
  231. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gantt_small.png +0 -0
  232. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gif.png +0 -0
  233. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/github.png +0 -0
  234. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/github_2.png +0 -0
  235. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gitter.png +0 -0
  236. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gitter_large.png +0 -0
  237. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gpu.png +0 -0
  238. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gpu_2.png +0 -0
  239. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/gpu_3.png +0 -0
  240. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/green_check.png +0 -0
  241. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/green_dice.png +0 -0
  242. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/grey.png +0 -0
  243. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/greyscale.png +0 -0
  244. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/half_circle.png +0 -0
  245. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/half_circle_small.png +0 -0
  246. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/heatmap.png +0 -0
  247. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/height.png +0 -0
  248. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/hexagon.png +0 -0
  249. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/hexagon_small.png +0 -0
  250. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/hierarchy.png +0 -0
  251. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/hierarchy_2.png +0 -0
  252. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/histogram.png +0 -0
  253. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/home.png +0 -0
  254. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/horizontal.png +0 -0
  255. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/id_card.png +0 -0
  256. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/id_card_2.png +0 -0
  257. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/image.png +0 -0
  258. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/import.png +0 -0
  259. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/info.png +0 -0
  260. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/info_large.png +0 -0
  261. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ini.png +0 -0
  262. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/interaction_large.png +0 -0
  263. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/interactive_blue.png +0 -0
  264. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/invert.png +0 -0
  265. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/join_purple.png +0 -0
  266. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/join_red.png +0 -0
  267. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/join_yellow.png +0 -0
  268. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/jpeg.png +0 -0
  269. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/json.png +0 -0
  270. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/jump.png +0 -0
  271. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/keyboard.png +0 -0
  272. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/label.png +0 -0
  273. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/label_blue.png +0 -0
  274. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/label_large.png +0 -0
  275. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/label_yellow.png +0 -0
  276. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/labelme.png +0 -0
  277. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/labelme_2.png +0 -0
  278. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/labelme_3.png +0 -0
  279. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/last.png +0 -0
  280. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/last_frame_blue.png +0 -0
  281. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/last_red.png +0 -0
  282. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/leaf.png +0 -0
  283. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/left_arrow_green.png +0 -0
  284. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/left_arrow_red.png +0 -0
  285. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/left_ear.png +0 -0
  286. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/light_bulb.png +0 -0
  287. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/line.png +0 -0
  288. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/line_chart_blue.png +0 -0
  289. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/line_chart_light_blue.png +0 -0
  290. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/line_chart_red.png +0 -0
  291. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/link.png +0 -0
  292. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/list.png +0 -0
  293. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/load.png +0 -0
  294. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/load_black.png +0 -0
  295. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/load_blue.png +0 -0
  296. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/location.png +0 -0
  297. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/log.png +0 -0
  298. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/magnifying.png +0 -0
  299. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mars.png +0 -0
  300. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mean.png +0 -0
  301. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/median.png +0 -0
  302. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/merge.png +0 -0
  303. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/metrics.png +0 -0
  304. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/metrics_blue.png +0 -0
  305. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/metrics_green.png +0 -0
  306. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/minus.png +0 -0
  307. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/minus_blue_2.png +0 -0
  308. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/minus_red.png +0 -0
  309. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/minus_red_2.png +0 -0
  310. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mixing_panel.png +0 -0
  311. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/monitor.png +0 -0
  312. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mouse_head.png +0 -0
  313. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mouse_small.png +0 -0
  314. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mov.png +0 -0
  315. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/move.png +0 -0
  316. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/move_large.png +0 -0
  317. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/mp4.png +0 -0
  318. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/multiple_blue.png +0 -0
  319. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/multiple_green.png +0 -0
  320. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/multiple_yellow.png +0 -0
  321. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/navigation.png +0 -0
  322. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/nose.png +0 -0
  323. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/number_black.png +0 -0
  324. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/obb.png +0 -0
  325. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/one.png +0 -0
  326. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/one_blue.png +0 -0
  327. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/one_to_many.png +0 -0
  328. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/opacity.png +0 -0
  329. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/options_small.png +0 -0
  330. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/original_size.png +0 -0
  331. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/osf.png +0 -0
  332. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/osf_large.png +0 -0
  333. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/outlier.png +0 -0
  334. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/outside.png +0 -0
  335. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/outside_2.png +0 -0
  336. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/overlap_iou.png +0 -0
  337. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/paint.png +0 -0
  338. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/palette_large.png +0 -0
  339. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/palette_small.png +0 -0
  340. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/parquet.png +0 -0
  341. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/path.png +0 -0
  342. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/path_2.png +0 -0
  343. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pct.png +0 -0
  344. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pct_2.png +0 -0
  345. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pdf_large.png +0 -0
  346. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/permutation_blue.png +0 -0
  347. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/photos.png +0 -0
  348. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/play.png +0 -0
  349. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/play_large_green.png +0 -0
  350. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/plot.png +0 -0
  351. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/plus.png +0 -0
  352. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/plus_green.png +0 -0
  353. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/plus_green_2.png +0 -0
  354. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/plus_green_3.png +0 -0
  355. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/png.png +0 -0
  356. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/point.png +0 -0
  357. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/point_right_large.png +0 -0
  358. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pointing_left_large.png +0 -0
  359. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/polygon.png +0 -0
  360. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/polygon_2.png +0 -0
  361. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/polygon_large.png +0 -0
  362. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pose.png +0 -0
  363. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/pose_2.png +0 -0
  364. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/print.png +0 -0
  365. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/probability.png +0 -0
  366. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/progressbar_black.png +0 -0
  367. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/python.png +0 -0
  368. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/question_mark.png +0 -0
  369. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/range_large.png +0 -0
  370. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/readthedocs_logo.png +0 -0
  371. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/recent_files.png +0 -0
  372. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rectangle.png +0 -0
  373. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rectangle_1_large.png +0 -0
  374. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rectangle_2.png +0 -0
  375. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rectangle_red.png +0 -0
  376. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rectangle_small.png +0 -0
  377. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/remove_bg.png +0 -0
  378. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/reorganize.png +0 -0
  379. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/resize.png +0 -0
  380. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/restart.png +0 -0
  381. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/reverse.png +0 -0
  382. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/reverse_blue.png +0 -0
  383. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/reverse_large.png +0 -0
  384. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/reverse_large_red.png +0 -0
  385. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rewind.png +0 -0
  386. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rewind_blue_2.png +0 -0
  387. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rewind_large.png +0 -0
  388. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rewind_red.png +0 -0
  389. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/right_arrow_green.png +0 -0
  390. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/right_arrow_red.png +0 -0
  391. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rocket.png +0 -0
  392. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/roi.png +0 -0
  393. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/roi_green.png +0 -0
  394. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rotate.png +0 -0
  395. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/rounding.png +0 -0
  396. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ruler.png +0 -0
  397. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ruler_large.png +0 -0
  398. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/run.png +0 -0
  399. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/sample.png +0 -0
  400. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/save.png +0 -0
  401. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/save_blue.png +0 -0
  402. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/save_green.png +0 -0
  403. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/save_large.png +0 -0
  404. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/save_small.png +0 -0
  405. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/scale_1.png +0 -0
  406. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/scale_2.png +0 -0
  407. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/scale_3.png +0 -0
  408. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/search.png +0 -0
  409. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/segment.png +0 -0
  410. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/seperate_green.png +0 -0
  411. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/settings.png +0 -0
  412. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shade.png +0 -0
  413. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shap.png +0 -0
  414. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shap_2.png +0 -0
  415. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shapes_large.png +0 -0
  416. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shapes_small.png +0 -0
  417. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/shapes_small_2.png +0 -0
  418. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/sigma.png +0 -0
  419. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/simba_logo_2.png +0 -0
  420. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/single_black.png +0 -0
  421. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/single_blue.png +0 -0
  422. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/single_green.png +0 -0
  423. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/size_black.png +0 -0
  424. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/skip.png +0 -0
  425. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/skip_2.png +0 -0
  426. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/skip_forward_large.png +0 -0
  427. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/skip_previous_large.png +0 -0
  428. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/sleap_small.png +0 -0
  429. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/smooth.png +0 -0
  430. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/speedometer.png +0 -0
  431. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/split.png +0 -0
  432. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/split_2.png +0 -0
  433. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/spread.png +0 -0
  434. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/square_black.png +0 -0
  435. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/stack.png +0 -0
  436. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/star.png +0 -0
  437. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/stop.png +0 -0
  438. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/stopwatch.png +0 -0
  439. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/stream.png +0 -0
  440. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/style.png +0 -0
  441. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/subset_blue.png +0 -0
  442. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/superimpose.png +0 -0
  443. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/svg.png +0 -0
  444. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/system.png +0 -0
  445. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/t.png +0 -0
  446. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/table.png +0 -0
  447. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/table_2.png +0 -0
  448. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text.png +0 -0
  449. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text_bg.png +0 -0
  450. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text_black.png +0 -0
  451. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text_color.png +0 -0
  452. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text_color_2.png +0 -0
  453. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/text_spacing.png +0 -0
  454. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/threshold.png +0 -0
  455. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/tick.png +0 -0
  456. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/tick_large.png +0 -0
  457. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/tiff.png +0 -0
  458. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/tile_green.png +0 -0
  459. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/time.png +0 -0
  460. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/timer.png +0 -0
  461. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/timer_2.png +0 -0
  462. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/trash.png +0 -0
  463. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/trash_red.png +0 -0
  464. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/triangle_black.png +0 -0
  465. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/triangle_small.png +0 -0
  466. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/tv_large.png +0 -0
  467. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/two.png +0 -0
  468. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ultralytics_1.png +0 -0
  469. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/ultralytics_2.png +0 -0
  470. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/verbose.png +0 -0
  471. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/vertical.png +0 -0
  472. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/video.png +0 -0
  473. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/video_2.png +0 -0
  474. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/video_file_large.png +0 -0
  475. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/video_large.png +0 -0
  476. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/visualize.png +0 -0
  477. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/visualize_blue.png +0 -0
  478. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/visualize_green.png +0 -0
  479. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/walk.png +0 -0
  480. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/wand_blue.png +0 -0
  481. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/warning.png +0 -0
  482. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/watermark_green.png +0 -0
  483. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/webm.png +0 -0
  484. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/webp.png +0 -0
  485. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/weight.png +0 -0
  486. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/weights.png +0 -0
  487. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/width.png +0 -0
  488. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/x.png +0 -0
  489. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/y.png +0 -0
  490. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/zero.png +0 -0
  491. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/zoom_in.png +0 -0
  492. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/icons/zoom_out.png +0 -0
  493. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/__init__.py +0 -0
  494. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/about_me.png +0 -0
  495. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/bg.png +0 -0
  496. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/bg_2.png +0 -0
  497. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/bg_2024.png +0 -0
  498. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/landing.mp4 +0 -0
  499. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/simon_n.webp +0 -0
  500. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/splash.mp4 +0 -0
  501. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/splash.pptx +0 -0
  502. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/splash_2024.mp4 +0 -0
  503. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/img/~$splash.pptx +0 -0
  504. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/__init__.py +0 -0
  505. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/critical_values_05.pickle +0 -0
  506. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/feature_extraction_headers.csv +0 -0
  507. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/features.csv +0 -0
  508. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/model_names.parquet +0 -0
  509. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/tooptips.json +0 -0
  510. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/unsupervised_example_x.csv +0 -0
  511. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/yolo.yaml +0 -0
  512. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/yolo_schematics/tappelby.csv +0 -0
  513. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/yolo_schematics/yolo_7bps.csv +0 -0
  514. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/lookups/yolo_schematics/yolo_mitra.csv +0 -0
  515. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/ppyoloe_plus_crn_s_80e_coco.yml +0 -0
  516. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/UbuntuMono-Regular.ttf +0 -0
  517. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/__init__.py +0 -0
  518. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/animal_distances.jpg +0 -0
  519. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/baseline_scale.jpg +0 -0
  520. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/color_bar.jpg +0 -0
  521. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/down_arrow.jpg +0 -0
  522. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/feature_categories/__init__.py +0 -0
  523. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/feature_categories/shap_feature_categories.csv +0 -0
  524. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/intruder_movement.jpg +0 -0
  525. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/intruder_shape.jpg +0 -0
  526. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/resident_intruder_movement.jpg +0 -0
  527. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/resident_intruder_shape.jpg +0 -0
  528. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/resident_movement.jpg +0 -0
  529. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/resident_shape.jpg +0 -0
  530. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/side_scale.jpg +0 -0
  531. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/side_scale_5.jpg +0 -0
  532. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/shap/ubuntu.regular.ttf +0 -0
  533. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/stl/__init__.py +0 -0
  534. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/stl/grid_floor.stl +0 -0
  535. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/stl/operant_lever.stl +0 -0
  536. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/stl/operant_tray.stl +0 -0
  537. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/stl/operant_walls.stl +0 -0
  538. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/tracker_yml/__init__.py +0 -0
  539. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/tracker_yml/botsort.yml +0 -0
  540. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/tracker_yml/bytetrack.yml +0 -0
  541. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/tracker_yml/tow_bytetrack.yaml +0 -0
  542. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/unsupervised/__init__.py +0 -0
  543. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/unsupervised/features.csv +0 -0
  544. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/assets/unsupervised/model_names.parquet +0 -0
  545. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/__init__.py +0 -0
  546. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/agg_boundary_stats.py +0 -0
  547. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/boundary_menus.py +0 -0
  548. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/boundary_statistics.py +0 -0
  549. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/find_boundaries.py +0 -0
  550. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/visualize_boundaries.py +0 -0
  551. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/bounding_box_tools/yolo/__init__.py +0 -0
  552. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/__init__.py +0 -0
  553. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_analyzer.py +0 -0
  554. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_clf_statistics.py +0 -0
  555. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_main_popup.py +0 -0
  556. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_movement_statistics.py +0 -0
  557. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_tools.py +0 -0
  558. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/cue_light_tools/cue_light_visualizer.py +0 -0
  559. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/dash_app/SimBA_dash_app.py +0 -0
  560. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/dash_app/__init__.py +0 -0
  561. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/dash_app/dash_app.py +0 -0
  562. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/dash_app/run_dash_tkinter.py +0 -0
  563. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/.DS_Store +0 -0
  564. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/__init__.py +0 -0
  565. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/advanced_interpolator.py +0 -0
  566. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/advanced_smoothing.py +0 -0
  567. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/agg_clf_calculator.py +0 -0
  568. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/agg_clf_counter_mp.py +0 -0
  569. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/blob_location_computer.py +0 -0
  570. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/boolean_conditional_calculator.py +0 -0
  571. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/circling_detector.py +0 -0
  572. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/__init__.py +0 -0
  573. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/circular_statistics.py +0 -0
  574. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/create_shap_log.py +0 -0
  575. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/data.py +0 -0
  576. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/geometry.py +0 -0
  577. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/image.py +0 -0
  578. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/statistics.py +0 -0
  579. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/timeseries.py +0 -0
  580. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cuda/utils.py +0 -0
  581. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cue_light_analyzer.py +0 -0
  582. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cue_light_clf_statistics.py +0 -0
  583. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/cue_light_movement_statistics.py +0 -0
  584. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/directing_animal_to_bodypart.py +0 -0
  585. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/directing_other_animals_calculator.py +0 -0
  586. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/distance_calculator.py +0 -0
  587. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/distance_timbin_calculator.py +0 -0
  588. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/egocentric_aligner.py +0 -0
  589. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/find_animal_blob_location.py +0 -0
  590. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/fsttc_calculator.py +0 -0
  591. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/gibbs_sampler.py +0 -0
  592. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/interpolate.py +0 -0
  593. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/interpolate_pose.py +0 -0
  594. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/interpolation_smoothing.py +0 -0
  595. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/kleinberg_calculator.py +0 -0
  596. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/light_dark_box_analyzer.py +0 -0
  597. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/movement_calculator.py +0 -0
  598. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/mutual_exclusivity_corrector.py +0 -0
  599. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/pup_retrieval_calculator.py +0 -0
  600. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/pybursts_calculator.py +0 -0
  601. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/pybursts_calculator_numba.py +0 -0
  602. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/severity_bout_based_calculator.py +0 -0
  603. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/severity_calculator.py +0 -0
  604. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/severity_frame_based_calculator.py +0 -0
  605. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/smoothing.py +0 -0
  606. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/spontaneous_alternation_calculator.py +0 -0
  607. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/timebins_clf_calculator.py +0 -0
  608. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/timebins_movement_calculator.py +0 -0
  609. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/timebins_movement_calculator_mp.py +0 -0
  610. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/data_processors/yolo_track_cleaner.py +0 -0
  611. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/.DS_Store +0 -0
  612. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/__init__.py +0 -0
  613. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/aggression_feature_extractor.py +0 -0
  614. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/amber_feature_extractor.py +0 -0
  615. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/boundary_rearing_analyzer.py +0 -0
  616. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/cave_fish_featurizer.py +0 -0
  617. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_14bp.py +0 -0
  618. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_16bp.py +0 -0
  619. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_4bp.py +0 -0
  620. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_7bp.py +0 -0
  621. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_8bp.py +0 -0
  622. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_8bps_2_animals.py +0 -0
  623. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_9bp.py +0 -0
  624. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_extractor_user_defined.py +0 -0
  625. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/feature_subsets.py +0 -0
  626. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/gerbil_featurizer.py +0 -0
  627. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/add_probability_cnt_features.py +0 -0
  628. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/convex_hull_3_scratch_3.py +0 -0
  629. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/convex_hull_scratch_1.py +0 -0
  630. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/convex_hull_scratch_2.py +0 -0
  631. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/count_values_in_range.py +0 -0
  632. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/doctests.py +0 -0
  633. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/egocentrical_aligner.py +0 -0
  634. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/fish_feature_extractor_2022.py +0 -0
  635. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_2.py +0 -0
  636. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_3.py +0 -0
  637. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_4.py +0 -0
  638. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_5.py +0 -0
  639. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/graph_3d_plotter.py +0 -0
  640. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/graph_creator.py +0 -0
  641. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/make_splash.py +0 -0
  642. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/mutual_exclusive.py +0 -0
  643. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/peaks.py +0 -0
  644. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/read_in_mp.py +0 -0
  645. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/termite_rois.csv +0 -0
  646. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/time_stamp_calculator.py +0 -0
  647. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/video_color.py +0 -0
  648. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/video_rotator.py +0 -0
  649. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/misc/video_rotator_mp.py +0 -0
  650. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/perimeter_jit.py +0 -0
  651. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/rat_social_featurizer.py +0 -0
  652. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/riptortus_featurizer.py +0 -0
  653. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/straub_tail_analyzer.py +0 -0
  654. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/feature_extractors/wingwave_extractor.py +0 -0
  655. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/__init__.py +0 -0
  656. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/extract_labelled_frames.py +0 -0
  657. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/extract_labelling_meta.py +0 -0
  658. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/labelling_advanced_interface.py +0 -0
  659. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/mitra_style_appender.py +0 -0
  660. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/play_annotation_video.py +0 -0
  661. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/single_clf_appender_excel.py +0 -0
  662. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/labelling/targeted_annotations_clips.py +0 -0
  663. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/.DS_Store +0 -0
  664. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/__init__.py +0 -0
  665. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/abstract_classes.py +0 -0
  666. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/annotator_mixin.py +0 -0
  667. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/config_reader.py +0 -0
  668. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/feature_extraction_supplement_mixin.py +0 -0
  669. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/image_mixin.py +0 -0
  670. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/network_mixin.py +0 -0
  671. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/plotting_mixin.py +0 -0
  672. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/pop_up_mixin.py +0 -0
  673. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/pose_importer_mixin.py +0 -0
  674. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/statistics_mixin.py +0 -0
  675. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/train_model_mixin.py +0 -0
  676. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/mixins/unsupervised_mixin.py +0 -0
  677. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/__init__.py +0 -0
  678. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/grid_search_multiclass_rf.py +0 -0
  679. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/grid_search_rf.py +0 -0
  680. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/inference_batch.py +0 -0
  681. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/inference_multi_animal_batch.py +0 -0
  682. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/inference_multiclass_batch.py +0 -0
  683. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/inference_validation.py +0 -0
  684. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/ordinal_clf.py +0 -0
  685. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/regression/__init__.py +0 -0
  686. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/regression/metrics.py +0 -0
  687. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/regression/model.py +0 -0
  688. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/sam_inference.py +0 -0
  689. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/train_multiclass_rf.py +0 -0
  690. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/train_multilabel_rf.py +0 -0
  691. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/train_rf.py +0 -0
  692. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_fit.py +0 -0
  693. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_inference.py +0 -0
  694. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_nvdec_inference.py +0 -0
  695. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_pose_inference.py +0 -0
  696. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_pose_track_inference.py +0 -0
  697. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/model/yolo_seg_inference.py +0 -0
  698. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/__init__.py +0 -0
  699. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_location.py +0 -0
  700. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_location_advanced.py +0 -0
  701. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_location_mp.py +0 -0
  702. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_movement.py +0 -0
  703. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_movement_advanced.py +0 -0
  704. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/outlier_corrector_movement_mp.py +0 -0
  705. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/outlier_tools/skip_outlier_correction.py +0 -0
  706. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/.DS_Store +0 -0
  707. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/EzPathPlot.py +0 -0
  708. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/ROI_feature_visualizer.py +0 -0
  709. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/ROI_feature_visualizer_mp.py +0 -0
  710. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/__init__.py +0 -0
  711. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/annotation_videos.py +0 -0
  712. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/blob_plotter.py +0 -0
  713. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/blob_visualizer.py +0 -0
  714. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/circular_feature_overlay_plotter.py +0 -0
  715. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/circular_plotting.py +0 -0
  716. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/clf_validator.py +0 -0
  717. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/clf_validator_mp.py +0 -0
  718. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/compare_bbox_mdls.py +0 -0
  719. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/cue_light_visualizer.py +0 -0
  720. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/data_plotter.py +0 -0
  721. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/directing_animals_to_bodypart_visualizer.py +0 -0
  722. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/directing_animals_visualizer.py +0 -0
  723. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/directing_animals_visualizer_mp.py +0 -0
  724. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/distance_plotter.py +0 -0
  725. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/distance_plotter_mp.py +0 -0
  726. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/ez_path_plot.py +0 -0
  727. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/frame_mergerer_ffmpeg.py +0 -0
  728. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/gantt_creator.py +0 -0
  729. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/gantt_creator_mp.py +0 -0
  730. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/gantt_plotly.py +0 -0
  731. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/geometry_plotter.py +0 -0
  732. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/heat_mapper_clf.py +0 -0
  733. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/heat_mapper_clf_mp.py +0 -0
  734. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/heat_mapper_location.py +0 -0
  735. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/heat_mapper_location_mp.py +0 -0
  736. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/interactive_probability_grapher.py +0 -0
  737. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/light_dark_box_plotter.py +0 -0
  738. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/path_plotter.py +0 -0
  739. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/path_plotter_mp.py +0 -0
  740. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/plot_clf_results.py +0 -0
  741. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/pose_plotter.py +0 -0
  742. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/pose_plotter_mp.py +0 -0
  743. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/probability_plot_creator.py +0 -0
  744. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/probability_plot_creator_mp.py +0 -0
  745. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/roi_directing_visualizer.py +0 -0
  746. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/roi_plotter.py +0 -0
  747. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/roi_plotter_mp.py +0 -0
  748. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/sam_plotter.py +0 -0
  749. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/shap_agg_stats_visualizer.py +0 -0
  750. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/single_run_model_validation_video.py +0 -0
  751. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/single_run_model_validation_video_mp.py +0 -0
  752. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/skeleton_video_creator.py +0 -0
  753. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/spontaneous_alternation_plotter.py +0 -0
  754. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/tools/__init__.py +0 -0
  755. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/tools/tkinter_tools.py +0 -0
  756. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/yolo_annotation_visualizer.py +0 -0
  757. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/yolo_pose_track_visualizer.py +0 -0
  758. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/yolo_pose_visualizer.py +0 -0
  759. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/yolo_seg_visualizer.py +0 -0
  760. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/plotting/yolo_visualize.py +0 -0
  761. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/.DS_Store +0 -0
  762. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/__init__.py +0 -0
  763. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/bp_names/__init__.py +0 -0
  764. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/bp_names/bp_names.csv +0 -0
  765. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/configuration_names/__init__.py +0 -0
  766. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/configuration_names/pose_config_names.csv +0 -0
  767. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/no_animals/__init__.py +0 -0
  768. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/no_animals/no_animals.csv +0 -0
  769. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/1.png +0 -0
  770. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/10.png +0 -0
  771. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/11.png +0 -0
  772. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/12.png +0 -0
  773. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/13.png +0 -0
  774. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/14.png +0 -0
  775. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/15.png +0 -0
  776. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/16.png +0 -0
  777. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/2.png +0 -0
  778. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/3.png +0 -0
  779. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/4.png +0 -0
  780. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/5.png +0 -0
  781. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/6.png +0 -0
  782. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/7.png +0 -0
  783. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/8.png +0 -0
  784. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_configurations/schematics/9.png +0 -0
  785. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/.DS_Store +0 -0
  786. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/__init__.py +0 -0
  787. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/dlc_importer_csv.py +0 -0
  788. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/facemap_h5_importer.py +0 -0
  789. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/import_mars.py +0 -0
  790. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/madlc_importer.py +0 -0
  791. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/misc/__init__.py +0 -0
  792. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/misc/apt_trk_importer.py +0 -0
  793. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/read_DANNCE_mat.py +0 -0
  794. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/simba_blob_importer.py +0 -0
  795. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/simba_yolo_importer.py +0 -0
  796. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/sleap_csv_importer.py +0 -0
  797. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/sleap_h5_importer.py +0 -0
  798. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/sleap_slp_importer.py +0 -0
  799. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/superanimal_import.py +0 -0
  800. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_importers/trk_importer.py +0 -0
  801. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_processors/__init__.py +0 -0
  802. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_processors/pose_reset.py +0 -0
  803. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_processors/remove_keypoints.py +0 -0
  804. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_processors/reorganize_keypoint.py +0 -0
  805. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/pose_processors/reverse_pose.py +0 -0
  806. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/requirements.txt +0 -0
  807. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/.DS_Store +0 -0
  808. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/ROI_analyzer.py +0 -0
  809. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/ROI_directing_analyzer.py +0 -0
  810. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/ROI_feature_analyzer.py +0 -0
  811. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/ROI_size_standardizer.py +0 -0
  812. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/ROI_time_bin_calculator.py +0 -0
  813. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/__init__.py +0 -0
  814. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/import_roi_csvs.py +0 -0
  815. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/interactive_modifier_ui.py +0 -0
  816. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/interactive_roi_bufferer.py +0 -0
  817. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/interactive_roi_modifier_tkinter.py +0 -0
  818. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_aggregate_statistics_analyzer.py +0 -0
  819. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_aggregate_stats_mp.py +0 -0
  820. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_clf_calculator.py +0 -0
  821. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_clf_calculator_mp.py +0 -0
  822. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_ruler.py +0 -0
  823. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_selector_circle_tkinter.py +0 -0
  824. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_selector_polygon_tkinter.py +0 -0
  825. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_selector_rectangle_tkinter.py +0 -0
  826. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_time_bins_analyzer.py +0 -0
  827. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_ui.py +0 -0
  828. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_ui_mixin.py +0 -0
  829. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/roi_tools/roi_utils.py +0 -0
  830. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/.DS_Store +0 -0
  831. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/BENTO_appender.py +0 -0
  832. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/BORIS_appender.py +0 -0
  833. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/__init__.py +0 -0
  834. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/boris_source_cleaner.py +0 -0
  835. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/converters.py +0 -0
  836. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/deepethogram_importer.py +0 -0
  837. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/ethovision_import.py +0 -0
  838. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/observer_importer.py +0 -0
  839. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/shah_appender.py +0 -0
  840. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/solomon_importer.py +0 -0
  841. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/third_party_appender.py +0 -0
  842. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/tools.py +0 -0
  843. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/__init__.py +0 -0
  844. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +0 -0
  845. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py +0 -0
  846. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py +0 -0
  847. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py +0 -0
  848. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/dlc_multi_to_yolo.py +0 -0
  849. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/dlc_single_to_multi_format_converter.py +0 -0
  850. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/dlc_to_labelme.py +0 -0
  851. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/dlc_to_yolo.py +0 -0
  852. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/labelme_to_df.py +0 -0
  853. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/labelme_to_dlc.py +0 -0
  854. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/labelme_to_yolo.py +0 -0
  855. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/labelme_to_yolo_keypoints.py +0 -0
  856. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py +0 -0
  857. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/litpose_crop_annotations.py +0 -0
  858. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/litpose_merge_projects.py +0 -0
  859. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/litpose_to_yolo_bbox.py +0 -0
  860. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/litpose_to_yolo_keypoints.py +0 -0
  861. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/merge_yolo_projects.py +0 -0
  862. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/sam3_to_yolo_bbox.py +0 -0
  863. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/sam3_to_yolo_seg.py +0 -0
  864. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/simba_roi_to_yolo.py +0 -0
  865. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/simba_to_yolo.py +0 -0
  866. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/simba_to_yolo_seg.py +0 -0
  867. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +0 -0
  868. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py +0 -0
  869. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/sleap_to_yolo.py +0 -0
  870. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/utils.py +0 -0
  871. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/yolo_labels_to_yolo_project.py +0 -0
  872. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/third_party_label_appenders/transform/yolo_to_imgs.py +0 -0
  873. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/.DS_Store +0 -0
  874. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/__init__.py +0 -0
  875. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/blob_quick_check_interface.py +0 -0
  876. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/blob_tracker_ui.py +0 -0
  877. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/create_project_ui.py +0 -0
  878. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/get_tree_view.py +0 -0
  879. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/import_pose_frame.py +0 -0
  880. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/import_videos_frame.py +0 -0
  881. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/machine_model_settings_ui.py +0 -0
  882. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/ml_settings_frm.py +0 -0
  883. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/.DS_Store +0 -0
  884. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/__init__.py +0 -0
  885. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/about_simba_pop_up.py +0 -0
  886. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/animal_directing_other_animals_pop_up.py +0 -0
  887. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/animal_directing_roi_pop_up.py +0 -0
  888. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/annotated_bouts_videos_pop_up.py +0 -0
  889. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/append_roi_features_animals_pop_up.py +0 -0
  890. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py +0 -0
  891. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/archive_files_pop_up.py +0 -0
  892. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/batch_preprocess_pop_up.py +0 -0
  893. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/blob_visualizer_pop_up.py +0 -0
  894. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py +0 -0
  895. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/change_speed_popup.py +0 -0
  896. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/check_videos_seekable_pop_up.py +0 -0
  897. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_add_remove_print_pop_up.py +0 -0
  898. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_annotation_counts_pop_up.py +0 -0
  899. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_by_roi_pop_up.py +0 -0
  900. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_by_timebins_pop_up.py +0 -0
  901. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py +0 -0
  902. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_plot_pop_up.py +0 -0
  903. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_probability_plot_pop_up.py +0 -0
  904. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/clf_validation_plot_pop_up.py +0 -0
  905. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py +0 -0
  906. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/create_user_defined_pose_configuration_pop_up.py +0 -0
  907. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/csv_2_parquet_pop_up.py +0 -0
  908. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/cue_light_clf_analyzer_popup.py +0 -0
  909. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/cue_light_data_analyzer_popup.py +0 -0
  910. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/cue_light_main_popup.py +0 -0
  911. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/cue_light_movement_analyzer_popup.py +0 -0
  912. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/cue_light_visualizer_popup.py +0 -0
  913. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/data_plot_pop_up.py +0 -0
  914. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/delete_all_rois_pop_up.py +0 -0
  915. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/directing_animal_to_bodypart_plot_pop_up.py +0 -0
  916. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/directing_other_animals_plot_pop_up.py +0 -0
  917. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/direction_animal_to_bodypart_settings_pop_up.py +0 -0
  918. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/distance_analysis_pop_up.py +0 -0
  919. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/distance_plot_pop_up.py +0 -0
  920. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/distance_timebins_popup.py +0 -0
  921. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/dlc_annotations_to_labelme_popup.py +0 -0
  922. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/dlc_h5_inference_to_yolo_popup.py +0 -0
  923. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/dlc_to_labelme_popup.py +0 -0
  924. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/dlc_to_yolo_keypoints_popup.py +0 -0
  925. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py +0 -0
  926. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/egocentric_alignment_pop_up.py +0 -0
  927. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/extract_annotation_frames_pop_up.py +0 -0
  928. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/ez_path_plot_popup.py +0 -0
  929. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/fsttc_pop_up.py +0 -0
  930. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/gantt_pop_up.py +0 -0
  931. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/heatmap_clf_pop_up.py +0 -0
  932. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/heatmap_location_pop_up.py +0 -0
  933. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/helpers.py +0 -0
  934. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/import_roi_csv_popup.py +0 -0
  935. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/initialize_blob_tracking_pop_up.py +0 -0
  936. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/interpolate_pop_up.py +0 -0
  937. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/kleinberg_pop_up.py +0 -0
  938. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/labelme_bbox_to_yolo_bbox_popup.py +0 -0
  939. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/labelme_dir_to_csv_popup.py +0 -0
  940. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/labelme_to_df_popup.py +0 -0
  941. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/labelme_to_imgs_popup.py +0 -0
  942. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/make_path_plot_pop_up.py +0 -0
  943. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/merge_coco_keypoint_files_pop_up.py +0 -0
  944. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/min_max_draw_size_popup.py +0 -0
  945. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/movement_analysis_pop_up.py +0 -0
  946. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/movement_analysis_time_bins_pop_up.py +0 -0
  947. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/multiple_videos_to_frames_popup.py +0 -0
  948. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/mutual_exclusivity_pop_up.py +0 -0
  949. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/outlier_settings_pop_up.py +0 -0
  950. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/path_plot_pop_up.py +0 -0
  951. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/pose_bp_drop_pop_up.py +0 -0
  952. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/pose_reorganizer_pop_up.py +0 -0
  953. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/print_video_meta_popup.py +0 -0
  954. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/pup_retrieval_pop_up.py +0 -0
  955. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/quick_path_plot_pop_up.py +0 -0
  956. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/remove_roi_features_pop_up.py +0 -0
  957. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_aggregate_stats_popup.py +0 -0
  958. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_analysis_pop_up.py +0 -0
  959. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_analysis_time_bins_pop_up.py +0 -0
  960. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_directing_visualizer_pop_up.py +0 -0
  961. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_features_plot_pop_up.py +0 -0
  962. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_size_standardizer_popup.py +0 -0
  963. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_tracking_plot_pop_up.py +0 -0
  964. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/roi_video_table_pop_up.py +0 -0
  965. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/run_machine_models_popup.py +0 -0
  966. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/select_video_for_labelling_popup.py +0 -0
  967. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py +0 -0
  968. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/severity_analysis_pop_up.py +0 -0
  969. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py +0 -0
  970. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +0 -0
  971. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/single_video_to_frames_popup.py +0 -0
  972. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +0 -0
  973. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +0 -0
  974. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py +0 -0
  975. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/smoothing_popup.py +0 -0
  976. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/splash_popup.py +0 -0
  977. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/spontaneous_alternation_pop_up.py +0 -0
  978. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/subset_feature_extractor_pop_up.py +0 -0
  979. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/targeted_annotation_clips_pop_up.py +0 -0
  980. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/third_party_annotator_appender_pop_up.py +0 -0
  981. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/validation_plot_pop_up.py +0 -0
  982. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/video_processing_pop_up.py +0 -0
  983. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py +0 -0
  984. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/yolo_inference_popup.py +0 -0
  985. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/yolo_plot_results.py +0 -0
  986. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/pop_ups/yolo_pose_train_popup.py +0 -0
  987. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/px_to_mm_ui.py +0 -0
  988. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/tkinter_functions.py +0 -0
  989. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/user_defined_pose_creator.py +0 -0
  990. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/utils.py +0 -0
  991. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/video_info_ui.py +0 -0
  992. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/ui/video_timelaps.py +0 -0
  993. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/.DS_Store +0 -0
  994. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/__init__.py +0 -0
  995. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/bout_aggregator.py +0 -0
  996. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/cluster_frequentist_calculator.py +0 -0
  997. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/cluster_validation_calculator.py +0 -0
  998. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/cluster_video_visualizer.py +0 -0
  999. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/cluster_xai_calculator.py +0 -0
  1000. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/clusterer_comparison_calculator.py +0 -0
  1001. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/data_extractor.py +0 -0
  1002. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/data_map.yaml +0 -0
  1003. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/dataset_creator.py +0 -0
  1004. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/dbcv_calculator.py +0 -0
  1005. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/embedding_correlation_calculator.py +0 -0
  1006. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/enums.py +0 -0
  1007. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/grid_search_visualizers.py +0 -0
  1008. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/hdbscan_clusterer.py +0 -0
  1009. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/outlier_detector.py +0 -0
  1010. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/.DS_Store +0 -0
  1011. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/cluster_frequentist_stats_popup.py +0 -0
  1012. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/cluster_validation_pop_up.py +0 -0
  1013. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/cluster_videos_popup.py +0 -0
  1014. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/cluster_xai_popup.py +0 -0
  1015. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/clusterer_comparison_popup.py +0 -0
  1016. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/data_extractor_popup.py +0 -0
  1017. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/embedding_correlations_popup.py +0 -0
  1018. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/fit_cluster_popup.py +0 -0
  1019. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/fit_dim_reduction_popup.py +0 -0
  1020. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/grid_search_visualizer_popup.py +0 -0
  1021. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/print_embedding_info_popup.py +0 -0
  1022. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/transform_cluster_popup.py +0 -0
  1023. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/pop_ups/transform_dim_reduction_popup.py +0 -0
  1024. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/tsne.py +0 -0
  1025. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/umap_embedder.py +0 -0
  1026. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/unsupervised/unsupervised_main.py +0 -0
  1027. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/.DS_Store +0 -0
  1028. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/__init__.py +0 -0
  1029. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/checks.py +0 -0
  1030. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/cli/__init__.py +0 -0
  1031. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/cli/cli_tools.py +0 -0
  1032. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/config_creator.py +0 -0
  1033. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/custom_feature_extractor.py +0 -0
  1034. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/enums.py +0 -0
  1035. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/errors.py +0 -0
  1036. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/lookups.py +0 -0
  1037. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/printing.py +0 -0
  1038. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/warnings.py +0 -0
  1039. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/utils/yolo.py +0 -0
  1040. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/.DS_Store +0 -0
  1041. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/__init__.py +0 -0
  1042. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/async_frame_reader.py +0 -0
  1043. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/async_frame_reader_gpu.py +0 -0
  1044. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -0
  1045. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/batch_process_menus.py +0 -0
  1046. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/blob_tracking_executor.py +0 -0
  1047. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/brightness_contrast_ui.py +0 -0
  1048. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/calculate_px_dist.py +0 -0
  1049. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/clahe_ui.py +0 -0
  1050. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/egocentric_video_rotator.py +0 -0
  1051. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/extract_frames.py +0 -0
  1052. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/extract_seqframes.py +0 -0
  1053. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/multi_cropper.py +0 -0
  1054. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/roi_selector.py +0 -0
  1055. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/roi_selector_circle.py +0 -0
  1056. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/roi_selector_polygon.py +0 -0
  1057. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/video_processing.py +0 -0
  1058. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba/video_processors/videos_to_frames.py +0 -0
  1059. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/dependency_links.txt +0 -0
  1060. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/entry_points.txt +0 -0
  1061. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/requires.txt +0 -0
  1062. {simba_uw_tf_dev-5.3.9 → simba_uw_tf_dev-5.4.1}/simba_uw_tf_dev.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simba_uw_tf_dev
3
- Version: 5.3.9
3
+ Version: 5.4.1
4
4
  Summary: Toolkit for computer classification and analysis of behaviors in experimental animals
5
5
  Home-page: https://github.com/sgoldenlab/simba
6
6
  Author: Simon Nilsson, Jia Jie Choong, Sophia Hwang
@@ -30,7 +30,7 @@ with open(GPU_REQUIREMENTS_PATH, "r") as f:
30
30
  # Setup configuration
31
31
  setuptools.setup(
32
32
  name="simba_uw_tf_dev",
33
- version="5.3.9",
33
+ version="5.4.1",
34
34
  author="Simon Nilsson, Jia Jie Choong, Sophia Hwang",
35
35
  author_email="sronilsson@gmail.com",
36
36
  description="Toolkit for computer classification and analysis of behaviors in experimental animals",
@@ -1,3 +1,5 @@
1
+ G:/projects/sleap_bp_order/by_order/project_folder/project_config.ini
2
+ H:/projects/brainwide_trap/brainwide_trap/project_folder/project_config.ini
1
3
  D:/troubleshooting/open_field_below/project_folder/project_config.ini
2
4
  G:/projects/jason_zhang/jason_project/project_folder/project_config.ini
3
5
  G:/projects/edmayelle/superanimal_multianimal_project/project_folder/project_config.ini
@@ -28,6 +28,11 @@ class FreezingDetector(ConfigReader):
28
28
  of key body parts (nape, nose, and tail-base) and identifying periods where movement falls below
29
29
  a specified threshold for a minimum duration.
30
30
 
31
+ .. seealso::
32
+ :class:`~simba.data_processors.freezing_detector_v2.FreezingDetector` - revised version, adding an explicit
33
+ FREEZING / IMMOBILITY split and millisecond-based duration parameters (``min_freezing_ms``, ``clean_ms``,
34
+ ``min_immobility_ms``).
35
+
31
36
 
32
37
  .. video:: _static/img/FreezingDetector.webm
33
38
  :width: 1000
@@ -0,0 +1,237 @@
1
+ import os
2
+ from typing import Optional, Union
3
+
4
+ import numpy as np
5
+ import pandas as pd
6
+ from numba import typed
7
+
8
+ from simba.mixins.config_reader import ConfigReader
9
+ from simba.mixins.feature_extraction_mixin import FeatureExtractionMixin
10
+ from simba.mixins.timeseries_features_mixin import TimeseriesFeatureMixin
11
+ from simba.utils.checks import (
12
+ check_all_file_names_are_represented_in_video_log, check_if_dir_exists,
13
+ check_int, check_str, check_valid_dataframe)
14
+ from simba.utils.data import detect_bouts, plug_holes_shortest_bout
15
+ from simba.utils.enums import Formats
16
+ from simba.utils.errors import InvalidInputError
17
+ from simba.utils.printing import stdout_success
18
+ from simba.utils.read_write import (find_files_of_filetypes_in_directory,
19
+ get_current_time, get_fn_ext, read_df,
20
+ read_video_info)
21
+
22
+ NAPE_X, NAPE_Y = 'nape_x', 'nape_y'
23
+ FREEZING = 'FREEZING'
24
+ IMMOBILITY = 'IMMOBILITY'
25
+
26
+ class FreezingDetector(ConfigReader):
27
+ """
28
+ Detect freezing behavior using heuristic rules based on movement velocity thresholds.
29
+ Analyzes pose-estimation data to detect freezing episodes by computing the mean velocity
30
+ of key body parts (nape, nose, and tail-base) and identifying periods where movement falls below
31
+ a specified threshold for a minimum duration.
32
+
33
+ .. seealso::
34
+ :class:`~simba.data_processors.freezing_detector.FreezingDetector` - the original version, with
35
+ ``time_window`` / ``shortest_bout`` parameters and freezing-only output.
36
+
37
+
38
+ .. video:: _static/img/FreezingDetector.webm
39
+ :width: 1000
40
+ :autoplay:
41
+ :loop:
42
+ :muted:
43
+ :align: center
44
+
45
+ .. video:: _static/img/FreezingDetector_2.webm
46
+ :width: 1000
47
+ :autoplay:
48
+ :loop:
49
+ :muted:
50
+ :align: center
51
+
52
+ .. image:: _static/img/FreezingDetector_pipeline.png
53
+ :width: 1000
54
+ :align: center
55
+
56
+ .. note::
57
+ The method uses the left and right ear body-parts to compute the `nape` location of the animal
58
+ as the midpoint between the ears. The nape, nose, and tail-base movements are averaged to compute
59
+ overall animal movement velocity.
60
+
61
+ :param Union[str, os.PathLike] data_dir: Path to directory containing pose-estimated body-part data in CSV format. Each CSV file should contain pose estimation data for one video.
62
+ :param Union[str, os.PathLike] config_path: Path to SimBA project config file (`.ini` format) containing project settings and video information.
63
+ :param Optional[str] nose_name: The name of the pose-estimated nose body-part column (without _x/_y suffix). Defaults to 'nose'.
64
+ :param Optional[str] left_ear_name: The name of the pose-estimated left ear body-part column (without _x/_y suffix). Defaults to 'Left_ear'.
65
+ :param Optional[str] right_ear_name: The name of the pose-estimated right ear body-part column (without _x/_y suffix). Defaults to 'right_ear'.
66
+ :param Optional[str] tail_base_name: The name of the pose-estimated tail base body-part column (without _x/_y suffix). Defaults to 'tail_base'.
67
+ :param Optional[int] min_freezing_ms: Minimum duration in milliseconds of sustained low movement to be scored as freezing. Shorter bouts are ignored. This is the lower edge of the freezing band. Defaults to 2000.
68
+ :param Optional[int] movement_threshold: Movement threshold in millimeters per second. Frames with mean velocity below this threshold are considered potential freezing. Higher and more freezing will be detected. Lower and less freezing will be detected. Defaults to 5.
69
+ :param Optional[int] clean_ms: De-noising window in milliseconds. Brief sub-threshold movement interruptions shorter than this are bridged (so jitter does not split one freeze into two), and stray bouts shorter than this are dropped, before the duration tests. Keep small relative to ``min_freezing_ms``. Defaults to 100.
70
+ :param Optional[int] min_immobility_ms: Minimum duration in milliseconds at which sustained freezing is instead scored as immobility. Bouts at least this long are flagged in an `IMMOBILITY` column (1 = immobility, 0 = not) and removed from `FREEZING` (the two are mutually exclusive), with extra aggregate statistics; bouts between ``min_freezing_ms`` and this remain freezing. Must be greater than or equal to ``min_freezing_ms`` (when equal, there is no freezing band and every sustained bout is immobility). If None, no immobility is computed and every bout at least ``min_freezing_ms`` long is freezing. Defaults to None.
71
+ :param Optional[Union[str, os.PathLike]] save_dir: Directory where to store the results. If None, then results are stored in a timestamped subdirectory within the ``logs`` directory of the SimBA project.
72
+ :returns: None. Results are saved to CSV files in the specified save directory:
73
+ - Individual video results: One CSV file per video with freezing annotations added as a 'FREEZING' column (1 = freezing, 0 = not freezing)
74
+ - Aggregate results: `aggregate_freezing_results.csv` containing summary statistics for all videos
75
+
76
+ :example:
77
+ >>> x = FreezingDetector(data_dir=r'D:\\troubleshooting\\mitra\\project_folder\\csv\\outlier_corrected_movement_location', config_path=r"D:\\troubleshooting\\mitra\\project_folder\\project_config.ini", min_freezing_ms=1500, movement_threshold=5, min_immobility_ms=2000)
78
+ >>> x.run()
79
+
80
+ references
81
+ ----------
82
+ ..
83
+ .. [1] Sabnis et al., Visual detection of seizures in mice using supervised machine learning, `biorxiv`, doi: https://doi.org/10.1101/2024.05.29.596520.
84
+ .. [2] Lopez et al., Region-specific Nucleus Accumbens Dopamine Signals Encode Distinct Aspects of Avoidance Learning, `biorxiv`, doi: https://doi.org/10.1101/2024.08.28.610149
85
+ .. [3] Lopez, Gabriela C., Louis D. Van Camp, Ryan F. Kovaleski, et al. "Region-Specific Nucleus Accumbens Dopamine Signals Encode Distinct Aspects of Avoidance Learning." `Cell Biology`, Volume 35, Issue 10p2433-2443.e5May 19, 2025. DOI: 10.1016/j.cub.2025.04.006
86
+ .. [4] Lazaro et al., Brainwide Genetic Capture for Conscious State Transitions, `biorxiv`, doi: https://doi.org/10.1101/2025.03.28.646066
87
+ .. [5] Sabnis et al., Visual detection of seizures in mice using supervised machine learning, 2025, Cell Reports Methods 5, 101242 December 15, 2025.
88
+ """
89
+
90
+ def __init__(self,
91
+ config_path: Union[str, os.PathLike],
92
+ nose_name: str = 'nose',
93
+ left_ear_name: str = 'left_ear',
94
+ right_ear_name: str = 'right_ear',
95
+ tail_base_name: str = 'tail_base',
96
+ data_dir: Optional[Union[str, os.PathLike]] = None,
97
+ min_freezing_ms: int = 2000,
98
+ movement_threshold: int = 5,
99
+ clean_ms: int = 100,
100
+ min_immobility_ms: Optional[int] = None,
101
+ save_dir: Optional[Union[str, os.PathLike]] = None):
102
+
103
+ for bp_name in [nose_name, left_ear_name, right_ear_name, tail_base_name]: check_str(name='body part name', value=bp_name, allow_blank=False)
104
+ ConfigReader.__init__(self, config_path=config_path, read_video_info=True, create_logger=False)
105
+ if data_dir is not None:
106
+ check_if_dir_exists(in_dir=data_dir)
107
+ else:
108
+ data_dir = self.outlier_corrected_dir
109
+ self.data_paths = find_files_of_filetypes_in_directory(directory=data_dir, extensions=['.csv'])
110
+ self.nose_heads = [f'{nose_name}_x'.lower(), f'{nose_name}_y'.lower()]
111
+ self.left_ear_heads = [f'{left_ear_name}_x'.lower(), f'{left_ear_name}_y'.lower()]
112
+ self.right_ear_heads = [f'{right_ear_name}_x'.lower(), f'{right_ear_name}_y'.lower()]
113
+ self.tail_base_heads = [f'{tail_base_name}_x'.lower(), f'{tail_base_name}_y'.lower()]
114
+ self.required_field = self.nose_heads + self.left_ear_heads + self.right_ear_heads + self.tail_base_heads
115
+ check_int(name='min_freezing_ms', value=min_freezing_ms, min_value=1)
116
+ check_int(name='movement_threshold', value=movement_threshold, min_value=1)
117
+ check_int(name='clean_ms', value=clean_ms, min_value=1)
118
+ if min_immobility_ms is not None:
119
+ check_int(name='min_immobility_ms', value=min_immobility_ms, min_value=1)
120
+ if int(min_immobility_ms) < int(min_freezing_ms):
121
+ raise InvalidInputError(msg=f'min_immobility_ms ({min_immobility_ms} ms) must be greater than or equal to min_freezing_ms ({min_freezing_ms} ms). At equal values there is no freezing band and every sustained bout is immobility.', source=self.__class__.__name__)
122
+ self.min_immobility_ms = min_immobility_ms
123
+ self.save_dir = save_dir
124
+ if self.save_dir is None:
125
+ self.save_dir = os.path.join(self.logs_path, f'freezing_data_minfreeze_{min_freezing_ms}ms_{movement_threshold}mm_{self.datetime}')
126
+ os.makedirs(self.save_dir)
127
+ else:
128
+ check_if_dir_exists(in_dir=self.save_dir)
129
+ self.min_freezing_ms, self.movement_threshold, self.clean_ms = min_freezing_ms, movement_threshold, clean_ms
130
+ def run(self):
131
+ freezing_cols = ['VIDEO', 'FREEZING FRAMES', 'FREEZING TIME (S)', 'FREEZING BOUT COUNTS', 'FREEZING PCT OF SESSION']
132
+ immobility_cols = ['IMMOBILITY FRAMES', 'IMMOBILITY TIME (S)', 'IMMOBILITY BOUT COUNTS', 'IMMOBILITY PCT OF SESSION'] if self.min_immobility_ms is not None else []
133
+ video_cols = ['VIDEO TOTAL FRAMES', 'VIDEO TOTAL TIME (S)']
134
+ agg_results = pd.DataFrame(columns=freezing_cols + immobility_cols + video_cols)
135
+ agg_results_path = os.path.join(self.save_dir, f'aggregate_freezing_results_{self.datetime}.csv')
136
+ check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=self.data_paths)
137
+ for file_cnt, file_path in enumerate(self.data_paths):
138
+ video_name = get_fn_ext(filepath=file_path)[1]
139
+ print(f'[{get_current_time()}] Analyzing freezing {video_name}...(video {file_cnt+1}/{len(self.data_paths)})')
140
+ save_file_path = os.path.join(self.save_dir, f'{video_name}.csv')
141
+ df = read_df(file_path=file_path, file_type='csv').reset_index(drop=True)
142
+ _, px_per_mm, fps = read_video_info(vid_info_df=self.video_info_df, video_name=video_name)
143
+ df.columns = [str(x).lower() for x in df.columns]
144
+ check_valid_dataframe(df=df, valid_dtypes=Formats.NUMERIC_DTYPES.value, required_fields=self.required_field)
145
+ nose_shifted = FeatureExtractionMixin.create_shifted_df(df[self.nose_heads])
146
+ nose_1, nose_2 = nose_shifted.iloc[:, 0:2].values, nose_shifted.iloc[:, 2:4].values
147
+ nose_movement = FeatureExtractionMixin.euclidean_distance(bp_1_x=nose_1[:, 0].flatten(), bp_2_x=nose_2[:, 0].flatten(), bp_1_y=nose_1[:, 1].flatten(), bp_2_y=nose_2[:, 1].flatten(), px_per_mm=px_per_mm)
148
+ tail_base_shifted = FeatureExtractionMixin.create_shifted_df(df[self.tail_base_heads])
149
+ tail_base_shifted_1, tail_base_shifted_2 = tail_base_shifted.iloc[:, 0:2].values, tail_base_shifted.iloc[:, 2:4].values
150
+ tail_base_movement = FeatureExtractionMixin.euclidean_distance(bp_1_x=tail_base_shifted_1[:, 0].flatten(), bp_2_x=tail_base_shifted_2[:, 0].flatten(), bp_1_y=tail_base_shifted_1[:, 1].flatten(), bp_2_y=tail_base_shifted_2[:, 1].flatten(), px_per_mm=px_per_mm)
151
+ left_ear_arr = df[self.left_ear_heads].values.astype(np.int64)
152
+ right_ear_arr = df[self.right_ear_heads].values.astype(np.int64)
153
+ nape_arr = pd.DataFrame(FeatureExtractionMixin.find_midpoints(bp_1=left_ear_arr, bp_2=right_ear_arr, percentile=np.float64(0.5)), columns=[NAPE_X, NAPE_Y])
154
+ nape_shifted = FeatureExtractionMixin.create_shifted_df(nape_arr[[NAPE_X, NAPE_Y]])
155
+ nape_shifted_1, nape_shifted_2 = nape_shifted.iloc[:, 0:2].values, nape_shifted.iloc[:, 2:4].values
156
+ nape_movement = FeatureExtractionMixin.euclidean_distance(bp_1_x=nape_shifted_1[:, 0].flatten(), bp_2_x=nape_shifted_2[:, 0].flatten(), bp_1_y=nape_shifted_1[:, 1].flatten(), bp_2_y=nape_shifted_2[:, 1].flatten(), px_per_mm=px_per_mm)
157
+ movement = np.hstack([nose_movement.reshape(-1, 1), nape_movement.reshape(-1, 1), tail_base_movement.reshape(-1, 1)])
158
+ mean_movement = np.mean(movement, axis=1)
159
+ mm_s = TimeseriesFeatureMixin.sliding_descriptive_statistics(data=mean_movement.astype(np.float32), window_sizes=np.array([1], dtype=np.float64), sample_rate=int(fps), statistics=typed.List(["sum"]))[0].flatten()
160
+ freezing_idx = np.argwhere((mm_s >= 0) & (mm_s <= self.movement_threshold)).astype(np.int32).flatten()
161
+ df[f'Probability_{FREEZING}'] = 0
162
+ df[FREEZING] = 0
163
+ df.loc[freezing_idx, FREEZING] = 1
164
+ df = plug_holes_shortest_bout(data_df=df, clf_name=FREEZING, fps=fps, shortest_bout=self.clean_ms)
165
+ bouts = detect_bouts(data_df=df, target_lst=[FREEZING], fps=fps)
166
+ bouts = bouts[bouts['Bout_time'] >= (self.min_freezing_ms / 1000)]
167
+ if self.min_immobility_ms is not None:
168
+ immobility_bouts = bouts[bouts['Bout_time'] >= (self.min_immobility_ms / 1000)]
169
+ bouts = bouts[bouts['Bout_time'] < (self.min_immobility_ms / 1000)]
170
+ if len(bouts) > 0:
171
+ df[FREEZING] = 0
172
+ freezing_idx = list(bouts.apply(lambda x: list(range(int(x["Start_frame"]), int(x["End_frame"]) + 1)), 1))
173
+ freezing_idx = [x for xs in freezing_idx for x in xs]
174
+ df.loc[freezing_idx, FREEZING] = 1
175
+ df.loc[freezing_idx, f'Probability_{FREEZING}'] = 1
176
+ else:
177
+ df[FREEZING] = 0
178
+ freezing_idx = []
179
+ if self.min_immobility_ms is not None:
180
+ df[f'Probability_{IMMOBILITY}'] = 0
181
+ df[IMMOBILITY] = 0
182
+ if len(immobility_bouts) > 0:
183
+ immobility_idx = list(immobility_bouts.apply(lambda x: list(range(int(x["Start_frame"]), int(x["End_frame"]) + 1)), 1))
184
+ immobility_idx = [x for xs in immobility_idx for x in xs]
185
+ df.loc[immobility_idx, IMMOBILITY] = 1
186
+ df.loc[immobility_idx, f'Probability_{IMMOBILITY}'] = 1
187
+ else:
188
+ immobility_idx = []
189
+ df.to_csv(save_file_path)
190
+ agg_row = [video_name, len(freezing_idx), round(len(freezing_idx) / fps, 4), len(bouts), round((len(freezing_idx) / len(df)) * 100, 4)]
191
+ if self.min_immobility_ms is not None:
192
+ agg_row += [len(immobility_idx), round(len(immobility_idx) / fps, 4), len(immobility_bouts), round((len(immobility_idx) / len(df)) * 100, 4)]
193
+ agg_row += [len(df), round(len(df)/fps, 2)]
194
+ agg_results.loc[len(agg_results)] = agg_row
195
+ agg_results.to_csv(agg_results_path)
196
+ self.timer.stop_timer(); stdout_success(msg=f'Results saved in {self.save_dir} directory.', elapsed_time=self.timer.elapsed_time_str)
197
+
198
+
199
+
200
+ # FreezingDetector(
201
+ # data_dir=r'H:\projects\brainwide_trap\brainwide_trap\project_folder\csv\outlier_corrected_movement_location',
202
+ # config_path=r"H:\projects\brainwide_trap\brainwide_trap\project_folder\project_config.ini",
203
+ # movement_threshold=3,
204
+ # clean_ms=100, # bridge jitter / drop blips shorter than this
205
+ # min_freezing_ms=3000, # freezing = stillness >= 3.0 s ...
206
+ # min_immobility_ms=4500, # ... until >= 6.0 s, where it becomes immobility (None = no immobility)
207
+ # ).run()
208
+
209
+
210
+ #
211
+ # FreezingDetector(
212
+ # data_dir=r'G:\projects\jason_zhang\jason_project\project_folder\csv\outlier_corrected_movement_location',
213
+ # config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini",
214
+ # time_window=3,
215
+ # movement_threshold=3,
216
+ # shortest_bout=100
217
+ # ).run()
218
+
219
+
220
+
221
+ # FreezingDetector(
222
+ # data_dir=r'F:\troubleshooting\sam\sam\project_folder\csv\outlier_corrected_movement_location',
223
+ # config_path=r"F:\troubleshooting\sam\sam\project_folder\project_config.ini",
224
+ # save_dir=r'F:\troubleshooting\sam\sam\project_folder\logs\freezing_500',
225
+ # time_window=3,
226
+ # movement_threshold=5,
227
+ # shortest_bout=100
228
+ # ).run()
229
+
230
+
231
+ # FreezingDetector(
232
+ # data_dir=r'E:\troubleshooting\mitra_emergence_hour\project_folder\csv\outlier_corrected_movement_location',
233
+ # config_path=r"E:\troubleshooting\mitra_emergence_hour\project_folder\project_config.ini",
234
+ # time_window=3,
235
+ # movement_threshold=5,
236
+ # shortest_bout=100
237
+ # ).run()
@@ -22,14 +22,14 @@ from simba.utils.read_write import (SimbaTimer, get_fn_ext, read_df,
22
22
  write_df)
23
23
 
24
24
  NOSE = 'nose'
25
- LEFT_SIDE = 'lat_left'
26
- RIGHT_SIDE = 'lat_right'
25
+ LEFT_SIDE = 'left_side'
26
+ RIGHT_SIDE = 'right_side'
27
27
  LEFT_EAR = 'left_ear'
28
28
  RIGHT_EAR = 'right_ear'
29
29
  CENTER = 'center'
30
30
  TAIL_BASE = 'tail_base'
31
31
  TAIL_CENTER = 'tail_center'
32
- TAIL_TIP = 'tail_end'
32
+ TAIL_TIP = 'tail_tip'
33
33
 
34
34
  TIME_WINDOWS = np.array([0.25, 0.5, 1.0, 2.0])
35
35
 
@@ -231,8 +231,8 @@ class MitraFeatureExtractor(ConfigReader,
231
231
  # feature_extractor = MitraFeatureExtractor(config_path=args.config_path)
232
232
  # feature_extractor.run()
233
233
  #
234
- # feature_extractor = MitraFeatureExtractor(config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini")
235
- # feature_extractor.run()
234
+ feature_extractor = MitraFeatureExtractor(config_path=r"H:\projects\brainwide_trap\brainwide_trap\project_folder\project_config.ini")
235
+ feature_extractor.run()
236
236
 
237
237
 
238
238
  # feature_extractor = MitraFeatureExtractor(config_path=r"E:\troubleshooting\mitra_pbn\mitra_pbn\project_folder\project_config.ini")
@@ -245,3 +245,4 @@ class MitraFeatureExtractor(ConfigReader,
245
245
 
246
246
 
247
247
 
248
+
@@ -26,8 +26,8 @@ from simba.mixins.config_reader import ConfigReader
26
26
  from simba.ui.tkinter_functions import (CreateLabelFrameWithIcon, Entry_Box,
27
27
  SimbaButton, SimbaCheckbox, SimBALabel)
28
28
  from simba.utils.checks import (check_file_exist_and_readable, check_float,
29
- check_int, check_str, check_valid_boolean, check_valid_dataframe,
30
- check_valid_dict)
29
+ check_int, check_str, check_valid_boolean,
30
+ check_valid_dataframe, check_valid_dict)
31
31
  from simba.utils.enums import ConfigKey, Dtypes, Formats, Options, TagNames
32
32
  from simba.utils.errors import FrameRangeError, NoDataError, NoFilesFoundError
33
33
  from simba.utils.lookups import (get_current_time, get_display_resolution,
@@ -21,13 +21,17 @@ except ImportError:
21
21
 
22
22
  import simba
23
23
  from simba.mixins.config_reader import ConfigReader
24
+ from simba.mixins.plotting_mixin import PlottingMixin
24
25
  from simba.ui.tkinter_functions import (CreateLabelFrameWithIcon, Entry_Box,
25
- SimbaButton, SimbaCheckbox, SimBALabel, get_menu_icons, SimBAScaleBar)
26
+ SimbaButton, SimbaCheckbox,
27
+ SimBADropDown, SimBALabel,
28
+ SimBAScaleBar, get_menu_icons)
26
29
  from simba.utils.checks import (check_file_exist_and_readable, check_int,
27
30
  check_that_column_exist, check_valid_boolean,
28
31
  check_valid_dataframe, check_valid_dict,
29
- check_video_and_data_frm_count_align)
30
- from simba.utils.enums import Formats, TagNames
32
+ check_video_and_data_frm_count_align,
33
+ is_img_greyscale)
34
+ from simba.utils.enums import Formats, TagNames, TextOptions
31
35
  from simba.utils.errors import (FrameRangeError, NoDataError,
32
36
  NoFilesFoundError, SimbaError)
33
37
  from simba.utils.lookups import (get_current_time, get_display_resolution,
@@ -37,7 +41,8 @@ from simba.utils.lookups import (get_current_time, get_display_resolution,
37
41
  from simba.utils.printing import log_event, stdout_success
38
42
  from simba.utils.read_write import (find_closest_readable_frame,
39
43
  get_video_meta_data, read_config_entry,
40
- read_df, read_frm_of_video, write_df)
44
+ read_df, read_frm_of_video,
45
+ seconds_to_timestamp, str_2_bool, write_df)
41
46
  from simba.utils.warnings import DataHeaderWarning, FrameRangeWarning
42
47
 
43
48
  PLAY_VIDEO_SCRIPT_PATH = os.path.join(os.path.dirname(simba.__file__), "labelling/play_annotation_video.py")
@@ -45,6 +50,8 @@ PADDING = 5
45
50
 
46
51
  DISPLAY_RESOLUTION = get_display_resolution()
47
52
  MAX_FRAME_RATI0 = (0.6, 0.6) # W * H RATIO OF IMAGE FRAME ONLY
53
+ DEFAULT_IMG_GREYSCALE = 'FALSE'
54
+ DEFAULT_SAVE_VERBOSITY = 'TRUE'
48
55
 
49
56
 
50
57
  class LabellingInterface(ConfigReader):
@@ -87,6 +94,8 @@ class LabellingInterface(ConfigReader):
87
94
  self.targets_inserted_file_path = os.path.join(self.targets_folder, f"{self.video_name}.{self.file_type}")
88
95
  self.machine_results_file_path = os.path.join(self.machine_results_dir, f"{self.video_name}.{self.file_type}")
89
96
  self.cap = cv2.VideoCapture(self.video_path)
97
+ self.img_greyscale, self.save_verbosity = str_2_bool(input_str=DEFAULT_IMG_GREYSCALE), str_2_bool(input_str=DEFAULT_SAVE_VERBOSITY)
98
+ self.show_video_timer = False
90
99
  self.img_kbd_bindings = get_labelling_img_kbd_bindings()
91
100
  self.video_kbd_bindings = get_labelling_video_kbd_bindings()
92
101
  self.max_frm_id = self.video_meta_data["frame_count"] - 1
@@ -157,7 +166,7 @@ class LabellingInterface(ConfigReader):
157
166
  self.img_lbl = Label(self.img_frm, name='img_lbl')
158
167
  self.img_frm.grid(row=0, column=0, sticky=NW, padx=10, pady=10, columnspan=3, rowspan=2)
159
168
  self.img_lbl.grid(row=0, column=0, sticky=NW)
160
-
169
+ self.font_size, self.space_x, self.spacing_scale = PlottingMixin().get_optimal_font_scales(text='999999', accepted_px_width=int(self.img_display_size[0] / 8), accepted_px_height=int(self.img_display_size[1] / 8))
161
170
 
162
171
  self.navigation_frm = CreateLabelFrameWithIcon(parent=self.main_window, header='FRAME NAVIGATION', icon_name='navigation', relief='solid')
163
172
  self.current_frm_eb = Entry_Box(parent=self.navigation_frm, fileDescription='CURRENT FRAME: ', labelwidth=20, validation='numeric', entry_box_width=10, value=self.img_idx, justify='center', label_font=Formats.FONT_HEADER.value, entry_font=Formats.FONT_HEADER.value)
@@ -167,7 +176,7 @@ class LabellingInterface(ConfigReader):
167
176
  self.forward_btn = SimbaButton(parent=self.navigation_frm, txt="", img='play_large_green', tooltip_txt="+1 FRAME", cmd=self.__advance_frame, cmd_kwargs={'frm_id': lambda: self.img_idx + 1})
168
177
  self.last_frm_btn = SimbaButton(parent=self.navigation_frm, txt="", img='skip_forward_large', tooltip_txt="GO TO LAST FRAME", cmd=self.__advance_frame, cmd_kwargs={'frm_id': self.max_frm_id})
169
178
 
170
- self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=self.img_idx, display_size=self.img_display_size)
179
+ self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=self.img_idx, display_size=self.img_display_size, show_timer=self.show_video_timer)
171
180
 
172
181
  self.navigation_frm.grid(row=2, column=0, sticky=NSEW, pady=10, padx=10, columnspan=1)
173
182
  self.current_frm_eb.grid(row=0, column=0, sticky=EW, columnspan=4)
@@ -285,9 +294,9 @@ class LabellingInterface(ConfigReader):
285
294
  img_lbl: Label,
286
295
  video_path: Union[str, os.PathLike],
287
296
  img_idx: int,
288
- display_size: Optional[Tuple[int, int]] = None):
289
-
290
- self.img = read_frm_of_video(video_path=video_path, frame_index=img_idx, size=display_size, raise_error=False)
297
+ display_size: Optional[Tuple[int, int]] = None,
298
+ show_timer: bool = False):
299
+ self.img = read_frm_of_video(video_path=video_path, frame_index=img_idx, size=display_size, raise_error=False, greyscale=self.img_greyscale)
291
300
  if self.img is None:
292
301
  FrameRangeWarning(msg=f'Frame {img_idx} could not be read in video {video_path}. Attempting to find closest readable frame...')
293
302
  img, img_idx = find_closest_readable_frame(video_path=video_path, target_frame=img_idx, max_search_range=50)
@@ -298,7 +307,11 @@ class LabellingInterface(ConfigReader):
298
307
  self.current_frm_eb.entry_set(val=str(img_idx))
299
308
  else:
300
309
  raise FrameRangeError(msg=f'Could not find a readable frame (± frames of {img_idx}) in video {video_path}. Cannot proceed with annotations in this video.', source=self.__class__.__name__)
301
- img_rgb = cv2.cvtColor(self.img, cv2.COLOR_BGR2RGB)
310
+ if show_timer:
311
+ timestamp = seconds_to_timestamp(seconds=self.img_idx / self.video_meta_data['fps'], hh_mm_ss_sss=True)
312
+ self.img = PlottingMixin().put_text(img=self.img, text=timestamp, pos=(TextOptions.BORDER_BUFFER_X.value, int((self.img.shape[0] - self.spacing_scale * 2))), font_size=self.font_size, font_thickness=TextOptions.TEXT_THICKNESS.value + 1, text_bg_alpha=0.6, text_color=(255, 255, 255))
313
+ grey_img = is_img_greyscale(img=self.img, raise_error=False, source=f'{self.__class__.__name__} img_idx')
314
+ img_rgb = cv2.cvtColor(self.img, cv2.COLOR_BGR2RGB) if not grey_img else self.img
302
315
  self.pil_image = Image.fromarray(img_rgb)
303
316
  self.tk_image = ImageTk.PhotoImage(self.pil_image)
304
317
  img_lbl.configure(image=self.tk_image)
@@ -343,7 +356,8 @@ class LabellingInterface(ConfigReader):
343
356
  raise FrameRangeError(msg=f"TRYING TO SHOW FRAME {frm_id} WHICH CANNOT BE SHOWN. FRAME INDEX HAS TO BE 0 OR ABOVE")
344
357
  else:
345
358
  prior_frm_idx = int(self.current_frm_eb.entry_get)
346
- self.__create_print_statements(frame=prior_frm_idx)
359
+ if self.save_verbosity:
360
+ self.__create_print_statements(frame=prior_frm_idx)
347
361
  self.current_frm_eb.entry_set(val=frm_id)
348
362
  for clf in self.clf_names:
349
363
  self.save_behavior_in_frm(clf_name=clf, frame_idx=prior_frm_idx)
@@ -352,7 +366,7 @@ class LabellingInterface(ConfigReader):
352
366
  else:
353
367
  self.clf_cbs[clf].set(bool(self.data_df_targets[clf].loc[frm_id]))
354
368
  self.img_idx = deepcopy(frm_id)
355
- self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=frm_id, display_size=self.img_display_size)
369
+ self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=frm_id, display_size=self.img_display_size, show_timer=self.show_video_timer)
356
370
 
357
371
  def __save_behavior_in_range(self,
358
372
  start_frm: int,
@@ -367,8 +381,9 @@ class LabellingInterface(ConfigReader):
367
381
  self.data_df_targets[target].loc[start_frm:end_frm] = int(self.clf_cbs[target].get())
368
382
  self.current_frm_eb.entry_set(end_frm)
369
383
  self.img_idx = deepcopy(end_frm)
370
- self.__create_print_statements(frame=(start_frm, end_frm))
371
- self.main_window.after(1, lambda: self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=end_frm, display_size=self.img_display_size))
384
+ if self.save_verbosity:
385
+ self.__create_print_statements(frame=(start_frm, end_frm))
386
+ self.main_window.after(1, lambda: self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=end_frm, display_size=self.img_display_size, show_timer=self.show_video_timer))
372
387
 
373
388
  def save_behavior_in_frm(self,
374
389
  frame_idx: int,
@@ -421,7 +436,6 @@ class LabellingInterface(ConfigReader):
421
436
  self.preferences_frm.minsize(400, 300)
422
437
  self.preferences_frm.wm_title("PREFERENCES")
423
438
  self.preferences_frm.iconphoto(False, self.menu_icons['settings']["img"])
424
-
425
439
  size_frm_panel = CreateLabelFrameWithIcon(parent=self.preferences_frm, header="IMAGE SIZE", icon_name='size', padx=5, pady=5)
426
440
  size_frm_panel.grid(row=0, column=0, sticky="NW")
427
441
  self.max_width_scaler = SimBAScaleBar(parent=size_frm_panel, label="MAX IMAGE WIDTH (%): ", orient=HORIZONTAL, length=200, value=MAX_FRAME_RATI0[0]*100, label_width=25, lbl_img='width', from_=10, to=100)
@@ -429,15 +443,33 @@ class LabellingInterface(ConfigReader):
429
443
  self.max_width_scaler.grid(row=0, column=0, sticky="NW")
430
444
  self.max_height_scaler.grid(row=1, column=0, sticky="NW")
431
445
 
446
+ img_clr_panel = CreateLabelFrameWithIcon(parent=self.preferences_frm, header="IMAGE COLOR", icon_name='size', padx=5, pady=5)
447
+ img_clr_panel.grid(row=1, column=0, sticky="NW")
448
+ self.img_grey_dropdown = SimBADropDown(parent=img_clr_panel, dropdown_options=['TRUE', 'FALSE'], label="IMAGE GREYSCALE: ", label_width=20, value='TRUE' if self.img_greyscale else 'FALSE', dropdown_width=10, img='grey')
449
+ self.img_grey_dropdown.grid(row=0, column=0, sticky="NW")
450
+
451
+ verbosity_panel = CreateLabelFrameWithIcon(parent=self.preferences_frm, header="VEBOSITY", icon_name='verbose', padx=5, pady=5)
452
+ verbosity_panel.grid(row=2, column=0, sticky="NW")
453
+ self.verbosity_dropdown = SimBADropDown(parent=verbosity_panel, dropdown_options=['TRUE', 'FALSE'], label="SAVE VERBOSITY: ", label_width=20, value='TRUE' if self.save_verbosity else 'FALSE', dropdown_width=10, img='verbose')
454
+ self.verbosity_dropdown.grid(row=0, column=0, sticky="NW")
455
+
456
+ video_timer_panel = CreateLabelFrameWithIcon(parent=self.preferences_frm, header="VIDEO TIMER", icon_name='frame', padx=5, pady=5)
457
+ video_timer_panel.grid(row=3, column=0, sticky="NW")
458
+ self.video_timer_dropdown = SimBADropDown(parent=video_timer_panel, dropdown_options=['TRUE', 'FALSE'], label="SHOW VIDEO TIMER: ", label_width=20, value='TRUE' if self.show_video_timer else 'FALSE', dropdown_width=10, img='timer')
459
+ self.video_timer_dropdown.grid(row=0, column=0, sticky="NW")
460
+
432
461
  pref_save_btn = SimbaButton(parent=self.preferences_frm, txt="SAVE", img='save_large', font=Formats.FONT_REGULAR.value, cmd=self.set_settings)
433
- pref_save_btn.grid(row=1, column=0, sticky="NW")
462
+ pref_save_btn.grid(row=4, column=0, sticky="NW")
434
463
 
435
464
  def set_settings(self):
436
465
  max_width, max_height = int(self.max_width_scaler.get_value()) / 100, int(self.max_height_scaler.get_value()) / 100
437
466
  scaled_w, scaled_h, _, _ = get_img_resize_info(img_size=(self.video_meta_data['width'], self.video_meta_data['height']), display_resolution=None, max_width_ratio=max_width, max_height_ratio=max_height)
438
467
  self.img_display_size = (scaled_w, scaled_h)
439
- self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=self.img_idx, display_size=self.img_display_size)
440
-
468
+ self.font_size, self.space_x, self.spacing_scale = PlottingMixin().get_optimal_font_scales(text='999999', accepted_px_width=int(self.img_display_size[0] / 8), accepted_px_height=int(self.img_display_size[1] / 8))
469
+ self.img_greyscale = str_2_bool(input_str=self.img_grey_dropdown.get_value())
470
+ self.save_verbosity = str_2_bool(input_str=self.verbosity_dropdown.get_value())
471
+ self.show_video_timer = str_2_bool(input_str=self.video_timer_dropdown.get_value())
472
+ self.set_img(img_lbl=self.img_lbl, video_path=self.cap, img_idx=self.img_idx, display_size=self.img_display_size, show_timer=self.show_video_timer)
441
473
  pass
442
474
 
443
475
  # test = LabellingInterface(config_path=r"C:\troubleshooting\mitra\project_folder\project_config.ini",
@@ -62,7 +62,7 @@ class CircularStatisticsMixin(object):
62
62
  Jitted compute of the mean resultant vector length of a single sample. Captures the overall "pull" or "tendency" of the
63
63
  data points towards a central direction on the circle with a range between 0 and 1.
64
64
 
65
- .. image:: _static/img/mean_resultant_vector.png
65
+ .. image:: _static/img/mean_resultant_vector.webp
66
66
  :width: 400
67
67
  :align: center
68
68
 
@@ -100,8 +100,7 @@ class CircularStatisticsMixin(object):
100
100
  data points towards a central direction on the circle with a range between 0 and 1.
101
101
 
102
102
  .. attention::
103
- The returned values represents resultant vector length in the time-window ``[(current_frame-time_window)->current_frame]``.
104
- `-1` is returned where ``current_frame-time_window`` is less than 0.
103
+ The returned values represents resultant vector length in the time-window ``[(current_frame-time_window)->current_frame]``. `-1` is returned where ``current_frame-time_window`` is less than 0.
105
104
 
106
105
  .. image:: _static/img/sliding_mean_resultant_length.png
107
106
  :width: 600
@@ -590,6 +589,9 @@ class CircularStatisticsMixin(object):
590
589
  .. note::
591
590
  Adapted from ``pingouin.circular.circ_rayleigh`` and ``pycircstat.tests.rayleigh``.
592
591
 
592
+ .. image:: _static/img/rayleigh.webp
593
+ :width: 600
594
+ :align: center
593
595
 
594
596
  The Rayleigh Z score is calculated as follows:
595
597
 
@@ -598,10 +600,10 @@ class CircularStatisticsMixin(object):
598
600
 
599
601
  where :math:`n` is the sample size and :math:`R` is the mean resultant length.
600
602
 
601
- The associated p-value is calculated as follows:
603
+ The associated p-value is calculated as follows (note this uses the resultant length :math:`nR`, not the mean resultant length :math:`R`):
602
604
 
603
605
  .. math::
604
- p = \\exp\\left(\\sqrt{1 + 4n + 4(n^2 - R^2)} - (1 + 2n)\\right)
606
+ p = \\exp\\left(\\sqrt{1 + 4n + 4(n^2 - (nR)^2)} - (1 + 2n)\\right)
605
607
 
606
608
  .. seealso::
607
609
  :func:`simba.data_processors.cuda.circular_statistics.sliding_rayleigh_z`,
@@ -613,16 +615,15 @@ class CircularStatisticsMixin(object):
613
615
 
614
616
  >>> data = np.array([350, 360, 365, 360, 100, 109, 232, 123, 42, 3,4, 145]).astype(np.float32)
615
617
  >>> CircularStatisticsMixin().rayleigh(data=data)
616
- >>> (2.3845645695246467, 0.9842236169985417)
618
+ >>> (2.3845645695246467, 0.09027923051217743)
617
619
  """
618
620
 
619
621
  data = np.deg2rad(data)
620
- R = np.sqrt(np.sum(np.cos(data)) ** 2 + np.sum(np.sin(data)) ** 2) / len(data)
621
- p = np.exp(
622
- np.sqrt(1 + 4 * len(data) + 4 * (len(data) ** 2 - R**2))
623
- - (1 + 2 * len(data))
624
- )
625
- return len(data) * R**2, p
622
+ n = len(data)
623
+ R = np.sqrt(np.sum(np.cos(data)) ** 2 + np.sum(np.sin(data)) ** 2) / n
624
+ R_len = n * R # resultant length (0..n); the p-value approximation requires this, not the mean resultant length
625
+ p = np.exp(np.sqrt(1 + 4 * n + 4 * (n ** 2 - R_len ** 2)) - (1 + 2 * n))
626
+ return n * R**2, p
626
627
 
627
628
  @staticmethod
628
629
  @njit("(float32[:], float64[:], float64)", parallel=True)
@@ -654,9 +655,11 @@ class CircularStatisticsMixin(object):
654
655
  win_size = int(time_windows[i] * fps)
655
656
  for j in prange(win_size, len(data) + 1):
656
657
  data_win = data[j - win_size : j]
657
- R = np.sqrt(np.sum(np.cos(data_win)) ** 2 + np.sum(np.sin(data_win)) ** 2) / len(data_win)
658
- Z_results[j - 1][i] = len(data_win) * R**2
659
- P_results[j - 1][i] = np.exp(np.sqrt(1 + 4 * len(data_win) + 4 * (len(data_win) ** 2 - R**2)) - (1 + 2 * len(data_win)))
658
+ n_win = len(data_win)
659
+ R = np.sqrt(np.sum(np.cos(data_win)) ** 2 + np.sum(np.sin(data_win)) ** 2) / n_win
660
+ R_len = n_win * R # resultant length (0..n); required by the p-value approximation
661
+ Z_results[j - 1][i] = n_win * R**2
662
+ P_results[j - 1][i] = np.exp(np.sqrt(1 + 4 * n_win + 4 * (n_win ** 2 - R_len ** 2)) - (1 + 2 * n_win))
660
663
  return Z_results, P_results
661
664
 
662
665
  @staticmethod
@@ -866,8 +869,12 @@ class CircularStatisticsMixin(object):
866
869
  """
867
870
  Jitted compute of Rao's spacing for angular data.
868
871
 
869
- Computes the uniformity of a circular dataset in degrees. Low output values represent concentrated angularity,
870
- while high values represent dispersed angularity.
872
+ Computes the uniformity of a circular dataset in degrees. High output values represent concentrated (clustered)
873
+ angularity with uneven gaps between observations, while low values (near 0) represent evenly-spaced, uniform angularity.
874
+
875
+ .. image:: _static/img/rao_spacing.webp
876
+ :width: 600
877
+ :align: center
871
878
 
872
879
  The Rao's Spacing (:math:`U`) is calculated as follows:
873
880
 
@@ -895,7 +902,7 @@ class CircularStatisticsMixin(object):
895
902
 
896
903
  data = np.sort(data)
897
904
  Ti, TiL = np.full((data.shape[0]), np.nan), np.full((data.shape[0]), np.nan)
898
- l = np.int8(360 / len(data))
905
+ l = 360 / len(data)
899
906
  Ti[-1] = np.rad2deg(np.pi - np.abs(np.pi - np.abs(np.deg2rad(data[0]) - np.deg2rad(data[-1])))
900
907
  )
901
908
  for j in range(data.shape[0] - 1, -1, -1):
@@ -952,7 +959,7 @@ class CircularStatisticsMixin(object):
952
959
  for i in range(window_size, data.shape[0]):
953
960
  w_data = np.sort(data[i - window_size : i])
954
961
  Ti, TiL = np.full((w_data.shape[0]), np.nan), np.full((w_data.shape[0]), np.nan)
955
- l = np.int16(360 / len(w_data))
962
+ l = 360 / len(w_data)
956
963
  Ti[-1] = np.rad2deg(np.pi - np.abs(np.pi - np.abs(np.deg2rad(w_data[0]) - np.deg2rad(w_data[-1]))))
957
964
  for j in range(w_data.shape[0] - 1, -1, -1):
958
965
  Ti[j] = np.rad2deg(np.pi - np.abs(np.pi - np.abs(np.deg2rad(w_data[j]) - np.deg2rad(w_data[j - 1]))))
@@ -971,6 +978,10 @@ class CircularStatisticsMixin(object):
971
978
 
972
979
  Kuiper's two-sample test is a non-parametric test used to determine if two samples are drawn from the same circular distribution. It is particularly useful for circular data, such as angles or directions.
973
980
 
981
+ .. image:: _static/img/kuipers_two_sample_test.webp
982
+ :width: 600
983
+ :align: center
984
+
974
985
  The Kuiper test statistic is calculated as the sum of the maximum positive and negative deviations between the cumulative distribution functions of the two samples:
975
986
 
976
987
  .. math::
@@ -1031,11 +1042,9 @@ class CircularStatisticsMixin(object):
1031
1042
  for time_window_cnt in prange(time_windows.shape[0]):
1032
1043
  win_size = int(time_windows[time_window_cnt] * fps)
1033
1044
  for i in range(win_size, sample_1.shape[0]):
1034
- sample_1_win, sample_2_win = (
1035
- sample_1[i - win_size : i],
1036
- sample_2[i - win_size : i],
1037
- )
1038
- cdfv1 = np.searchsorted(sample_2, sample_1_win) / float(
1045
+ sample_1_win = np.sort(sample_1[i - win_size : i])
1046
+ sample_2_win = np.sort(sample_2[i - win_size : i])
1047
+ cdfv1 = np.searchsorted(sample_2_win, sample_1_win) / float(
1039
1048
  len(sample_2_win)
1040
1049
  )
1041
1050
  cdfv2 = np.searchsorted(sample_1_win, sample_2_win) / float(
@@ -1466,6 +1475,10 @@ class CircularStatisticsMixin(object):
1466
1475
  """
1467
1476
  Determines the preferred turning direction from a 1D array of circular directional data.
1468
1477
 
1478
+ .. image:: _static/img/preferred_turning_direction.webp
1479
+ :width: 600
1480
+ :align: center
1481
+
1469
1482
  .. note::
1470
1483
  The input ``x`` can be created using any of the following methods:
1471
1484
  - :func:`simba.mixins.circular_statistics.CircularStatisticsMixin.direction_two_bps`