simba-uw-tf-dev 5.3.7__tar.gz → 5.3.8__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 (1042) hide show
  1. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/PKG-INFO +2 -2
  2. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/README.md +1 -1
  3. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/setup.py +3 -2
  4. simba_uw_tf_dev-5.3.8/simba/plotting/compare_bbox_mdls.py +289 -0
  5. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/yolo_visualize.py +12 -7
  6. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/litpose_crop_annotations_bbox_square.py +6 -17
  7. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/read_write.py +5 -1
  8. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/yolo.py +46 -1
  9. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/video_processing.py +6 -1
  10. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/PKG-INFO +2 -2
  11. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/SOURCES.txt +1 -0
  12. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/LICENSE +0 -0
  13. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/MANIFEST.in +0 -0
  14. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/__init__.py +0 -0
  15. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/caltech_download.py +0 -0
  16. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/create_issues_report.py +0 -0
  17. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/dataverse_download.py +0 -0
  18. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/gitter_stats.py +0 -0
  19. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/make_qr_code.py +0 -0
  20. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/osf_download.py +0 -0
  21. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/scripts/upgrade_simba_keep_configs.py +0 -0
  22. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/setup.cfg +0 -0
  23. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/.DS_Store +0 -0
  24. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/SimBA.py +0 -0
  25. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/SimBA_logo.ico +0 -0
  26. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/__init__.py +0 -0
  27. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/.DS_Store +0 -0
  28. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/.env +0 -0
  29. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/.recent_projects.txt +0 -0
  30. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/TheGoldenLab.PNG +0 -0
  31. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/__init__.py +0 -0
  32. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/dash_simba_base.css +0 -0
  33. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/fonts/.DS_Store +0 -0
  34. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/fonts/Playwrite ES Deco.ttf +0 -0
  35. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/fonts/Poppins Bold.ttf +0 -0
  36. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/fonts/Poppins Regular.ttf +0 -0
  37. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/fonts/UbuntuMono-Regular.ttf +0 -0
  38. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/.DS_Store +0 -0
  39. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo.icns +0 -0
  40. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo.ico +0 -0
  41. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo.png +0 -0
  42. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo_3.ico +0 -0
  43. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo_3.png +0 -0
  44. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo_3_small.png +0 -0
  45. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/SimBA_logo_4_small.png +0 -0
  46. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/__init__.py +0 -0
  47. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/abacus.png +0 -0
  48. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/abacus_2.png +0 -0
  49. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/abacus_3.png +0 -0
  50. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/about.png +0 -0
  51. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/add.png +0 -0
  52. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/add_on.png +0 -0
  53. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/analyze_blue.png +0 -0
  54. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/analyze_green.png +0 -0
  55. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/api.png +0 -0
  56. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/application.png +0 -0
  57. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/archive.png +0 -0
  58. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/arrow_down_green.png +0 -0
  59. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/arrow_down_green_2.png +0 -0
  60. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/attributes_large.png +0 -0
  61. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/audio.png +0 -0
  62. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/average.png +0 -0
  63. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/average_2.png +0 -0
  64. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/avi.png +0 -0
  65. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/background.png +0 -0
  66. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bar_graph_blue.png +0 -0
  67. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bar_graph_green.png +0 -0
  68. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bar_graph_light_blue.png +0 -0
  69. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/batch.png +0 -0
  70. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/black_and_white.png +0 -0
  71. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/black_cross.png +0 -0
  72. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/blur.png +0 -0
  73. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bmp.png +0 -0
  74. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bold.png +0 -0
  75. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/boolean.png +0 -0
  76. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/boris.png +0 -0
  77. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/branches_small.png +0 -0
  78. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/brightness.png +0 -0
  79. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/browse.png +0 -0
  80. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/browse_small.png +0 -0
  81. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/brush_large.png +0 -0
  82. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bubble.png +0 -0
  83. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bubble_green.png +0 -0
  84. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bubble_pink.png +0 -0
  85. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bullet_grey.png +0 -0
  86. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bullseye.png +0 -0
  87. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/bw.png +0 -0
  88. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/calipher.png +0 -0
  89. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/camera.png +0 -0
  90. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/category.png +0 -0
  91. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/center.png +0 -0
  92. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/change.png +0 -0
  93. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/check_blue.png +0 -0
  94. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/circle.png +0 -0
  95. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/circle_2.png +0 -0
  96. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/circle_black.png +0 -0
  97. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/circle_large.png +0 -0
  98. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/circle_small.png +0 -0
  99. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clahe.png +0 -0
  100. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clean.png +0 -0
  101. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clean_red.png +0 -0
  102. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clf.png +0 -0
  103. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clf_2.png +0 -0
  104. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clip.png +0 -0
  105. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/clock.png +0 -0
  106. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/close.png +0 -0
  107. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/cluster.png +0 -0
  108. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/cluster_2.png +0 -0
  109. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/coco_small.png +0 -0
  110. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/color_wheel.png +0 -0
  111. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat.png +0 -0
  112. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_icons/__init__.py +0 -0
  113. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_icons/horizontal.png +0 -0
  114. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_icons/mixed_mosaic.png +0 -0
  115. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_icons/mosaic.png +0 -0
  116. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_icons/vertical.png +0 -0
  117. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/concat_videos.png +0 -0
  118. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/convert.png +0 -0
  119. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/counter.png +0 -0
  120. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/cpu_small.png +0 -0
  121. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/create.png +0 -0
  122. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/crop.png +0 -0
  123. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/crop_2.png +0 -0
  124. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/crop_green.png +0 -0
  125. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/crop_red.png +0 -0
  126. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/crossfade.png +0 -0
  127. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/csv_black.png +0 -0
  128. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/csv_grey.png +0 -0
  129. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/curve_black.png +0 -0
  130. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/danger.png +0 -0
  131. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dash_simba.css +0 -0
  132. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/data_table.png +0 -0
  133. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/decision_tree_blue.png +0 -0
  134. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/decision_tree_purple.png +0 -0
  135. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/decision_tree_small.png +0 -0
  136. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/delete_large_orange.png +0 -0
  137. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/delete_large_red.png +0 -0
  138. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dependency.png +0 -0
  139. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/details.png +0 -0
  140. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/developer.png +0 -0
  141. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dice_green.png +0 -0
  142. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dimensionality_reduction.png +0 -0
  143. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/direction.png +0 -0
  144. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/direction_2.png +0 -0
  145. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/direction_3.png +0 -0
  146. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/display_large.png +0 -0
  147. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/distance.png +0 -0
  148. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/distance_red.png +0 -0
  149. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dlc_1.png +0 -0
  150. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dlc_2.png +0 -0
  151. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/documentation.png +0 -0
  152. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/documentation_large.png +0 -0
  153. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/download.png +0 -0
  154. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/draw.png +0 -0
  155. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/dumbbell.png +0 -0
  156. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/duplicate.png +0 -0
  157. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/duplicate_2_large.png +0 -0
  158. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/duplicate_large.png +0 -0
  159. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/duplicate_small.png +0 -0
  160. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ear_right.png +0 -0
  161. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ear_small.png +0 -0
  162. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/edit.png +0 -0
  163. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/edit_roi_large.png +0 -0
  164. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/egocentric.png +0 -0
  165. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/equation_small.png +0 -0
  166. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ethovision.png +0 -0
  167. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/exit.png +0 -0
  168. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/eye.png +0 -0
  169. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/factory.png +0 -0
  170. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fast_forward.png +0 -0
  171. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fast_forward_green.png +0 -0
  172. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fast_forward_large.png +0 -0
  173. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fast_forward_large_2.png +0 -0
  174. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fast_reverse.png +0 -0
  175. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fastforward_green_2.png +0 -0
  176. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/feather_green.png +0 -0
  177. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/features.png +0 -0
  178. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ffmpeg.png +0 -0
  179. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/file.png +0 -0
  180. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/file_type.png +0 -0
  181. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fill.png +0 -0
  182. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/filter.png +0 -0
  183. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/finish.png +0 -0
  184. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fire.png +0 -0
  185. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/first.png +0 -0
  186. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/first_frame_blue.png +0 -0
  187. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/first_green.png +0 -0
  188. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/flip_black.png +0 -0
  189. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/flip_green.png +0 -0
  190. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/flip_red.png +0 -0
  191. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/folder.png +0 -0
  192. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/folder_2.png +0 -0
  193. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/folder_video.png +0 -0
  194. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/font.png +0 -0
  195. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/font_size.png +0 -0
  196. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/forest.png +0 -0
  197. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/forward.png +0 -0
  198. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/forward_large.png +0 -0
  199. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/four_squares.png +0 -0
  200. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/fps.png +0 -0
  201. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/frames.png +0 -0
  202. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/frames_2.png +0 -0
  203. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gamma.png +0 -0
  204. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gantt_large.png +0 -0
  205. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gantt_small.png +0 -0
  206. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gif.png +0 -0
  207. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/github.png +0 -0
  208. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/github_2.png +0 -0
  209. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gitter.png +0 -0
  210. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gitter_large.png +0 -0
  211. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gpu.png +0 -0
  212. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gpu_2.png +0 -0
  213. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/gpu_3.png +0 -0
  214. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/green_check.png +0 -0
  215. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/green_dice.png +0 -0
  216. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/grey.png +0 -0
  217. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/greyscale.png +0 -0
  218. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/half_circle.png +0 -0
  219. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/half_circle_small.png +0 -0
  220. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/heatmap.png +0 -0
  221. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/height.png +0 -0
  222. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/hexagon.png +0 -0
  223. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/hexagon_small.png +0 -0
  224. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/hierarchy.png +0 -0
  225. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/hierarchy_2.png +0 -0
  226. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/histogram.png +0 -0
  227. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/home.png +0 -0
  228. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/horizontal.png +0 -0
  229. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/id_card.png +0 -0
  230. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/id_card_2.png +0 -0
  231. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/image.png +0 -0
  232. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/import.png +0 -0
  233. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/info.png +0 -0
  234. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/info_large.png +0 -0
  235. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ini.png +0 -0
  236. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/interaction_large.png +0 -0
  237. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/interactive_blue.png +0 -0
  238. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/invert.png +0 -0
  239. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/join_purple.png +0 -0
  240. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/join_red.png +0 -0
  241. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/join_yellow.png +0 -0
  242. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/jpeg.png +0 -0
  243. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/json.png +0 -0
  244. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/jump.png +0 -0
  245. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/keyboard.png +0 -0
  246. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/label.png +0 -0
  247. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/label_blue.png +0 -0
  248. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/label_large.png +0 -0
  249. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/label_yellow.png +0 -0
  250. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/labelme.png +0 -0
  251. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/labelme_2.png +0 -0
  252. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/labelme_3.png +0 -0
  253. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/last.png +0 -0
  254. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/last_frame_blue.png +0 -0
  255. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/last_red.png +0 -0
  256. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/leaf.png +0 -0
  257. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/left_arrow_green.png +0 -0
  258. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/left_arrow_red.png +0 -0
  259. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/left_ear.png +0 -0
  260. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/light_bulb.png +0 -0
  261. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/line.png +0 -0
  262. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/line_chart_blue.png +0 -0
  263. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/line_chart_light_blue.png +0 -0
  264. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/line_chart_red.png +0 -0
  265. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/link.png +0 -0
  266. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/list.png +0 -0
  267. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/load.png +0 -0
  268. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/load_black.png +0 -0
  269. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/load_blue.png +0 -0
  270. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/location.png +0 -0
  271. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/log.png +0 -0
  272. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/magnifying.png +0 -0
  273. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mars.png +0 -0
  274. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mean.png +0 -0
  275. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/median.png +0 -0
  276. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/merge.png +0 -0
  277. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/metrics.png +0 -0
  278. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/metrics_blue.png +0 -0
  279. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/metrics_green.png +0 -0
  280. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/minus.png +0 -0
  281. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/minus_blue_2.png +0 -0
  282. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/minus_red.png +0 -0
  283. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/minus_red_2.png +0 -0
  284. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mixing_panel.png +0 -0
  285. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/monitor.png +0 -0
  286. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mouse_head.png +0 -0
  287. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mouse_small.png +0 -0
  288. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mov.png +0 -0
  289. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/move.png +0 -0
  290. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/move_large.png +0 -0
  291. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/mp4.png +0 -0
  292. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/multiple_blue.png +0 -0
  293. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/multiple_green.png +0 -0
  294. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/multiple_yellow.png +0 -0
  295. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/navigation.png +0 -0
  296. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/nose.png +0 -0
  297. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/number_black.png +0 -0
  298. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/obb.png +0 -0
  299. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/one.png +0 -0
  300. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/one_blue.png +0 -0
  301. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/one_to_many.png +0 -0
  302. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/opacity.png +0 -0
  303. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/options_small.png +0 -0
  304. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/original_size.png +0 -0
  305. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/osf.png +0 -0
  306. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/osf_large.png +0 -0
  307. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/outlier.png +0 -0
  308. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/outside.png +0 -0
  309. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/outside_2.png +0 -0
  310. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/overlap_iou.png +0 -0
  311. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/paint.png +0 -0
  312. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/palette_large.png +0 -0
  313. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/palette_small.png +0 -0
  314. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/parquet.png +0 -0
  315. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/path.png +0 -0
  316. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/path_2.png +0 -0
  317. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pct.png +0 -0
  318. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pct_2.png +0 -0
  319. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pdf_large.png +0 -0
  320. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/permutation_blue.png +0 -0
  321. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/photos.png +0 -0
  322. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/play.png +0 -0
  323. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/play_large_green.png +0 -0
  324. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/plot.png +0 -0
  325. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/plus.png +0 -0
  326. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/plus_green.png +0 -0
  327. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/plus_green_2.png +0 -0
  328. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/plus_green_3.png +0 -0
  329. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/png.png +0 -0
  330. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/point.png +0 -0
  331. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/point_right_large.png +0 -0
  332. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pointing_left_large.png +0 -0
  333. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/polygon.png +0 -0
  334. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/polygon_2.png +0 -0
  335. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/polygon_large.png +0 -0
  336. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pose.png +0 -0
  337. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/pose_2.png +0 -0
  338. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/print.png +0 -0
  339. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/probability.png +0 -0
  340. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/progressbar_black.png +0 -0
  341. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/python.png +0 -0
  342. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/question_mark.png +0 -0
  343. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/range_large.png +0 -0
  344. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/readthedocs_logo.png +0 -0
  345. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/recent_files.png +0 -0
  346. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rectangle.png +0 -0
  347. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rectangle_1_large.png +0 -0
  348. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rectangle_2.png +0 -0
  349. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rectangle_red.png +0 -0
  350. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rectangle_small.png +0 -0
  351. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/remove_bg.png +0 -0
  352. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/reorganize.png +0 -0
  353. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/resize.png +0 -0
  354. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/restart.png +0 -0
  355. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/reverse.png +0 -0
  356. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/reverse_blue.png +0 -0
  357. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/reverse_large.png +0 -0
  358. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/reverse_large_red.png +0 -0
  359. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rewind.png +0 -0
  360. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rewind_blue_2.png +0 -0
  361. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rewind_large.png +0 -0
  362. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rewind_red.png +0 -0
  363. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/right_arrow_green.png +0 -0
  364. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/right_arrow_red.png +0 -0
  365. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rocket.png +0 -0
  366. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/roi.png +0 -0
  367. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/roi_green.png +0 -0
  368. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rotate.png +0 -0
  369. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/rounding.png +0 -0
  370. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ruler.png +0 -0
  371. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ruler_large.png +0 -0
  372. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/run.png +0 -0
  373. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/sample.png +0 -0
  374. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/save.png +0 -0
  375. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/save_blue.png +0 -0
  376. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/save_green.png +0 -0
  377. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/save_large.png +0 -0
  378. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/save_small.png +0 -0
  379. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/scale_1.png +0 -0
  380. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/scale_2.png +0 -0
  381. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/scale_3.png +0 -0
  382. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/search.png +0 -0
  383. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/segment.png +0 -0
  384. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/seperate_green.png +0 -0
  385. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/settings.png +0 -0
  386. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shade.png +0 -0
  387. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shap.png +0 -0
  388. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shap_2.png +0 -0
  389. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shapes_large.png +0 -0
  390. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shapes_small.png +0 -0
  391. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/shapes_small_2.png +0 -0
  392. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/sigma.png +0 -0
  393. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/simba_logo_2.png +0 -0
  394. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/single_black.png +0 -0
  395. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/single_blue.png +0 -0
  396. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/single_green.png +0 -0
  397. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/size_black.png +0 -0
  398. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/skip.png +0 -0
  399. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/skip_2.png +0 -0
  400. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/skip_forward_large.png +0 -0
  401. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/skip_previous_large.png +0 -0
  402. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/sleap_small.png +0 -0
  403. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/smooth.png +0 -0
  404. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/speedometer.png +0 -0
  405. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/split.png +0 -0
  406. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/split_2.png +0 -0
  407. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/spread.png +0 -0
  408. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/square_black.png +0 -0
  409. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/stack.png +0 -0
  410. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/star.png +0 -0
  411. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/stop.png +0 -0
  412. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/stopwatch.png +0 -0
  413. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/stream.png +0 -0
  414. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/style.png +0 -0
  415. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/subset_blue.png +0 -0
  416. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/superimpose.png +0 -0
  417. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/svg.png +0 -0
  418. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/system.png +0 -0
  419. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/t.png +0 -0
  420. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/table.png +0 -0
  421. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/table_2.png +0 -0
  422. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text.png +0 -0
  423. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text_bg.png +0 -0
  424. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text_black.png +0 -0
  425. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text_color.png +0 -0
  426. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text_color_2.png +0 -0
  427. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/text_spacing.png +0 -0
  428. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/threshold.png +0 -0
  429. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/tick.png +0 -0
  430. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/tick_large.png +0 -0
  431. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/tiff.png +0 -0
  432. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/tile_green.png +0 -0
  433. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/time.png +0 -0
  434. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/timer.png +0 -0
  435. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/timer_2.png +0 -0
  436. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/trash.png +0 -0
  437. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/trash_red.png +0 -0
  438. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/triangle_black.png +0 -0
  439. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/triangle_small.png +0 -0
  440. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/tv_large.png +0 -0
  441. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/two.png +0 -0
  442. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ultralytics_1.png +0 -0
  443. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/ultralytics_2.png +0 -0
  444. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/verbose.png +0 -0
  445. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/vertical.png +0 -0
  446. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/video.png +0 -0
  447. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/video_2.png +0 -0
  448. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/video_file_large.png +0 -0
  449. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/video_large.png +0 -0
  450. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/visualize.png +0 -0
  451. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/visualize_blue.png +0 -0
  452. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/visualize_green.png +0 -0
  453. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/walk.png +0 -0
  454. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/wand_blue.png +0 -0
  455. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/warning.png +0 -0
  456. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/watermark_green.png +0 -0
  457. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/webm.png +0 -0
  458. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/webp.png +0 -0
  459. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/weight.png +0 -0
  460. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/weights.png +0 -0
  461. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/width.png +0 -0
  462. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/x.png +0 -0
  463. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/y.png +0 -0
  464. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/zero.png +0 -0
  465. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/zoom_in.png +0 -0
  466. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/icons/zoom_out.png +0 -0
  467. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/__init__.py +0 -0
  468. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/about_me.png +0 -0
  469. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/bg.png +0 -0
  470. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/bg_2.png +0 -0
  471. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/bg_2024.png +0 -0
  472. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/landing.mp4 +0 -0
  473. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/simon_n.webp +0 -0
  474. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/splash.mp4 +0 -0
  475. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/splash.pptx +0 -0
  476. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/splash_2024.mp4 +0 -0
  477. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/img/~$splash.pptx +0 -0
  478. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/__init__.py +0 -0
  479. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/critical_values_05.pickle +0 -0
  480. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/feature_extraction_headers.csv +0 -0
  481. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/features.csv +0 -0
  482. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/model_names.parquet +0 -0
  483. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/tooptips.json +0 -0
  484. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/unsupervised_example_x.csv +0 -0
  485. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/yolo.yaml +0 -0
  486. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/yolo_schematics/tappelby.csv +0 -0
  487. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/yolo_schematics/yolo_7bps.csv +0 -0
  488. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/lookups/yolo_schematics/yolo_mitra.csv +0 -0
  489. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/ppyoloe_plus_crn_s_80e_coco.yml +0 -0
  490. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/UbuntuMono-Regular.ttf +0 -0
  491. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/__init__.py +0 -0
  492. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/animal_distances.jpg +0 -0
  493. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/baseline_scale.jpg +0 -0
  494. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/color_bar.jpg +0 -0
  495. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/down_arrow.jpg +0 -0
  496. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/feature_categories/__init__.py +0 -0
  497. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/feature_categories/shap_feature_categories.csv +0 -0
  498. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/intruder_movement.jpg +0 -0
  499. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/intruder_shape.jpg +0 -0
  500. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/resident_intruder_movement.jpg +0 -0
  501. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/resident_intruder_shape.jpg +0 -0
  502. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/resident_movement.jpg +0 -0
  503. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/resident_shape.jpg +0 -0
  504. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/side_scale.jpg +0 -0
  505. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/side_scale_5.jpg +0 -0
  506. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/shap/ubuntu.regular.ttf +0 -0
  507. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/stl/__init__.py +0 -0
  508. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/stl/grid_floor.stl +0 -0
  509. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/stl/operant_lever.stl +0 -0
  510. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/stl/operant_tray.stl +0 -0
  511. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/stl/operant_walls.stl +0 -0
  512. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/tracker_yml/__init__.py +0 -0
  513. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/tracker_yml/botsort.yml +0 -0
  514. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/tracker_yml/bytetrack.yml +0 -0
  515. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/tracker_yml/tow_bytetrack.yaml +0 -0
  516. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/unsupervised/__init__.py +0 -0
  517. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/unsupervised/features.csv +0 -0
  518. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/assets/unsupervised/model_names.parquet +0 -0
  519. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/__init__.py +0 -0
  520. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/agg_boundary_stats.py +0 -0
  521. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/boundary_menus.py +0 -0
  522. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/boundary_statistics.py +0 -0
  523. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/find_boundaries.py +0 -0
  524. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/visualize_boundaries.py +0 -0
  525. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/bounding_box_tools/yolo/__init__.py +0 -0
  526. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/__init__.py +0 -0
  527. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_analyzer.py +0 -0
  528. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_clf_statistics.py +0 -0
  529. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_main_popup.py +0 -0
  530. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_movement_statistics.py +0 -0
  531. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_tools.py +0 -0
  532. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/cue_light_tools/cue_light_visualizer.py +0 -0
  533. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/dash_app/SimBA_dash_app.py +0 -0
  534. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/dash_app/__init__.py +0 -0
  535. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/dash_app/dash_app.py +0 -0
  536. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/dash_app/run_dash_tkinter.py +0 -0
  537. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/.DS_Store +0 -0
  538. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/__init__.py +0 -0
  539. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/advanced_interpolator.py +0 -0
  540. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/advanced_smoothing.py +0 -0
  541. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/agg_clf_calculator.py +0 -0
  542. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/agg_clf_counter_mp.py +0 -0
  543. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/blob_location_computer.py +0 -0
  544. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/boolean_conditional_calculator.py +0 -0
  545. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/circling_detector.py +0 -0
  546. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/__init__.py +0 -0
  547. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/circular_statistics.py +0 -0
  548. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/create_shap_log.py +0 -0
  549. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/data.py +0 -0
  550. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/geometry.py +0 -0
  551. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/image.py +0 -0
  552. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/statistics.py +0 -0
  553. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/timeseries.py +0 -0
  554. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cuda/utils.py +0 -0
  555. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cue_light_analyzer.py +0 -0
  556. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cue_light_clf_statistics.py +0 -0
  557. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/cue_light_movement_statistics.py +0 -0
  558. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/directing_animal_to_bodypart.py +0 -0
  559. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/directing_other_animals_calculator.py +0 -0
  560. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/distance_calculator.py +0 -0
  561. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/distance_timbin_calculator.py +0 -0
  562. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/egocentric_aligner.py +0 -0
  563. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/find_animal_blob_location.py +0 -0
  564. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/freezing_detector.py +0 -0
  565. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/fsttc_calculator.py +0 -0
  566. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/gibbs_sampler.py +0 -0
  567. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/interpolate.py +0 -0
  568. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/interpolate_pose.py +0 -0
  569. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/interpolation_smoothing.py +0 -0
  570. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/kleinberg_calculator.py +0 -0
  571. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/light_dark_box_analyzer.py +0 -0
  572. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/movement_calculator.py +0 -0
  573. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/mutual_exclusivity_corrector.py +0 -0
  574. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/pup_retrieval_calculator.py +0 -0
  575. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/pybursts_calculator.py +0 -0
  576. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/pybursts_calculator_numba.py +0 -0
  577. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/severity_bout_based_calculator.py +0 -0
  578. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/severity_calculator.py +0 -0
  579. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/severity_frame_based_calculator.py +0 -0
  580. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/smoothing.py +0 -0
  581. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/spontaneous_alternation_calculator.py +0 -0
  582. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/timebins_clf_calculator.py +0 -0
  583. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/timebins_movement_calculator.py +0 -0
  584. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/timebins_movement_calculator_mp.py +0 -0
  585. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/data_processors/yolo_track_cleaner.py +0 -0
  586. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/.DS_Store +0 -0
  587. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/__init__.py +0 -0
  588. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/aggression_feature_extractor.py +0 -0
  589. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/amber_feature_extractor.py +0 -0
  590. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/boundary_rearing_analyzer.py +0 -0
  591. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/cave_fish_featurizer.py +0 -0
  592. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_14bp.py +0 -0
  593. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_16bp.py +0 -0
  594. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_4bp.py +0 -0
  595. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_7bp.py +0 -0
  596. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_8bp.py +0 -0
  597. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_8bps_2_animals.py +0 -0
  598. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_9bp.py +0 -0
  599. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_extractor_user_defined.py +0 -0
  600. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/feature_subsets.py +0 -0
  601. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/gerbil_featurizer.py +0 -0
  602. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/add_probability_cnt_features.py +0 -0
  603. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/convex_hull_3_scratch_3.py +0 -0
  604. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/convex_hull_scratch_1.py +0 -0
  605. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/convex_hull_scratch_2.py +0 -0
  606. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/count_values_in_range.py +0 -0
  607. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/doctests.py +0 -0
  608. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/egocentrical_aligner.py +0 -0
  609. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/fish_feature_extractor_2022.py +0 -0
  610. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_2.py +0 -0
  611. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_3.py +0 -0
  612. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_4.py +0 -0
  613. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_5.py +0 -0
  614. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/graph_3d_plotter.py +0 -0
  615. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/graph_creator.py +0 -0
  616. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/make_splash.py +0 -0
  617. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/mutual_exclusive.py +0 -0
  618. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/peaks.py +0 -0
  619. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/read_in_mp.py +0 -0
  620. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/termite_rois.csv +0 -0
  621. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/time_stamp_calculator.py +0 -0
  622. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/video_color.py +0 -0
  623. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/video_rotator.py +0 -0
  624. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/misc/video_rotator_mp.py +0 -0
  625. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/mitra_feature_extractor.py +0 -0
  626. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/perimeter_jit.py +0 -0
  627. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/rat_social_featurizer.py +0 -0
  628. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/riptortus_featurizer.py +0 -0
  629. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/straub_tail_analyzer.py +0 -0
  630. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/feature_extractors/wingwave_extractor.py +0 -0
  631. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/__init__.py +0 -0
  632. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/extract_labelled_frames.py +0 -0
  633. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/extract_labelling_meta.py +0 -0
  634. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/labelling_advanced_interface.py +0 -0
  635. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/labelling_interface.py +0 -0
  636. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/mitra_style_appender.py +0 -0
  637. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/play_annotation_video.py +0 -0
  638. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/single_clf_appender_excel.py +0 -0
  639. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/standard_labeller.py +0 -0
  640. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/labelling/targeted_annotations_clips.py +0 -0
  641. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/.DS_Store +0 -0
  642. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/__init__.py +0 -0
  643. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/abstract_classes.py +0 -0
  644. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/annotator_mixin.py +0 -0
  645. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/circular_statistics.py +0 -0
  646. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/config_reader.py +0 -0
  647. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/feature_extraction_mixin.py +0 -0
  648. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/feature_extraction_supplement_mixin.py +0 -0
  649. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/geometry_mixin.py +0 -0
  650. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/image_mixin.py +0 -0
  651. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/network_mixin.py +0 -0
  652. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/plotting_mixin.py +0 -0
  653. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/pop_up_mixin.py +0 -0
  654. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/pose_importer_mixin.py +0 -0
  655. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/statistics_mixin.py +0 -0
  656. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/timeseries_features_mixin.py +0 -0
  657. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/train_model_mixin.py +0 -0
  658. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/mixins/unsupervised_mixin.py +0 -0
  659. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/__init__.py +0 -0
  660. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/grid_search_multiclass_rf.py +0 -0
  661. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/grid_search_rf.py +0 -0
  662. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/inference_batch.py +0 -0
  663. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/inference_multi_animal_batch.py +0 -0
  664. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/inference_multiclass_batch.py +0 -0
  665. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/inference_validation.py +0 -0
  666. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/ordinal_clf.py +0 -0
  667. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/regression/__init__.py +0 -0
  668. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/regression/metrics.py +0 -0
  669. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/regression/model.py +0 -0
  670. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/sam_inference.py +0 -0
  671. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/train_multiclass_rf.py +0 -0
  672. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/train_multilabel_rf.py +0 -0
  673. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/train_rf.py +0 -0
  674. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_fit.py +0 -0
  675. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_inference.py +0 -0
  676. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_nvdec_inference.py +0 -0
  677. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_pose_inference.py +0 -0
  678. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_pose_track_inference.py +0 -0
  679. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/model/yolo_seg_inference.py +0 -0
  680. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/__init__.py +0 -0
  681. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_location.py +0 -0
  682. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_location_advanced.py +0 -0
  683. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_location_mp.py +0 -0
  684. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_movement.py +0 -0
  685. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_movement_advanced.py +0 -0
  686. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/outlier_corrector_movement_mp.py +0 -0
  687. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/outlier_tools/skip_outlier_correction.py +0 -0
  688. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/.DS_Store +0 -0
  689. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/EzPathPlot.py +0 -0
  690. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/ROI_feature_visualizer.py +0 -0
  691. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/ROI_feature_visualizer_mp.py +0 -0
  692. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/__init__.py +0 -0
  693. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/annotation_videos.py +0 -0
  694. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/blob_plotter.py +0 -0
  695. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/blob_visualizer.py +0 -0
  696. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/circular_feature_overlay_plotter.py +0 -0
  697. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/circular_plotting.py +0 -0
  698. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/clf_validator.py +0 -0
  699. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/clf_validator_mp.py +0 -0
  700. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/cue_light_visualizer.py +0 -0
  701. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/data_plotter.py +0 -0
  702. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/directing_animals_to_bodypart_visualizer.py +0 -0
  703. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/directing_animals_visualizer.py +0 -0
  704. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/directing_animals_visualizer_mp.py +0 -0
  705. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/distance_plotter.py +0 -0
  706. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/distance_plotter_mp.py +0 -0
  707. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/ez_path_plot.py +0 -0
  708. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/frame_mergerer_ffmpeg.py +0 -0
  709. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/gantt_creator.py +0 -0
  710. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/gantt_creator_mp.py +0 -0
  711. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/gantt_plotly.py +0 -0
  712. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/geometry_plotter.py +0 -0
  713. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/heat_mapper_clf.py +0 -0
  714. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/heat_mapper_clf_mp.py +0 -0
  715. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/heat_mapper_location.py +0 -0
  716. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/heat_mapper_location_mp.py +0 -0
  717. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/interactive_probability_grapher.py +0 -0
  718. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/light_dark_box_plotter.py +0 -0
  719. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/path_plotter.py +0 -0
  720. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/path_plotter_mp.py +0 -0
  721. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/plot_clf_results.py +0 -0
  722. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/plot_clf_results_mp.py +0 -0
  723. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/pose_plotter.py +0 -0
  724. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/pose_plotter_mp.py +0 -0
  725. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/probability_plot_creator.py +0 -0
  726. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/probability_plot_creator_mp.py +0 -0
  727. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/roi_directing_visualizer.py +0 -0
  728. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/roi_plotter.py +0 -0
  729. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/roi_plotter_mp.py +0 -0
  730. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/sam_plotter.py +0 -0
  731. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/shap_agg_stats_visualizer.py +0 -0
  732. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/single_run_model_validation_video.py +0 -0
  733. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/single_run_model_validation_video_mp.py +0 -0
  734. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/skeleton_video_creator.py +0 -0
  735. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/spontaneous_alternation_plotter.py +0 -0
  736. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/tools/__init__.py +0 -0
  737. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/tools/tkinter_tools.py +0 -0
  738. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/yolo_annotation_visualizer.py +0 -0
  739. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/yolo_pose_track_visualizer.py +0 -0
  740. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/yolo_pose_visualizer.py +0 -0
  741. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/plotting/yolo_seg_visualizer.py +0 -0
  742. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/.DS_Store +0 -0
  743. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/__init__.py +0 -0
  744. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/bp_names/__init__.py +0 -0
  745. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/bp_names/bp_names.csv +0 -0
  746. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/configuration_names/__init__.py +0 -0
  747. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/configuration_names/pose_config_names.csv +0 -0
  748. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/no_animals/__init__.py +0 -0
  749. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/no_animals/no_animals.csv +0 -0
  750. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/1.png +0 -0
  751. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/10.png +0 -0
  752. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/11.png +0 -0
  753. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/12.png +0 -0
  754. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/13.png +0 -0
  755. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/14.png +0 -0
  756. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/15.png +0 -0
  757. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/16.png +0 -0
  758. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/2.png +0 -0
  759. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/3.png +0 -0
  760. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/4.png +0 -0
  761. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/5.png +0 -0
  762. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/6.png +0 -0
  763. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/7.png +0 -0
  764. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/8.png +0 -0
  765. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_configurations/schematics/9.png +0 -0
  766. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/.DS_Store +0 -0
  767. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/__init__.py +0 -0
  768. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/dlc_importer_csv.py +0 -0
  769. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/facemap_h5_importer.py +0 -0
  770. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/import_mars.py +0 -0
  771. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/madlc_importer.py +0 -0
  772. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/misc/__init__.py +0 -0
  773. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/misc/apt_trk_importer.py +0 -0
  774. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/read_DANNCE_mat.py +0 -0
  775. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/simba_blob_importer.py +0 -0
  776. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/simba_yolo_importer.py +0 -0
  777. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/sleap_csv_importer.py +0 -0
  778. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/sleap_h5_importer.py +0 -0
  779. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/sleap_slp_importer.py +0 -0
  780. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/superanimal_import.py +0 -0
  781. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_importers/trk_importer.py +0 -0
  782. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_processors/__init__.py +0 -0
  783. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_processors/pose_reset.py +0 -0
  784. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_processors/remove_keypoints.py +0 -0
  785. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_processors/reorganize_keypoint.py +0 -0
  786. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/pose_processors/reverse_pose.py +0 -0
  787. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/requirements.txt +0 -0
  788. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/.DS_Store +0 -0
  789. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/ROI_analyzer.py +0 -0
  790. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/ROI_directing_analyzer.py +0 -0
  791. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/ROI_feature_analyzer.py +0 -0
  792. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/ROI_size_standardizer.py +0 -0
  793. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/ROI_time_bin_calculator.py +0 -0
  794. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/__init__.py +0 -0
  795. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/import_roi_csvs.py +0 -0
  796. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/interactive_modifier_ui.py +0 -0
  797. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/interactive_roi_bufferer.py +0 -0
  798. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/interactive_roi_modifier_tkinter.py +0 -0
  799. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_aggregate_statistics_analyzer.py +0 -0
  800. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_aggregate_stats_mp.py +0 -0
  801. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_clf_calculator.py +0 -0
  802. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_clf_calculator_mp.py +0 -0
  803. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_ruler.py +0 -0
  804. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_selector_circle_tkinter.py +0 -0
  805. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_selector_polygon_tkinter.py +0 -0
  806. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_selector_rectangle_tkinter.py +0 -0
  807. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_time_bins_analyzer.py +0 -0
  808. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_ui.py +0 -0
  809. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_ui_mixin.py +0 -0
  810. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/roi_tools/roi_utils.py +0 -0
  811. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/.DS_Store +0 -0
  812. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/BENTO_appender.py +0 -0
  813. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/BORIS_appender.py +0 -0
  814. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/__init__.py +0 -0
  815. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/boris_source_cleaner.py +0 -0
  816. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/converters.py +0 -0
  817. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/deepethogram_importer.py +0 -0
  818. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/ethovision_import.py +0 -0
  819. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/observer_importer.py +0 -0
  820. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/shah_appender.py +0 -0
  821. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/solomon_importer.py +0 -0
  822. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/third_party_appender.py +0 -0
  823. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/tools.py +0 -0
  824. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/__init__.py +0 -0
  825. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +0 -0
  826. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py +0 -0
  827. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py +0 -0
  828. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py +0 -0
  829. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/dlc_multi_to_yolo.py +0 -0
  830. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/dlc_single_to_multi_format_converter.py +0 -0
  831. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/dlc_to_labelme.py +0 -0
  832. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/dlc_to_yolo.py +0 -0
  833. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/labelme_to_df.py +0 -0
  834. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/labelme_to_dlc.py +0 -0
  835. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/labelme_to_yolo.py +0 -0
  836. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/labelme_to_yolo_keypoints.py +0 -0
  837. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py +0 -0
  838. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/litpose_crop_annotations.py +0 -0
  839. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/litpose_merge_projects.py +0 -0
  840. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/litpose_to_yolo_bbox.py +0 -0
  841. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/litpose_to_yolo_keypoints.py +0 -0
  842. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/merge_yolo_projects.py +0 -0
  843. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/sam3_to_yolo_bbox.py +0 -0
  844. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/sam3_to_yolo_seg.py +0 -0
  845. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/simba_roi_to_yolo.py +0 -0
  846. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/simba_to_yolo.py +0 -0
  847. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/simba_to_yolo_seg.py +0 -0
  848. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +0 -0
  849. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py +0 -0
  850. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/sleap_to_yolo.py +0 -0
  851. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/utils.py +0 -0
  852. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/yolo_labels_to_yolo_project.py +0 -0
  853. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/third_party_label_appenders/transform/yolo_to_imgs.py +0 -0
  854. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/.DS_Store +0 -0
  855. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/__init__.py +0 -0
  856. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/blob_quick_check_interface.py +0 -0
  857. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/blob_tracker_ui.py +0 -0
  858. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/create_project_ui.py +0 -0
  859. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/get_tree_view.py +0 -0
  860. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/import_pose_frame.py +0 -0
  861. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/import_videos_frame.py +0 -0
  862. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/machine_model_settings_ui.py +0 -0
  863. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/ml_settings_frm.py +0 -0
  864. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/.DS_Store +0 -0
  865. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/__init__.py +0 -0
  866. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/about_simba_pop_up.py +0 -0
  867. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/animal_directing_other_animals_pop_up.py +0 -0
  868. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/animal_directing_roi_pop_up.py +0 -0
  869. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/annotated_bouts_videos_pop_up.py +0 -0
  870. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/append_roi_features_animals_pop_up.py +0 -0
  871. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py +0 -0
  872. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/archive_files_pop_up.py +0 -0
  873. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/batch_preprocess_pop_up.py +0 -0
  874. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/blob_visualizer_pop_up.py +0 -0
  875. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py +0 -0
  876. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/change_speed_popup.py +0 -0
  877. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/check_videos_seekable_pop_up.py +0 -0
  878. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_add_remove_print_pop_up.py +0 -0
  879. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_annotation_counts_pop_up.py +0 -0
  880. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_by_roi_pop_up.py +0 -0
  881. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_by_timebins_pop_up.py +0 -0
  882. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py +0 -0
  883. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_plot_pop_up.py +0 -0
  884. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_probability_plot_pop_up.py +0 -0
  885. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/clf_validation_plot_pop_up.py +0 -0
  886. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py +0 -0
  887. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/create_user_defined_pose_configuration_pop_up.py +0 -0
  888. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/csv_2_parquet_pop_up.py +0 -0
  889. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/cue_light_clf_analyzer_popup.py +0 -0
  890. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/cue_light_data_analyzer_popup.py +0 -0
  891. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/cue_light_main_popup.py +0 -0
  892. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/cue_light_movement_analyzer_popup.py +0 -0
  893. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/cue_light_visualizer_popup.py +0 -0
  894. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/data_plot_pop_up.py +0 -0
  895. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/delete_all_rois_pop_up.py +0 -0
  896. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/directing_animal_to_bodypart_plot_pop_up.py +0 -0
  897. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/directing_other_animals_plot_pop_up.py +0 -0
  898. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/direction_animal_to_bodypart_settings_pop_up.py +0 -0
  899. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/distance_analysis_pop_up.py +0 -0
  900. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/distance_plot_pop_up.py +0 -0
  901. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/distance_timebins_popup.py +0 -0
  902. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/dlc_annotations_to_labelme_popup.py +0 -0
  903. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/dlc_h5_inference_to_yolo_popup.py +0 -0
  904. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/dlc_to_labelme_popup.py +0 -0
  905. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/dlc_to_yolo_keypoints_popup.py +0 -0
  906. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py +0 -0
  907. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/egocentric_alignment_pop_up.py +0 -0
  908. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/extract_annotation_frames_pop_up.py +0 -0
  909. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/ez_path_plot_popup.py +0 -0
  910. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/fsttc_pop_up.py +0 -0
  911. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/gantt_pop_up.py +0 -0
  912. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/heatmap_clf_pop_up.py +0 -0
  913. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/heatmap_location_pop_up.py +0 -0
  914. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/helpers.py +0 -0
  915. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/import_roi_csv_popup.py +0 -0
  916. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/initialize_blob_tracking_pop_up.py +0 -0
  917. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/interpolate_pop_up.py +0 -0
  918. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/kleinberg_pop_up.py +0 -0
  919. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/labelme_bbox_to_yolo_bbox_popup.py +0 -0
  920. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/labelme_dir_to_csv_popup.py +0 -0
  921. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/labelme_to_df_popup.py +0 -0
  922. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/labelme_to_imgs_popup.py +0 -0
  923. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/make_path_plot_pop_up.py +0 -0
  924. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/merge_coco_keypoint_files_pop_up.py +0 -0
  925. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/min_max_draw_size_popup.py +0 -0
  926. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/movement_analysis_pop_up.py +0 -0
  927. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/movement_analysis_time_bins_pop_up.py +0 -0
  928. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/multiple_videos_to_frames_popup.py +0 -0
  929. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/mutual_exclusivity_pop_up.py +0 -0
  930. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/outlier_settings_pop_up.py +0 -0
  931. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/path_plot_pop_up.py +0 -0
  932. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/pose_bp_drop_pop_up.py +0 -0
  933. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/pose_reorganizer_pop_up.py +0 -0
  934. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/print_video_meta_popup.py +0 -0
  935. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/pup_retrieval_pop_up.py +0 -0
  936. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/quick_path_plot_pop_up.py +0 -0
  937. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/remove_roi_features_pop_up.py +0 -0
  938. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_aggregate_stats_popup.py +0 -0
  939. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_analysis_pop_up.py +0 -0
  940. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_analysis_time_bins_pop_up.py +0 -0
  941. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_directing_visualizer_pop_up.py +0 -0
  942. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_features_plot_pop_up.py +0 -0
  943. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_size_standardizer_popup.py +0 -0
  944. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_tracking_plot_pop_up.py +0 -0
  945. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/roi_video_table_pop_up.py +0 -0
  946. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/run_machine_models_popup.py +0 -0
  947. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/select_video_for_labelling_popup.py +0 -0
  948. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py +0 -0
  949. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/severity_analysis_pop_up.py +0 -0
  950. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py +0 -0
  951. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +0 -0
  952. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/single_video_to_frames_popup.py +0 -0
  953. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +0 -0
  954. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +0 -0
  955. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py +0 -0
  956. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/smoothing_popup.py +0 -0
  957. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/splash_popup.py +0 -0
  958. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/spontaneous_alternation_pop_up.py +0 -0
  959. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/subset_feature_extractor_pop_up.py +0 -0
  960. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/targeted_annotation_clips_pop_up.py +0 -0
  961. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/third_party_annotator_appender_pop_up.py +0 -0
  962. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/validation_plot_pop_up.py +0 -0
  963. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/video_processing_pop_up.py +0 -0
  964. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py +0 -0
  965. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/yolo_inference_popup.py +0 -0
  966. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/yolo_plot_results.py +0 -0
  967. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/pop_ups/yolo_pose_train_popup.py +0 -0
  968. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/px_to_mm_ui.py +0 -0
  969. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/tkinter_functions.py +0 -0
  970. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/user_defined_pose_creator.py +0 -0
  971. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/utils.py +0 -0
  972. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/video_info_ui.py +0 -0
  973. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/ui/video_timelaps.py +0 -0
  974. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/.DS_Store +0 -0
  975. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/__init__.py +0 -0
  976. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/bout_aggregator.py +0 -0
  977. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/cluster_frequentist_calculator.py +0 -0
  978. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/cluster_validation_calculator.py +0 -0
  979. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/cluster_video_visualizer.py +0 -0
  980. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/cluster_xai_calculator.py +0 -0
  981. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/clusterer_comparison_calculator.py +0 -0
  982. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/data_extractor.py +0 -0
  983. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/data_map.yaml +0 -0
  984. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/dataset_creator.py +0 -0
  985. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/dbcv_calculator.py +0 -0
  986. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/embedding_correlation_calculator.py +0 -0
  987. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/enums.py +0 -0
  988. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/grid_search_visualizers.py +0 -0
  989. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/hdbscan_clusterer.py +0 -0
  990. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/outlier_detector.py +0 -0
  991. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/.DS_Store +0 -0
  992. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/cluster_frequentist_stats_popup.py +0 -0
  993. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/cluster_validation_pop_up.py +0 -0
  994. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/cluster_videos_popup.py +0 -0
  995. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/cluster_xai_popup.py +0 -0
  996. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/clusterer_comparison_popup.py +0 -0
  997. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/data_extractor_popup.py +0 -0
  998. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/embedding_correlations_popup.py +0 -0
  999. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/fit_cluster_popup.py +0 -0
  1000. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/fit_dim_reduction_popup.py +0 -0
  1001. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/grid_search_visualizer_popup.py +0 -0
  1002. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/print_embedding_info_popup.py +0 -0
  1003. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/transform_cluster_popup.py +0 -0
  1004. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/pop_ups/transform_dim_reduction_popup.py +0 -0
  1005. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/tsne.py +0 -0
  1006. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/umap_embedder.py +0 -0
  1007. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/unsupervised/unsupervised_main.py +0 -0
  1008. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/.DS_Store +0 -0
  1009. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/__init__.py +0 -0
  1010. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/checks.py +0 -0
  1011. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/cli/__init__.py +0 -0
  1012. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/cli/cli_tools.py +0 -0
  1013. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/config_creator.py +0 -0
  1014. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/custom_feature_extractor.py +0 -0
  1015. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/data.py +0 -0
  1016. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/enums.py +0 -0
  1017. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/errors.py +0 -0
  1018. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/lookups.py +0 -0
  1019. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/printing.py +0 -0
  1020. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/utils/warnings.py +0 -0
  1021. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/.DS_Store +0 -0
  1022. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/__init__.py +0 -0
  1023. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/async_frame_reader.py +0 -0
  1024. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/async_frame_reader_gpu.py +0 -0
  1025. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -0
  1026. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/batch_process_menus.py +0 -0
  1027. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/blob_tracking_executor.py +0 -0
  1028. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/brightness_contrast_ui.py +0 -0
  1029. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/calculate_px_dist.py +0 -0
  1030. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/clahe_ui.py +0 -0
  1031. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/egocentric_video_rotator.py +0 -0
  1032. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/extract_frames.py +0 -0
  1033. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/extract_seqframes.py +0 -0
  1034. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/multi_cropper.py +0 -0
  1035. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/roi_selector.py +0 -0
  1036. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/roi_selector_circle.py +0 -0
  1037. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/roi_selector_polygon.py +0 -0
  1038. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba/video_processors/videos_to_frames.py +0 -0
  1039. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/dependency_links.txt +0 -0
  1040. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/entry_points.txt +0 -0
  1041. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/requires.txt +0 -0
  1042. {simba_uw_tf_dev-5.3.7 → simba_uw_tf_dev-5.3.8}/simba_uw_tf_dev.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simba_uw_tf_dev
3
- Version: 5.3.7
3
+ Version: 5.3.8
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
@@ -57,7 +57,7 @@ If you use the code, please cite:
57
57
  ```
58
58
 
59
59
  ### Licence
60
- SimBA is licensed under GNU Lesser General Public License v3.0.
60
+ SimBA is licensed under a modified BSD 3-Clause License, permitting use for academic and research purposes only. For commercial licensing inquiries, contact sronilsson@gmail.com.
61
61
 
62
62
  ### Contributors
63
63
  Contributers on Github https://github.com/sgoldenlab/simba#contributors
@@ -4,7 +4,7 @@
4
4
  [![py3.10 tests](https://github.com/sgoldenlab/simba/actions/workflows/tests_py310.yml/badge.svg)](https://github.com/sgoldenlab/simba/actions/workflows/tests_py310.yml)
5
5
  [![py3.6 tests](https://github.com/sgoldenlab/simba/actions/workflows/tests_py36.yml/badge.svg)](https://github.com/sgoldenlab/simba/actions/workflows/tests_py36.yml)
6
6
  ![Docs](https://readthedocs.org/projects/simba-uw-tf-dev/badge/?version=latest&style=flat)
7
- [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
7
+ [![License: Modified BSD 3-Clause](https://img.shields.io/badge/License-Modified%20BSD%203--Clause%20(Academic%2FResearch)-blue.svg)](LICENSE)
8
8
  [![Gitter chat](https://badges.gitter.im/USER/REPO.png)](https://gitter.im/SimBA-Resource/community)
9
9
  [![Download: Weights](https://img.shields.io/badge/Download-Weights-orange.svg)](https://osf.io/5t4y9/)
10
10
  [![SimBA: listserv](https://img.shields.io/static/v1?label=SimBA&message=listserv&color=blue)](https://docs.google.com/forms/d/e/1FAIpQLSfjbjae0XqNcl7GYOxmqvRsCveG-cmf4p4hBNNJ8gu5vPLHng/viewform)
@@ -3,7 +3,8 @@ SimBA (Simple Behavioral Analysis)
3
3
  https://github.com/sgoldenlab/simba
4
4
  Contributors.
5
5
  https://github.com/sgoldenlab/simba#contributors-
6
- Licensed under GNU Lesser General Public License v3.0
6
+ Licensed under a modified BSD 3-Clause License (academic and research use only).
7
+ For commercial licensing inquiries, contact sronilsson@gmail.com.
7
8
  """
8
9
 
9
10
  import setuptools
@@ -29,7 +30,7 @@ with open(GPU_REQUIREMENTS_PATH, "r") as f:
29
30
  # Setup configuration
30
31
  setuptools.setup(
31
32
  name="simba_uw_tf_dev",
32
- version="5.3.7",
33
+ version="5.3.8",
33
34
  author="Simon Nilsson, Jia Jie Choong, Sophia Hwang",
34
35
  author_email="sronilsson@gmail.com",
35
36
  description="Toolkit for computer classification and analysis of behaviors in experimental animals",
@@ -0,0 +1,289 @@
1
+ __author__ = "Simon Nilsson; sronilsson@gmail.com"
2
+
3
+ import os
4
+
5
+ os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
6
+
7
+ from typing import Dict, List, Optional, Tuple, Union
8
+
9
+ try:
10
+ from typing import Literal
11
+ except ImportError:
12
+ from typing_extensions import Literal
13
+
14
+ try:
15
+ from ultralytics import YOLO
16
+ except ModuleNotFoundError:
17
+ YOLO = None
18
+
19
+ from simba.data_processors.cuda.utils import _is_cuda_available
20
+ from simba.model.yolo_inference import YoloInference
21
+ from simba.plotting.yolo_visualize import YOLOVisualizer
22
+ from simba.utils.checks import (check_file_exist_and_readable, check_float,
23
+ check_if_dir_exists,
24
+ check_if_string_value_is_valid_video_timestamp,
25
+ check_int,
26
+ check_that_hhmmss_start_is_before_end,
27
+ check_valid_boolean, check_valid_lst)
28
+ from simba.utils.data import get_cpu_pool, terminate_cpu_pool
29
+ from simba.utils.enums import Options
30
+ from simba.utils.errors import (InvalidInputError, InvalidVideoFileError,
31
+ SimBAGPUError, SimBAPAckageVersionError)
32
+ from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
33
+ from simba.utils.read_write import (find_core_cnt,
34
+ find_files_of_filetypes_in_directory,
35
+ get_fn_ext, get_video_meta_data)
36
+ from simba.utils.yolo import get_yolo_imgsz_and_batch_size
37
+ from simba.video_processors.video_processing import (
38
+ clip_video_in_range, horizontal_video_concatenator, superimpose_freetext)
39
+
40
+ ENGINE = '.engine'
41
+
42
+
43
+ class YoloModelComparator():
44
+ """
45
+ Compare two or more YOLO models side-by-side on a set of test videos.
46
+
47
+ Per-model CSV detections and visualization videos are written to``out_dir/<label>/`` and the final comparison videos to ``out_dir/compare/``.
48
+
49
+ .. seealso::
50
+ :class:`~simba.model.yolo_inference.YoloInference` (per-model inference)
51
+ :class:`~simba.plotting.yolo_visualize.YOLOVisualizer` (per-model rendering)
52
+ :func:`~simba.video_processors.video_processing.horizontal_video_concatenator` (side-by-side concat)
53
+
54
+ :param List[Union[str, os.PathLike]] weights: List of YOLO model weight paths (length >= 2).
55
+ :param Union[str, os.PathLike, List[Union[str, os.PathLike]]] video_path: One of: a single video file path; a directory of videos (searched non-recursively); or a list/tuple of video file paths.
56
+ :param Union[str, os.PathLike] out_dir: Output directory. Per-model CSV/viz subdirectories and a ``compare/`` subdirectory are created underneath.
57
+ :param Optional[List[str]] labels: Display labels (one per model). If None, the weight file name (without extension) of each model is used. Must be unique and match ``len(weights)``.
58
+ :param float threshold: YOLO detection confidence threshold in ``[0.0, 1.0]``.
59
+ :param Union[Literal['cpu'], int] device: Inference device ('cpu' or CUDA index).
60
+ :param Optional[int] batch_size: Frames per YOLO inference batch. If None, it is read per-model from the model metadata (required for ``.engine`` files); falls back to 400 when unavailable (e.g. ``.pt`` weights).
61
+ :param Optional[int] imgsz: Model inference image size. If None, it is read per-model from the model metadata; falls back to 320 when unavailable. For ``.engine`` files the engine's baked-in image size always wins (a mismatching explicit value is overridden with a warning).
62
+ :param int max_detections: Maximum detections per frame.
63
+ :param Optional[str] palette: Matplotlib palette passed to ``YOLOVisualizer``.
64
+ :param float opacity: Polygon fill opacity in ``[0.0, 1.0]`` for the visualization.
65
+ :param Optional[int] thickness: Polygon line thickness.
66
+ :param int padding: Polygon offset in pixels for the visualization. Defaults to 0 (draw the exact detection box). Positive values expand polygons outward, ``-1`` shrinks them inward.
67
+ :param Optional[Tuple[int, int, int]] outline_color: BGR outline color for polygons.
68
+ :param Optional[int] core_cnt: CPU core count for the visualizer. If None, defaults to a quarter of the available cores to leave headroom; ``-1`` = all cores.
69
+ :param bool gpu: Use the NVENC codec when concatenating side-by-side.
70
+ :param bool overwrite: If True (default), always re-render comparison videos. If False, skip videos whose comparison output already exists.
71
+ :param bool overlay_labels: If True, burns each model's ``label`` into the top-left corner of its panel before side-by-side concatenation, so the panels are self-describing.
72
+ :param Optional[Dict[str, str]] time_window: Analysis window as a dict with ``'start'`` and ``'end'`` keys, both in ``HH:MM:SS`` format (e.g. ``{'start': '00:00:05', 'end': '00:00:30'}``). If provided, each video is clipped to the window (saved under ``out_dir/clips/``) and the comparison runs on the clip. If None, the full video is analysed.
73
+ :param bool verbose: Print progress information.
74
+
75
+ :example:
76
+ >>> c = YoloModelComparator(
77
+ ... weights=[r"/mdl/train8/weights/best.pt", r"/mdl/train13/weights/best.pt"],
78
+ ... video_path=r"/test_videos",
79
+ ... out_dir=r"/yolo_comparison",
80
+ ... labels=["train8", "train13"],
81
+ ... threshold=0.05,
82
+ ... max_detections=1,
83
+ ... device=0,
84
+ ... )
85
+ >>> c.run()
86
+ """
87
+
88
+ def __init__(self,
89
+ weights: List[Union[str, os.PathLike]],
90
+ video_path: Union[str, os.PathLike, List[Union[str, os.PathLike]]],
91
+ out_dir: Union[str, os.PathLike],
92
+ labels: Optional[List[str]] = None,
93
+ threshold: float = 0.05,
94
+ device: Union[Literal['cpu'], int] = 0,
95
+ batch_size: Optional[int] = None,
96
+ imgsz: Optional[int] = None,
97
+ max_detections: int = 300,
98
+ palette: Optional[str] = 'Set1',
99
+ opacity: float = 0.6,
100
+ thickness: Optional[int] = 2,
101
+ padding: int = 0,
102
+ outline_color: Optional[Tuple[int, int, int]] = None,
103
+ core_cnt: Optional[int] = None,
104
+ gpu: bool = False,
105
+ overwrite: bool = True,
106
+ overlay_labels: bool = True,
107
+ time_window: Optional[Dict[str, str]] = None,
108
+ verbose: bool = True):
109
+
110
+ if not _is_cuda_available()[0]:
111
+ raise SimBAGPUError(msg='No GPU detected.', source=self.__class__.__name__)
112
+ if YOLO is None:
113
+ raise SimBAPAckageVersionError(msg='ultralytics.YOLO package not detected.', source=self.__class__.__name__)
114
+ check_valid_lst(data=weights, source=f'{self.__class__.__name__} weights', valid_dtypes=(str, os.PathLike), min_len=2)
115
+ for w in weights:
116
+ check_file_exist_and_readable(file_path=w)
117
+ if labels is None:
118
+ labels = [get_fn_ext(filepath=w)[1] for w in weights]
119
+ check_valid_lst(data=labels, source=f'{self.__class__.__name__} labels', valid_dtypes=(str,), exact_len=len(weights))
120
+ if len(set(labels)) != len(labels):
121
+ raise InvalidInputError(msg=f'labels must be unique, got: {labels}', source=self.__class__.__name__)
122
+ if isinstance(video_path, (list, tuple)):
123
+ check_valid_lst(data=video_path, source=f'{self.__class__.__name__} video_path', valid_dtypes=(str, os.PathLike), min_len=1)
124
+ for v in video_path:
125
+ check_file_exist_and_readable(file_path=v)
126
+ get_video_meta_data(video_path=v)
127
+ self.video_paths = list(video_path)
128
+ elif os.path.isfile(video_path):
129
+ check_file_exist_and_readable(file_path=video_path)
130
+ get_video_meta_data(video_path=video_path)
131
+ self.video_paths = [video_path]
132
+ elif os.path.isdir(video_path):
133
+ self.video_paths = find_files_of_filetypes_in_directory(directory=video_path, extensions=Options.ALL_VIDEO_FORMAT_OPTIONS.value, raise_error=True, as_dict=False)
134
+ else:
135
+ raise InvalidVideoFileError(msg=f'{video_path} is not a valid video file, directory, or list of video files.', source=self.__class__.__name__)
136
+ check_if_dir_exists(in_dir=out_dir, source=f'{self.__class__.__name__} out_dir', create_if_not_exist=True)
137
+ check_float(name=f'{self.__class__.__name__} threshold', value=threshold, min_value=0.0, max_value=1.0)
138
+ if batch_size is not None:
139
+ check_int(name=f'{self.__class__.__name__} batch_size', value=batch_size, min_value=1)
140
+ if imgsz is not None:
141
+ check_int(name=f'{self.__class__.__name__} imgsz', value=imgsz, min_value=32)
142
+ check_int(name=f'{self.__class__.__name__} max_detections', value=max_detections, min_value=1)
143
+ if core_cnt is None:
144
+ core_cnt = find_core_cnt()[1]
145
+ check_int(name=f'{self.__class__.__name__} core_cnt', value=core_cnt, min_value=-1, unaccepted_vals=[0])
146
+ check_float(name=f'{self.__class__.__name__} opacity', value=opacity, min_value=0.0, max_value=1.0)
147
+ check_valid_boolean(value=[gpu, overwrite, overlay_labels, verbose], source=self.__class__.__name__)
148
+ self.start_time, self.end_time = None, None
149
+ if time_window is not None:
150
+ if not isinstance(time_window, dict) or set(time_window.keys()) != {'start', 'end'}:
151
+ raise InvalidInputError(msg=f"time_window must be a dict with exactly 'start' and 'end' keys in HH:MM:SS format, got: {time_window}", source=self.__class__.__name__)
152
+ check_if_string_value_is_valid_video_timestamp(value=time_window['start'], name=f'{self.__class__.__name__} time_window start')
153
+ check_if_string_value_is_valid_video_timestamp(value=time_window['end'], name=f'{self.__class__.__name__} time_window end')
154
+ check_that_hhmmss_start_is_before_end(start_time=time_window['start'], end_time=time_window['end'], name=f'{self.__class__.__name__} time_window')
155
+ self.start_time, self.end_time = time_window['start'], time_window['end']
156
+
157
+ self.weights, self.labels = list(weights), list(labels)
158
+ self.video_path, self.out_dir = video_path, out_dir
159
+ self.threshold, self.device, self.batch_size, self.imgsz = threshold, device, batch_size, imgsz
160
+ self.max_detections, self.palette, self.opacity = max_detections, palette, opacity
161
+ self.thickness, self.padding, self.outline_color = thickness, padding, outline_color
162
+ self.core_cnt, self.gpu, self.overwrite, self.verbose = core_cnt, gpu, overwrite, verbose
163
+ self.overlay_labels = overlay_labels
164
+ self.clip_videos = self.start_time is not None
165
+ self.compare_dir = os.path.join(out_dir, 'compare')
166
+ os.makedirs(self.compare_dir, exist_ok=True)
167
+ if self.clip_videos:
168
+ self.clips_dir = os.path.join(out_dir, 'clips')
169
+ os.makedirs(self.clips_dir, exist_ok=True)
170
+ self.csv_dirs, self.viz_dirs = {}, {}
171
+ for label in self.labels:
172
+ csv_dir = os.path.join(out_dir, label, 'csv')
173
+ viz_dir = os.path.join(out_dir, label, 'viz')
174
+ os.makedirs(csv_dir, exist_ok=True)
175
+ os.makedirs(viz_dir, exist_ok=True)
176
+ self.csv_dirs[label] = csv_dir
177
+ self.viz_dirs[label] = viz_dir
178
+
179
+ def _resolve_imgsz_batch(self, weight: Union[str, os.PathLike], label: str) -> Tuple[int, int]:
180
+ """Resolve the effective imgsz/batch_size for a single model. Engine bindings are authoritative; otherwise the user value, then the model metadata, then a default is used."""
181
+ is_engine = get_fn_ext(filepath=weight)[2].lower() == ENGINE
182
+ mdl_imgsz, mdl_batch = get_yolo_imgsz_and_batch_size(model=weight, raise_error=False)
183
+ if is_engine and mdl_imgsz is not None:
184
+ if self.imgsz is not None and self.imgsz != mdl_imgsz and self.verbose:
185
+ stdout_information(msg=f'{label}: passed imgsz={self.imgsz} overridden by engine imgsz={mdl_imgsz}.', source=self.__class__.__name__)
186
+ imgsz = mdl_imgsz
187
+ else:
188
+ imgsz = self.imgsz if self.imgsz is not None else (mdl_imgsz if mdl_imgsz is not None else 320)
189
+ if is_engine and mdl_batch is not None:
190
+ if self.batch_size is not None and self.batch_size != mdl_batch and self.verbose:
191
+ stdout_information(msg=f'{label}: passed batch_size={self.batch_size} overridden by engine batch_size={mdl_batch}.', source=self.__class__.__name__)
192
+ batch_size = mdl_batch
193
+ else:
194
+ batch_size = self.batch_size if self.batch_size is not None else (mdl_batch if mdl_batch is not None else 400)
195
+ return imgsz, batch_size
196
+
197
+ def _clip_videos(self) -> List[Union[str, os.PathLike]]:
198
+ """Clip every source video to ``[start_time, end_time]`` into ``out_dir/clips/`` and return the clipped paths. Existing clips are reused when ``overwrite`` is False."""
199
+ clipped_paths = []
200
+ for video_path in self.video_paths:
201
+ _, video_name, _ = get_fn_ext(filepath=video_path)
202
+ save_path = os.path.join(self.clips_dir, f'{video_name}_clipped.mp4')
203
+ if os.path.isfile(save_path) and not self.overwrite:
204
+ if self.verbose:
205
+ stdout_information(msg=f'{video_name}: clip exists, reusing {save_path}.', source=self.__class__.__name__)
206
+ else:
207
+ clip_video_in_range(file_path=video_path, start_time=self.start_time, end_time=self.end_time, save_path=save_path, overwrite=True, gpu=self.gpu, verbose=self.verbose)
208
+ clipped_paths.append(save_path)
209
+ return clipped_paths
210
+
211
+ def run(self):
212
+ timer = SimbaTimer(start=True)
213
+ video_paths = self._clip_videos() if self.clip_videos else self.video_paths
214
+ for label, weight in zip(self.labels, self.weights):
215
+ imgsz, batch_size = self._resolve_imgsz_batch(weight=weight, label=label)
216
+ if self.verbose:
217
+ stdout_information(msg=f'Running YOLO inference for {label} on {len(video_paths)} video(s) (imgsz={imgsz}, batch_size={batch_size})...', source=self.__class__.__name__)
218
+ YoloInference(weights=weight,
219
+ video_path=video_paths,
220
+ save_dir=self.csv_dirs[label],
221
+ device=self.device,
222
+ batch_size=batch_size,
223
+ imgsz=imgsz,
224
+ threshold=self.threshold,
225
+ max_detections=self.max_detections,
226
+ verbose=self.verbose).run()
227
+
228
+ pool = get_cpu_pool(core_cnt=self.core_cnt, verbose=True, source=self.__class__.__name__)
229
+ for video_idx, video_path in enumerate(video_paths):
230
+ _, video_name, _ = get_fn_ext(filepath=video_path)
231
+ out_path = os.path.join(self.compare_dir, f'{video_name}_compare.mp4')
232
+ if os.path.isfile(out_path) and not self.overwrite:
233
+ if self.verbose:
234
+ stdout_information(msg=f'[{video_idx + 1}/{len(video_paths)}] {video_name}: comparison exists, skipping.', source=self.__class__.__name__)
235
+ continue
236
+ if self.verbose:
237
+ stdout_information(msg=f'[{video_idx + 1}/{len(video_paths)}] Rendering {video_name}...', source=self.__class__.__name__)
238
+ label_font_size = max(int(get_video_meta_data(video_path=video_path)['height'] / 15), 12) if self.overlay_labels else None
239
+ viz_paths = []
240
+ for label in self.labels:
241
+ csv_path = os.path.join(self.csv_dirs[label], f'{video_name}.csv')
242
+ check_file_exist_and_readable(file_path=csv_path)
243
+ visualizer = YOLOVisualizer(data_path=csv_path,
244
+ video_path=video_path,
245
+ pool=pool,
246
+ save_dir=self.viz_dirs[label],
247
+ palette=self.palette,
248
+ core_cnt=self.core_cnt,
249
+ threshold=self.threshold,
250
+ padding=self.padding,
251
+ thickness=self.thickness,
252
+ opacity=self.opacity,
253
+ outline_color=self.outline_color,
254
+ verbose=self.verbose)
255
+ visualizer.run()
256
+ viz_path = os.path.join(self.viz_dirs[label], f'{video_name}.mp4')
257
+ if self.overlay_labels:
258
+ superimpose_freetext(video_path=viz_path, text=label, font_size=label_font_size, position='top_left', save_dir=self.viz_dirs[label], gpu=self.gpu)
259
+ viz_path = os.path.join(self.viz_dirs[label], f'{video_name}_text_superimposed.mp4')
260
+ viz_paths.append(viz_path)
261
+ horizontal_video_concatenator(video_paths=viz_paths,
262
+ save_path=out_path,
263
+ height_idx=0,
264
+ gpu=self.gpu,
265
+ verbose=self.verbose)
266
+
267
+ terminate_cpu_pool(pool=pool, force=False, source=self.__class__.__name__)
268
+ timer.stop_timer()
269
+ if self.verbose:
270
+ stdout_success(msg=f'Saved {len(video_paths)} comparison video(s) for {len(self.weights)} model(s) in {self.compare_dir}.', source=self.__class__.__name__, elapsed_time=timer.elapsed_time_str)
271
+
272
+
273
+
274
+
275
+
276
+
277
+ #if __name__ == '__main__':
278
+ # comparator = YoloModelComparator(weights=[r"G:\netholabs\yolo_comparator_test\mdls\yolo_0518_best.pt",
279
+ # r"G:\netholabs\yolo_comparator_test\mdls\yolo_0519_best.pt"],
280
+ # video_path=r"D:\troubleshooting\sleap_two_animals\project_folder\videos\simba_test_v11.avi",
281
+ # out_dir=r"D:\troubleshooting\sleap_two_animals\project_folder\videos\output",
282
+ # labels=["yolo_0518_best", "train13"],
283
+ # threshold=0.01,
284
+ # max_detections=2,
285
+ # overwrite=True,
286
+ # time_window={'start': '00:00:00', 'end': '00:00:10'},
287
+ # overlay_labels=True,
288
+ # device=0)
289
+ # comparator.run()
@@ -1,3 +1,4 @@
1
+ import multiprocessing
1
2
  import os
2
3
  from typing import Optional, Tuple, Union
3
4
 
@@ -8,7 +9,8 @@ from simba.mixins.geometry_mixin import GeometryMixin
8
9
  from simba.plotting.geometry_plotter import GeometryPlotter
9
10
  from simba.utils.checks import (check_file_exist_and_readable, check_float,
10
11
  check_if_dir_exists, check_int,
11
- check_valid_boolean, check_valid_dataframe)
12
+ check_valid_boolean, check_valid_cpu_pool,
13
+ check_valid_dataframe)
12
14
  from simba.utils.data import get_cpu_pool, terminate_cpu_pool
13
15
  from simba.utils.errors import FrameRangeError
14
16
  from simba.utils.read_write import (find_core_cnt, get_fn_ext,
@@ -63,7 +65,7 @@ class YOLOVisualizer():
63
65
  :param Optional[str] palette: Matplotlib color palette name for per-class geometry colors (e.g., ``'Set1'``, ``'tab10'``). Default: ``'Set1'``.
64
66
  :param Optional[int] core_cnt: CPU core count for parallel processing. Use ``-1`` for all available cores.
65
67
  :param float threshold: Confidence threshold in ``[0.0, 1.0]``. Detections below threshold are masked before polygon conversion.
66
- :param Optional[int] padding: Polygon padding offset in pixels used during multiframe bbox-to-polygon conversion for rendering. Positive values expand polygons outward, negative values shrink polygons inward. If ``None``, no padding offset is applied. This affects visualization geometry only, not the underlying YOLO detections in the input CSV.
68
+ :param int padding: Polygon offset in pixels used during multiframe bbox-to-polygon conversion for rendering. Defaults to 0 (draw the exact detection box). Positive values expand polygons outward, ``-1`` shrinks them inward. This affects visualization geometry only, not the underlying YOLO detections in the input CSV.
67
69
  :param Optional[int] thickness: Polygon line thickness. If ``None``, default geometry plotter thickness is used.
68
70
  :param float opacity: Polygon fill opacity in ``[0.0, 1.0]``. Default: 0.6.
69
71
  :param Optional[Tuple[int, int, int]] outline_color: BGR color for polygon outlines. If ``None``, no outlines are drawn. Default: None.
@@ -88,7 +90,8 @@ class YOLOVisualizer():
88
90
  palette: Optional[str] = 'Set1',
89
91
  core_cnt: Optional[int] = -1,
90
92
  threshold: float = 0.0,
91
- padding: Optional[int] = 20,
93
+ padding: int = 0,
94
+ pool: Optional[multiprocessing.Pool] = None,
92
95
  thickness: Optional[int] = None,
93
96
  opacity: float = 0.6,
94
97
  outline_color: Optional[Tuple[int, int, int]] = None,
@@ -99,8 +102,9 @@ class YOLOVisualizer():
99
102
  self.data_path, self.video_path = data_path, video_path
100
103
  self.video_name = get_fn_ext(filepath=data_path)[1]
101
104
  check_int(name=f'{self.__class__.__name__} core_cnt', value=core_cnt, min_value=-1, unaccepted_vals=[0])
102
- if padding is not None: check_int(name=f'{self.__class__.__name__} padding', value=padding, min_value=-1, unaccepted_vals=[0])
105
+ check_int(name=f'{self.__class__.__name__} padding', value=padding, min_value=-1)
103
106
  check_float(name=f'{self.__class__.__name__} threshold', value=threshold, min_value=0.0, max_value=1.0)
107
+ if pool is not None: check_valid_cpu_pool(value=pool, source=self.__class__.__name__, max_cores=find_core_cnt()[0], raise_error=True)
104
108
  self.core_cnt = core_cnt
105
109
  if core_cnt == -1 or core_cnt > find_core_cnt()[0]: self.core_cnt = find_core_cnt()[0]
106
110
  if thickness is not None:
@@ -109,13 +113,14 @@ class YOLOVisualizer():
109
113
  check_valid_boolean(value=[verbose], source=self.__class__.__name__, raise_error=True)
110
114
  check_float(name=f'{self.__class__.__name__} opacity', value=opacity, min_value=0.0, max_value=1.0)
111
115
  self.save_dir, self.verbose, self.palette, self.thickness = save_dir, verbose, palette, thickness
112
- self.threshold, self.padding, self.opacity, self.outline_color = threshold, padding, opacity, outline_color
116
+ self.threshold, self.padding, self.opacity, self.outline_color, self.pool = threshold, padding, opacity, outline_color, pool
117
+ self.pool_terminate_flag = False if pool is not None else True
113
118
 
114
119
  def run(self):
115
120
  data_df = pd.read_csv(self.data_path, index_col=0)
116
121
  check_valid_dataframe(df=data_df, source=self.__class__.__name__, required_fields=EXPECTED_COLS)
117
122
  df_frm_cnt = np.unique(data_df[FRAME].values).shape[0]
118
- pool = get_cpu_pool(core_cnt=self.core_cnt, source=self.__class__.__name__)
123
+ pool = self.pool if self.pool is not None else get_cpu_pool(core_cnt=self.core_cnt, verbose=True, source=self.__class__.__name__)
119
124
  if self.video_meta_data['frame_count'] != df_frm_cnt:
120
125
  raise FrameRangeError(
121
126
  msg=f'The bounding boxes contain data for {df_frm_cnt} frames, while the video is {self.video_meta_data["frame_count"]} frames',
@@ -145,7 +150,7 @@ class YOLOVisualizer():
145
150
  outline_clr=self.outline_color,
146
151
  pool=pool)
147
152
  plotter.run()
148
- terminate_cpu_pool(pool=pool, source=self.__class__.__name__)
153
+ if self.pool_terminate_flag: terminate_cpu_pool(pool=pool, force=False, source=self.__class__.__name__)
149
154
  #
150
155
  #
151
156
  # if __name__ == '__main__':
@@ -69,7 +69,6 @@ class CropLPAnnotationsBboxSquare:
69
69
  y2 = int(np.ceil(np.max(y_valid)))
70
70
  return (x1, y1, x2, y2)
71
71
 
72
- # No detection, no keypoints: center crop
73
72
  cx, cy = img_w // 2, img_h // 2
74
73
  half = min(img_w, img_h) // 2
75
74
  return (cx - half, cy - half, cx + half, cy + half)
@@ -84,7 +83,6 @@ class CropLPAnnotationsBboxSquare:
84
83
  x2p = x2 + px
85
84
  y2p = y2 + py
86
85
 
87
- # Make square by extending the shorter side
88
86
  pw, ph = x2p - x1p, y2p - y1p
89
87
  side = max(pw, ph)
90
88
  cx = (x1p + x2p) / 2.0
@@ -96,7 +94,6 @@ class CropLPAnnotationsBboxSquare:
96
94
  crop_x2 = crop_x1 + side
97
95
  crop_y2 = crop_y1 + side
98
96
 
99
- # Clamp to image bounds
100
97
  if crop_x1 < 0:
101
98
  crop_x1, crop_x2 = 0, side
102
99
  if crop_y1 < 0:
@@ -106,7 +103,6 @@ class CropLPAnnotationsBboxSquare:
106
103
  if crop_y2 > img_h:
107
104
  crop_y2, crop_y1 = img_h, img_h - side
108
105
 
109
- # If image is smaller than the square, clamp
110
106
  crop_x1 = max(0, int(crop_x1))
111
107
  crop_y1 = max(0, int(crop_y1))
112
108
  crop_x2 = min(img_w, int(crop_x2))
@@ -179,27 +175,22 @@ class CropLPAnnotationsBboxSquare:
179
175
  continue
180
176
  h, w = img.shape[:2]
181
177
 
182
- # Get bbox and make square crop
183
178
  bbox = self._get_bbox_for_image(img_rel=img_rel, img_h=h, img_w=w, xs=xs, ys=ys, valid=valid)
184
179
  crop_x1, crop_y1, crop_x2, crop_y2 = self._bbox_to_square_crop(
185
180
  bbox[0], bbox[1], bbox[2], bbox[3], h, w
186
181
  )
187
182
 
188
- # Crop the square region
189
183
  cropped = img[crop_y1:crop_y2, crop_x1:crop_x2]
190
184
  crop_h, crop_w = cropped.shape[:2]
191
185
 
192
- # Resize to target crop_size
193
186
  scale_x = crop_size[0] / crop_w
194
187
  scale_y = crop_size[1] / crop_h
195
188
  resized = cv2.resize(cropped, crop_size, interpolation=cv2.INTER_LINEAR)
196
189
 
197
- # Save cropped image
198
190
  out_img_path = os.path.join(save_dir, img_rel.replace("/", os.sep))
199
191
  os.makedirs(os.path.dirname(out_img_path), exist_ok=True)
200
192
  cv2.imwrite(out_img_path, resized)
201
193
 
202
- # Transform coordinates: shift by crop offset, then scale
203
194
  new_coords = coords.copy()
204
195
  new_xs = np.where(np.isnan(xs), np.nan, (xs - crop_x1) * scale_x)
205
196
  new_ys = np.where(np.isnan(ys), np.nan, (ys - crop_y1) * scale_y)
@@ -223,8 +214,6 @@ class CropLPAnnotationsBboxSquare:
223
214
  out_df.to_csv(out_csv_path)
224
215
  stdout_success(msg=f"Saved {out_csv_path} ({len(out_df)} rows).")
225
216
 
226
- # --- Copied from original (unchanged) ---
227
-
228
217
  @staticmethod
229
218
  def _copy_project_files(lp_project_dir: str, save_dir: str):
230
219
  COPY_DIRS = ("configs", "calibrations", "models")
@@ -305,9 +294,9 @@ class CropLPAnnotationsBboxSquare:
305
294
  return common
306
295
 
307
296
 
308
- #if __name__ == "__main__":
309
- # cropper = CropLPAnnotationsBboxSquare(lp_project_dir=r"Z:\home\simon\LPProjects\mini_project_0513",
310
- # save_dir=r"Z:\home\simon\LPProjects\mini_project_0513_cropped",
311
- # bbox_pad_frac=0.25,
312
- # visualize=True)
313
- # cropper.run()
297
+ # if __name__ == "__main__":
298
+ # cropper = CropLPAnnotationsBboxSquare(lp_project_dir=r"Z:\home\simon\LPProjects\project_0601",
299
+ # save_dir=r"Z:\home\simon\LPProjects\project_0601_cropped",
300
+ # bbox_pad_frac=0.25,
301
+ # visualize=50)
302
+ # cropper.run()
@@ -81,6 +81,7 @@ SIMBA_DIR = os.path.dirname(simba.__file__)
81
81
 
82
82
  PARSE_OPTIONS = csv.ParseOptions(delimiter=",")
83
83
  READ_OPTIONS = csv.ReadOptions(encoding="utf8")
84
+ PA_DEFAULT_BLOCK_SIZE = csv.ReadOptions().block_size
84
85
  ImageFile.LOAD_TRUNCATED_IMAGES = False
85
86
 
86
87
  def read_df(file_path: Union[str, os.PathLike],
@@ -122,8 +123,11 @@ def read_df(file_path: Union[str, os.PathLike],
122
123
  timer = SimbaTimer(start=True)
123
124
  if file_type == Formats.CSV.value:
124
125
  try:
126
+ with open(file_path, "rb") as f:
127
+ first_line_len = len(f.readline())
128
+ read_options = csv.ReadOptions(encoding="utf8", block_size=max(PA_DEFAULT_BLOCK_SIZE, first_line_len * 2))
125
129
  df = csv.read_csv(
126
- file_path, parse_options=PARSE_OPTIONS, read_options=READ_OPTIONS
130
+ file_path, parse_options=PARSE_OPTIONS, read_options=read_options
127
131
  )
128
132
  duplicate_headers = list(
129
133
  set([x for x in df.column_names if df.column_names.count(x) > 1])
@@ -591,7 +591,7 @@ def read_yolo_metadata(model: Union[str, os.PathLike, YOLO]) -> dict:
591
591
 
592
592
  META_KEYS = ('batch', 'imgsz', 'stride', 'task', 'names', 'fp16', 'dynamic')
593
593
 
594
- if isinstance(model, YOLO):
594
+ if YOLO is not None and isinstance(model, YOLO):
595
595
  meta = {}
596
596
  if hasattr(model, 'predictor') and model.predictor is not None and hasattr(model.predictor, 'model'):
597
597
  backend = model.predictor.model
@@ -625,6 +625,8 @@ def read_yolo_metadata(model: Union[str, os.PathLike, YOLO]) -> dict:
625
625
  return json.loads(f.read(meta_len).decode('utf-8'))
626
626
  return {}
627
627
 
628
+ if YOLO is None:
629
+ raise SimBAPAckageVersionError(msg=f'Reading metadata from a {ext} model requires the ultralytics package, which is not installed.', source=read_yolo_metadata.__name__)
628
630
  loaded = YOLO(path)
629
631
  meta = {}
630
632
  if hasattr(loaded, 'overrides'):
@@ -642,6 +644,49 @@ def read_yolo_metadata(model: Union[str, os.PathLike, YOLO]) -> dict:
642
644
  meta[key] = getattr(loaded.model, key)
643
645
  return meta
644
646
 
647
+
648
+ def get_yolo_imgsz_and_batch_size(model: Union[str, os.PathLike, YOLO],
649
+ raise_error: bool = True) -> Tuple[Optional[int], Optional[int]]:
650
+ """
651
+ Attempt to read the image size and batch size baked into a YOLO model.
652
+
653
+ .. note::
654
+ For ``.engine`` (TensorRT) files both values are read straight from the embedded header
655
+ and represent the fixed input bindings. For ``.pt`` and other formats the values are
656
+ scraped from the training arguments, so ``imgsz`` reflects the *training* size (a sensible
657
+ default, not a hard constraint) and ``batch`` is frequently unavailable.
658
+
659
+ .. seealso::
660
+ :func:`~simba.utils.yolo.read_yolo_metadata` (full metadata dictionary)
661
+
662
+ :param Union[str, os.PathLike, YOLO] model: Path to a YOLO model file, or an already-loaded :class:`ultralytics.YOLO` instance.
663
+ :param bool raise_error: If True (default), raise :class:`~simba.utils.errors.InvalidInputError` when ``imgsz`` or ``batch`` cannot be found in the model metadata. If False, missing values are returned as ``None``.
664
+ :return: Tuple of ``(imgsz, batch_size)``, each an ``int`` (or ``None`` if not found and ``raise_error`` is False).
665
+ :rtype: Tuple[Optional[int], Optional[int]]
666
+ :raises InvalidInputError: If ``raise_error`` is True and ``imgsz`` and/or ``batch`` is not present in the model metadata.
667
+
668
+ :example:
669
+ >>> get_yolo_imgsz_and_batch_size(r'/models/best.engine')
670
+ (256, 192)
671
+ >>> get_yolo_imgsz_and_batch_size(r'/models/best.pt', raise_error=False)
672
+ (640, None)
673
+ """
674
+
675
+ check_valid_boolean(value=raise_error, source=f'{get_yolo_imgsz_and_batch_size.__name__} raise_error', raise_error=True)
676
+ meta = read_yolo_metadata(model=model)
677
+ imgsz, batch_size = meta.get('imgsz', None), meta.get('batch', None)
678
+ if isinstance(imgsz, (list, tuple)) and len(imgsz) > 0:
679
+ imgsz = imgsz[0]
680
+ if imgsz is not None:
681
+ imgsz = int(imgsz)
682
+ if batch_size is not None:
683
+ batch_size = int(batch_size)
684
+ if raise_error:
685
+ missing = [k for k, v in (('imgsz', imgsz), ('batch', batch_size)) if v is None]
686
+ if missing:
687
+ raise InvalidInputError(msg=f'Could not read {" and ".join(missing)} from the metadata of model {model}. Pass the value(s) explicitly, or set raise_error=False.', source=get_yolo_imgsz_and_batch_size.__name__)
688
+ return imgsz, batch_size
689
+
645
690
  # export_yolo_model(model_path=r"E:\open_video\open_field_2\yolo_seg_project\mdl\train\weights\best.pt",
646
691
  # export_format='engine',
647
692
  # imgsz=1240,
@@ -4680,7 +4680,7 @@ def superimpose_freetext(video_path: Union[str, os.PathLike],
4680
4680
  :align: center
4681
4681
 
4682
4682
  :param Union[str, os.PathLike] video_path: Path to the input video file or directory containing video files.
4683
- :param str text: The text to overlay on the video
4683
+ :param str text: The text to overlay on the video. Characters that break the ffmpeg ``drawtext`` filter (``: ' " \\ % , ; =``) are stripped or replaced before rendering. Raises if no legal characters remain.
4684
4684
  :param Optional[int] font_size: Font size for the text. Default 30.
4685
4685
  :param Optional[str] font_color: Font color for text. Default white
4686
4686
  :param Optional[str] font_border_color: Font border color for the text. Default black.
@@ -4701,6 +4701,11 @@ def superimpose_freetext(video_path: Union[str, os.PathLike],
4701
4701
  check_int(name=f'{superimpose_freetext.__name__} font_size', value=font_size, min_value=1)
4702
4702
  check_int(name=f'{superimpose_freetext.__name__} font_border_width', value=font_border_width, min_value=1)
4703
4703
  check_str(name=f'{superimpose_freetext.__name__} text', value=text)
4704
+ illegal_chars = {':': '-', "'": '', '"': '', '\\': '', '%': '', ',': ' ', ';': ' ', '=': '-'}
4705
+ cleaned_text = ''.join(illegal_chars.get(c, c) for c in text).strip()
4706
+ if len(cleaned_text) == 0:
4707
+ raise InvalidInputError(msg=f'The text "{text}" only contains characters that are illegal in ffmpeg drawtext and cannot be superimposed.', source=superimpose_freetext.__name__)
4708
+ text = cleaned_text
4704
4709
  font_dict = get_fonts()
4705
4710
  check_str(name='font', value=font, options=tuple(font_dict.keys()))
4706
4711
  font_path = font_dict[font]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simba-uw-tf-dev
3
- Version: 5.3.7
3
+ Version: 5.3.8
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
@@ -57,7 +57,7 @@ If you use the code, please cite:
57
57
  ```
58
58
 
59
59
  ### Licence
60
- SimBA is licensed under GNU Lesser General Public License v3.0.
60
+ SimBA is licensed under a modified BSD 3-Clause License, permitting use for academic and research purposes only. For commercial licensing inquiries, contact sronilsson@gmail.com.
61
61
 
62
62
  ### Contributors
63
63
  Contributers on Github https://github.com/sgoldenlab/simba#contributors
@@ -688,6 +688,7 @@ simba/plotting/circular_feature_overlay_plotter.py
688
688
  simba/plotting/circular_plotting.py
689
689
  simba/plotting/clf_validator.py
690
690
  simba/plotting/clf_validator_mp.py
691
+ simba/plotting/compare_bbox_mdls.py
691
692
  simba/plotting/cue_light_visualizer.py
692
693
  simba/plotting/data_plotter.py
693
694
  simba/plotting/directing_animals_to_bodypart_visualizer.py
File without changes