simba-uw-tf-dev 5.2.1__tar.gz → 5.2.3__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 (1051) hide show
  1. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/PKG-INFO +1 -1
  2. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_gpu.txt +1 -1
  3. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/setup.py +1 -1
  4. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/SimBA.py +2 -5
  5. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.recent_projects.txt +1 -0
  6. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/tooptips.json +67 -1
  7. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/movement_calculator.py +25 -10
  8. simba_uw_tf_dev-5.2.3/simba/feature_extractors/wingwave_extractor.py +189 -0
  9. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/geometry_mixin.py +5 -5
  10. simba_uw_tf_dev-5.2.3/simba/model/nvdec_yolo_inference.py +338 -0
  11. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_fit.py +279 -266
  12. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_inference.py +84 -35
  13. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_pose_inference.py +10 -4
  14. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_seg_inference.py +41 -25
  15. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/path_plotter_mp.py +520 -519
  16. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/plot_clf_results_mp.py +21 -0
  17. simba_uw_tf_dev-5.2.3/simba/plotting/skeleton_video_creator.py +344 -0
  18. simba_uw_tf_dev-5.2.3/simba/plotting/yolo_seg_visualizer.py +178 -0
  19. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_visualize.py +150 -127
  20. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/converters.py +1978 -1970
  21. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py +3 -3
  22. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/litpose_to_yolo_bbox.py +8 -2
  23. simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/merge_yolo_projects.py +230 -0
  24. simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/sam3_to_yolo_bbox.py +286 -0
  25. simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/sam3_to_yolo_seg.py +242 -0
  26. simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/yolo_labels_to_yolo_project.py +110 -0
  27. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/annotated_bouts_videos_pop_up.py +169 -170
  28. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/movement_analysis_pop_up.py +14 -4
  29. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/video_processing_pop_up.py +68 -68
  30. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/checks.py +2 -1
  31. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/lookups.py +75 -0
  32. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/printing.py +135 -124
  33. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/read_write.py +3994 -3877
  34. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/yolo.py +183 -6
  35. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/async_frame_reader.py +14 -8
  36. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/PKG-INFO +1 -1
  37. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/SOURCES.txt +7 -1
  38. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/requires.txt +1 -1
  39. simba_uw_tf_dev-5.2.1/scripts/unzip_videos_to_folder.py +0 -53
  40. simba_uw_tf_dev-5.2.1/simba/plotting/yolo_seg_visualizer.py +0 -155
  41. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  42. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  43. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/bigquery_download_stats.yml +0 -0
  44. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/cleaning.yml +0 -0
  45. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/issue_msg.yml.disabled +0 -0
  46. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/issue_report.yml +0 -0
  47. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/tests_py310.yml +0 -0
  48. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/tests_py36.yml +0 -0
  49. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.gitignore +0 -0
  50. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.pytest.ini +0 -0
  51. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.readthedocs.yaml +0 -0
  52. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/App.py +0 -0
  53. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/CITATION.cff +0 -0
  54. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/CODE_OF_CONDUCT.md +0 -0
  55. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/LICENSE +0 -0
  56. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/MANIFEST.in +0 -0
  57. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/README.md +0 -0
  58. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/__init__.py +0 -0
  59. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements.txt +0 -0
  60. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_arm.txt +0 -0
  61. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_wsl.txt +0 -0
  62. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/__init__.py +0 -0
  63. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/caltech_download.py +0 -0
  64. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/create_issues_report.py +0 -0
  65. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/dataverse_download.py +0 -0
  66. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/gitter_stats.py +0 -0
  67. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/make_qr_code.py +0 -0
  68. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/osf_download.py +0 -0
  69. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/upgrade_simba_keep_configs.py +0 -0
  70. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/setup.cfg +0 -0
  71. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/.DS_Store +0 -0
  72. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/SimBA_logo.ico +0 -0
  73. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/__init__.py +0 -0
  74. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.DS_Store +0 -0
  75. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.env +0 -0
  76. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/TheGoldenLab.PNG +0 -0
  77. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/__init__.py +0 -0
  78. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/dash_simba_base.css +0 -0
  79. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/.DS_Store +0 -0
  80. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Playwrite ES Deco.ttf +0 -0
  81. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Poppins Bold.ttf +0 -0
  82. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Poppins Regular.ttf +0 -0
  83. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/UbuntuMono-Regular.ttf +0 -0
  84. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/.DS_Store +0 -0
  85. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.icns +0 -0
  86. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.ico +0 -0
  87. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.png +0 -0
  88. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3.ico +0 -0
  89. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3.png +0 -0
  90. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3_small.png +0 -0
  91. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_4_small.png +0 -0
  92. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/__init__.py +0 -0
  93. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus.png +0 -0
  94. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus_2.png +0 -0
  95. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus_3.png +0 -0
  96. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/about.png +0 -0
  97. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/add.png +0 -0
  98. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/add_on.png +0 -0
  99. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/analyze_blue.png +0 -0
  100. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/analyze_green.png +0 -0
  101. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/api.png +0 -0
  102. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/application.png +0 -0
  103. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/archive.png +0 -0
  104. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/arrow_down_green.png +0 -0
  105. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/arrow_down_green_2.png +0 -0
  106. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/attributes_large.png +0 -0
  107. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/audio.png +0 -0
  108. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/average.png +0 -0
  109. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/average_2.png +0 -0
  110. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/avi.png +0 -0
  111. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/background.png +0 -0
  112. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_blue.png +0 -0
  113. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_green.png +0 -0
  114. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_light_blue.png +0 -0
  115. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/batch.png +0 -0
  116. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/black_and_white.png +0 -0
  117. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/black_cross.png +0 -0
  118. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/blur.png +0 -0
  119. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bmp.png +0 -0
  120. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bold.png +0 -0
  121. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/boolean.png +0 -0
  122. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/boris.png +0 -0
  123. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/branches_small.png +0 -0
  124. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/brightness.png +0 -0
  125. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/browse.png +0 -0
  126. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/browse_small.png +0 -0
  127. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/brush_large.png +0 -0
  128. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble.png +0 -0
  129. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble_green.png +0 -0
  130. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble_pink.png +0 -0
  131. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bullet_grey.png +0 -0
  132. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bullseye.png +0 -0
  133. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bw.png +0 -0
  134. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/calipher.png +0 -0
  135. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/camera.png +0 -0
  136. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/category.png +0 -0
  137. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/center.png +0 -0
  138. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/change.png +0 -0
  139. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/check_blue.png +0 -0
  140. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle.png +0 -0
  141. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_2.png +0 -0
  142. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_black.png +0 -0
  143. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_large.png +0 -0
  144. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_small.png +0 -0
  145. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clahe.png +0 -0
  146. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clean.png +0 -0
  147. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clean_red.png +0 -0
  148. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clf.png +0 -0
  149. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clf_2.png +0 -0
  150. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clip.png +0 -0
  151. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clock.png +0 -0
  152. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/close.png +0 -0
  153. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cluster.png +0 -0
  154. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cluster_2.png +0 -0
  155. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/coco_small.png +0 -0
  156. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/color_wheel.png +0 -0
  157. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat.png +0 -0
  158. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/__init__.py +0 -0
  159. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/horizontal.png +0 -0
  160. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/mixed_mosaic.png +0 -0
  161. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/mosaic.png +0 -0
  162. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/vertical.png +0 -0
  163. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_videos.png +0 -0
  164. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/convert.png +0 -0
  165. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/counter.png +0 -0
  166. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cpu_small.png +0 -0
  167. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/create.png +0 -0
  168. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop.png +0 -0
  169. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_2.png +0 -0
  170. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_green.png +0 -0
  171. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_red.png +0 -0
  172. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crossfade.png +0 -0
  173. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/csv_black.png +0 -0
  174. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/csv_grey.png +0 -0
  175. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/curve_black.png +0 -0
  176. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/danger.png +0 -0
  177. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dash_simba.css +0 -0
  178. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/data_table.png +0 -0
  179. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_blue.png +0 -0
  180. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_purple.png +0 -0
  181. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_small.png +0 -0
  182. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/delete_large_orange.png +0 -0
  183. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/delete_large_red.png +0 -0
  184. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dependency.png +0 -0
  185. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/details.png +0 -0
  186. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/developer.png +0 -0
  187. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dice_green.png +0 -0
  188. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dimensionality_reduction.png +0 -0
  189. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction.png +0 -0
  190. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction_2.png +0 -0
  191. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction_3.png +0 -0
  192. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/display_large.png +0 -0
  193. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/distance.png +0 -0
  194. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/distance_red.png +0 -0
  195. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dlc_1.png +0 -0
  196. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dlc_2.png +0 -0
  197. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/documentation.png +0 -0
  198. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/documentation_large.png +0 -0
  199. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/download.png +0 -0
  200. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/draw.png +0 -0
  201. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dumbbell.png +0 -0
  202. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate.png +0 -0
  203. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_2_large.png +0 -0
  204. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_large.png +0 -0
  205. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_small.png +0 -0
  206. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ear_right.png +0 -0
  207. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ear_small.png +0 -0
  208. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/edit.png +0 -0
  209. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/edit_roi_large.png +0 -0
  210. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/egocentric.png +0 -0
  211. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/equation_small.png +0 -0
  212. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ethovision.png +0 -0
  213. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/exit.png +0 -0
  214. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/eye.png +0 -0
  215. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/factory.png +0 -0
  216. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward.png +0 -0
  217. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_green.png +0 -0
  218. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_large.png +0 -0
  219. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_large_2.png +0 -0
  220. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_reverse.png +0 -0
  221. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fastforward_green_2.png +0 -0
  222. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/feather_green.png +0 -0
  223. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/features.png +0 -0
  224. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ffmpeg.png +0 -0
  225. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/file.png +0 -0
  226. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/file_type.png +0 -0
  227. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fill.png +0 -0
  228. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/filter.png +0 -0
  229. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/finish.png +0 -0
  230. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fire.png +0 -0
  231. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first.png +0 -0
  232. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first_frame_blue.png +0 -0
  233. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first_green.png +0 -0
  234. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_black.png +0 -0
  235. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_green.png +0 -0
  236. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_red.png +0 -0
  237. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder.png +0 -0
  238. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder_2.png +0 -0
  239. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder_video.png +0 -0
  240. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/font.png +0 -0
  241. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/font_size.png +0 -0
  242. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forest.png +0 -0
  243. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forward.png +0 -0
  244. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forward_large.png +0 -0
  245. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/four_squares.png +0 -0
  246. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fps.png +0 -0
  247. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/frames.png +0 -0
  248. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/frames_2.png +0 -0
  249. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gamma.png +0 -0
  250. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gantt_large.png +0 -0
  251. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gantt_small.png +0 -0
  252. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gif.png +0 -0
  253. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/github.png +0 -0
  254. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/github_2.png +0 -0
  255. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gitter.png +0 -0
  256. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gitter_large.png +0 -0
  257. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu.png +0 -0
  258. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu_2.png +0 -0
  259. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu_3.png +0 -0
  260. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/green_check.png +0 -0
  261. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/green_dice.png +0 -0
  262. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/grey.png +0 -0
  263. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/greyscale.png +0 -0
  264. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/half_circle.png +0 -0
  265. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/half_circle_small.png +0 -0
  266. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/heatmap.png +0 -0
  267. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/height.png +0 -0
  268. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hexagon.png +0 -0
  269. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hexagon_small.png +0 -0
  270. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hierarchy.png +0 -0
  271. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hierarchy_2.png +0 -0
  272. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/histogram.png +0 -0
  273. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/home.png +0 -0
  274. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/horizontal.png +0 -0
  275. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/id_card.png +0 -0
  276. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/id_card_2.png +0 -0
  277. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/image.png +0 -0
  278. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/import.png +0 -0
  279. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/info.png +0 -0
  280. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/info_large.png +0 -0
  281. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ini.png +0 -0
  282. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/interaction_large.png +0 -0
  283. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/interactive_blue.png +0 -0
  284. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/invert.png +0 -0
  285. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_purple.png +0 -0
  286. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_red.png +0 -0
  287. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_yellow.png +0 -0
  288. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/jpeg.png +0 -0
  289. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/json.png +0 -0
  290. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/jump.png +0 -0
  291. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/keyboard.png +0 -0
  292. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label.png +0 -0
  293. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_blue.png +0 -0
  294. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_large.png +0 -0
  295. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_yellow.png +0 -0
  296. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme.png +0 -0
  297. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme_2.png +0 -0
  298. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme_3.png +0 -0
  299. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last.png +0 -0
  300. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last_frame_blue.png +0 -0
  301. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last_red.png +0 -0
  302. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/leaf.png +0 -0
  303. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_arrow_green.png +0 -0
  304. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_arrow_red.png +0 -0
  305. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_ear.png +0 -0
  306. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/light_bulb.png +0 -0
  307. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line.png +0 -0
  308. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_blue.png +0 -0
  309. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_light_blue.png +0 -0
  310. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_red.png +0 -0
  311. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/link.png +0 -0
  312. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/list.png +0 -0
  313. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load.png +0 -0
  314. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load_black.png +0 -0
  315. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load_blue.png +0 -0
  316. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/location.png +0 -0
  317. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/log.png +0 -0
  318. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/magnifying.png +0 -0
  319. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mars.png +0 -0
  320. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mean.png +0 -0
  321. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/median.png +0 -0
  322. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/merge.png +0 -0
  323. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics.png +0 -0
  324. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics_blue.png +0 -0
  325. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics_green.png +0 -0
  326. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus.png +0 -0
  327. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_blue_2.png +0 -0
  328. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_red.png +0 -0
  329. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_red_2.png +0 -0
  330. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mixing_panel.png +0 -0
  331. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/monitor.png +0 -0
  332. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mouse_head.png +0 -0
  333. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mouse_small.png +0 -0
  334. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mov.png +0 -0
  335. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/move.png +0 -0
  336. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/move_large.png +0 -0
  337. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mp4.png +0 -0
  338. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_blue.png +0 -0
  339. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_green.png +0 -0
  340. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_yellow.png +0 -0
  341. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/navigation.png +0 -0
  342. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/nose.png +0 -0
  343. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/number_black.png +0 -0
  344. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/obb.png +0 -0
  345. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one.png +0 -0
  346. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one_blue.png +0 -0
  347. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one_to_many.png +0 -0
  348. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/opacity.png +0 -0
  349. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/options_small.png +0 -0
  350. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/original_size.png +0 -0
  351. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/osf.png +0 -0
  352. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/osf_large.png +0 -0
  353. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outlier.png +0 -0
  354. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outside.png +0 -0
  355. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outside_2.png +0 -0
  356. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/overlap_iou.png +0 -0
  357. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/paint.png +0 -0
  358. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/palette_large.png +0 -0
  359. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/palette_small.png +0 -0
  360. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/parquet.png +0 -0
  361. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/path.png +0 -0
  362. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/path_2.png +0 -0
  363. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pct.png +0 -0
  364. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pct_2.png +0 -0
  365. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pdf_large.png +0 -0
  366. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/permutation_blue.png +0 -0
  367. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/photos.png +0 -0
  368. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/play.png +0 -0
  369. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/play_large_green.png +0 -0
  370. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plot.png +0 -0
  371. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus.png +0 -0
  372. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green.png +0 -0
  373. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green_2.png +0 -0
  374. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green_3.png +0 -0
  375. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/png.png +0 -0
  376. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/point.png +0 -0
  377. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/point_right_large.png +0 -0
  378. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pointing_left_large.png +0 -0
  379. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon.png +0 -0
  380. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon_2.png +0 -0
  381. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon_large.png +0 -0
  382. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pose.png +0 -0
  383. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pose_2.png +0 -0
  384. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/print.png +0 -0
  385. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/probability.png +0 -0
  386. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/progressbar_black.png +0 -0
  387. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/python.png +0 -0
  388. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/question_mark.png +0 -0
  389. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/range_large.png +0 -0
  390. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/readthedocs_logo.png +0 -0
  391. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/recent_files.png +0 -0
  392. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle.png +0 -0
  393. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_1_large.png +0 -0
  394. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_2.png +0 -0
  395. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_red.png +0 -0
  396. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_small.png +0 -0
  397. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/remove_bg.png +0 -0
  398. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reorganize.png +0 -0
  399. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/resize.png +0 -0
  400. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/restart.png +0 -0
  401. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse.png +0 -0
  402. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_blue.png +0 -0
  403. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_large.png +0 -0
  404. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_large_red.png +0 -0
  405. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind.png +0 -0
  406. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_blue_2.png +0 -0
  407. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_large.png +0 -0
  408. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_red.png +0 -0
  409. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/right_arrow_green.png +0 -0
  410. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/right_arrow_red.png +0 -0
  411. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rocket.png +0 -0
  412. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/roi.png +0 -0
  413. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/roi_green.png +0 -0
  414. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rotate.png +0 -0
  415. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rounding.png +0 -0
  416. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ruler.png +0 -0
  417. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ruler_large.png +0 -0
  418. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/run.png +0 -0
  419. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sample.png +0 -0
  420. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save.png +0 -0
  421. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_blue.png +0 -0
  422. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_green.png +0 -0
  423. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_large.png +0 -0
  424. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_small.png +0 -0
  425. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_1.png +0 -0
  426. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_2.png +0 -0
  427. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_3.png +0 -0
  428. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/search.png +0 -0
  429. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/segment.png +0 -0
  430. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/seperate_green.png +0 -0
  431. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/settings.png +0 -0
  432. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shade.png +0 -0
  433. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shap.png +0 -0
  434. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shap_2.png +0 -0
  435. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_large.png +0 -0
  436. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_small.png +0 -0
  437. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_small_2.png +0 -0
  438. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sigma.png +0 -0
  439. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/simba_logo_2.png +0 -0
  440. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_black.png +0 -0
  441. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_blue.png +0 -0
  442. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_green.png +0 -0
  443. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/size_black.png +0 -0
  444. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip.png +0 -0
  445. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_2.png +0 -0
  446. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_forward_large.png +0 -0
  447. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_previous_large.png +0 -0
  448. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sleap_small.png +0 -0
  449. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/smooth.png +0 -0
  450. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/speedometer.png +0 -0
  451. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/split.png +0 -0
  452. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/split_2.png +0 -0
  453. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/spread.png +0 -0
  454. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/square_black.png +0 -0
  455. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stack.png +0 -0
  456. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/star.png +0 -0
  457. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stop.png +0 -0
  458. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stopwatch.png +0 -0
  459. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stream.png +0 -0
  460. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/style.png +0 -0
  461. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/subset_blue.png +0 -0
  462. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/superimpose.png +0 -0
  463. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/svg.png +0 -0
  464. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/system.png +0 -0
  465. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/t.png +0 -0
  466. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/table.png +0 -0
  467. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/table_2.png +0 -0
  468. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text.png +0 -0
  469. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_bg.png +0 -0
  470. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_black.png +0 -0
  471. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_color.png +0 -0
  472. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_color_2.png +0 -0
  473. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_spacing.png +0 -0
  474. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/threshold.png +0 -0
  475. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tick.png +0 -0
  476. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tick_large.png +0 -0
  477. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tiff.png +0 -0
  478. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tile_green.png +0 -0
  479. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/time.png +0 -0
  480. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/timer.png +0 -0
  481. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/timer_2.png +0 -0
  482. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/trash.png +0 -0
  483. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/trash_red.png +0 -0
  484. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/triangle_black.png +0 -0
  485. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/triangle_small.png +0 -0
  486. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tv_large.png +0 -0
  487. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/two.png +0 -0
  488. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ultralytics_1.png +0 -0
  489. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ultralytics_2.png +0 -0
  490. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/verbose.png +0 -0
  491. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/vertical.png +0 -0
  492. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video.png +0 -0
  493. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_2.png +0 -0
  494. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_file_large.png +0 -0
  495. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_large.png +0 -0
  496. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize.png +0 -0
  497. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize_blue.png +0 -0
  498. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize_green.png +0 -0
  499. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/walk.png +0 -0
  500. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/wand_blue.png +0 -0
  501. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/warning.png +0 -0
  502. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/watermark_green.png +0 -0
  503. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/webm.png +0 -0
  504. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/webp.png +0 -0
  505. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/weight.png +0 -0
  506. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/weights.png +0 -0
  507. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/width.png +0 -0
  508. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/x.png +0 -0
  509. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/y.png +0 -0
  510. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zero.png +0 -0
  511. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zoom_in.png +0 -0
  512. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zoom_out.png +0 -0
  513. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/__init__.py +0 -0
  514. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/about_me.png +0 -0
  515. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg.png +0 -0
  516. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg_2.png +0 -0
  517. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg_2024.png +0 -0
  518. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/landing.mp4 +0 -0
  519. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/simon_n.webp +0 -0
  520. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash.mp4 +0 -0
  521. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash.pptx +0 -0
  522. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash_2024.mp4 +0 -0
  523. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/~$splash.pptx +0 -0
  524. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/__init__.py +0 -0
  525. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/critical_values_05.pickle +0 -0
  526. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/feature_extraction_headers.csv +0 -0
  527. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/features.csv +0 -0
  528. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/model_names.parquet +0 -0
  529. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/unsupervised_example_x.csv +0 -0
  530. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo.yaml +0 -0
  531. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/tappelby.csv +0 -0
  532. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/yolo_7bps.csv +0 -0
  533. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/yolo_mitra.csv +0 -0
  534. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/UbuntuMono-Regular.ttf +0 -0
  535. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/__init__.py +0 -0
  536. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/animal_distances.jpg +0 -0
  537. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/baseline_scale.jpg +0 -0
  538. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/color_bar.jpg +0 -0
  539. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/down_arrow.jpg +0 -0
  540. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/feature_categories/__init__.py +0 -0
  541. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/feature_categories/shap_feature_categories.csv +0 -0
  542. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/intruder_movement.jpg +0 -0
  543. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/intruder_shape.jpg +0 -0
  544. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_intruder_movement.jpg +0 -0
  545. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_intruder_shape.jpg +0 -0
  546. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_movement.jpg +0 -0
  547. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_shape.jpg +0 -0
  548. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/side_scale.jpg +0 -0
  549. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/side_scale_5.jpg +0 -0
  550. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/ubuntu.regular.ttf +0 -0
  551. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/__init__.py +0 -0
  552. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/grid_floor.stl +0 -0
  553. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_lever.stl +0 -0
  554. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_tray.stl +0 -0
  555. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_walls.stl +0 -0
  556. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/__init__.py +0 -0
  557. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/botsort.yml +0 -0
  558. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/bytetrack.yml +0 -0
  559. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/tow_bytetrack.yaml +0 -0
  560. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/__init__.py +0 -0
  561. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/features.csv +0 -0
  562. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/model_names.parquet +0 -0
  563. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/__init__.py +0 -0
  564. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/agg_boundary_stats.py +0 -0
  565. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/boundary_menus.py +0 -0
  566. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/boundary_statistics.py +0 -0
  567. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/find_boundaries.py +0 -0
  568. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/visualize_boundaries.py +0 -0
  569. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/yolo/__init__.py +0 -0
  570. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/__init__.py +0 -0
  571. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_analyzer.py +0 -0
  572. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_clf_statistics.py +0 -0
  573. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_main_popup.py +0 -0
  574. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_movement_statistics.py +0 -0
  575. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_tools.py +0 -0
  576. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_visualizer.py +0 -0
  577. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/SimBA_dash_app.py +0 -0
  578. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/__init__.py +0 -0
  579. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/dash_app.py +0 -0
  580. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/run_dash_tkinter.py +0 -0
  581. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/.DS_Store +0 -0
  582. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/__init__.py +0 -0
  583. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/advanced_interpolator.py +0 -0
  584. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/advanced_smoothing.py +0 -0
  585. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/agg_clf_calculator.py +0 -0
  586. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/agg_clf_counter_mp.py +0 -0
  587. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/blob_location_computer.py +0 -0
  588. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/boolean_conditional_calculator.py +0 -0
  589. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/circling_detector.py +0 -0
  590. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/__init__.py +0 -0
  591. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/circular_statistics.py +0 -0
  592. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/create_shap_log.py +0 -0
  593. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/data.py +0 -0
  594. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/geometry.py +0 -0
  595. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/image.py +0 -0
  596. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/statistics.py +0 -0
  597. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/timeseries.py +0 -0
  598. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/utils.py +0 -0
  599. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_analyzer.py +0 -0
  600. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_clf_statistics.py +0 -0
  601. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_movement_statistics.py +0 -0
  602. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/directing_animal_to_bodypart.py +0 -0
  603. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/directing_other_animals_calculator.py +0 -0
  604. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/distance_calculator.py +0 -0
  605. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/distance_timbin_calculator.py +0 -0
  606. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/egocentric_aligner.py +0 -0
  607. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/find_animal_blob_location.py +0 -0
  608. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/freezing_detector.py +0 -0
  609. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/fsttc_calculator.py +0 -0
  610. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/gibbs_sampler.py +0 -0
  611. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolate.py +0 -0
  612. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolate_pose.py +0 -0
  613. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolation_smoothing.py +0 -0
  614. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/kleinberg_calculator.py +0 -0
  615. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/light_dark_box_analyzer.py +0 -0
  616. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/mutual_exclusivity_corrector.py +0 -0
  617. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/pup_retrieval_calculator.py +0 -0
  618. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/pybursts_calculator.py +0 -0
  619. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_bout_based_calculator.py +0 -0
  620. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_calculator.py +0 -0
  621. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_frame_based_calculator.py +0 -0
  622. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/smoothing.py +0 -0
  623. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/spontaneous_alternation_calculator.py +0 -0
  624. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_clf_calculator.py +0 -0
  625. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_movement_calculator.py +0 -0
  626. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_movement_calculator_mp.py +0 -0
  627. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/yolo_track_cleaner.py +0 -0
  628. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/.DS_Store +0 -0
  629. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/__init__.py +0 -0
  630. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/aggression_feature_extractor.py +0 -0
  631. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/amber_feature_extractor.py +0 -0
  632. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/boundary_rearing_analyzer.py +0 -0
  633. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/cave_fish_featurizer.py +0 -0
  634. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_14bp.py +0 -0
  635. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_16bp.py +0 -0
  636. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_4bp.py +0 -0
  637. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_7bp.py +0 -0
  638. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_8bp.py +0 -0
  639. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_8bps_2_animals.py +0 -0
  640. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_9bp.py +0 -0
  641. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_user_defined.py +0 -0
  642. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_subsets.py +0 -0
  643. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/gerbil_featurizer.py +0 -0
  644. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/add_probability_cnt_features.py +0 -0
  645. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_3_scratch_3.py +0 -0
  646. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_scratch_1.py +0 -0
  647. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_scratch_2.py +0 -0
  648. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/count_values_in_range.py +0 -0
  649. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/doctests.py +0 -0
  650. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/egocentrical_aligner.py +0 -0
  651. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2022.py +0 -0
  652. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_2.py +0 -0
  653. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_3.py +0 -0
  654. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_4.py +0 -0
  655. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_5.py +0 -0
  656. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/graph_3d_plotter.py +0 -0
  657. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/graph_creator.py +0 -0
  658. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/make_splash.py +0 -0
  659. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/mutual_exclusive.py +0 -0
  660. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/peaks.py +0 -0
  661. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/read_in_mp.py +0 -0
  662. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/termite_rois.csv +0 -0
  663. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/time_stamp_calculator.py +0 -0
  664. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_color.py +0 -0
  665. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_rotator.py +0 -0
  666. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_rotator_mp.py +0 -0
  667. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/mitra_feature_extractor.py +0 -0
  668. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/perimeter_jit.py +0 -0
  669. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/rat_social_featurizer.py +0 -0
  670. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/riptortus_featurizer.py +0 -0
  671. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/straub_tail_analyzer.py +0 -0
  672. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/__init__.py +0 -0
  673. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/extract_labelled_frames.py +0 -0
  674. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/extract_labelling_meta.py +0 -0
  675. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/labelling_advanced_interface.py +0 -0
  676. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/labelling_interface.py +0 -0
  677. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/mitra_style_appender.py +0 -0
  678. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/play_annotation_video.py +0 -0
  679. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/single_clf_appender_excel.py +0 -0
  680. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/standard_labeller.py +0 -0
  681. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/targeted_annotations_clips.py +0 -0
  682. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/.DS_Store +0 -0
  683. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/__init__.py +0 -0
  684. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/abstract_classes.py +0 -0
  685. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/annotator_mixin.py +0 -0
  686. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/circular_statistics.py +0 -0
  687. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/config_reader.py +0 -0
  688. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/feature_extraction_mixin.py +0 -0
  689. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/feature_extraction_supplement_mixin.py +0 -0
  690. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/image_mixin.py +0 -0
  691. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/network_mixin.py +0 -0
  692. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/plotting_mixin.py +0 -0
  693. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/pop_up_mixin.py +0 -0
  694. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/pose_importer_mixin.py +0 -0
  695. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/statistics_mixin.py +0 -0
  696. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/timeseries_features_mixin.py +0 -0
  697. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/train_model_mixin.py +0 -0
  698. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/unsupervised_mixin.py +0 -0
  699. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/__init__.py +0 -0
  700. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/grid_search_multiclass_rf.py +0 -0
  701. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/grid_search_rf.py +0 -0
  702. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_batch.py +0 -0
  703. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_multiclass_batch.py +0 -0
  704. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_validation.py +0 -0
  705. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/ordinal_clf.py +0 -0
  706. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/__init__.py +0 -0
  707. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/metrics.py +0 -0
  708. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/model.py +0 -0
  709. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/sam_inference.py +0 -0
  710. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_multiclass_rf.py +0 -0
  711. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_multilabel_rf.py +0 -0
  712. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_rf.py +0 -0
  713. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_pose_track_inference.py +0 -0
  714. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/__init__.py +0 -0
  715. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location.py +0 -0
  716. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location_advanced.py +0 -0
  717. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location_mp.py +0 -0
  718. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement.py +0 -0
  719. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement_advanced.py +0 -0
  720. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement_mp.py +0 -0
  721. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/skip_outlier_correction.py +0 -0
  722. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/.DS_Store +0 -0
  723. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/EzPathPlot.py +0 -0
  724. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ROI_feature_visualizer.py +0 -0
  725. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ROI_feature_visualizer_mp.py +0 -0
  726. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/__init__.py +0 -0
  727. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/annotation_videos.py +0 -0
  728. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/blob_plotter.py +0 -0
  729. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/blob_visualizer.py +0 -0
  730. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/circular_feature_overlay_plotter.py +0 -0
  731. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/circular_plotting.py +0 -0
  732. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/clf_validator.py +0 -0
  733. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/clf_validator_mp.py +0 -0
  734. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/cue_light_visualizer.py +0 -0
  735. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/data_plotter.py +0 -0
  736. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_to_bodypart_visualizer.py +0 -0
  737. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_visualizer.py +0 -0
  738. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_visualizer_mp.py +0 -0
  739. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/distance_plotter.py +0 -0
  740. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/distance_plotter_mp.py +0 -0
  741. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ez_path_plot.py +0 -0
  742. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/frame_mergerer_ffmpeg.py +0 -0
  743. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_creator.py +0 -0
  744. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_creator_mp.py +0 -0
  745. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_plotly.py +0 -0
  746. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/geometry_plotter.py +0 -0
  747. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_clf.py +0 -0
  748. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_clf_mp.py +0 -0
  749. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_location.py +0 -0
  750. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_location_mp.py +0 -0
  751. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/interactive_probability_grapher.py +0 -0
  752. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/light_dark_box_plotter.py +0 -0
  753. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/path_plotter.py +0 -0
  754. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/plot_clf_results.py +0 -0
  755. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/pose_plotter.py +0 -0
  756. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/pose_plotter_mp.py +0 -0
  757. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/probability_plot_creator.py +0 -0
  758. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/probability_plot_creator_mp.py +0 -0
  759. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/roi_plotter.py +0 -0
  760. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/roi_plotter_mp.py +0 -0
  761. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/sam_plotter.py +0 -0
  762. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/shap_agg_stats_visualizer.py +0 -0
  763. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/single_run_model_validation_video.py +0 -0
  764. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/single_run_model_validation_video_mp.py +0 -0
  765. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/spontaneous_alternation_plotter.py +0 -0
  766. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/tools/__init__.py +0 -0
  767. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/tools/tkinter_tools.py +0 -0
  768. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_pose_track_visualizer.py +0 -0
  769. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_pose_visualizer.py +0 -0
  770. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/.DS_Store +0 -0
  771. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/__init__.py +0 -0
  772. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/bp_names/__init__.py +0 -0
  773. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/bp_names/bp_names.csv +0 -0
  774. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/configuration_names/__init__.py +0 -0
  775. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/configuration_names/pose_config_names.csv +0 -0
  776. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/no_animals/__init__.py +0 -0
  777. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/no_animals/no_animals.csv +0 -0
  778. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/1.png +0 -0
  779. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/10.png +0 -0
  780. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/11.png +0 -0
  781. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/12.png +0 -0
  782. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/13.png +0 -0
  783. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/14.png +0 -0
  784. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/15.png +0 -0
  785. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/16.png +0 -0
  786. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/2.png +0 -0
  787. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/3.png +0 -0
  788. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/4.png +0 -0
  789. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/5.png +0 -0
  790. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/6.png +0 -0
  791. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/7.png +0 -0
  792. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/8.png +0 -0
  793. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/9.png +0 -0
  794. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/.DS_Store +0 -0
  795. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/__init__.py +0 -0
  796. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/dlc_importer_csv.py +0 -0
  797. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/facemap_h5_importer.py +0 -0
  798. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/import_mars.py +0 -0
  799. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/madlc_importer.py +0 -0
  800. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/misc/__init__.py +0 -0
  801. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/misc/apt_trk_importer.py +0 -0
  802. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/read_DANNCE_mat.py +0 -0
  803. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/simba_blob_importer.py +0 -0
  804. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/simba_yolo_importer.py +0 -0
  805. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_csv_importer.py +0 -0
  806. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_h5_importer.py +0 -0
  807. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_slp_importer.py +0 -0
  808. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/superanimal_import.py +0 -0
  809. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/trk_importer.py +0 -0
  810. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/__init__.py +0 -0
  811. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/pose_reset.py +0 -0
  812. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/remove_keypoints.py +0 -0
  813. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/reorganize_keypoint.py +0 -0
  814. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/reverse_pose.py +0 -0
  815. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/requirements.txt +0 -0
  816. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/.DS_Store +0 -0
  817. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_analyzer.py +0 -0
  818. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_directing_analyzer.py +0 -0
  819. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_feature_analyzer.py +0 -0
  820. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_size_standardizer.py +0 -0
  821. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_time_bin_calculator.py +0 -0
  822. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/__init__.py +0 -0
  823. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/import_roi_csvs.py +0 -0
  824. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_modifier_ui.py +0 -0
  825. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_roi_bufferer.py +0 -0
  826. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_roi_modifier_tkinter.py +0 -0
  827. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_aggregate_statistics_analyzer.py +0 -0
  828. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_aggregate_stats_mp.py +0 -0
  829. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_clf_calculator.py +0 -0
  830. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_clf_calculator_mp.py +0 -0
  831. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ruler.py +0 -0
  832. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_circle_tkinter.py +0 -0
  833. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_polygon_tkinter.py +0 -0
  834. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_rectangle_tkinter.py +0 -0
  835. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_time_bins_analyzer.py +0 -0
  836. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ui.py +0 -0
  837. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ui_mixin.py +0 -0
  838. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_utils.py +0 -0
  839. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/.DS_Store +0 -0
  840. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/BENTO_appender.py +0 -0
  841. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/BORIS_appender.py +0 -0
  842. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/__init__.py +0 -0
  843. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/boris_source_cleaner.py +0 -0
  844. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/deepethogram_importer.py +0 -0
  845. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/ethovision_import.py +0 -0
  846. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/observer_importer.py +0 -0
  847. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/shah_appender.py +0 -0
  848. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/solomon_importer.py +0 -0
  849. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/third_party_appender.py +0 -0
  850. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/tools.py +0 -0
  851. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/__init__.py +0 -0
  852. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +0 -0
  853. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py +0 -0
  854. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py +0 -0
  855. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_multi_to_yolo.py +0 -0
  856. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_single_to_multi_format_converter.py +0 -0
  857. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_to_labelme.py +0 -0
  858. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_to_yolo.py +0 -0
  859. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_df.py +0 -0
  860. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_dlc.py +0 -0
  861. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo.py +0 -0
  862. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo_keypoints.py +0 -0
  863. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py +0 -0
  864. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/litpose_to_yolo_keypoints.py +0 -0
  865. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_roi_to_yolo.py +0 -0
  866. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_to_yolo.py +0 -0
  867. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_to_yolo_seg.py +0 -0
  868. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +0 -0
  869. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py +0 -0
  870. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_to_yolo.py +0 -0
  871. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/utils.py +0 -0
  872. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/yolo_to_imgs.py +0 -0
  873. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/.DS_Store +0 -0
  874. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/__init__.py +0 -0
  875. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/blob_quick_check_interface.py +0 -0
  876. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/blob_tracker_ui.py +0 -0
  877. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/create_project_ui.py +0 -0
  878. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/get_tree_view.py +0 -0
  879. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/import_pose_frame.py +0 -0
  880. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/import_videos_frame.py +0 -0
  881. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/machine_model_settings_ui.py +0 -0
  882. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/ml_settings_frm.py +0 -0
  883. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/.DS_Store +0 -0
  884. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/__init__.py +0 -0
  885. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/about_simba_pop_up.py +0 -0
  886. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/animal_directing_other_animals_pop_up.py +0 -0
  887. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/append_roi_features_animals_pop_up.py +0 -0
  888. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py +0 -0
  889. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/archive_files_pop_up.py +0 -0
  890. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/batch_preprocess_pop_up.py +0 -0
  891. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/blob_visualizer_pop_up.py +0 -0
  892. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py +0 -0
  893. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/change_speed_popup.py +0 -0
  894. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/check_videos_seekable_pop_up.py +0 -0
  895. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_add_remove_print_pop_up.py +0 -0
  896. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_annotation_counts_pop_up.py +0 -0
  897. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_by_roi_pop_up.py +0 -0
  898. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_by_timebins_pop_up.py +0 -0
  899. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py +0 -0
  900. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_plot_pop_up.py +0 -0
  901. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_probability_plot_pop_up.py +0 -0
  902. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_validation_plot_pop_up.py +0 -0
  903. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py +0 -0
  904. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/create_user_defined_pose_configuration_pop_up.py +0 -0
  905. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/csv_2_parquet_pop_up.py +0 -0
  906. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_clf_analyzer_popup.py +0 -0
  907. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_data_analyzer_popup.py +0 -0
  908. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_main_popup.py +0 -0
  909. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_movement_analyzer_popup.py +0 -0
  910. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_visualizer_popup.py +0 -0
  911. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/data_plot_pop_up.py +0 -0
  912. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/delete_all_rois_pop_up.py +0 -0
  913. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/directing_animal_to_bodypart_plot_pop_up.py +0 -0
  914. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/directing_other_animals_plot_pop_up.py +0 -0
  915. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/direction_animal_to_bodypart_settings_pop_up.py +0 -0
  916. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_analysis_pop_up.py +0 -0
  917. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_plot_pop_up.py +0 -0
  918. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_timebins_popup.py +0 -0
  919. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_annotations_to_labelme_popup.py +0 -0
  920. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_h5_inference_to_yolo_popup.py +0 -0
  921. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_to_labelme_popup.py +0 -0
  922. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_to_yolo_keypoints_popup.py +0 -0
  923. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py +0 -0
  924. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/egocentric_alignment_pop_up.py +0 -0
  925. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/extract_annotation_frames_pop_up.py +0 -0
  926. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/ez_path_plot_popup.py +0 -0
  927. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/fsttc_pop_up.py +0 -0
  928. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/gantt_pop_up.py +0 -0
  929. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/heatmap_clf_pop_up.py +0 -0
  930. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/heatmap_location_pop_up.py +0 -0
  931. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/helpers.py +0 -0
  932. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/import_roi_csv_popup.py +0 -0
  933. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/initialize_blob_tracking_pop_up.py +0 -0
  934. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/interpolate_pop_up.py +0 -0
  935. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/kleinberg_pop_up.py +0 -0
  936. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_bbox_to_yolo_bbox_popup.py +0 -0
  937. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_dir_to_csv_popup.py +0 -0
  938. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_to_df_popup.py +0 -0
  939. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_to_imgs_popup.py +0 -0
  940. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/make_path_plot_pop_up.py +0 -0
  941. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/merge_coco_keypoint_files_pop_up.py +0 -0
  942. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/min_max_draw_size_popup.py +0 -0
  943. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/movement_analysis_time_bins_pop_up.py +0 -0
  944. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/multiple_videos_to_frames_popup.py +0 -0
  945. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/mutual_exclusivity_pop_up.py +0 -0
  946. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/outlier_settings_pop_up.py +0 -0
  947. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/path_plot_pop_up.py +0 -0
  948. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pose_bp_drop_pop_up.py +0 -0
  949. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pose_reorganizer_pop_up.py +0 -0
  950. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/print_video_meta_popup.py +0 -0
  951. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pup_retrieval_pop_up.py +0 -0
  952. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/quick_path_plot_pop_up.py +0 -0
  953. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/remove_roi_features_pop_up.py +0 -0
  954. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_aggregate_stats_popup.py +0 -0
  955. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_analysis_pop_up.py +0 -0
  956. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_analysis_time_bins_pop_up.py +0 -0
  957. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_features_plot_pop_up.py +0 -0
  958. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_size_standardizer_popup.py +0 -0
  959. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_tracking_plot_pop_up.py +0 -0
  960. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_video_table_pop_up.py +0 -0
  961. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/run_machine_models_popup.py +0 -0
  962. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/select_video_for_labelling_popup.py +0 -0
  963. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py +0 -0
  964. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/severity_analysis_pop_up.py +0 -0
  965. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py +0 -0
  966. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +0 -0
  967. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/single_video_to_frames_popup.py +0 -0
  968. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +0 -0
  969. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +0 -0
  970. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py +0 -0
  971. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/smoothing_popup.py +0 -0
  972. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/splash_popup.py +0 -0
  973. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/spontaneous_alternation_pop_up.py +0 -0
  974. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/subset_feature_extractor_pop_up.py +0 -0
  975. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/targeted_annotation_clips_pop_up.py +0 -0
  976. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/third_party_annotator_appender_pop_up.py +0 -0
  977. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/validation_plot_pop_up.py +0 -0
  978. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py +0 -0
  979. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_inference_popup.py +0 -0
  980. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_plot_results.py +0 -0
  981. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_pose_train_popup.py +0 -0
  982. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/px_to_mm_ui.py +0 -0
  983. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/tkinter_functions.py +0 -0
  984. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/user_defined_pose_creator.py +0 -0
  985. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/utils.py +0 -0
  986. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/video_info_ui.py +0 -0
  987. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/video_timelaps.py +0 -0
  988. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/.DS_Store +0 -0
  989. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/__init__.py +0 -0
  990. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/bout_aggregator.py +0 -0
  991. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_frequentist_calculator.py +0 -0
  992. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_validation_calculator.py +0 -0
  993. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_video_visualizer.py +0 -0
  994. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_xai_calculator.py +0 -0
  995. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/clusterer_comparison_calculator.py +0 -0
  996. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/data_extractor.py +0 -0
  997. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/data_map.yaml +0 -0
  998. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/dataset_creator.py +0 -0
  999. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/dbcv_calculator.py +0 -0
  1000. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/embedding_correlation_calculator.py +0 -0
  1001. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/enums.py +0 -0
  1002. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/grid_search_visualizers.py +0 -0
  1003. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/hdbscan_clusterer.py +0 -0
  1004. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/outlier_detector.py +0 -0
  1005. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/.DS_Store +0 -0
  1006. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_frequentist_stats_popup.py +0 -0
  1007. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_validation_pop_up.py +0 -0
  1008. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_videos_popup.py +0 -0
  1009. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_xai_popup.py +0 -0
  1010. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/clusterer_comparison_popup.py +0 -0
  1011. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/data_extractor_popup.py +0 -0
  1012. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/embedding_correlations_popup.py +0 -0
  1013. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/fit_cluster_popup.py +0 -0
  1014. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/fit_dim_reduction_popup.py +0 -0
  1015. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/grid_search_visualizer_popup.py +0 -0
  1016. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/print_embedding_info_popup.py +0 -0
  1017. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/transform_cluster_popup.py +0 -0
  1018. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/transform_dim_reduction_popup.py +0 -0
  1019. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/tsne.py +0 -0
  1020. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/umap_embedder.py +0 -0
  1021. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/unsupervised_main.py +0 -0
  1022. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/.DS_Store +0 -0
  1023. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/__init__.py +0 -0
  1024. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/cli/__init__.py +0 -0
  1025. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/cli/cli_tools.py +0 -0
  1026. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/config_creator.py +0 -0
  1027. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/custom_feature_extractor.py +0 -0
  1028. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/data.py +0 -0
  1029. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/enums.py +0 -0
  1030. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/errors.py +0 -0
  1031. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/warnings.py +0 -0
  1032. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/.DS_Store +0 -0
  1033. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/__init__.py +0 -0
  1034. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -0
  1035. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/batch_process_menus.py +0 -0
  1036. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/blob_tracking_executor.py +0 -0
  1037. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/brightness_contrast_ui.py +0 -0
  1038. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/calculate_px_dist.py +0 -0
  1039. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/clahe_ui.py +0 -0
  1040. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/egocentric_video_rotator.py +0 -0
  1041. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/extract_frames.py +0 -0
  1042. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/extract_seqframes.py +0 -0
  1043. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/multi_cropper.py +0 -0
  1044. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector.py +0 -0
  1045. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector_circle.py +0 -0
  1046. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector_polygon.py +0 -0
  1047. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/video_processing.py +0 -0
  1048. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/videos_to_frames.py +0 -0
  1049. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/dependency_links.txt +0 -0
  1050. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/entry_points.txt +0 -0
  1051. {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/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.2.1
3
+ Version: 5.2.3
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
@@ -3,5 +3,5 @@ cupy-cuda12x>=13.6.0
3
3
  shap==0.46.1.dev78
4
4
  cuml-cu12==24.12.0
5
5
  torch==2.5.0
6
- ultralytics==8.3.156
6
+ ultralytics==8.4.9
7
7
  nvidia-cuda-runtime-cu12
@@ -29,7 +29,7 @@ with open(GPU_REQUIREMENTS_PATH, "r") as f:
29
29
  # Setup configuration
30
30
  setuptools.setup(
31
31
  name="simba_uw_tf_dev",
32
- version="5.2.1",
32
+ version="5.2.3",
33
33
  author="Simon Nilsson, Jia Jie Choong, Sophia Hwang",
34
34
  author_email="sronilsson@gmail.com",
35
35
  description="Toolkit for computer classification and analysis of behaviors in experimental animals",
@@ -481,17 +481,14 @@ class SimbaProjectPopUp(ConfigReader, PopUpMixin):
481
481
  targeted_clip_annotator_btn = SimbaButton(parent=targeted_clip_annotator_frm, txt="Select video", cmd=select_labelling_video_targeted_clips, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
482
482
 
483
483
  lbl_tools_frm = CreateLabelFrameWithIcon(parent=tab7, header="LABELLING TOOLS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.ADVANCED_LBL.value, bg=Formats.LABELFRAME_GREY.value, padx=5, pady=5)
484
- visualize_annotation_img_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATIONS", cmd=ExtractAnnotationFramesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
485
- visualize_annotation_video_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATION BOUTS", txt_clr='blue', cmd=AnnotatedBoutsVideoPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
484
+ visualize_annotation_img_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATIONS FRAMES", cmd=ExtractAnnotationFramesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
485
+ visualize_annotation_video_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATION VIDEO BOUTS", txt_clr='blue', cmd=AnnotatedBoutsVideoPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
486
486
  third_party_annotations_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="APPEND THIRD-PARTY ANNOTATIONS", txt_clr='purple', cmd=ThirdPartyAnnotatorAppenderPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
487
487
  remove_roi_features_from_annotation_set = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="REMOVE ROI FEATURES FROM LABEL SET", txt_clr='darkred', cmd=RemoveROIFeaturesPopUp, cmd_kwargs={'config_path': lambda:self.config_path, 'dataset': lambda:'targets_inserted'}, thread=False)
488
488
  compute_annotation_statistics = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="COUNT ANNOTATIONS IN PROJECT", txt_clr='orange', cmd=ClfAnnotationCountPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
489
489
 
490
-
491
-
492
490
  label_trainmachinemodel = CreateLabelFrameWithIcon(parent=tab8, header="TRAIN MACHINE MODELS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.TRAIN_ML_MODEL.value, bg=Formats.LABELFRAME_GREY.value, padx=5, pady=5)
493
491
 
494
-
495
492
  button_trainmachinesettings = SimbaButton(parent=label_trainmachinemodel, width=Formats.BUTTON_WIDTH_XXL.value, txt="SETTINGS", img='settings', txt_clr='darkorange', cmd=self.trainmachinemodelsetting, thread=False)
496
493
  button_trainmachinemodel = SimbaButton(parent=label_trainmachinemodel, width=Formats.BUTTON_WIDTH_XXL.value, txt="TRAIN SINGLE MODEL (GLOBAL ENVIRONMENT)", img='one_blue', txt_clr='blue', cmd=self.train_single_model, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
497
494
 
@@ -1,3 +1,4 @@
1
+ F:/troubleshooting/varsha/project_folder/project_config.ini
1
2
  E:/troubleshooting/mitra/project_folder/project_config.ini
2
3
  F:/troubleshooting/sam/sam/project_folder/project_config.ini
3
4
  F:/troubleshooting/sophiaa/project_folder/project_config.ini
@@ -31,6 +31,8 @@
31
31
  "MOVEMENT_DISTANCE": "If checked, calculates the total distance traveled (in centimeters) for each animal throughout the entire video. Distance is measured as cumulative path length of the selected body-part.",
32
32
  "MOVEMENT_VELOCITY": "If checked, calculates the average velocity (in cm/s) for each animal throughout the entire video. Velocity is computed as distance divided by time.",
33
33
  "MOVEMENT_TRANSPOSE": "If checked, transposes the output CSV so that videos are in rows and animal/body-part/measurement combinations are in columns. Default: each row is a video-animal-bodypart-measurement combination.",
34
+ "MOVEMENT_INCLUDE_FRAME_COUNT": "If checked, includes the total number of frames in each video as a metadata column in the output.",
35
+ "MOVEMENT_INCLUDE_VIDEO_LENGTH": "If checked, includes each video's length in HH:MM:SS format as a metadata column in the output.",
34
36
  "DISTANCE_ANALYSIS_NUMBER_OF_PAIRS": "How many body-part pairs to analyze. SimBA creates one BODY-PART 1 / BODY-PART 2 row per pair.",
35
37
  "DISTANCE_ANALYSIS_BODY_PART": "Pick one body-part for this side of the pair. Each row must use two different body-parts.",
36
38
  "DISTANCE_ANALYSIS_BP_THRESHOLD": "Pose confidence cutoff (0.0-1.0). Frames where either body-part is below this value are ignored for this pair.",
@@ -433,5 +435,69 @@
433
435
  "ANNOTATION_BOUTS_CPU_CORES": "Number of CPU cores used for rendering. More cores are often faster but use more memory.",
434
436
  "ANNOTATION_BOUTS_USE_GPU": "If TRUE and a compatible NVIDIA GPU is available, SimBA uses GPU-enabled path where supported.",
435
437
  "ANNOTATION_BOUTS_SHOW_BBOX": "Bounding box mode: FALSE disables boxes, AXIS_ALIGNED draws horizontal boxes, ANIMAL_ALIGNED draws rotated animal-oriented boxes.",
436
- "ANNOTATION_BOUTS_TIMER": "Timer format shown in output clips. FALSE disables timer; SECONDS shows numeric seconds; HH:MM:SS.SSSS shows formatted timestamp."
438
+ "ANNOTATION_BOUTS_TIMER": "Timer format shown in output clips. FALSE disables timer; SECONDS shows numeric seconds; HH:MM:SS.SSSS shows formatted timestamp.",
439
+ "HORIZONTAL_FLIP": "If TRUE, flip the output video horizontally (mirror left-right). If FALSE, leave the video unchanged.",
440
+ "VERTICAL_FLIP": "If TRUE, flip the output video vertically (mirror top-bottom). If FALSE, leave the video unchanged.",
441
+ "WATERMARK_LOCATION": "Where the watermark image is placed on the output video. Options: TOP LEFT, TOP RIGHT, BOTTOM LEFT, BOTTOM RIGHT, or CENTER.",
442
+ "WATERMARK_IMAGE_PATH": "Path to the image file used as the watermark overlay (e.g. a PNG with transparency).",
443
+ "WATERMARK_OPACITY": "Opacity of the watermark overlay (0.0–1.0). 1.0 keeps the watermark fully visible; lower values make it more transparent.",
444
+ "WATERMARK_SCALE": "Watermark size as a percentage of the input image width (0–100%). 100% would use the full width; smaller values scale down.",
445
+ "PROGRESS_BAR_LOCATION": "Where the progress bar is drawn on the output video: TOP or BOTTOM.",
446
+ "PROGRESS_BAR_COLOR": "Color of the progress bar. Pick one of the color names shown in the dropdown.",
447
+ "PROGRESS_BAR_HEIGHT": "Height of the progress bar as a percentage of the video height (%).",
448
+ "SUPERIMPOSE_TEXT_LOCATION": "Where the free text overlay is placed on the output video (e.g. TOP LEFT, BOTTOM RIGHT).",
449
+ "SUPERIMPOSE_TEXT_VALUE": "The exact text string to overlay on the video.",
450
+ "SUPERIMPOSE_TEXT_FONT": "Font family used for the text overlay.",
451
+ "SUPERIMPOSE_TEXT_FONT_SIZE": "Font size (in points) for the text overlay.",
452
+ "SUPERIMPOSE_TEXT_FONT_COLOR": "Text fill color (chosen from the color names shown in the dropdown).",
453
+ "SUPERIMPOSE_TEXT_FONT_BORDER_COLOR": "Color of the text border/outline (chosen from the dropdown).",
454
+ "SUPERIMPOSE_TEXT_FONT_BORDER_WIDTH": "Thickness of the text border/outline (in pixels).",
455
+ "SUPERIMPOSE_VIDEO_NAME_TEXT_LOCATION": "Where the video filename text is placed on the output video (e.g. TOP LEFT, BOTTOM RIGHT).",
456
+ "SUPERIMPOSE_VIDEO_NAME_FONT": "Font family used for the video filename text overlay.",
457
+ "SUPERIMPOSE_VIDEO_NAME_FONT_SIZE": "Font size (in points) for the video filename text overlay.",
458
+ "SUPERIMPOSE_VIDEO_NAME_FONT_COLOR": "Text fill color (chosen from the color names shown in the dropdown).",
459
+ "SUPERIMPOSE_VIDEO_NAME_FONT_BORDER_COLOR": "Color of the video filename text border/outline (chosen from the dropdown).",
460
+ "SUPERIMPOSE_VIDEO_NAME_FONT_BORDER_WIDTH": "Thickness of the video filename text border/outline (in pixels).",
461
+ "SUPERIMPOSE_VIDEO_MAIN_VIDEO_PATH": "Path to the main video you want to add the overlay onto.",
462
+ "SUPERIMPOSE_VIDEO_OVERLAY_VIDEO_PATH": "Path to the second video that will be overlaid on the main video.",
463
+ "SUPERIMPOSE_VIDEO_OVERLAY_LOCATION": "Where the overlay video is placed on the main video: TOP LEFT, TOP RIGHT, BOTTOM LEFT, BOTTOM RIGHT, or CENTER.",
464
+ "SUPERIMPOSE_VIDEO_OVERLAY_OPACITY": "Opacity of the overlay video (0.0–1.0). Higher = more opaque.",
465
+ "SUPERIMPOSE_VIDEO_OVERLAY_SCALE": "Overlay scaling factor relative to the main video width. For example, 0.05 = 5% width; 0.5 = 50% width (dropdown values range from 0.05 to 0.95).",
466
+ "SUPERIMPOSE_FRAME_COUNT_FONT_SIZE": "Font size (in pixels) for the overlaid frame number.",
467
+ "SUPERIMPOSE_FRAME_COUNT_FONT_COLOR": "Text color of the overlaid frame number (chosen from the dropdown).",
468
+ "SUPERIMPOSE_FRAME_COUNT_FONT_BACKGROUND_COLOR": "Background box color behind the frame number text (chosen from the dropdown).",
469
+ "SUPERIMPOSE_FRAME_COUNT_FONT": "Font family used for the frame number text.",
470
+ "VIDEO_ROTATOR_USE_GPU": "If TRUE and a compatible NVIDIA GPU is available, rotate using FFmpeg GPU codecs (faster). If FALSE, use CPU rotation/encoding.",
471
+ "VIDEO_ROTATOR_USE_FFMPEG": "If TRUE, rotate using FFmpeg (instead of OpenCV). If FALSE, rotate using OpenCV/CPU.",
472
+ "ROTATE_VIDEO_DEGREES": "Rotate the video clockwise by this many degrees. Valid range is 1–359.",
473
+ "CONCAT_VIDEO_PATH_1": "Path to the first video to concatenate.",
474
+ "CONCAT_VIDEO_PATH_2": "Path to the second video to concatenate.",
475
+ "CONCAT_VIDEOS_USE_GPU": "If TRUE and a compatible GPU is available, uses GPU acceleration for concatenation/encoding when supported.",
476
+ "CROSSFADE_VIDEO_PATH_1": "Path to the first input video. This video provides the start of the timeline before the cross-fade.",
477
+ "CROSSFADE_VIDEO_PATH_2": "Path to the second input video. This video provides the end of the timeline during the cross-fade.",
478
+ "CROSSFADE_OUTPUT_FORMAT": "Output container/format for the cross-faded video (e.g. mp4, avi, webm).",
479
+ "CROSSFADE_METHOD": "Cross-fade transition style. The available methods come from FFmpeg and control how the blend occurs.",
480
+ "CROSSFADE_DURATION": "Cross-fade duration in seconds.",
481
+ "CROSSFADE_OFFSET": "Time offset into video 1 (HH:MM:SS). Cross-fade begins at this time in the first video.",
482
+ "BOX_BLUR_VIDEO_PATH": "Path to the input video to blur a user-selected ROI box on.",
483
+ "BOX_BLUR_BLUR_LEVEL": "Blur intensity for the ROI box (ratio 0.0–1.0). Higher = stronger blur.",
484
+ "BOX_BLUR_INVERT_REGION": "If TRUE, blur the unselected region (outside the ROI box). If FALSE, blur inside the ROI box.",
485
+ "CONVERT2BW_THRESHOLD": "Black/white threshold for binarizing the video (0.01–1.0). Higher values are stricter.",
486
+ "CONVERT2BW_VIDEO_PATH": "Video file to convert to black-and-white.",
487
+ "CONVERT2BW_VIDEO_DIR_PATH": "Directory of videos to convert to black-and-white.",
488
+ "AVG_FRAME_SAVE_DIR": "Folder where the generated average-frame PNG(s) will be saved.",
489
+ "AVG_FRAME_START_TIME": "Start time (HH:MM:SS) for the sample window to average. Leave blank to use the beginning.",
490
+ "AVG_FRAME_END_TIME": "End time (HH:MM:SS) for the sample window to average. Leave blank to use the end.",
491
+ "AVG_FRAME_VIDEO_PATH": "Video file to extract frames from and compute the average frame.",
492
+ "AVG_FRAME_VIDEO_DIR_PATH": "Directory containing video files to process when using batch mode.",
493
+ "CONVERT2MP4_QUALITY": "Quality for MP4 encoding. For CPU codecs this is CRF-like (10–100). For the GPU codec it becomes a preset: Low/Medium/High.",
494
+ "CONVERT2MP4_CODEC": "Compression codec used when converting to MP4 (CPU or GPU). Different codecs trade off speed and file size.",
495
+ "CONVERT2MP4_KEEP_AUDIO": "If TRUE, keep audio (AAC). If FALSE and audio exists, remove audio.",
496
+ "CONVERT2MP4_VIDEO_PATH": "Input video file to convert to MP4.",
497
+ "CONVERT2MP4_VIDEO_DIR_PATH": "Input directory containing videos to convert to MP4.",
498
+ "MULTICROP_INPUT_FOLDER": "Folder containing the input videos to crop.",
499
+ "MULTICROP_OUTPUT_FOLDER": "Folder where the cropped video clips will be saved.",
500
+ "MULTICROP_INPUT_VIDEO_FORMAT": "Input video file format inside the input folder (e.g. mp4).",
501
+ "MULTICROP_CROPS_PER_VIDEO": "How many cropped clips to create per input video (minimum 2).",
502
+ "MULTICROP_OUTPUT_QUALITY": "Encoding quality for the cropped output videos (1–100)."
437
503
  }
@@ -19,7 +19,7 @@ from simba.utils.checks import (
19
19
  from simba.utils.errors import InvalidInputError, NoDataError
20
20
  from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
21
21
  from simba.utils.read_write import (find_files_of_filetypes_in_directory,
22
- get_fn_ext, read_df)
22
+ get_fn_ext, read_df, seconds_to_timestamp)
23
23
 
24
24
 
25
25
  class MovementCalculator(ConfigReader, FeatureExtractionMixin):
@@ -58,7 +58,9 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
58
58
  distance: bool = True,
59
59
  velocity: bool = True,
60
60
  transpose: bool = False,
61
- verbose: bool = True):
61
+ verbose: bool = True,
62
+ frame_count: bool = False,
63
+ video_length: bool = False):
62
64
 
63
65
  ConfigReader.__init__(self, config_path=config_path)
64
66
  FeatureExtractionMixin.__init__(self)
@@ -89,6 +91,8 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
89
91
  check_valid_boolean(value=velocity, source=f'{self.__class__.__name__} velocity', raise_error=True)
90
92
  check_valid_boolean(value=transpose, source=f'{self.__class__.__name__} transpose', raise_error=True)
91
93
  check_valid_boolean(value=verbose, source=f'{self.__class__.__name__} verbose', raise_error=True)
94
+ check_valid_boolean(value=frame_count, source=f'{self.__class__.__name__} frame_count', raise_error=True)
95
+ check_valid_boolean(value=video_length, source=f'{self.__class__.__name__} video_length', raise_error=True)
92
96
  if not distance and not velocity:
93
97
  raise InvalidInputError(msg='distance AND velocity are both False. To compute movement metrics, set at least one value to True.', source=self.__class__.__name__)
94
98
  self.distance, self.velocity, = distance, velocity
@@ -99,6 +103,7 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
99
103
  else:
100
104
  raise InvalidInputError(msg='Body-parts has to be a list of tuple of strings', source=f'{self.__class__.__name__} body_parts')
101
105
  self.body_parts, self.threshold, self.body_parts, self.transpose, self.verbose = file_paths, threshold, body_parts, transpose, verbose
106
+ self.frame_count, self.video_length = frame_count, video_length
102
107
 
103
108
  def __find_body_part_columns(self):
104
109
  self.body_parts_dict, self.bp_list = {}, []
@@ -129,9 +134,9 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
129
134
  animal_df = animal_df.iloc[:, 0:2].reset_index(drop=True)
130
135
  distance, velocity = FeatureExtractionSupplemental.distance_and_velocity(x=animal_df.values, fps=self.fps, pixels_per_mm=self.px_per_mm, centimeters=True)
131
136
  if self.distance:
132
- self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "Distance (cm)", distance]
137
+ self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "DISTANCE (CM)", distance]
133
138
  if self.velocity:
134
- self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "Velocity (cm/s)", velocity]
139
+ self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "VELOCITY (CM/S)", velocity]
135
140
  else:
136
141
  for animal in self.body_parts:
137
142
  animal_name = animal.split("CENTER OF GRAVITY")[0].strip()
@@ -141,16 +146,23 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
141
146
  df = self.dataframe_savgol_smoother(df=df, fps=self.fps).astype(np.int32)
142
147
  distance, velocity = FeatureExtractionSupplemental.distance_and_velocity(x=df.values, fps=self.fps, pixels_per_mm=self.px_per_mm, centimeters=True)
143
148
  if self.distance:
144
- self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "Distance (cm)", distance]
149
+ self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "DISTANCE (CM)", distance]
145
150
  if self.velocity:
146
- self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "Velocity (cm/s)", velocity]
151
+ self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "VELOCITY (CM/S)", velocity]
152
+
153
+ if self.frame_count:
154
+ self.results.loc[len(self.results)] = [video_name, "", "", "VIDEO FRAME COUNT", len(self.data_df)]
155
+ if self.video_length:
156
+ timestamp = seconds_to_timestamp(seconds=int(np.ceil(len(self.data_df) / self.fps)), hh_mm_ss_sss=False)
157
+ self.results.loc[len(self.results)] = [video_name, "", "", "VIDEO LENGTH (HH:MM:SS)", timestamp]
158
+
147
159
  video_timer.stop_timer()
148
160
  if self.verbose:
149
161
  stdout_information(msg=f'Movement analysis in video {video_name} complete', elapsed_time=video_timer.elapsed_time_str)
150
162
 
151
163
  def save(self):
152
164
  if self.transpose:
153
- self.results = (self.results.assign(col=lambda x: x["ANIMAL"] + "_" + x["BODY-PART"] + "_" + x["MEASUREMENT"]).pivot(index="VIDEO", columns="col", values="VALUE").reset_index())
165
+ self.results = (self.results.assign(col=lambda x: (x["ANIMAL"] + "_" + x["BODY-PART"] + "_" + x["MEASUREMENT"]).str.strip("_")).pivot(index="VIDEO", columns="col", values="VALUE").reset_index())
154
166
  self.results.set_index("VIDEO").to_csv(self.save_path)
155
167
  self.timer.stop_timer()
156
168
  if self.verbose: stdout_success(msg=f"Movement log saved in {self.save_path}", elapsed_time=self.timer.elapsed_time_str)
@@ -171,9 +183,12 @@ if __name__ == "__main__" and not hasattr(sys, 'ps1'):
171
183
  runner.save()
172
184
 
173
185
 
174
- # test = MovementCalculator(config_path=r"C:\troubleshooting\mitra\project_folder\project_config.ini",
175
- # body_parts=['Animal_1 CENTER OF GRAVITY', 'Nose'], #['Simon CENTER OF GRAVITY', 'JJ CENTER OF GRAVITY', 'Animal_1 CENTER OF GRAVITY']
176
- # threshold=0.00)
186
+ # test = MovementCalculator(config_path=r"F:\troubleshooting\sam\sam\project_folder\project_config.ini",
187
+ # body_parts=['center', 'nose'], #['Simon CENTER OF GRAVITY', 'JJ CENTER OF GRAVITY', 'Animal_1 CENTER OF GRAVITY']
188
+ # threshold=0.00,
189
+ # frame_count=True,
190
+ # video_length=True,
191
+ # transpose=False)
177
192
  # test.run()
178
193
  # test.save()
179
194
 
@@ -0,0 +1,189 @@
1
+ import argparse
2
+ import os
3
+ import sys
4
+ from copy import deepcopy
5
+ from typing import Optional, Union
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+
10
+ from simba.feature_extractors.perimeter_jit import get_hull_sizes
11
+ from simba.mixins.abstract_classes import AbstractFeatureExtraction
12
+ from simba.mixins.config_reader import ConfigReader
13
+ from simba.mixins.feature_extraction_mixin import FeatureExtractionMixin
14
+ from simba.mixins.statistics_mixin import Statistics
15
+ from simba.mixins.timeseries_features_mixin import TimeseriesFeatureMixin
16
+ from simba.utils.checks import (
17
+ check_all_file_names_are_represented_in_video_log, check_instance,
18
+ check_valid_array, check_valid_dataframe)
19
+ from simba.utils.enums import Formats
20
+ from simba.utils.printing import stdout_information, stdout_success
21
+ from simba.utils.read_write import (find_files_of_filetypes_in_directory,
22
+ read_df, read_video_info, write_df)
23
+
24
+ WING_LEFT, WING_RIGHT = 'wing_L', 'wing_R'
25
+ HEAD, THORAX, ABDOMEN = 'head', 'thorax', 'abdomen'
26
+ WINDOW_SIZES = np.array([0.5, 1.0, 2.0, 3.0, 6.0])
27
+
28
+ class WingWaveFeatureExtractor(ConfigReader, FeatureExtractionMixin, AbstractFeatureExtraction):
29
+
30
+ def __init__(self,
31
+ config_path: Union[str, os.PathLike],
32
+ data_dir: Optional[Union[str, os.PathLike]] = None):
33
+
34
+ ConfigReader.__init__(self, config_path=config_path, read_video_info=True, create_logger=True)
35
+ self.data_dir = self.outlier_corrected_dir if data_dir is None else data_dir
36
+ self.data_paths = find_files_of_filetypes_in_directory(directory=self.data_dir, extensions='.csv', as_dict=True, raise_error=True, sort_alphabetically=True)
37
+
38
+ def run(self):
39
+ check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=list(self.data_paths.values()))
40
+ for file_cnt, (file_name, file_path) in enumerate(self.data_paths.items()):
41
+ data_df = read_df(file_path=file_path, file_type='csv', verbose=False)
42
+ out_df = deepcopy(data_df)
43
+ _, px_per_mm, fps = read_video_info(video_info_df=self.video_info_df, video_name=file_name)
44
+ save_path = os.path.join(self.features_dir, f'{file_name}.csv')
45
+ stdout_information(msg=f'Analyzing {file_name}...')
46
+ for id in range(1, self.animal_cnt + 1):
47
+ print(id)
48
+ animal_df = data_df[[x for x in data_df.columns if f'_{id}_' in x]]
49
+ wing_l, wing_r = animal_df[[f'{WING_LEFT}_{id}_x', f'{WING_LEFT}_{id}_y']].values, animal_df[[f'{WING_RIGHT}_{id}_x', f'{WING_RIGHT}_{id}_y']].values
50
+ head, thorax = animal_df[[f'{HEAD}_{id}_x', f'{HEAD}_{id}_y']].values, animal_df[[f'{THORAX}_{id}_x', f'{THORAX}_{id}_y']].values
51
+ abdomen = animal_df[[f'{ABDOMEN}_{id}_x', f'{ABDOMEN}_{id}_y']].values
52
+
53
+ p_vals = animal_df[[f'{WING_LEFT}_{id}_p', f'{WING_RIGHT}_{id}_p', f'{HEAD}_{id}_p', f'{ABDOMEN}_{id}_x', f'{THORAX}_{id}_x']].values
54
+
55
+ out_df[f'wing_l_thorax_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=thorax, bp_3=wing_r)
56
+ out_df[f'wing_l_head_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=head, bp_3=wing_r)
57
+ out_df[f'wing_l_abdomen_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=head, bp_3=wing_r)
58
+ wing_l_thorax_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_thorax_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_thorax_wing_r_mean_500_animal_{id}', f'wing_l_thorax_wing_r_mean_1000_animal_{id}', f'wing_l_thorax_wing_r_mean_2000_animal_{id}', f'wing_l_thorax_wing_r_mean_3000_animal_{id}', f'wing_l_thorax_wing_r_mean_6000_animal_{id}'])
59
+ wing_l_head_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_head_wing_r_mean_500_animal_{id}', f'wing_l_head_wing_r_mean_1000_animal_{id}', f'wing_l_head_wing_r_mean_2000_animal_{id}', f'wing_l_head_wing_r_mean_3000_animal_{id}', f'wing_l_head_wing_r_mean_6000_animal_{id}'])
60
+ wing_l_abdomen_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_abdomen_wing_r_mean_500_animal_{id}', f'wing_l_abdomen_wing_r_mean_1000_animal_{id}', f'wing_l_abdomen_wing_r_mean_2000_animal_{id}', f'wing_l_abdomen_wing_r_mean_3000_animal_{id}', f'wing_l_abdomen_wing_r_mean_6000_animal_{id}'])
61
+ out_df = pd.concat([out_df, wing_l_thorax_wing_r, wing_l_head_wing_r, wing_l_abdomen_wing_r], axis=1)
62
+
63
+ out_df[f'framewise_wing_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_l, bp2_coords=wing_r, px_per_mm=px_per_mm, in_centimeters=False)
64
+ wing_dist_absenergy = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['absenergy'])[0], columns=[f'wing_distance_energy_500_animal_{id}', f'wing_distance_energy_1000_animal_{id}', f'wing_distance_energy_2000_animal_{id}', f'wing_distance_energy_3000_animal_{id}', f'wing_distance_energy_6000_animal_{id}'])
65
+ wing_dist_variance = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['var'])[0], columns=[f'wing_distance_var_500_animal_{id}', f'wing_distance_var_1000_animal_{id}', f'wing_distance_var_2000_animal_{id}', f'wing_distance_var_3000_animal_{id}', f'wing_distance_var_6000_animal_{id}'])
66
+ out_df = pd.concat([out_df, wing_dist_absenergy, wing_dist_variance], axis=1)
67
+
68
+ out_df[f'framewise_wing_l_head_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=head.astype(np.float64), px_per_mm=np.float64(px_per_mm), centimeter=False)
69
+ out_df[f'framewise_wing_r_head_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=head.astype(np.float64), px_per_mm=np.float64(px_per_mm), centimeter=False)
70
+ out_df[f'framewise_wing_l_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=abdomen.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
71
+ out_df[f'framewise_wing_r_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=abdomen.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
72
+ out_df[f'framewise_wing_l_thorax_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=thorax.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
73
+ out_df[f'framewise_wing_r_thorax_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=thorax.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
74
+
75
+ wing_l_head_distance_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_head_mean_500_animal_{id}', f'wing_l_head_mean_1000_animal_{id}', f'wing_l_head_mean_2000_animal_{id}', f'wing_l_head_mean_3000_animal_{id}', f'wing_l_head_mean_6000_animal_{id}'])
76
+ wing_r_head_distance_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_r_head_mean_500_animal_{id}', f'wing_r_head_mean_1000_animal_{id}', f'wing_r_head_mean_2000_animal_{id}', f'wing_r_head_mean_3000_animal_{id}', f'wing_r_head_mean_6000_animal_{id}'])
77
+ wing_r_head_distance_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'wing_r_head_std_500_animal_{id}', f'wing_r_head_std_1000_animal_{id}', f'wing_r_head_std_2000_animal_{id}', f'wing_r_head_std_3000_animal_{id}', f'wing_r_head_std_6000_animal_{id}'])
78
+ wing_l_head_distance_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'wing_l_head_std_500_animal_{id}', f'wing_l_head_std_1000_animal_{id}', f'wing_l_head_std_2000_animal_{id}', f'wing_lr_head_std_3000_animal_{id}', f'wing_l_head_std_6000_animal_{id}'])
79
+ out_df = pd.concat([out_df, wing_l_head_distance_mean, wing_r_head_distance_mean, wing_r_head_distance_std, wing_l_head_distance_std], axis=1)
80
+
81
+ out_df[f'framewise_wing_l_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_l, px_per_mm=px_per_mm, centimeter=False)
82
+ out_df[f'framewise_wing_r_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_r, px_per_mm=px_per_mm, centimeter=False)
83
+ out_df[f'framewise_head_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=head, px_per_mm=px_per_mm, centimeter=False)
84
+ out_df[f'framewise_thorax_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=thorax, px_per_mm=px_per_mm, centimeter=False)
85
+ out_df[f'framewise_abdomen_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=abdomen, px_per_mm=px_per_mm, centimeter=False)
86
+ wing_l_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_l_sum_500_animal_{id}', f'wing_l_sum_1000_animal_{id}', f'wing_l_sum_2000_animal_{id}', f'wing_l_sum_3000_animal_{id}', f'wing_l_sum_6000_animal_{id}'])
87
+ wing_r_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_r_sum_500_animal_{id}', f'wing_r_sum_1000_animal_{id}', f'wing_r_sum_2000_animal_{id}', f'wing_r_sum_3000_animal_{id}', f'wing_r_sum_6000_animal_{id}'])
88
+ head_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_head_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'head_sum_500_animal_{id}', f'head_sum_1000_animal_{id}', f'head_sum_2000_animal_{id}', f'head_sum_3000_animal_{id}', f'head_sum_6000_animal_{id}'])
89
+ thorax_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_thorax_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'thorax_sum_500_animal_{id}', f'thorax_sum_1000_animal_{id}', f'thorax_sum_2000_animal_{id}', f'thorax_sum_3000_animal_{id}', f'thorax_sum_6000_animal_{id}'])
90
+ abdomen_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_abdomen_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'abdomen_sum_500_animal_{id}', f'abdomen_sum_1000_animal_{id}', f'abdomen_sum_2000_animal_{id}', f'abdomen_sum_3000_animal_{id}', f'abdomen_sum_6000_animal_{id}'])
91
+ out_df = pd.concat([out_df, wing_l_sum, wing_r_sum, head_sum, thorax_sum, abdomen_sum], axis=1)
92
+
93
+ head_wing_l_pearson = pd.DataFrame(
94
+ Statistics.sliding_pearsons_r(
95
+ sample_1=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32),
96
+ sample_2=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32),
97
+ time_windows=WINDOW_SIZES,
98
+ fps=fps,
99
+ ),
100
+ columns=[
101
+ f'head_wing_l_movement_pearson_500_animal_{id}',
102
+ f'head_wing_l_movement_pearson_1000_animal_{id}',
103
+ f'head_wing_l_movement_pearson_2000_animal_{id}',
104
+ f'head_wing_l_movement_pearson_3000_animal_{id}',
105
+ f'head_wing_l_movement_pearson_6000_animal_{id}',
106
+ ],
107
+ )
108
+ head_wing_r_pearson = pd.DataFrame(
109
+ Statistics.sliding_pearsons_r(
110
+ sample_1=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32),
111
+ sample_2=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32),
112
+ time_windows=WINDOW_SIZES,
113
+ fps=fps,
114
+ ),
115
+ columns=[
116
+ f'head_wing_r_movement_pearson_500_animal_{id}',
117
+ f'head_wing_r_movement_pearson_1000_animal_{id}',
118
+ f'head_wing_r_movement_pearson_2000_animal_{id}',
119
+ f'head_wing_r_movement_pearson_3000_animal_{id}',
120
+ f'head_wing_r_movement_pearson_6000_animal_{id}',
121
+ ],
122
+ )
123
+ out_df = pd.concat([out_df, head_wing_l_pearson, head_wing_r_pearson], axis=1)
124
+
125
+ out_df[f'framewise_head_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=head, px_per_mm=px_per_mm, centimeter=False)
126
+ out_df[f'framewise_wing_l_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_l, px_per_mm=px_per_mm, centimeter=False)
127
+ out_df[f'framewise_wing_r_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_r, px_per_mm=px_per_mm, centimeter=False)
128
+ out_df[f'framewise_wing_l_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_l, bp2_coords=abdomen, px_per_mm=px_per_mm, in_centimeters=False)
129
+ out_df[f'framewise_wing_r_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_r, bp2_coords=abdomen, px_per_mm=px_per_mm, in_centimeters=False)
130
+
131
+ wing_l_head_wing_r_angle_var = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['var'])[0], columns=[f'wing_head_angle_var_125_animal_{id}', f'wing_head_angle_var_250_animal_{id}', f'wing_head_angle_var_500_animal_{id}', f'wing_head_angle_var_1000_animal_{id}', f'wing_head_angle_var_2000_animal_{id}'])
132
+ wing_l_head_wing_r_angle_energy = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['absenergy'])[0], columns=[f'wing_head_angle_energy_125_animal_{id}', f'wing_head_angle_energy_250_animal_{id}', f'wing_head_angle_energy_500_animal_{id}', f'wing_head_angle_energy_1000_animal_{id}', f'wing_head_angle_energy_2000_animal_{id}'])
133
+ out_df = pd.concat([out_df, wing_l_head_wing_r_angle_var, wing_l_head_wing_r_angle_energy], axis=1)
134
+
135
+
136
+ head_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_head_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'head_movement_sum_125_animal_{id}',f'head_movement_sum_250_animal_{id}', f'head_movement_sum_500_animal_{id}', f'head_movement_sum_1000_animal_{id}', f'head_movement_sum_2000_animal_{id}'])
137
+ wing_r_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_r_movement_sum_125_animal_{id}', f'wing_r_movement_sum_250_animal_{id}', f'wing_r_movement_sum_500_animal_{id}', f'wing_r_movement_sum_1000_animal_animal_{id}', f'wing_r_movement_sum_2000_animal_animal_{id}'])
138
+ wing_l_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_l_movement_sum_125_animal_{id}', f'wing_l_movement_sum_250_animal_{id}', f'wing_l_movement_sum_500_animal_{id}', f'wing_l_movement_sum_1000_animal_animal_{id}', f'wing_l_movement_sum_2000_animal_animal_{id}'])
139
+ out_df = pd.concat([out_df, head_movement, wing_l_movement, wing_r_movement], axis=1)
140
+
141
+ animal_3d = np.stack([wing_l, wing_r, head, thorax, abdomen], axis=1)
142
+ out_df[f'framewise_animal_size_animal_{id}'] = get_hull_sizes(points=animal_3d, pixels_per_mm=px_per_mm)
143
+ size_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_animal_size_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'size_std_500_animal_{id}', f'size_std_1000_animal_{id}', f'size_std_2000_animal_{id}', f'size_std_3000_animal_{id}', f'size_std_6000_animal_{id}'])
144
+ size_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_animal_size_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'size_mean_500_animal_{id}', f'size_mean_1000_animal_{id}', f'size_mean_2000_animal_{id}', f'size_mean_3000_animal_{id}', f'size_mean_6000_animal_{id}'])
145
+ out_df = pd.concat([out_df, size_std, size_mean], axis=1)
146
+
147
+ p_val_cnts = pd.DataFrame(FeatureExtractionMixin.count_values_in_range(data=p_vals, ranges=np.array([[0.0, 0.25], [0.25, 0.5], [0.5, 0.75]])), columns=[f'p_vals_0.25_animal_{id}', f'p_vals_0.50_animal_{id}', f'p_vals_0.75_animal_{id}'])
148
+ out_df = pd.concat([out_df, p_val_cnts], axis=1)
149
+
150
+ out_df[f'rolling_t_sizes_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_animal_size_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
151
+ out_df[f'rolling_t_wing_l_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
152
+ out_df[f'rolling_t_wing_r_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
153
+ out_df[f'rolling_t_thorax_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_thorax_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
154
+
155
+ out_df[f'wing_l_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
156
+ out_df[f'wing_r_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
157
+ out_df[f'head_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
158
+
159
+
160
+ x = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_wing_l_frequency_1000_animal_{id}', f'dominant_wing_l_frequency_3000_animal_{id}', f'dominant_wing_l_frequency_5000_animal_{id}'])
161
+ y = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_wing_r_frequency_1000_animal_{id}', f'dominant_wing_r_frequency_3000_animal_{id}', f'dominant_wing_r_frequency_5000_animal_{id}'])
162
+ z = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_head_frequency_1000_animal_{id}', f'dominant_head_frequency_3000_animal_{id}', f'dominant_head_frequency_5000_animal_{id}'])
163
+ out_df = pd.concat([out_df, x, y, z], axis=1)
164
+ self.save(data=out_df, save_path=save_path)
165
+ stdout_success(f'Feature extraction complete. Data saved in {self.features_dir}.')
166
+
167
+ def save(self, data: pd.DataFrame, save_path: Union[str, os.PathLike]):
168
+ write_df(df=data, file_type='csv', save_path=save_path)
169
+
170
+
171
+ if __name__ == "__main__" and not hasattr(sys, 'ps1'):
172
+ parser = argparse.ArgumentParser(description="Extract features for aggression classification in resident intruder setups.")
173
+ parser.add_argument('--config_path', type=str, required=True, help='Path to SimBA Project config.')
174
+ args = parser.parse_args()
175
+ runner = WingWaveFeatureExtractor(config_path=args.config_path)
176
+ runner.run()
177
+
178
+ #
179
+ #
180
+ # CONFIG_PATH = r"F:\troubleshooting\sophiaa\project_folder\project_config.ini"
181
+ #
182
+ #
183
+ # r = WingWaveFeatureExtractor(config_path=CONFIG_PATH)
184
+ # r.run()
185
+ #
186
+ #
187
+
188
+
189
+
@@ -1217,7 +1217,7 @@ class GeometryMixin(object):
1217
1217
  data: np.ndarray,
1218
1218
  video_name: Optional[str] = None,
1219
1219
  animal_name: Optional[str] = None,
1220
- verbose: Optional[bool] = False,
1220
+ verbose: bool = False,
1221
1221
  cap_style: Optional[Literal["round", "square", "flat"]] = "round",
1222
1222
  parallel_offset: Optional[int] = 1,
1223
1223
  pixels_per_mm: Optional[float] = None,
@@ -1291,13 +1291,13 @@ class GeometryMixin(object):
1291
1291
  for cnt, mp_return in enumerate(pool.imap(constants, data, chunksize=1)):
1292
1292
  if verbose:
1293
1293
  if not video_name and not animal_name:
1294
- print(f"Computing polygon batch {cnt + 1}/{len(data)}...")
1294
+ if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)}...")
1295
1295
  elif not video_name and animal_name:
1296
- print(f"Computing polygon batch {cnt + 1}/{len(data)} (Animal: {animal_name})...")
1296
+ if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Animal: {animal_name})...")
1297
1297
  elif video_name and not animal_name:
1298
- print(f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name})...")
1298
+ if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name})...")
1299
1299
  else:
1300
- print(f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name}, Animal: {animal_name})...")
1300
+ if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name}, Animal: {animal_name})...")
1301
1301
  results.append(mp_return)
1302
1302
 
1303
1303
  timer.stop_timer()