simba-uw-tf-dev 5.2.1__tar.gz → 5.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/PKG-INFO +1 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_gpu.txt +1 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/setup.py +1 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/SimBA.py +2 -5
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.recent_projects.txt +1 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/tooptips.json +67 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/movement_calculator.py +25 -10
- simba_uw_tf_dev-5.2.3/simba/feature_extractors/wingwave_extractor.py +189 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/geometry_mixin.py +5 -5
- simba_uw_tf_dev-5.2.3/simba/model/nvdec_yolo_inference.py +338 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_fit.py +279 -266
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_inference.py +84 -35
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_pose_inference.py +10 -4
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_seg_inference.py +41 -25
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/path_plotter_mp.py +520 -519
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/plot_clf_results_mp.py +21 -0
- simba_uw_tf_dev-5.2.3/simba/plotting/skeleton_video_creator.py +344 -0
- simba_uw_tf_dev-5.2.3/simba/plotting/yolo_seg_visualizer.py +178 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_visualize.py +150 -127
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/converters.py +1978 -1970
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py +3 -3
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/litpose_to_yolo_bbox.py +8 -2
- simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/merge_yolo_projects.py +230 -0
- simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/sam3_to_yolo_bbox.py +286 -0
- simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/sam3_to_yolo_seg.py +242 -0
- simba_uw_tf_dev-5.2.3/simba/third_party_label_appenders/transform/yolo_labels_to_yolo_project.py +110 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/annotated_bouts_videos_pop_up.py +169 -170
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/movement_analysis_pop_up.py +14 -4
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/video_processing_pop_up.py +68 -68
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/checks.py +2 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/lookups.py +75 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/printing.py +135 -124
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/read_write.py +3994 -3877
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/yolo.py +183 -6
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/async_frame_reader.py +14 -8
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/PKG-INFO +1 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/SOURCES.txt +7 -1
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/requires.txt +1 -1
- simba_uw_tf_dev-5.2.1/scripts/unzip_videos_to_folder.py +0 -53
- simba_uw_tf_dev-5.2.1/simba/plotting/yolo_seg_visualizer.py +0 -155
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/bigquery_download_stats.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/cleaning.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/issue_msg.yml.disabled +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/issue_report.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/tests_py310.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.github/workflows/tests_py36.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.gitignore +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.pytest.ini +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/.readthedocs.yaml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/App.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/CITATION.cff +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/CODE_OF_CONDUCT.md +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/LICENSE +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/MANIFEST.in +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/README.md +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_arm.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/requirements_wsl.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/caltech_download.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/create_issues_report.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/dataverse_download.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/gitter_stats.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/make_qr_code.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/osf_download.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/scripts/upgrade_simba_keep_configs.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/setup.cfg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/SimBA_logo.ico +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/.env +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/TheGoldenLab.PNG +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/dash_simba_base.css +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Playwrite ES Deco.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Poppins Bold.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/Poppins Regular.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/fonts/UbuntuMono-Regular.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.icns +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.ico +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3.ico +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_3_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/SimBA_logo_4_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/abacus_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/about.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/add.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/add_on.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/analyze_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/analyze_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/api.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/application.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/archive.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/arrow_down_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/arrow_down_green_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/attributes_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/audio.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/average.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/average_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/avi.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/background.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bar_graph_light_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/batch.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/black_and_white.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/black_cross.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/blur.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bmp.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bold.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/boolean.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/boris.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/branches_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/brightness.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/browse.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/browse_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/brush_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bubble_pink.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bullet_grey.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bullseye.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/bw.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/calipher.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/camera.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/category.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/center.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/change.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/check_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/circle_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clahe.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clean.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clean_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clf.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clf_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clip.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/clock.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/close.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cluster.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cluster_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/coco_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/color_wheel.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/horizontal.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/mixed_mosaic.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/mosaic.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_icons/vertical.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/concat_videos.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/convert.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/counter.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/cpu_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/create.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crop_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/crossfade.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/csv_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/csv_grey.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/curve_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/danger.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dash_simba.css +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/data_table.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_purple.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/decision_tree_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/delete_large_orange.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/delete_large_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dependency.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/details.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/developer.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dice_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dimensionality_reduction.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/direction_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/display_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/distance.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/distance_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dlc_1.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dlc_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/documentation.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/documentation_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/download.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/draw.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/dumbbell.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_2_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/duplicate_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ear_right.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ear_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/edit.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/edit_roi_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/egocentric.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/equation_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ethovision.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/exit.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/eye.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/factory.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_forward_large_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fast_reverse.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fastforward_green_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/feather_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/features.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ffmpeg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/file.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/file_type.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fill.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/filter.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/finish.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fire.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first_frame_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/first_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/flip_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/folder_video.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/font.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/font_size.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forest.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forward.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/forward_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/four_squares.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/fps.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/frames.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/frames_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gamma.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gantt_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gantt_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gif.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/github.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/github_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gitter.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gitter_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/gpu_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/green_check.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/green_dice.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/grey.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/greyscale.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/half_circle.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/half_circle_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/heatmap.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/height.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hexagon.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hexagon_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hierarchy.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/hierarchy_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/histogram.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/home.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/horizontal.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/id_card.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/id_card_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/image.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/import.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/info.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/info_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ini.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/interaction_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/interactive_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/invert.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_purple.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/join_yellow.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/jpeg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/json.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/jump.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/keyboard.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/label_yellow.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/labelme_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last_frame_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/last_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/leaf.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_arrow_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_arrow_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/left_ear.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/light_bulb.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_light_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/line_chart_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/link.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/list.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/load_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/location.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/log.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/magnifying.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mars.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mean.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/median.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/merge.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/metrics_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_blue_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/minus_red_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mixing_panel.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/monitor.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mouse_head.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mouse_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mov.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/move.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/move_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/mp4.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/multiple_yellow.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/navigation.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/nose.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/number_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/obb.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/one_to_many.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/opacity.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/options_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/original_size.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/osf.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/osf_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outlier.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outside.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/outside_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/overlap_iou.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/paint.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/palette_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/palette_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/parquet.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/path.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/path_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pct.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pct_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pdf_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/permutation_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/photos.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/play.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/play_large_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plot.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/plus_green_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/png.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/point.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/point_right_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pointing_left_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/polygon_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pose.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/pose_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/print.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/probability.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/progressbar_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/python.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/question_mark.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/range_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/readthedocs_logo.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/recent_files.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_1_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rectangle_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/remove_bg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reorganize.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/resize.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/restart.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/reverse_large_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_blue_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rewind_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/right_arrow_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/right_arrow_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rocket.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/roi.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/roi_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rotate.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/rounding.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ruler.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ruler_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/run.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sample.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/save_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_1.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/scale_3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/search.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/segment.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/seperate_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/settings.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shade.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shap.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shap_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/shapes_small_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sigma.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/simba_logo_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/single_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/size_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_forward_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/skip_previous_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/sleap_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/smooth.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/speedometer.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/split.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/split_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/spread.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/square_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stack.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/star.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stop.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stopwatch.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/stream.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/style.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/subset_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/superimpose.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/svg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/system.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/t.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/table.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/table_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_bg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_color.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_color_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/text_spacing.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/threshold.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tick.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tick_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tiff.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tile_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/time.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/timer.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/timer_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/trash.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/trash_red.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/triangle_black.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/triangle_small.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/tv_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/two.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ultralytics_1.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/ultralytics_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/verbose.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/vertical.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_file_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/video_large.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/visualize_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/walk.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/wand_blue.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/warning.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/watermark_green.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/webm.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/webp.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/weight.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/weights.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/width.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/x.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/y.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zero.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zoom_in.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/icons/zoom_out.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/about_me.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg_2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/bg_2024.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/landing.mp4 +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/simon_n.webp +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash.mp4 +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash.pptx +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/splash_2024.mp4 +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/img/~$splash.pptx +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/critical_values_05.pickle +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/feature_extraction_headers.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/features.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/model_names.parquet +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/unsupervised_example_x.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo.yaml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/tappelby.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/yolo_7bps.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/lookups/yolo_schematics/yolo_mitra.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/UbuntuMono-Regular.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/animal_distances.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/baseline_scale.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/color_bar.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/down_arrow.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/feature_categories/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/feature_categories/shap_feature_categories.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/intruder_movement.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/intruder_shape.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_intruder_movement.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_intruder_shape.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_movement.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/resident_shape.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/side_scale.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/side_scale_5.jpg +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/shap/ubuntu.regular.ttf +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/grid_floor.stl +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_lever.stl +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_tray.stl +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/stl/operant_walls.stl +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/botsort.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/bytetrack.yml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/tracker_yml/tow_bytetrack.yaml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/features.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/assets/unsupervised/model_names.parquet +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/agg_boundary_stats.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/boundary_menus.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/boundary_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/find_boundaries.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/visualize_boundaries.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/bounding_box_tools/yolo/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_clf_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_main_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_movement_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_tools.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/cue_light_tools/cue_light_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/SimBA_dash_app.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/dash_app.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/dash_app/run_dash_tkinter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/advanced_interpolator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/advanced_smoothing.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/agg_clf_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/agg_clf_counter_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/blob_location_computer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/boolean_conditional_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/circling_detector.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/circular_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/create_shap_log.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/data.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/geometry.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/image.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/timeseries.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cuda/utils.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_clf_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/cue_light_movement_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/directing_animal_to_bodypart.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/directing_other_animals_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/distance_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/distance_timbin_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/egocentric_aligner.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/find_animal_blob_location.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/freezing_detector.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/fsttc_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/gibbs_sampler.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolate.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolate_pose.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/interpolation_smoothing.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/kleinberg_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/light_dark_box_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/mutual_exclusivity_corrector.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/pup_retrieval_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/pybursts_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_bout_based_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/severity_frame_based_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/smoothing.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/spontaneous_alternation_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_clf_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_movement_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/timebins_movement_calculator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/yolo_track_cleaner.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/aggression_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/amber_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/boundary_rearing_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/cave_fish_featurizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_14bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_16bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_4bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_7bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_8bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_8bps_2_animals.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_9bp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_extractor_user_defined.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/feature_subsets.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/gerbil_featurizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/add_probability_cnt_features.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_3_scratch_3.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_scratch_1.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/convex_hull_scratch_2.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/count_values_in_range.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/doctests.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/egocentrical_aligner.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2022.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_2.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_3.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_4.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_5.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/graph_3d_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/graph_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/make_splash.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/mutual_exclusive.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/peaks.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/read_in_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/termite_rois.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/time_stamp_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_color.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_rotator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/misc/video_rotator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/mitra_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/perimeter_jit.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/rat_social_featurizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/riptortus_featurizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/feature_extractors/straub_tail_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/extract_labelled_frames.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/extract_labelling_meta.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/labelling_advanced_interface.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/labelling_interface.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/mitra_style_appender.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/play_annotation_video.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/single_clf_appender_excel.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/standard_labeller.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/labelling/targeted_annotations_clips.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/abstract_classes.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/annotator_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/circular_statistics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/config_reader.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/feature_extraction_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/feature_extraction_supplement_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/image_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/network_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/plotting_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/pop_up_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/pose_importer_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/statistics_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/timeseries_features_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/train_model_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/mixins/unsupervised_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/grid_search_multiclass_rf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/grid_search_rf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_batch.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_multiclass_batch.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/inference_validation.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/ordinal_clf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/metrics.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/regression/model.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/sam_inference.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_multiclass_rf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_multilabel_rf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/train_rf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/model/yolo_pose_track_inference.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location_advanced.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_location_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement_advanced.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/outlier_corrector_movement_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/outlier_tools/skip_outlier_correction.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/EzPathPlot.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ROI_feature_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ROI_feature_visualizer_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/annotation_videos.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/blob_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/blob_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/circular_feature_overlay_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/circular_plotting.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/clf_validator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/clf_validator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/cue_light_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/data_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_to_bodypart_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/directing_animals_visualizer_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/distance_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/distance_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/ez_path_plot.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/frame_mergerer_ffmpeg.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_creator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/gantt_plotly.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/geometry_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_clf.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_clf_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_location.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/heat_mapper_location_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/interactive_probability_grapher.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/light_dark_box_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/path_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/plot_clf_results.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/pose_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/pose_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/probability_plot_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/probability_plot_creator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/roi_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/roi_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/sam_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/shap_agg_stats_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/single_run_model_validation_video.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/single_run_model_validation_video_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/spontaneous_alternation_plotter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/tools/tkinter_tools.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_pose_track_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/plotting/yolo_pose_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/bp_names/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/bp_names/bp_names.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/configuration_names/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/configuration_names/pose_config_names.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/no_animals/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/no_animals/no_animals.csv +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/1.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/10.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/11.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/12.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/13.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/14.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/15.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/16.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/2.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/3.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/4.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/5.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/6.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/7.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/8.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_configurations/schematics/9.png +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/dlc_importer_csv.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/facemap_h5_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/import_mars.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/madlc_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/misc/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/misc/apt_trk_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/read_DANNCE_mat.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/simba_blob_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/simba_yolo_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_csv_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_h5_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/sleap_slp_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/superanimal_import.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_importers/trk_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/pose_reset.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/remove_keypoints.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/reorganize_keypoint.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/pose_processors/reverse_pose.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/requirements.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_directing_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_feature_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_size_standardizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/ROI_time_bin_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/import_roi_csvs.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_modifier_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_roi_bufferer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/interactive_roi_modifier_tkinter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_aggregate_statistics_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_aggregate_stats_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_clf_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_clf_calculator_mp.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ruler.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_circle_tkinter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_polygon_tkinter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_selector_rectangle_tkinter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_time_bins_analyzer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_ui_mixin.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/roi_tools/roi_utils.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/BENTO_appender.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/BORIS_appender.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/boris_source_cleaner.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/deepethogram_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/ethovision_import.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/observer_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/shah_appender.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/solomon_importer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/third_party_appender.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/tools.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_multi_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_single_to_multi_format_converter.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_to_labelme.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/dlc_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_df.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_dlc.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo_keypoints.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/litpose_to_yolo_keypoints.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_roi_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/simba_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/sleap_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/utils.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/third_party_label_appenders/transform/yolo_to_imgs.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/blob_quick_check_interface.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/blob_tracker_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/create_project_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/get_tree_view.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/import_pose_frame.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/import_videos_frame.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/machine_model_settings_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/ml_settings_frm.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/about_simba_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/animal_directing_other_animals_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/append_roi_features_animals_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/archive_files_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/batch_preprocess_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/blob_visualizer_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/change_speed_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/check_videos_seekable_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_add_remove_print_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_annotation_counts_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_by_roi_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_by_timebins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_probability_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/clf_validation_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/create_user_defined_pose_configuration_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/csv_2_parquet_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_clf_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_data_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_main_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_movement_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/cue_light_visualizer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/data_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/delete_all_rois_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/directing_animal_to_bodypart_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/directing_other_animals_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/direction_animal_to_bodypart_settings_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/distance_timebins_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_annotations_to_labelme_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_h5_inference_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_to_labelme_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/dlc_to_yolo_keypoints_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/egocentric_alignment_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/extract_annotation_frames_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/ez_path_plot_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/fsttc_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/gantt_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/heatmap_clf_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/heatmap_location_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/helpers.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/import_roi_csv_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/initialize_blob_tracking_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/interpolate_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/kleinberg_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_bbox_to_yolo_bbox_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_dir_to_csv_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_to_df_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/labelme_to_imgs_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/make_path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/merge_coco_keypoint_files_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/min_max_draw_size_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/movement_analysis_time_bins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/multiple_videos_to_frames_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/mutual_exclusivity_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/outlier_settings_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pose_bp_drop_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pose_reorganizer_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/print_video_meta_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/pup_retrieval_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/quick_path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/remove_roi_features_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_aggregate_stats_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_analysis_time_bins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_features_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_size_standardizer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_tracking_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/roi_video_table_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/run_machine_models_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/select_video_for_labelling_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/severity_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/single_video_to_frames_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/smoothing_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/splash_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/spontaneous_alternation_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/subset_feature_extractor_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/targeted_annotation_clips_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/third_party_annotator_appender_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/validation_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_inference_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_plot_results.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/pop_ups/yolo_pose_train_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/px_to_mm_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/tkinter_functions.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/user_defined_pose_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/utils.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/video_info_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/ui/video_timelaps.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/bout_aggregator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_frequentist_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_validation_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_video_visualizer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/cluster_xai_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/clusterer_comparison_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/data_extractor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/data_map.yaml +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/dataset_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/dbcv_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/embedding_correlation_calculator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/enums.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/grid_search_visualizers.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/hdbscan_clusterer.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/outlier_detector.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_frequentist_stats_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_validation_pop_up.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_videos_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/cluster_xai_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/clusterer_comparison_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/data_extractor_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/embedding_correlations_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/fit_cluster_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/fit_dim_reduction_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/grid_search_visualizer_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/print_embedding_info_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/transform_cluster_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/pop_ups/transform_dim_reduction_popup.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/tsne.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/umap_embedder.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/unsupervised/unsupervised_main.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/cli/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/cli/cli_tools.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/config_creator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/custom_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/data.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/enums.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/errors.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/utils/warnings.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/batch_process_menus.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/blob_tracking_executor.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/brightness_contrast_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/calculate_px_dist.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/clahe_ui.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/egocentric_video_rotator.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/extract_frames.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/extract_seqframes.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/multi_cropper.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector_circle.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/roi_selector_polygon.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/video_processing.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/video_processors/videos_to_frames.py +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/dependency_links.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/entry_points.txt +0 -0
- {simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba_uw_tf_dev.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: simba_uw_tf_dev
|
|
3
|
-
Version: 5.2.
|
|
3
|
+
Version: 5.2.3
|
|
4
4
|
Summary: Toolkit for computer classification and analysis of behaviors in experimental animals
|
|
5
5
|
Home-page: https://github.com/sgoldenlab/simba
|
|
6
6
|
Author: Simon Nilsson, Jia Jie Choong, Sophia Hwang
|
|
@@ -29,7 +29,7 @@ with open(GPU_REQUIREMENTS_PATH, "r") as f:
|
|
|
29
29
|
# Setup configuration
|
|
30
30
|
setuptools.setup(
|
|
31
31
|
name="simba_uw_tf_dev",
|
|
32
|
-
version="5.2.
|
|
32
|
+
version="5.2.3",
|
|
33
33
|
author="Simon Nilsson, Jia Jie Choong, Sophia Hwang",
|
|
34
34
|
author_email="sronilsson@gmail.com",
|
|
35
35
|
description="Toolkit for computer classification and analysis of behaviors in experimental animals",
|
|
@@ -481,17 +481,14 @@ class SimbaProjectPopUp(ConfigReader, PopUpMixin):
|
|
|
481
481
|
targeted_clip_annotator_btn = SimbaButton(parent=targeted_clip_annotator_frm, txt="Select video", cmd=select_labelling_video_targeted_clips, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
482
482
|
|
|
483
483
|
lbl_tools_frm = CreateLabelFrameWithIcon(parent=tab7, header="LABELLING TOOLS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.ADVANCED_LBL.value, bg=Formats.LABELFRAME_GREY.value, padx=5, pady=5)
|
|
484
|
-
visualize_annotation_img_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATIONS", cmd=ExtractAnnotationFramesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
485
|
-
visualize_annotation_video_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATION BOUTS", txt_clr='blue', cmd=AnnotatedBoutsVideoPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
484
|
+
visualize_annotation_img_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATIONS FRAMES", cmd=ExtractAnnotationFramesPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
485
|
+
visualize_annotation_video_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="VISUALIZE ANNOTATION VIDEO BOUTS", txt_clr='blue', cmd=AnnotatedBoutsVideoPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
486
486
|
third_party_annotations_btn = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="APPEND THIRD-PARTY ANNOTATIONS", txt_clr='purple', cmd=ThirdPartyAnnotatorAppenderPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
487
487
|
remove_roi_features_from_annotation_set = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="REMOVE ROI FEATURES FROM LABEL SET", txt_clr='darkred', cmd=RemoveROIFeaturesPopUp, cmd_kwargs={'config_path': lambda:self.config_path, 'dataset': lambda:'targets_inserted'}, thread=False)
|
|
488
488
|
compute_annotation_statistics = SimbaButton(parent=lbl_tools_frm, width=Formats.BUTTON_WIDTH_XS.value, txt="COUNT ANNOTATIONS IN PROJECT", txt_clr='orange', cmd=ClfAnnotationCountPopUp, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
489
489
|
|
|
490
|
-
|
|
491
|
-
|
|
492
490
|
label_trainmachinemodel = CreateLabelFrameWithIcon(parent=tab8, header="TRAIN MACHINE MODELS", icon_name=Keys.DOCUMENTATION.value, icon_link=Links.TRAIN_ML_MODEL.value, bg=Formats.LABELFRAME_GREY.value, padx=5, pady=5)
|
|
493
491
|
|
|
494
|
-
|
|
495
492
|
button_trainmachinesettings = SimbaButton(parent=label_trainmachinemodel, width=Formats.BUTTON_WIDTH_XXL.value, txt="SETTINGS", img='settings', txt_clr='darkorange', cmd=self.trainmachinemodelsetting, thread=False)
|
|
496
493
|
button_trainmachinemodel = SimbaButton(parent=label_trainmachinemodel, width=Formats.BUTTON_WIDTH_XXL.value, txt="TRAIN SINGLE MODEL (GLOBAL ENVIRONMENT)", img='one_blue', txt_clr='blue', cmd=self.train_single_model, cmd_kwargs={'config_path': lambda:self.config_path}, thread=False)
|
|
497
494
|
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
"MOVEMENT_DISTANCE": "If checked, calculates the total distance traveled (in centimeters) for each animal throughout the entire video. Distance is measured as cumulative path length of the selected body-part.",
|
|
32
32
|
"MOVEMENT_VELOCITY": "If checked, calculates the average velocity (in cm/s) for each animal throughout the entire video. Velocity is computed as distance divided by time.",
|
|
33
33
|
"MOVEMENT_TRANSPOSE": "If checked, transposes the output CSV so that videos are in rows and animal/body-part/measurement combinations are in columns. Default: each row is a video-animal-bodypart-measurement combination.",
|
|
34
|
+
"MOVEMENT_INCLUDE_FRAME_COUNT": "If checked, includes the total number of frames in each video as a metadata column in the output.",
|
|
35
|
+
"MOVEMENT_INCLUDE_VIDEO_LENGTH": "If checked, includes each video's length in HH:MM:SS format as a metadata column in the output.",
|
|
34
36
|
"DISTANCE_ANALYSIS_NUMBER_OF_PAIRS": "How many body-part pairs to analyze. SimBA creates one BODY-PART 1 / BODY-PART 2 row per pair.",
|
|
35
37
|
"DISTANCE_ANALYSIS_BODY_PART": "Pick one body-part for this side of the pair. Each row must use two different body-parts.",
|
|
36
38
|
"DISTANCE_ANALYSIS_BP_THRESHOLD": "Pose confidence cutoff (0.0-1.0). Frames where either body-part is below this value are ignored for this pair.",
|
|
@@ -433,5 +435,69 @@
|
|
|
433
435
|
"ANNOTATION_BOUTS_CPU_CORES": "Number of CPU cores used for rendering. More cores are often faster but use more memory.",
|
|
434
436
|
"ANNOTATION_BOUTS_USE_GPU": "If TRUE and a compatible NVIDIA GPU is available, SimBA uses GPU-enabled path where supported.",
|
|
435
437
|
"ANNOTATION_BOUTS_SHOW_BBOX": "Bounding box mode: FALSE disables boxes, AXIS_ALIGNED draws horizontal boxes, ANIMAL_ALIGNED draws rotated animal-oriented boxes.",
|
|
436
|
-
"ANNOTATION_BOUTS_TIMER": "Timer format shown in output clips. FALSE disables timer; SECONDS shows numeric seconds; HH:MM:SS.SSSS shows formatted timestamp."
|
|
438
|
+
"ANNOTATION_BOUTS_TIMER": "Timer format shown in output clips. FALSE disables timer; SECONDS shows numeric seconds; HH:MM:SS.SSSS shows formatted timestamp.",
|
|
439
|
+
"HORIZONTAL_FLIP": "If TRUE, flip the output video horizontally (mirror left-right). If FALSE, leave the video unchanged.",
|
|
440
|
+
"VERTICAL_FLIP": "If TRUE, flip the output video vertically (mirror top-bottom). If FALSE, leave the video unchanged.",
|
|
441
|
+
"WATERMARK_LOCATION": "Where the watermark image is placed on the output video. Options: TOP LEFT, TOP RIGHT, BOTTOM LEFT, BOTTOM RIGHT, or CENTER.",
|
|
442
|
+
"WATERMARK_IMAGE_PATH": "Path to the image file used as the watermark overlay (e.g. a PNG with transparency).",
|
|
443
|
+
"WATERMARK_OPACITY": "Opacity of the watermark overlay (0.0–1.0). 1.0 keeps the watermark fully visible; lower values make it more transparent.",
|
|
444
|
+
"WATERMARK_SCALE": "Watermark size as a percentage of the input image width (0–100%). 100% would use the full width; smaller values scale down.",
|
|
445
|
+
"PROGRESS_BAR_LOCATION": "Where the progress bar is drawn on the output video: TOP or BOTTOM.",
|
|
446
|
+
"PROGRESS_BAR_COLOR": "Color of the progress bar. Pick one of the color names shown in the dropdown.",
|
|
447
|
+
"PROGRESS_BAR_HEIGHT": "Height of the progress bar as a percentage of the video height (%).",
|
|
448
|
+
"SUPERIMPOSE_TEXT_LOCATION": "Where the free text overlay is placed on the output video (e.g. TOP LEFT, BOTTOM RIGHT).",
|
|
449
|
+
"SUPERIMPOSE_TEXT_VALUE": "The exact text string to overlay on the video.",
|
|
450
|
+
"SUPERIMPOSE_TEXT_FONT": "Font family used for the text overlay.",
|
|
451
|
+
"SUPERIMPOSE_TEXT_FONT_SIZE": "Font size (in points) for the text overlay.",
|
|
452
|
+
"SUPERIMPOSE_TEXT_FONT_COLOR": "Text fill color (chosen from the color names shown in the dropdown).",
|
|
453
|
+
"SUPERIMPOSE_TEXT_FONT_BORDER_COLOR": "Color of the text border/outline (chosen from the dropdown).",
|
|
454
|
+
"SUPERIMPOSE_TEXT_FONT_BORDER_WIDTH": "Thickness of the text border/outline (in pixels).",
|
|
455
|
+
"SUPERIMPOSE_VIDEO_NAME_TEXT_LOCATION": "Where the video filename text is placed on the output video (e.g. TOP LEFT, BOTTOM RIGHT).",
|
|
456
|
+
"SUPERIMPOSE_VIDEO_NAME_FONT": "Font family used for the video filename text overlay.",
|
|
457
|
+
"SUPERIMPOSE_VIDEO_NAME_FONT_SIZE": "Font size (in points) for the video filename text overlay.",
|
|
458
|
+
"SUPERIMPOSE_VIDEO_NAME_FONT_COLOR": "Text fill color (chosen from the color names shown in the dropdown).",
|
|
459
|
+
"SUPERIMPOSE_VIDEO_NAME_FONT_BORDER_COLOR": "Color of the video filename text border/outline (chosen from the dropdown).",
|
|
460
|
+
"SUPERIMPOSE_VIDEO_NAME_FONT_BORDER_WIDTH": "Thickness of the video filename text border/outline (in pixels).",
|
|
461
|
+
"SUPERIMPOSE_VIDEO_MAIN_VIDEO_PATH": "Path to the main video you want to add the overlay onto.",
|
|
462
|
+
"SUPERIMPOSE_VIDEO_OVERLAY_VIDEO_PATH": "Path to the second video that will be overlaid on the main video.",
|
|
463
|
+
"SUPERIMPOSE_VIDEO_OVERLAY_LOCATION": "Where the overlay video is placed on the main video: TOP LEFT, TOP RIGHT, BOTTOM LEFT, BOTTOM RIGHT, or CENTER.",
|
|
464
|
+
"SUPERIMPOSE_VIDEO_OVERLAY_OPACITY": "Opacity of the overlay video (0.0–1.0). Higher = more opaque.",
|
|
465
|
+
"SUPERIMPOSE_VIDEO_OVERLAY_SCALE": "Overlay scaling factor relative to the main video width. For example, 0.05 = 5% width; 0.5 = 50% width (dropdown values range from 0.05 to 0.95).",
|
|
466
|
+
"SUPERIMPOSE_FRAME_COUNT_FONT_SIZE": "Font size (in pixels) for the overlaid frame number.",
|
|
467
|
+
"SUPERIMPOSE_FRAME_COUNT_FONT_COLOR": "Text color of the overlaid frame number (chosen from the dropdown).",
|
|
468
|
+
"SUPERIMPOSE_FRAME_COUNT_FONT_BACKGROUND_COLOR": "Background box color behind the frame number text (chosen from the dropdown).",
|
|
469
|
+
"SUPERIMPOSE_FRAME_COUNT_FONT": "Font family used for the frame number text.",
|
|
470
|
+
"VIDEO_ROTATOR_USE_GPU": "If TRUE and a compatible NVIDIA GPU is available, rotate using FFmpeg GPU codecs (faster). If FALSE, use CPU rotation/encoding.",
|
|
471
|
+
"VIDEO_ROTATOR_USE_FFMPEG": "If TRUE, rotate using FFmpeg (instead of OpenCV). If FALSE, rotate using OpenCV/CPU.",
|
|
472
|
+
"ROTATE_VIDEO_DEGREES": "Rotate the video clockwise by this many degrees. Valid range is 1–359.",
|
|
473
|
+
"CONCAT_VIDEO_PATH_1": "Path to the first video to concatenate.",
|
|
474
|
+
"CONCAT_VIDEO_PATH_2": "Path to the second video to concatenate.",
|
|
475
|
+
"CONCAT_VIDEOS_USE_GPU": "If TRUE and a compatible GPU is available, uses GPU acceleration for concatenation/encoding when supported.",
|
|
476
|
+
"CROSSFADE_VIDEO_PATH_1": "Path to the first input video. This video provides the start of the timeline before the cross-fade.",
|
|
477
|
+
"CROSSFADE_VIDEO_PATH_2": "Path to the second input video. This video provides the end of the timeline during the cross-fade.",
|
|
478
|
+
"CROSSFADE_OUTPUT_FORMAT": "Output container/format for the cross-faded video (e.g. mp4, avi, webm).",
|
|
479
|
+
"CROSSFADE_METHOD": "Cross-fade transition style. The available methods come from FFmpeg and control how the blend occurs.",
|
|
480
|
+
"CROSSFADE_DURATION": "Cross-fade duration in seconds.",
|
|
481
|
+
"CROSSFADE_OFFSET": "Time offset into video 1 (HH:MM:SS). Cross-fade begins at this time in the first video.",
|
|
482
|
+
"BOX_BLUR_VIDEO_PATH": "Path to the input video to blur a user-selected ROI box on.",
|
|
483
|
+
"BOX_BLUR_BLUR_LEVEL": "Blur intensity for the ROI box (ratio 0.0–1.0). Higher = stronger blur.",
|
|
484
|
+
"BOX_BLUR_INVERT_REGION": "If TRUE, blur the unselected region (outside the ROI box). If FALSE, blur inside the ROI box.",
|
|
485
|
+
"CONVERT2BW_THRESHOLD": "Black/white threshold for binarizing the video (0.01–1.0). Higher values are stricter.",
|
|
486
|
+
"CONVERT2BW_VIDEO_PATH": "Video file to convert to black-and-white.",
|
|
487
|
+
"CONVERT2BW_VIDEO_DIR_PATH": "Directory of videos to convert to black-and-white.",
|
|
488
|
+
"AVG_FRAME_SAVE_DIR": "Folder where the generated average-frame PNG(s) will be saved.",
|
|
489
|
+
"AVG_FRAME_START_TIME": "Start time (HH:MM:SS) for the sample window to average. Leave blank to use the beginning.",
|
|
490
|
+
"AVG_FRAME_END_TIME": "End time (HH:MM:SS) for the sample window to average. Leave blank to use the end.",
|
|
491
|
+
"AVG_FRAME_VIDEO_PATH": "Video file to extract frames from and compute the average frame.",
|
|
492
|
+
"AVG_FRAME_VIDEO_DIR_PATH": "Directory containing video files to process when using batch mode.",
|
|
493
|
+
"CONVERT2MP4_QUALITY": "Quality for MP4 encoding. For CPU codecs this is CRF-like (10–100). For the GPU codec it becomes a preset: Low/Medium/High.",
|
|
494
|
+
"CONVERT2MP4_CODEC": "Compression codec used when converting to MP4 (CPU or GPU). Different codecs trade off speed and file size.",
|
|
495
|
+
"CONVERT2MP4_KEEP_AUDIO": "If TRUE, keep audio (AAC). If FALSE and audio exists, remove audio.",
|
|
496
|
+
"CONVERT2MP4_VIDEO_PATH": "Input video file to convert to MP4.",
|
|
497
|
+
"CONVERT2MP4_VIDEO_DIR_PATH": "Input directory containing videos to convert to MP4.",
|
|
498
|
+
"MULTICROP_INPUT_FOLDER": "Folder containing the input videos to crop.",
|
|
499
|
+
"MULTICROP_OUTPUT_FOLDER": "Folder where the cropped video clips will be saved.",
|
|
500
|
+
"MULTICROP_INPUT_VIDEO_FORMAT": "Input video file format inside the input folder (e.g. mp4).",
|
|
501
|
+
"MULTICROP_CROPS_PER_VIDEO": "How many cropped clips to create per input video (minimum 2).",
|
|
502
|
+
"MULTICROP_OUTPUT_QUALITY": "Encoding quality for the cropped output videos (1–100)."
|
|
437
503
|
}
|
{simba_uw_tf_dev-5.2.1 → simba_uw_tf_dev-5.2.3}/simba/data_processors/movement_calculator.py
RENAMED
|
@@ -19,7 +19,7 @@ from simba.utils.checks import (
|
|
|
19
19
|
from simba.utils.errors import InvalidInputError, NoDataError
|
|
20
20
|
from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
|
|
21
21
|
from simba.utils.read_write import (find_files_of_filetypes_in_directory,
|
|
22
|
-
get_fn_ext, read_df)
|
|
22
|
+
get_fn_ext, read_df, seconds_to_timestamp)
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
@@ -58,7 +58,9 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
|
58
58
|
distance: bool = True,
|
|
59
59
|
velocity: bool = True,
|
|
60
60
|
transpose: bool = False,
|
|
61
|
-
verbose: bool = True
|
|
61
|
+
verbose: bool = True,
|
|
62
|
+
frame_count: bool = False,
|
|
63
|
+
video_length: bool = False):
|
|
62
64
|
|
|
63
65
|
ConfigReader.__init__(self, config_path=config_path)
|
|
64
66
|
FeatureExtractionMixin.__init__(self)
|
|
@@ -89,6 +91,8 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
|
89
91
|
check_valid_boolean(value=velocity, source=f'{self.__class__.__name__} velocity', raise_error=True)
|
|
90
92
|
check_valid_boolean(value=transpose, source=f'{self.__class__.__name__} transpose', raise_error=True)
|
|
91
93
|
check_valid_boolean(value=verbose, source=f'{self.__class__.__name__} verbose', raise_error=True)
|
|
94
|
+
check_valid_boolean(value=frame_count, source=f'{self.__class__.__name__} frame_count', raise_error=True)
|
|
95
|
+
check_valid_boolean(value=video_length, source=f'{self.__class__.__name__} video_length', raise_error=True)
|
|
92
96
|
if not distance and not velocity:
|
|
93
97
|
raise InvalidInputError(msg='distance AND velocity are both False. To compute movement metrics, set at least one value to True.', source=self.__class__.__name__)
|
|
94
98
|
self.distance, self.velocity, = distance, velocity
|
|
@@ -99,6 +103,7 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
|
99
103
|
else:
|
|
100
104
|
raise InvalidInputError(msg='Body-parts has to be a list of tuple of strings', source=f'{self.__class__.__name__} body_parts')
|
|
101
105
|
self.body_parts, self.threshold, self.body_parts, self.transpose, self.verbose = file_paths, threshold, body_parts, transpose, verbose
|
|
106
|
+
self.frame_count, self.video_length = frame_count, video_length
|
|
102
107
|
|
|
103
108
|
def __find_body_part_columns(self):
|
|
104
109
|
self.body_parts_dict, self.bp_list = {}, []
|
|
@@ -129,9 +134,9 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
|
129
134
|
animal_df = animal_df.iloc[:, 0:2].reset_index(drop=True)
|
|
130
135
|
distance, velocity = FeatureExtractionSupplemental.distance_and_velocity(x=animal_df.values, fps=self.fps, pixels_per_mm=self.px_per_mm, centimeters=True)
|
|
131
136
|
if self.distance:
|
|
132
|
-
self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "
|
|
137
|
+
self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "DISTANCE (CM)", distance]
|
|
133
138
|
if self.velocity:
|
|
134
|
-
self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "
|
|
139
|
+
self.results.loc[len(self.results)] = [video_name, animal_data["ANIMAL NAME"], animal_data["BODY-PART"], "VELOCITY (CM/S)", velocity]
|
|
135
140
|
else:
|
|
136
141
|
for animal in self.body_parts:
|
|
137
142
|
animal_name = animal.split("CENTER OF GRAVITY")[0].strip()
|
|
@@ -141,16 +146,23 @@ class MovementCalculator(ConfigReader, FeatureExtractionMixin):
|
|
|
141
146
|
df = self.dataframe_savgol_smoother(df=df, fps=self.fps).astype(np.int32)
|
|
142
147
|
distance, velocity = FeatureExtractionSupplemental.distance_and_velocity(x=df.values, fps=self.fps, pixels_per_mm=self.px_per_mm, centimeters=True)
|
|
143
148
|
if self.distance:
|
|
144
|
-
self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "
|
|
149
|
+
self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "DISTANCE (CM)", distance]
|
|
145
150
|
if self.velocity:
|
|
146
|
-
self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "
|
|
151
|
+
self.results.loc[len(self.results)] = [video_name, animal_name, "GRAVITY CENTER", "VELOCITY (CM/S)", velocity]
|
|
152
|
+
|
|
153
|
+
if self.frame_count:
|
|
154
|
+
self.results.loc[len(self.results)] = [video_name, "", "", "VIDEO FRAME COUNT", len(self.data_df)]
|
|
155
|
+
if self.video_length:
|
|
156
|
+
timestamp = seconds_to_timestamp(seconds=int(np.ceil(len(self.data_df) / self.fps)), hh_mm_ss_sss=False)
|
|
157
|
+
self.results.loc[len(self.results)] = [video_name, "", "", "VIDEO LENGTH (HH:MM:SS)", timestamp]
|
|
158
|
+
|
|
147
159
|
video_timer.stop_timer()
|
|
148
160
|
if self.verbose:
|
|
149
161
|
stdout_information(msg=f'Movement analysis in video {video_name} complete', elapsed_time=video_timer.elapsed_time_str)
|
|
150
162
|
|
|
151
163
|
def save(self):
|
|
152
164
|
if self.transpose:
|
|
153
|
-
self.results = (self.results.assign(col=lambda x: x["ANIMAL"] + "_" + x["BODY-PART"] + "_" + x["MEASUREMENT"]).pivot(index="VIDEO", columns="col", values="VALUE").reset_index())
|
|
165
|
+
self.results = (self.results.assign(col=lambda x: (x["ANIMAL"] + "_" + x["BODY-PART"] + "_" + x["MEASUREMENT"]).str.strip("_")).pivot(index="VIDEO", columns="col", values="VALUE").reset_index())
|
|
154
166
|
self.results.set_index("VIDEO").to_csv(self.save_path)
|
|
155
167
|
self.timer.stop_timer()
|
|
156
168
|
if self.verbose: stdout_success(msg=f"Movement log saved in {self.save_path}", elapsed_time=self.timer.elapsed_time_str)
|
|
@@ -171,9 +183,12 @@ if __name__ == "__main__" and not hasattr(sys, 'ps1'):
|
|
|
171
183
|
runner.save()
|
|
172
184
|
|
|
173
185
|
|
|
174
|
-
# test = MovementCalculator(config_path=r"
|
|
175
|
-
# body_parts=['
|
|
176
|
-
# threshold=0.00
|
|
186
|
+
# test = MovementCalculator(config_path=r"F:\troubleshooting\sam\sam\project_folder\project_config.ini",
|
|
187
|
+
# body_parts=['center', 'nose'], #['Simon CENTER OF GRAVITY', 'JJ CENTER OF GRAVITY', 'Animal_1 CENTER OF GRAVITY']
|
|
188
|
+
# threshold=0.00,
|
|
189
|
+
# frame_count=True,
|
|
190
|
+
# video_length=True,
|
|
191
|
+
# transpose=False)
|
|
177
192
|
# test.run()
|
|
178
193
|
# test.save()
|
|
179
194
|
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import os
|
|
3
|
+
import sys
|
|
4
|
+
from copy import deepcopy
|
|
5
|
+
from typing import Optional, Union
|
|
6
|
+
|
|
7
|
+
import numpy as np
|
|
8
|
+
import pandas as pd
|
|
9
|
+
|
|
10
|
+
from simba.feature_extractors.perimeter_jit import get_hull_sizes
|
|
11
|
+
from simba.mixins.abstract_classes import AbstractFeatureExtraction
|
|
12
|
+
from simba.mixins.config_reader import ConfigReader
|
|
13
|
+
from simba.mixins.feature_extraction_mixin import FeatureExtractionMixin
|
|
14
|
+
from simba.mixins.statistics_mixin import Statistics
|
|
15
|
+
from simba.mixins.timeseries_features_mixin import TimeseriesFeatureMixin
|
|
16
|
+
from simba.utils.checks import (
|
|
17
|
+
check_all_file_names_are_represented_in_video_log, check_instance,
|
|
18
|
+
check_valid_array, check_valid_dataframe)
|
|
19
|
+
from simba.utils.enums import Formats
|
|
20
|
+
from simba.utils.printing import stdout_information, stdout_success
|
|
21
|
+
from simba.utils.read_write import (find_files_of_filetypes_in_directory,
|
|
22
|
+
read_df, read_video_info, write_df)
|
|
23
|
+
|
|
24
|
+
WING_LEFT, WING_RIGHT = 'wing_L', 'wing_R'
|
|
25
|
+
HEAD, THORAX, ABDOMEN = 'head', 'thorax', 'abdomen'
|
|
26
|
+
WINDOW_SIZES = np.array([0.5, 1.0, 2.0, 3.0, 6.0])
|
|
27
|
+
|
|
28
|
+
class WingWaveFeatureExtractor(ConfigReader, FeatureExtractionMixin, AbstractFeatureExtraction):
|
|
29
|
+
|
|
30
|
+
def __init__(self,
|
|
31
|
+
config_path: Union[str, os.PathLike],
|
|
32
|
+
data_dir: Optional[Union[str, os.PathLike]] = None):
|
|
33
|
+
|
|
34
|
+
ConfigReader.__init__(self, config_path=config_path, read_video_info=True, create_logger=True)
|
|
35
|
+
self.data_dir = self.outlier_corrected_dir if data_dir is None else data_dir
|
|
36
|
+
self.data_paths = find_files_of_filetypes_in_directory(directory=self.data_dir, extensions='.csv', as_dict=True, raise_error=True, sort_alphabetically=True)
|
|
37
|
+
|
|
38
|
+
def run(self):
|
|
39
|
+
check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=list(self.data_paths.values()))
|
|
40
|
+
for file_cnt, (file_name, file_path) in enumerate(self.data_paths.items()):
|
|
41
|
+
data_df = read_df(file_path=file_path, file_type='csv', verbose=False)
|
|
42
|
+
out_df = deepcopy(data_df)
|
|
43
|
+
_, px_per_mm, fps = read_video_info(video_info_df=self.video_info_df, video_name=file_name)
|
|
44
|
+
save_path = os.path.join(self.features_dir, f'{file_name}.csv')
|
|
45
|
+
stdout_information(msg=f'Analyzing {file_name}...')
|
|
46
|
+
for id in range(1, self.animal_cnt + 1):
|
|
47
|
+
print(id)
|
|
48
|
+
animal_df = data_df[[x for x in data_df.columns if f'_{id}_' in x]]
|
|
49
|
+
wing_l, wing_r = animal_df[[f'{WING_LEFT}_{id}_x', f'{WING_LEFT}_{id}_y']].values, animal_df[[f'{WING_RIGHT}_{id}_x', f'{WING_RIGHT}_{id}_y']].values
|
|
50
|
+
head, thorax = animal_df[[f'{HEAD}_{id}_x', f'{HEAD}_{id}_y']].values, animal_df[[f'{THORAX}_{id}_x', f'{THORAX}_{id}_y']].values
|
|
51
|
+
abdomen = animal_df[[f'{ABDOMEN}_{id}_x', f'{ABDOMEN}_{id}_y']].values
|
|
52
|
+
|
|
53
|
+
p_vals = animal_df[[f'{WING_LEFT}_{id}_p', f'{WING_RIGHT}_{id}_p', f'{HEAD}_{id}_p', f'{ABDOMEN}_{id}_x', f'{THORAX}_{id}_x']].values
|
|
54
|
+
|
|
55
|
+
out_df[f'wing_l_thorax_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=thorax, bp_3=wing_r)
|
|
56
|
+
out_df[f'wing_l_head_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=head, bp_3=wing_r)
|
|
57
|
+
out_df[f'wing_l_abdomen_wing_r_angle_animal_{id}'] = FeatureExtractionMixin.three_point_angle(bp_1=wing_l, bp_2=head, bp_3=wing_r)
|
|
58
|
+
wing_l_thorax_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_thorax_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_thorax_wing_r_mean_500_animal_{id}', f'wing_l_thorax_wing_r_mean_1000_animal_{id}', f'wing_l_thorax_wing_r_mean_2000_animal_{id}', f'wing_l_thorax_wing_r_mean_3000_animal_{id}', f'wing_l_thorax_wing_r_mean_6000_animal_{id}'])
|
|
59
|
+
wing_l_head_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_head_wing_r_mean_500_animal_{id}', f'wing_l_head_wing_r_mean_1000_animal_{id}', f'wing_l_head_wing_r_mean_2000_animal_{id}', f'wing_l_head_wing_r_mean_3000_animal_{id}', f'wing_l_head_wing_r_mean_6000_animal_{id}'])
|
|
60
|
+
wing_l_abdomen_wing_r = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_abdomen_wing_r_mean_500_animal_{id}', f'wing_l_abdomen_wing_r_mean_1000_animal_{id}', f'wing_l_abdomen_wing_r_mean_2000_animal_{id}', f'wing_l_abdomen_wing_r_mean_3000_animal_{id}', f'wing_l_abdomen_wing_r_mean_6000_animal_{id}'])
|
|
61
|
+
out_df = pd.concat([out_df, wing_l_thorax_wing_r, wing_l_head_wing_r, wing_l_abdomen_wing_r], axis=1)
|
|
62
|
+
|
|
63
|
+
out_df[f'framewise_wing_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_l, bp2_coords=wing_r, px_per_mm=px_per_mm, in_centimeters=False)
|
|
64
|
+
wing_dist_absenergy = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['absenergy'])[0], columns=[f'wing_distance_energy_500_animal_{id}', f'wing_distance_energy_1000_animal_{id}', f'wing_distance_energy_2000_animal_{id}', f'wing_distance_energy_3000_animal_{id}', f'wing_distance_energy_6000_animal_{id}'])
|
|
65
|
+
wing_dist_variance = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['var'])[0], columns=[f'wing_distance_var_500_animal_{id}', f'wing_distance_var_1000_animal_{id}', f'wing_distance_var_2000_animal_{id}', f'wing_distance_var_3000_animal_{id}', f'wing_distance_var_6000_animal_{id}'])
|
|
66
|
+
out_df = pd.concat([out_df, wing_dist_absenergy, wing_dist_variance], axis=1)
|
|
67
|
+
|
|
68
|
+
out_df[f'framewise_wing_l_head_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=head.astype(np.float64), px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
69
|
+
out_df[f'framewise_wing_r_head_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=head.astype(np.float64), px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
70
|
+
out_df[f'framewise_wing_l_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=abdomen.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
71
|
+
out_df[f'framewise_wing_r_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=abdomen.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
72
|
+
out_df[f'framewise_wing_l_thorax_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_l.astype(np.float64), location_2=thorax.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
73
|
+
out_df[f'framewise_wing_r_thorax_distance_animal_{id}'] = FeatureExtractionMixin.framewise_euclidean_distance(location_1=wing_r.astype(np.float64), location_2=thorax.astype(np.float64),px_per_mm=np.float64(px_per_mm), centimeter=False)
|
|
74
|
+
|
|
75
|
+
wing_l_head_distance_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_l_head_mean_500_animal_{id}', f'wing_l_head_mean_1000_animal_{id}', f'wing_l_head_mean_2000_animal_{id}', f'wing_l_head_mean_3000_animal_{id}', f'wing_l_head_mean_6000_animal_{id}'])
|
|
76
|
+
wing_r_head_distance_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'wing_r_head_mean_500_animal_{id}', f'wing_r_head_mean_1000_animal_{id}', f'wing_r_head_mean_2000_animal_{id}', f'wing_r_head_mean_3000_animal_{id}', f'wing_r_head_mean_6000_animal_{id}'])
|
|
77
|
+
wing_r_head_distance_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'wing_r_head_std_500_animal_{id}', f'wing_r_head_std_1000_animal_{id}', f'wing_r_head_std_2000_animal_{id}', f'wing_r_head_std_3000_animal_{id}', f'wing_r_head_std_6000_animal_{id}'])
|
|
78
|
+
wing_l_head_distance_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_head_distance_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'wing_l_head_std_500_animal_{id}', f'wing_l_head_std_1000_animal_{id}', f'wing_l_head_std_2000_animal_{id}', f'wing_lr_head_std_3000_animal_{id}', f'wing_l_head_std_6000_animal_{id}'])
|
|
79
|
+
out_df = pd.concat([out_df, wing_l_head_distance_mean, wing_r_head_distance_mean, wing_r_head_distance_std, wing_l_head_distance_std], axis=1)
|
|
80
|
+
|
|
81
|
+
out_df[f'framewise_wing_l_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_l, px_per_mm=px_per_mm, centimeter=False)
|
|
82
|
+
out_df[f'framewise_wing_r_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_r, px_per_mm=px_per_mm, centimeter=False)
|
|
83
|
+
out_df[f'framewise_head_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=head, px_per_mm=px_per_mm, centimeter=False)
|
|
84
|
+
out_df[f'framewise_thorax_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=thorax, px_per_mm=px_per_mm, centimeter=False)
|
|
85
|
+
out_df[f'framewise_abdomen_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=abdomen, px_per_mm=px_per_mm, centimeter=False)
|
|
86
|
+
wing_l_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_l_sum_500_animal_{id}', f'wing_l_sum_1000_animal_{id}', f'wing_l_sum_2000_animal_{id}', f'wing_l_sum_3000_animal_{id}', f'wing_l_sum_6000_animal_{id}'])
|
|
87
|
+
wing_r_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_r_sum_500_animal_{id}', f'wing_r_sum_1000_animal_{id}', f'wing_r_sum_2000_animal_{id}', f'wing_r_sum_3000_animal_{id}', f'wing_r_sum_6000_animal_{id}'])
|
|
88
|
+
head_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_head_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'head_sum_500_animal_{id}', f'head_sum_1000_animal_{id}', f'head_sum_2000_animal_{id}', f'head_sum_3000_animal_{id}', f'head_sum_6000_animal_{id}'])
|
|
89
|
+
thorax_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_thorax_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'thorax_sum_500_animal_{id}', f'thorax_sum_1000_animal_{id}', f'thorax_sum_2000_animal_{id}', f'thorax_sum_3000_animal_{id}', f'thorax_sum_6000_animal_{id}'])
|
|
90
|
+
abdomen_sum = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_abdomen_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'abdomen_sum_500_animal_{id}', f'abdomen_sum_1000_animal_{id}', f'abdomen_sum_2000_animal_{id}', f'abdomen_sum_3000_animal_{id}', f'abdomen_sum_6000_animal_{id}'])
|
|
91
|
+
out_df = pd.concat([out_df, wing_l_sum, wing_r_sum, head_sum, thorax_sum, abdomen_sum], axis=1)
|
|
92
|
+
|
|
93
|
+
head_wing_l_pearson = pd.DataFrame(
|
|
94
|
+
Statistics.sliding_pearsons_r(
|
|
95
|
+
sample_1=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32),
|
|
96
|
+
sample_2=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32),
|
|
97
|
+
time_windows=WINDOW_SIZES,
|
|
98
|
+
fps=fps,
|
|
99
|
+
),
|
|
100
|
+
columns=[
|
|
101
|
+
f'head_wing_l_movement_pearson_500_animal_{id}',
|
|
102
|
+
f'head_wing_l_movement_pearson_1000_animal_{id}',
|
|
103
|
+
f'head_wing_l_movement_pearson_2000_animal_{id}',
|
|
104
|
+
f'head_wing_l_movement_pearson_3000_animal_{id}',
|
|
105
|
+
f'head_wing_l_movement_pearson_6000_animal_{id}',
|
|
106
|
+
],
|
|
107
|
+
)
|
|
108
|
+
head_wing_r_pearson = pd.DataFrame(
|
|
109
|
+
Statistics.sliding_pearsons_r(
|
|
110
|
+
sample_1=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32),
|
|
111
|
+
sample_2=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32),
|
|
112
|
+
time_windows=WINDOW_SIZES,
|
|
113
|
+
fps=fps,
|
|
114
|
+
),
|
|
115
|
+
columns=[
|
|
116
|
+
f'head_wing_r_movement_pearson_500_animal_{id}',
|
|
117
|
+
f'head_wing_r_movement_pearson_1000_animal_{id}',
|
|
118
|
+
f'head_wing_r_movement_pearson_2000_animal_{id}',
|
|
119
|
+
f'head_wing_r_movement_pearson_3000_animal_{id}',
|
|
120
|
+
f'head_wing_r_movement_pearson_6000_animal_{id}',
|
|
121
|
+
],
|
|
122
|
+
)
|
|
123
|
+
out_df = pd.concat([out_df, head_wing_l_pearson, head_wing_r_pearson], axis=1)
|
|
124
|
+
|
|
125
|
+
out_df[f'framewise_head_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=head, px_per_mm=px_per_mm, centimeter=False)
|
|
126
|
+
out_df[f'framewise_wing_l_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_l, px_per_mm=px_per_mm, centimeter=False)
|
|
127
|
+
out_df[f'framewise_wing_r_movement_animal_{id}'] = FeatureExtractionMixin.framewise_bodypart_movement(data=wing_r, px_per_mm=px_per_mm, centimeter=False)
|
|
128
|
+
out_df[f'framewise_wing_l_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_l, bp2_coords=abdomen, px_per_mm=px_per_mm, in_centimeters=False)
|
|
129
|
+
out_df[f'framewise_wing_r_abdomen_distance_animal_{id}'] = FeatureExtractionMixin.bodypart_distance(bp1_coords=wing_r, bp2_coords=abdomen, px_per_mm=px_per_mm, in_centimeters=False)
|
|
130
|
+
|
|
131
|
+
wing_l_head_wing_r_angle_var = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['var'])[0], columns=[f'wing_head_angle_var_125_animal_{id}', f'wing_head_angle_var_250_animal_{id}', f'wing_head_angle_var_500_animal_{id}', f'wing_head_angle_var_1000_animal_{id}', f'wing_head_angle_var_2000_animal_{id}'])
|
|
132
|
+
wing_l_head_wing_r_angle_energy = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'wing_l_head_wing_r_angle_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['absenergy'])[0], columns=[f'wing_head_angle_energy_125_animal_{id}', f'wing_head_angle_energy_250_animal_{id}', f'wing_head_angle_energy_500_animal_{id}', f'wing_head_angle_energy_1000_animal_{id}', f'wing_head_angle_energy_2000_animal_{id}'])
|
|
133
|
+
out_df = pd.concat([out_df, wing_l_head_wing_r_angle_var, wing_l_head_wing_r_angle_energy], axis=1)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
head_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_head_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'head_movement_sum_125_animal_{id}',f'head_movement_sum_250_animal_{id}', f'head_movement_sum_500_animal_{id}', f'head_movement_sum_1000_animal_{id}', f'head_movement_sum_2000_animal_{id}'])
|
|
137
|
+
wing_r_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_r_movement_sum_125_animal_{id}', f'wing_r_movement_sum_250_animal_{id}', f'wing_r_movement_sum_500_animal_{id}', f'wing_r_movement_sum_1000_animal_animal_{id}', f'wing_r_movement_sum_2000_animal_animal_{id}'])
|
|
138
|
+
wing_l_movement = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['sum'])[0], columns=[f'wing_l_movement_sum_125_animal_{id}', f'wing_l_movement_sum_250_animal_{id}', f'wing_l_movement_sum_500_animal_{id}', f'wing_l_movement_sum_1000_animal_animal_{id}', f'wing_l_movement_sum_2000_animal_animal_{id}'])
|
|
139
|
+
out_df = pd.concat([out_df, head_movement, wing_l_movement, wing_r_movement], axis=1)
|
|
140
|
+
|
|
141
|
+
animal_3d = np.stack([wing_l, wing_r, head, thorax, abdomen], axis=1)
|
|
142
|
+
out_df[f'framewise_animal_size_animal_{id}'] = get_hull_sizes(points=animal_3d, pixels_per_mm=px_per_mm)
|
|
143
|
+
size_std = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_animal_size_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['std'])[0], columns=[f'size_std_500_animal_{id}', f'size_std_1000_animal_{id}', f'size_std_2000_animal_{id}', f'size_std_3000_animal_{id}', f'size_std_6000_animal_{id}'])
|
|
144
|
+
size_mean = pd.DataFrame(TimeseriesFeatureMixin.sliding_window_stats(data=out_df[f'framewise_animal_size_animal_{id}'].values, window_sizes=WINDOW_SIZES, sample_rate=fps, statistics=['mean'])[0], columns=[f'size_mean_500_animal_{id}', f'size_mean_1000_animal_{id}', f'size_mean_2000_animal_{id}', f'size_mean_3000_animal_{id}', f'size_mean_6000_animal_{id}'])
|
|
145
|
+
out_df = pd.concat([out_df, size_std, size_mean], axis=1)
|
|
146
|
+
|
|
147
|
+
p_val_cnts = pd.DataFrame(FeatureExtractionMixin.count_values_in_range(data=p_vals, ranges=np.array([[0.0, 0.25], [0.25, 0.5], [0.5, 0.75]])), columns=[f'p_vals_0.25_animal_{id}', f'p_vals_0.50_animal_{id}', f'p_vals_0.75_animal_{id}'])
|
|
148
|
+
out_df = pd.concat([out_df, p_val_cnts], axis=1)
|
|
149
|
+
|
|
150
|
+
out_df[f'rolling_t_sizes_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_animal_size_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
|
|
151
|
+
out_df[f'rolling_t_wing_l_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
|
|
152
|
+
out_df[f'rolling_t_wing_r_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
|
|
153
|
+
out_df[f'rolling_t_thorax_movement_500_animal_{id}'] = Statistics.rolling_independent_sample_t(data=out_df[f'framewise_thorax_movement_animal_{id}'].values.astype(np.float32), time_window=0.5, fps=fps)
|
|
154
|
+
|
|
155
|
+
out_df[f'wing_l_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
|
|
156
|
+
out_df[f'wing_r_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
|
|
157
|
+
out_df[f'head_movement_autocorreleation_1000_animal_{id}'] = Statistics.sliding_autocorrelation(data=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32), max_lag=4.0, time_window=1.0, fps=fps)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
x = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_wing_l_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_wing_l_frequency_1000_animal_{id}', f'dominant_wing_l_frequency_3000_animal_{id}', f'dominant_wing_l_frequency_5000_animal_{id}'])
|
|
161
|
+
y = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_wing_r_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_wing_r_frequency_1000_animal_{id}', f'dominant_wing_r_frequency_3000_animal_{id}', f'dominant_wing_r_frequency_5000_animal_{id}'])
|
|
162
|
+
z = pd.DataFrame(Statistics.sliding_dominant_frequencies(data=out_df[f'framewise_head_movement_animal_{id}'].values.astype(np.float32), fps=fps, k=1, time_windows=np.array([1.0, 3.0, 5.0]), window_function='Hamming'), columns=[f'dominant_head_frequency_1000_animal_{id}', f'dominant_head_frequency_3000_animal_{id}', f'dominant_head_frequency_5000_animal_{id}'])
|
|
163
|
+
out_df = pd.concat([out_df, x, y, z], axis=1)
|
|
164
|
+
self.save(data=out_df, save_path=save_path)
|
|
165
|
+
stdout_success(f'Feature extraction complete. Data saved in {self.features_dir}.')
|
|
166
|
+
|
|
167
|
+
def save(self, data: pd.DataFrame, save_path: Union[str, os.PathLike]):
|
|
168
|
+
write_df(df=data, file_type='csv', save_path=save_path)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
if __name__ == "__main__" and not hasattr(sys, 'ps1'):
|
|
172
|
+
parser = argparse.ArgumentParser(description="Extract features for aggression classification in resident intruder setups.")
|
|
173
|
+
parser.add_argument('--config_path', type=str, required=True, help='Path to SimBA Project config.')
|
|
174
|
+
args = parser.parse_args()
|
|
175
|
+
runner = WingWaveFeatureExtractor(config_path=args.config_path)
|
|
176
|
+
runner.run()
|
|
177
|
+
|
|
178
|
+
#
|
|
179
|
+
#
|
|
180
|
+
# CONFIG_PATH = r"F:\troubleshooting\sophiaa\project_folder\project_config.ini"
|
|
181
|
+
#
|
|
182
|
+
#
|
|
183
|
+
# r = WingWaveFeatureExtractor(config_path=CONFIG_PATH)
|
|
184
|
+
# r.run()
|
|
185
|
+
#
|
|
186
|
+
#
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
@@ -1217,7 +1217,7 @@ class GeometryMixin(object):
|
|
|
1217
1217
|
data: np.ndarray,
|
|
1218
1218
|
video_name: Optional[str] = None,
|
|
1219
1219
|
animal_name: Optional[str] = None,
|
|
1220
|
-
verbose:
|
|
1220
|
+
verbose: bool = False,
|
|
1221
1221
|
cap_style: Optional[Literal["round", "square", "flat"]] = "round",
|
|
1222
1222
|
parallel_offset: Optional[int] = 1,
|
|
1223
1223
|
pixels_per_mm: Optional[float] = None,
|
|
@@ -1291,13 +1291,13 @@ class GeometryMixin(object):
|
|
|
1291
1291
|
for cnt, mp_return in enumerate(pool.imap(constants, data, chunksize=1)):
|
|
1292
1292
|
if verbose:
|
|
1293
1293
|
if not video_name and not animal_name:
|
|
1294
|
-
|
|
1294
|
+
if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)}...")
|
|
1295
1295
|
elif not video_name and animal_name:
|
|
1296
|
-
|
|
1296
|
+
if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Animal: {animal_name})...")
|
|
1297
1297
|
elif video_name and not animal_name:
|
|
1298
|
-
|
|
1298
|
+
if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name})...")
|
|
1299
1299
|
else:
|
|
1300
|
-
|
|
1300
|
+
if verbose: stdout_information(msg=f"Computing polygon batch {cnt + 1}/{len(data)} (Video: {video_name}, Animal: {animal_name})...")
|
|
1301
1301
|
results.append(mp_return)
|
|
1302
1302
|
|
|
1303
1303
|
timer.stop_timer()
|