simba-uw-tf-dev 5.3.6__tar.gz → 5.3.7__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.3.6 → simba_uw_tf_dev-5.3.7}/PKG-INFO +1 -1
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/setup.py +1 -1
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/__init__.py +1 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/.recent_projects.txt +1 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/agg_clf_calculator.py +15 -7
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/agg_clf_counter_mp.py +12 -12
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/freezing_detector.py +10 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/mitra_feature_extractor.py +5 -5
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/geometry_mixin.py +1 -1
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/inference_batch.py +41 -10
- simba_uw_tf_dev-5.3.7/simba/model/inference_multi_animal_batch.py +86 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/plot_clf_results_mp.py +91 -19
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/requirements.txt +0 -2
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/PKG-INFO +1 -1
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/SOURCES.txt +1 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/requires.txt +43 -46
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/LICENSE +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/MANIFEST.in +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/README.md +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/caltech_download.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/create_issues_report.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/dataverse_download.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/gitter_stats.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/make_qr_code.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/osf_download.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/scripts/upgrade_simba_keep_configs.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/setup.cfg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/SimBA.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/SimBA_logo.ico +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/.env +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/TheGoldenLab.PNG +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/dash_simba_base.css +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/fonts/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/fonts/Playwrite ES Deco.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/fonts/Poppins Bold.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/fonts/Poppins Regular.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/fonts/UbuntuMono-Regular.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo.icns +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo.ico +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo_3.ico +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo_3_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/SimBA_logo_4_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/abacus.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/abacus_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/abacus_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/about.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/add.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/add_on.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/analyze_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/analyze_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/api.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/application.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/archive.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/arrow_down_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/arrow_down_green_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/attributes_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/audio.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/average.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/average_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/avi.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/background.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bar_graph_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bar_graph_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bar_graph_light_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/batch.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/black_and_white.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/black_cross.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/blur.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bmp.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bold.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/boolean.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/boris.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/branches_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/brightness.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/browse.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/browse_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/brush_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bubble.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bubble_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bubble_pink.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bullet_grey.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bullseye.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/bw.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/calipher.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/camera.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/category.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/center.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/change.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/check_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/circle.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/circle_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/circle_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/circle_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/circle_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clahe.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clean.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clean_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clf.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clf_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clip.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/clock.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/close.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/cluster.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/cluster_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/coco_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/color_wheel.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_icons/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_icons/horizontal.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_icons/mixed_mosaic.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_icons/mosaic.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_icons/vertical.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/concat_videos.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/convert.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/counter.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/cpu_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/create.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/crop.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/crop_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/crop_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/crop_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/crossfade.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/csv_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/csv_grey.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/curve_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/danger.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dash_simba.css +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/data_table.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/decision_tree_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/decision_tree_purple.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/decision_tree_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/delete_large_orange.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/delete_large_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dependency.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/details.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/developer.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dice_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dimensionality_reduction.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/direction.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/direction_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/direction_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/display_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/distance.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/distance_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dlc_1.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dlc_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/documentation.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/documentation_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/download.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/draw.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/dumbbell.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/duplicate.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/duplicate_2_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/duplicate_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/duplicate_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ear_right.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ear_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/edit.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/edit_roi_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/egocentric.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/equation_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ethovision.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/exit.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/eye.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/factory.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fast_forward.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fast_forward_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fast_forward_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fast_forward_large_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fast_reverse.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fastforward_green_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/feather_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/features.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ffmpeg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/file.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/file_type.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fill.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/filter.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/finish.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fire.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/first.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/first_frame_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/first_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/flip_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/flip_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/flip_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/folder.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/folder_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/folder_video.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/font.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/font_size.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/forest.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/forward.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/forward_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/four_squares.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/fps.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/frames.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/frames_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gamma.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gantt_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gantt_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gif.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/github.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/github_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gitter.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gitter_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gpu.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gpu_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/gpu_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/green_check.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/green_dice.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/grey.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/greyscale.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/half_circle.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/half_circle_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/heatmap.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/height.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/hexagon.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/hexagon_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/hierarchy.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/hierarchy_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/histogram.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/home.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/horizontal.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/id_card.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/id_card_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/image.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/import.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/info.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/info_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ini.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/interaction_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/interactive_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/invert.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/join_purple.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/join_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/join_yellow.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/jpeg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/json.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/jump.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/keyboard.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/label.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/label_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/label_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/label_yellow.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/labelme.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/labelme_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/labelme_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/last.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/last_frame_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/last_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/leaf.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/left_arrow_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/left_arrow_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/left_ear.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/light_bulb.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/line.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/line_chart_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/line_chart_light_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/line_chart_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/link.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/list.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/load.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/load_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/load_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/location.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/log.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/magnifying.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mars.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mean.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/median.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/merge.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/metrics.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/metrics_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/metrics_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/minus.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/minus_blue_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/minus_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/minus_red_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mixing_panel.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/monitor.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mouse_head.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mouse_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mov.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/move.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/move_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/mp4.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/multiple_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/multiple_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/multiple_yellow.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/navigation.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/nose.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/number_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/obb.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/one.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/one_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/one_to_many.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/opacity.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/options_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/original_size.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/osf.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/osf_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/outlier.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/outside.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/outside_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/overlap_iou.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/paint.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/palette_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/palette_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/parquet.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/path.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/path_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pct.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pct_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pdf_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/permutation_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/photos.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/play.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/play_large_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/plot.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/plus.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/plus_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/plus_green_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/plus_green_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/png.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/point.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/point_right_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pointing_left_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/polygon.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/polygon_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/polygon_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pose.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/pose_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/print.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/probability.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/progressbar_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/python.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/question_mark.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/range_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/readthedocs_logo.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/recent_files.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rectangle.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rectangle_1_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rectangle_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rectangle_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rectangle_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/remove_bg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/reorganize.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/resize.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/restart.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/reverse.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/reverse_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/reverse_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/reverse_large_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rewind.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rewind_blue_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rewind_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rewind_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/right_arrow_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/right_arrow_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rocket.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/roi.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/roi_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rotate.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/rounding.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ruler.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ruler_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/run.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/sample.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/save.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/save_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/save_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/save_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/save_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/scale_1.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/scale_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/scale_3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/search.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/segment.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/seperate_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/settings.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shade.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shap.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shap_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shapes_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shapes_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/shapes_small_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/sigma.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/simba_logo_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/single_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/single_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/single_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/size_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/skip.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/skip_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/skip_forward_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/skip_previous_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/sleap_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/smooth.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/speedometer.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/split.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/split_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/spread.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/square_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/stack.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/star.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/stop.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/stopwatch.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/stream.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/style.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/subset_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/superimpose.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/svg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/system.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/t.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/table.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/table_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text_bg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text_color.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text_color_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/text_spacing.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/threshold.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/tick.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/tick_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/tiff.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/tile_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/time.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/timer.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/timer_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/trash.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/trash_red.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/triangle_black.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/triangle_small.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/tv_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/two.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ultralytics_1.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/ultralytics_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/verbose.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/vertical.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/video.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/video_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/video_file_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/video_large.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/visualize.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/visualize_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/visualize_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/walk.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/wand_blue.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/warning.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/watermark_green.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/webm.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/webp.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/weight.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/weights.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/width.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/x.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/y.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/zero.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/zoom_in.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/icons/zoom_out.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/about_me.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/bg.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/bg_2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/bg_2024.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/landing.mp4 +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/simon_n.webp +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/splash.mp4 +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/splash.pptx +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/splash_2024.mp4 +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/img/~$splash.pptx +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/critical_values_05.pickle +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/feature_extraction_headers.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/features.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/model_names.parquet +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/tooptips.json +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/unsupervised_example_x.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/yolo.yaml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/yolo_schematics/tappelby.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/yolo_schematics/yolo_7bps.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/lookups/yolo_schematics/yolo_mitra.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/ppyoloe_plus_crn_s_80e_coco.yml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/UbuntuMono-Regular.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/animal_distances.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/baseline_scale.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/color_bar.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/down_arrow.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/feature_categories/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/feature_categories/shap_feature_categories.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/intruder_movement.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/intruder_shape.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/resident_intruder_movement.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/resident_intruder_shape.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/resident_movement.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/resident_shape.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/side_scale.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/side_scale_5.jpg +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/shap/ubuntu.regular.ttf +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/stl/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/stl/grid_floor.stl +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/stl/operant_lever.stl +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/stl/operant_tray.stl +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/stl/operant_walls.stl +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/tracker_yml/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/tracker_yml/botsort.yml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/tracker_yml/bytetrack.yml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/tracker_yml/tow_bytetrack.yaml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/unsupervised/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/unsupervised/features.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/assets/unsupervised/model_names.parquet +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/agg_boundary_stats.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/boundary_menus.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/boundary_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/find_boundaries.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/visualize_boundaries.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/bounding_box_tools/yolo/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_clf_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_main_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_movement_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_tools.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/cue_light_tools/cue_light_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/dash_app/SimBA_dash_app.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/dash_app/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/dash_app/dash_app.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/dash_app/run_dash_tkinter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/advanced_interpolator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/advanced_smoothing.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/blob_location_computer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/boolean_conditional_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/circling_detector.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/circular_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/create_shap_log.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/data.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/geometry.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/image.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/timeseries.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cuda/utils.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cue_light_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cue_light_clf_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/cue_light_movement_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/directing_animal_to_bodypart.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/directing_other_animals_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/distance_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/distance_timbin_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/egocentric_aligner.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/find_animal_blob_location.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/fsttc_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/gibbs_sampler.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/interpolate.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/interpolate_pose.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/interpolation_smoothing.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/kleinberg_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/light_dark_box_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/movement_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/mutual_exclusivity_corrector.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/pup_retrieval_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/pybursts_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/pybursts_calculator_numba.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/severity_bout_based_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/severity_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/severity_frame_based_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/smoothing.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/spontaneous_alternation_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/timebins_clf_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/timebins_movement_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/timebins_movement_calculator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/data_processors/yolo_track_cleaner.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/aggression_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/amber_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/boundary_rearing_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/cave_fish_featurizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_14bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_16bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_4bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_7bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_8bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_8bps_2_animals.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_9bp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_extractor_user_defined.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/feature_subsets.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/gerbil_featurizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/add_probability_cnt_features.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/convex_hull_3_scratch_3.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/convex_hull_scratch_1.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/convex_hull_scratch_2.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/count_values_in_range.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/doctests.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/egocentrical_aligner.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/fish_feature_extractor_2022.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_2.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_3.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_4.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/fish_feature_extractor_2023_version_5.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/graph_3d_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/graph_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/make_splash.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/mutual_exclusive.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/peaks.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/read_in_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/termite_rois.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/time_stamp_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/video_color.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/video_rotator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/misc/video_rotator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/perimeter_jit.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/rat_social_featurizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/riptortus_featurizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/straub_tail_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/wingwave_extractor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/extract_labelled_frames.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/extract_labelling_meta.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/labelling_advanced_interface.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/labelling_interface.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/mitra_style_appender.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/play_annotation_video.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/single_clf_appender_excel.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/standard_labeller.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/labelling/targeted_annotations_clips.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/abstract_classes.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/annotator_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/circular_statistics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/config_reader.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/feature_extraction_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/feature_extraction_supplement_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/image_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/network_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/plotting_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/pop_up_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/pose_importer_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/statistics_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/timeseries_features_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/train_model_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/mixins/unsupervised_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/grid_search_multiclass_rf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/grid_search_rf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/inference_multiclass_batch.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/inference_validation.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/ordinal_clf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/regression/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/regression/metrics.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/regression/model.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/sam_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/train_multiclass_rf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/train_multilabel_rf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/train_rf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_fit.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_nvdec_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_pose_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_pose_track_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/model/yolo_seg_inference.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_location.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_location_advanced.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_location_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_movement.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_movement_advanced.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/outlier_corrector_movement_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/outlier_tools/skip_outlier_correction.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/EzPathPlot.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/ROI_feature_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/ROI_feature_visualizer_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/annotation_videos.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/blob_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/blob_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/circular_feature_overlay_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/circular_plotting.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/clf_validator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/clf_validator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/cue_light_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/data_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/directing_animals_to_bodypart_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/directing_animals_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/directing_animals_visualizer_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/distance_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/distance_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/ez_path_plot.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/frame_mergerer_ffmpeg.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/gantt_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/gantt_creator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/gantt_plotly.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/geometry_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/heat_mapper_clf.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/heat_mapper_clf_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/heat_mapper_location.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/heat_mapper_location_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/interactive_probability_grapher.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/light_dark_box_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/path_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/path_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/plot_clf_results.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/pose_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/pose_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/probability_plot_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/probability_plot_creator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/roi_directing_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/roi_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/roi_plotter_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/sam_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/shap_agg_stats_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/single_run_model_validation_video.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/single_run_model_validation_video_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/skeleton_video_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/spontaneous_alternation_plotter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/tools/tkinter_tools.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/yolo_annotation_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/yolo_pose_track_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/yolo_pose_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/yolo_seg_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/plotting/yolo_visualize.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/bp_names/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/bp_names/bp_names.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/configuration_names/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/configuration_names/pose_config_names.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/no_animals/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/no_animals/no_animals.csv +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/1.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/10.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/11.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/12.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/13.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/14.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/15.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/16.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/2.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/3.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/4.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/5.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/6.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/7.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/8.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_configurations/schematics/9.png +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/dlc_importer_csv.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/facemap_h5_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/import_mars.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/madlc_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/misc/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/misc/apt_trk_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/read_DANNCE_mat.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/simba_blob_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/simba_yolo_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/sleap_csv_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/sleap_h5_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/sleap_slp_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/superanimal_import.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_importers/trk_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_processors/pose_reset.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_processors/remove_keypoints.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_processors/reorganize_keypoint.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/pose_processors/reverse_pose.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/ROI_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/ROI_directing_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/ROI_feature_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/ROI_size_standardizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/ROI_time_bin_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/import_roi_csvs.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/interactive_modifier_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/interactive_roi_bufferer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/interactive_roi_modifier_tkinter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_aggregate_statistics_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_aggregate_stats_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_clf_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_clf_calculator_mp.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_ruler.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_selector_circle_tkinter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_selector_polygon_tkinter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_selector_rectangle_tkinter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_time_bins_analyzer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_ui_mixin.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/roi_tools/roi_utils.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/BENTO_appender.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/BORIS_appender.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/boris_source_cleaner.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/converters.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/deepethogram_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/ethovision_import.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/observer_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/shah_appender.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/solomon_importer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/third_party_appender.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/tools.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/dlc_multi_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/dlc_single_to_multi_format_converter.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/dlc_to_labelme.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/dlc_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/labelme_to_df.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/labelme_to_dlc.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/labelme_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/labelme_to_yolo_keypoints.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/litpose_crop_annotations.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/litpose_crop_annotations_bbox_square.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/litpose_merge_projects.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/litpose_to_yolo_bbox.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/litpose_to_yolo_keypoints.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/merge_yolo_projects.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/sam3_to_yolo_bbox.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/sam3_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/simba_roi_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/simba_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/simba_to_yolo_seg.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/sleap_to_yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/utils.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/yolo_labels_to_yolo_project.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/third_party_label_appenders/transform/yolo_to_imgs.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/blob_quick_check_interface.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/blob_tracker_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/create_project_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/get_tree_view.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/import_pose_frame.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/import_videos_frame.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/machine_model_settings_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/ml_settings_frm.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/about_simba_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/animal_directing_other_animals_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/animal_directing_roi_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/annotated_bouts_videos_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/append_roi_features_animals_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/archive_files_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/batch_preprocess_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/blob_visualizer_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/change_speed_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/check_videos_seekable_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_add_remove_print_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_annotation_counts_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_by_roi_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_by_timebins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_descriptive_statistics_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_probability_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/clf_validation_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/coco_keypoints_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/create_user_defined_pose_configuration_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/csv_2_parquet_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/cue_light_clf_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/cue_light_data_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/cue_light_main_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/cue_light_movement_analyzer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/cue_light_visualizer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/data_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/delete_all_rois_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/directing_animal_to_bodypart_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/directing_other_animals_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/direction_animal_to_bodypart_settings_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/distance_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/distance_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/distance_timebins_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/dlc_annotations_to_labelme_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/dlc_h5_inference_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/dlc_to_labelme_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/dlc_to_yolo_keypoints_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/duplicate_rois_by_source_target_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/egocentric_alignment_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/extract_annotation_frames_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/ez_path_plot_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/fsttc_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/gantt_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/heatmap_clf_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/heatmap_location_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/helpers.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/import_roi_csv_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/initialize_blob_tracking_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/interpolate_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/kleinberg_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/labelme_bbox_to_yolo_bbox_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/labelme_dir_to_csv_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/labelme_to_df_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/labelme_to_imgs_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/make_path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/merge_coco_keypoint_files_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/min_max_draw_size_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/movement_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/movement_analysis_time_bins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/multiple_videos_to_frames_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/mutual_exclusivity_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/outlier_settings_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/pose_bp_drop_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/pose_reorganizer_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/print_video_meta_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/pup_retrieval_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/quick_path_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/remove_roi_features_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_aggregate_stats_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_analysis_time_bins_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_directing_visualizer_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_features_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_size_standardizer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_tracking_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/roi_video_table_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/run_machine_models_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/select_video_for_labelling_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/severity_analysis_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/single_video_to_frames_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/smoothing_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/splash_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/spontaneous_alternation_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/subset_feature_extractor_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/targeted_annotation_clips_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/third_party_annotator_appender_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/validation_plot_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/video_processing_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/yolo_inference_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/yolo_plot_results.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/pop_ups/yolo_pose_train_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/px_to_mm_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/tkinter_functions.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/user_defined_pose_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/utils.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/video_info_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/ui/video_timelaps.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/bout_aggregator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/cluster_frequentist_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/cluster_validation_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/cluster_video_visualizer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/cluster_xai_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/clusterer_comparison_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/data_extractor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/data_map.yaml +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/dataset_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/dbcv_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/embedding_correlation_calculator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/enums.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/grid_search_visualizers.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/hdbscan_clusterer.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/outlier_detector.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/cluster_frequentist_stats_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/cluster_validation_pop_up.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/cluster_videos_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/cluster_xai_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/clusterer_comparison_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/data_extractor_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/embedding_correlations_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/fit_cluster_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/fit_dim_reduction_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/grid_search_visualizer_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/print_embedding_info_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/transform_cluster_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/pop_ups/transform_dim_reduction_popup.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/tsne.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/umap_embedder.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/unsupervised/unsupervised_main.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/checks.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/cli/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/cli/cli_tools.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/config_creator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/custom_feature_extractor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/data.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/enums.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/errors.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/lookups.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/printing.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/read_write.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/warnings.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/utils/yolo.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/.DS_Store +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/__init__.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/async_frame_reader.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/async_frame_reader_gpu.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/batch_process_menus.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/blob_tracking_executor.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/brightness_contrast_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/calculate_px_dist.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/clahe_ui.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/egocentric_video_rotator.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/extract_frames.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/extract_seqframes.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/multi_cropper.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/roi_selector.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/roi_selector_circle.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/roi_selector_polygon.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/video_processing.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/video_processors/videos_to_frames.py +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/dependency_links.txt +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/entry_points.txt +0 -0
- {simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba_uw_tf_dev.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: simba_uw_tf_dev
|
|
3
|
-
Version: 5.3.
|
|
3
|
+
Version: 5.3.7
|
|
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.3.
|
|
32
|
+
version="5.3.7",
|
|
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",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
G:/projects/jason_zhang/jason_project/project_folder/project_config.ini
|
|
1
2
|
G:/projects/edmayelle/superanimal_multianimal_project/project_folder/project_config.ini
|
|
2
3
|
D:/troubleshooting/open_field_rearing/project_folder/project_config.ini
|
|
3
4
|
F:/troubleshooting/varsha/project_folder/project_config.ini
|
|
@@ -68,6 +68,7 @@ class AggregateClfCalculator(ConfigReader):
|
|
|
68
68
|
:param bool median_interval_duration: If True, calculates median interval between bouts for each classifier. Default: True.
|
|
69
69
|
:param bool frame_count: If True, includes total frame count in the output. Default: False.
|
|
70
70
|
:param bool video_length: If True, includes video length in seconds in the output. Default: False.
|
|
71
|
+
:param Optional[Union[str, os.PathLike]] save_dir: Optional directory in which to save the output CSVs (``data_summary_*.csv`` and, if requested, ``detailed_bout_data_summary_*.csv``). If None, defaults to the project's ``logs_path``. Default: None.
|
|
71
72
|
|
|
72
73
|
:raises NoChoosenMeasurementError: If no measurement types are selected (all measurement booleans are False).
|
|
73
74
|
|
|
@@ -87,7 +88,7 @@ class AggregateClfCalculator(ConfigReader):
|
|
|
87
88
|
classifiers: List[str],
|
|
88
89
|
data_dir: Optional[Union[str, os.PathLike]] = None,
|
|
89
90
|
detailed_bout_data: bool = False,
|
|
90
|
-
transpose: bool =
|
|
91
|
+
transpose: bool = True,
|
|
91
92
|
first_occurrence: bool = True,
|
|
92
93
|
event_count: bool = True,
|
|
93
94
|
total_event_duration: bool = True,
|
|
@@ -97,14 +98,16 @@ class AggregateClfCalculator(ConfigReader):
|
|
|
97
98
|
mean_interval_duration: bool = True,
|
|
98
99
|
median_interval_duration: bool = True,
|
|
99
100
|
frame_count: bool = False,
|
|
100
|
-
video_length: bool = False
|
|
101
|
+
video_length: bool = False,
|
|
102
|
+
save_dir: Optional[Union[str, os.PathLike]] = None):
|
|
101
103
|
|
|
102
104
|
super().__init__(config_path=config_path)
|
|
103
105
|
log_event(logger_name=str(self.__class__.__name__), log_type=TagNames.CLASS_INIT.value, msg=self.create_log_msg_from_init_args(locals=locals()))
|
|
104
|
-
check_valid_lst(data=classifiers, source=f'{self.__class__.__name__} classifiers', min_len=1, valid_dtypes=(str,), valid_values=self.clf_names)
|
|
105
106
|
if data_dir is None:
|
|
107
|
+
check_valid_lst(data=classifiers, source=f'{self.__class__.__name__} classifiers', min_len=1, valid_dtypes=(str,), valid_values=self.clf_names)
|
|
106
108
|
data_dir = self.machine_results_dir
|
|
107
109
|
else:
|
|
110
|
+
check_valid_lst(data=classifiers, source=f'{self.__class__.__name__} classifiers', min_len=1, valid_dtypes=(str,))
|
|
108
111
|
check_if_dir_exists(in_dir=data_dir)
|
|
109
112
|
self.data_paths = find_files_of_filetypes_in_directory(directory=data_dir, extensions=[f'.{self.file_type}'], raise_error=True)
|
|
110
113
|
|
|
@@ -130,15 +133,20 @@ class AggregateClfCalculator(ConfigReader):
|
|
|
130
133
|
self.median_interval_duration = median_interval_duration
|
|
131
134
|
self.frame_count = frame_count
|
|
132
135
|
self.video_length = video_length
|
|
133
|
-
|
|
134
|
-
|
|
136
|
+
if save_dir is not None:
|
|
137
|
+
check_if_dir_exists(in_dir=save_dir, source=f'{self.__class__.__name__} save_dir')
|
|
138
|
+
self.save_dir = save_dir
|
|
139
|
+
else:
|
|
140
|
+
self.save_dir = self.logs_path
|
|
141
|
+
self.save_path = os.path.join(self.save_dir, f"data_summary_{self.datetime}.csv")
|
|
142
|
+
self.detailed_save_path = os.path.join(self.save_dir, f"detailed_bout_data_summary_{self.datetime}.csv")
|
|
135
143
|
|
|
136
144
|
def run(self):
|
|
137
145
|
self.results_df, self.bouts_df_lst = pd.DataFrame(), []
|
|
138
|
-
check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=self.
|
|
146
|
+
check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=self.data_paths)
|
|
139
147
|
for file_cnt, file_path in enumerate(self.data_paths):
|
|
140
148
|
_, file_name, _ = get_fn_ext(file_path)
|
|
141
|
-
stdout_information(msg=f"Analyzing classifier descriptive statistics for video {file_name} ({file_cnt+1}/{len(self.
|
|
149
|
+
stdout_information(msg=f"Analyzing classifier descriptive statistics for video {file_name} ({file_cnt+1}/{len(self.data_paths)})...")
|
|
142
150
|
_, _, fps = self.read_video_info(video_name=file_name)
|
|
143
151
|
check_file_exist_and_readable(file_path)
|
|
144
152
|
data_df = read_df(file_path, self.file_type)
|
|
@@ -286,18 +286,18 @@ class AggregateClfCalculatorMultiprocess(ConfigReader):
|
|
|
286
286
|
# clf_calculator.run()
|
|
287
287
|
# clf_calculator.save()
|
|
288
288
|
|
|
289
|
-
if __name__ == "__main__":
|
|
290
|
-
test = AggregateClfCalculatorMultiprocess(config_path=r"D:\troubleshooting\maplight_ri\project_folder\project_config.ini",
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
test.run()
|
|
300
|
-
test.save()
|
|
289
|
+
#if __name__ == "__main__":
|
|
290
|
+
# test = AggregateClfCalculatorMultiprocess(config_path=r"D:\troubleshooting\maplight_ri\project_folder\project_config.ini",
|
|
291
|
+
# classifiers=['attack'],
|
|
292
|
+
# transpose=True,
|
|
293
|
+
# mean_event_duration = True,
|
|
294
|
+
# median_event_duration = True,
|
|
295
|
+
# mean_interval_duration = True,
|
|
296
|
+
# median_interval_duration = True,
|
|
297
|
+
# detailed_bout_data=True,
|
|
298
|
+
# core_cnt=12)
|
|
299
|
+
# test.run()
|
|
300
|
+
# test.save()
|
|
301
301
|
|
|
302
302
|
|
|
303
303
|
# test = AggregateClfCalculator(config_path=r"C:\troubleshooting\mitra\project_folder\project_config.ini",
|
|
@@ -163,6 +163,16 @@ class FreezingDetector(ConfigReader):
|
|
|
163
163
|
agg_results.to_csv(agg_results_path)
|
|
164
164
|
self.timer.stop_timer(); stdout_success(msg=f'Results saved in {self.save_dir} directory.', elapsed_time=self.timer.elapsed_time_str)
|
|
165
165
|
|
|
166
|
+
#
|
|
167
|
+
# FreezingDetector(
|
|
168
|
+
# data_dir=r'G:\projects\jason_zhang\jason_project\project_folder\csv\outlier_corrected_movement_location',
|
|
169
|
+
# config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini",
|
|
170
|
+
# time_window=3,
|
|
171
|
+
# movement_threshold=3,
|
|
172
|
+
# shortest_bout=100
|
|
173
|
+
# ).run()
|
|
174
|
+
|
|
175
|
+
|
|
166
176
|
|
|
167
177
|
# FreezingDetector(
|
|
168
178
|
# data_dir=r'F:\troubleshooting\sam\sam\project_folder\csv\outlier_corrected_movement_location',
|
{simba_uw_tf_dev-5.3.6 → simba_uw_tf_dev-5.3.7}/simba/feature_extractors/mitra_feature_extractor.py
RENAMED
|
@@ -22,13 +22,13 @@ from simba.utils.read_write import (SimbaTimer, get_fn_ext, read_df,
|
|
|
22
22
|
write_df)
|
|
23
23
|
|
|
24
24
|
NOSE = 'nose'
|
|
25
|
-
LEFT_SIDE = '
|
|
26
|
-
RIGHT_SIDE = '
|
|
25
|
+
LEFT_SIDE = 'lat_left'
|
|
26
|
+
RIGHT_SIDE = 'lat_right'
|
|
27
27
|
LEFT_EAR = 'left_ear'
|
|
28
28
|
RIGHT_EAR = 'right_ear'
|
|
29
29
|
CENTER = 'center'
|
|
30
30
|
TAIL_BASE = 'tail_base'
|
|
31
|
-
TAIL_CENTER = '
|
|
31
|
+
TAIL_CENTER = 'tail_center'
|
|
32
32
|
TAIL_TIP = 'tail_end'
|
|
33
33
|
|
|
34
34
|
TIME_WINDOWS = np.array([0.25, 0.5, 1.0, 2.0])
|
|
@@ -231,8 +231,8 @@ class MitraFeatureExtractor(ConfigReader,
|
|
|
231
231
|
# feature_extractor = MitraFeatureExtractor(config_path=args.config_path)
|
|
232
232
|
# feature_extractor.run()
|
|
233
233
|
#
|
|
234
|
-
#feature_extractor = MitraFeatureExtractor(config_path=r"
|
|
235
|
-
#feature_extractor.run()
|
|
234
|
+
# feature_extractor = MitraFeatureExtractor(config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini")
|
|
235
|
+
# feature_extractor.run()
|
|
236
236
|
|
|
237
237
|
|
|
238
238
|
# feature_extractor = MitraFeatureExtractor(config_path=r"E:\troubleshooting\mitra_pbn\mitra_pbn\project_folder\project_config.ini")
|
|
@@ -1169,7 +1169,7 @@ class GeometryMixin(object):
|
|
|
1169
1169
|
check_int(name=f'{GeometryMixin.__name__} minimum_rotated_rectangle buffer', min_value=1, value=buffer)
|
|
1170
1170
|
shape = shape.buffer(distance=buffer)
|
|
1171
1171
|
rotated_rectangle = shape.minimum_rotated_rectangle
|
|
1172
|
-
if isinstance(rotated_rectangle, Point):
|
|
1172
|
+
if isinstance(rotated_rectangle, (Point, LineString)):
|
|
1173
1173
|
rotated_rectangle = Polygon([(0, 0), (0, 0), (0, 0)])
|
|
1174
1174
|
if return_type == 'array':
|
|
1175
1175
|
rotated_rectangle = np.round(np.array(rotated_rectangle.exterior.coords)).astype(np.int32)
|
|
@@ -8,10 +8,12 @@ from typing import Dict, List, Optional, Union
|
|
|
8
8
|
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
|
+
from simba.data_processors.agg_clf_calculator import AggregateClfCalculator
|
|
11
12
|
from simba.mixins.config_reader import ConfigReader
|
|
12
13
|
from simba.mixins.train_model_mixin import TrainModelMixin
|
|
13
14
|
from simba.utils.checks import (
|
|
14
|
-
check_all_file_names_are_represented_in_video_log,
|
|
15
|
+
check_all_file_names_are_represented_in_video_log,
|
|
16
|
+
check_file_exist_and_readable, check_float, check_if_dir_exists,
|
|
15
17
|
check_if_keys_exist_in_dict, check_int, check_that_column_exist,
|
|
16
18
|
check_valid_dict, check_valid_lst)
|
|
17
19
|
from simba.utils.data import plug_holes_shortest_bout
|
|
@@ -41,6 +43,8 @@ class InferenceBatch(TrainModelMixin, ConfigReader):
|
|
|
41
43
|
:param Optional[Union[str, os.PathLike]] save_dir: Optional directory to save the data for the analyzed videos. If None, then the `project_folder/csv/machine_results` directory of the project will be used.
|
|
42
44
|
:param Optional[int] minimum_bout_length: Optional minimum bout length (milliseconds) override. If None, classifier-specific minimum bout settings from project configuration are used.
|
|
43
45
|
:param Optional[Dict[str, Dict[str, List[str]]]] feature_subsets_by_clf: Optional per-classifier feature subsets to use during inference. Format: ``{classifier_name: {subset_name: [feature_col_1, feature_col_2, ...]}}``. If provided, each classifier is applied once per subset and outputs are suffixed with the subset name.
|
|
46
|
+
:param Optional[Dict[str, Dict[str, Union[str, int, float]]]] model_dict: Optional override of the classifiers to run. Format: ``{model_name: {'model_path': '/path/to/clf.sav', 'minimum_bout_length': 100, 'threshold': 0.5}}``. If None, classifier definitions are read from the project config (current behavior). When provided, these models replace the project-config classifiers for this run.
|
|
47
|
+
:param Optional[Union[str, os.PathLike]] save_agg_stats: Optional directory in which to save aggregate classifier statistics. If None, no aggregate statistics are computed. If a directory is provided, :class:`simba.data_processors.agg_clf_calculator.AggregateClfCalculator` is run after inference completes, reading from this class's ``save_dir`` and writing its CSV outputs to ``save_agg_stats``.
|
|
44
48
|
:param bool verbose: If True, print progress and status messages during inference. Default: True.
|
|
45
49
|
|
|
46
50
|
:example I:
|
|
@@ -58,6 +62,8 @@ class InferenceBatch(TrainModelMixin, ConfigReader):
|
|
|
58
62
|
save_dir: Optional[Union[str, os.PathLike]] = None,
|
|
59
63
|
minimum_bout_length: Optional[int] = None,
|
|
60
64
|
feature_subsets_by_clf: Optional[Dict[str, Dict[str, List[str]]]] = None,
|
|
65
|
+
model_dict: Optional[Dict[str, Dict[str, Union[str, int, float]]]] = None,
|
|
66
|
+
save_agg_stats: Optional[Union[str, os.PathLike]] = None,
|
|
61
67
|
verbose: bool = True):
|
|
62
68
|
|
|
63
69
|
ConfigReader.__init__(self, config_path=config_path)
|
|
@@ -74,6 +80,20 @@ class InferenceBatch(TrainModelMixin, ConfigReader):
|
|
|
74
80
|
log_event(logger_name=str(self.__class__.__name__), log_type=TagNames.CLASS_INIT.value, msg=self.create_log_msg_from_init_args(locals=locals()))
|
|
75
81
|
if len(self.feature_file_paths) == 0:
|
|
76
82
|
raise NoFilesFoundError(msg=f"Zero files found in the {self.features_dir}. Create features before running classifier.", source=self.__class__.__name__,)
|
|
83
|
+
if model_dict is not None:
|
|
84
|
+
check_valid_dict(x=model_dict, valid_key_dtypes=(str,), valid_values_dtypes=(dict,), min_len_keys=1, source=f'{self.__class__.__name__} model_dict')
|
|
85
|
+
translated_model_dict = {}
|
|
86
|
+
for cnt, (model_name, m_hyp) in enumerate(model_dict.items()):
|
|
87
|
+
check_if_keys_exist_in_dict(data=m_hyp, key=[MODEL_PATH, THRESHOLD, MINIMUM_BOUT_LENGTH], name=f'{self.__class__.__name__} model_dict[{model_name}]', raise_error=True)
|
|
88
|
+
check_file_exist_and_readable(file_path=m_hyp[MODEL_PATH])
|
|
89
|
+
check_float(name=f'{self.__class__.__name__} model_dict[{model_name}] {THRESHOLD}', value=m_hyp[THRESHOLD], min_value=0.0, max_value=1.0)
|
|
90
|
+
check_int(name=f'{self.__class__.__name__} model_dict[{model_name}] {MINIMUM_BOUT_LENGTH}', value=m_hyp[MINIMUM_BOUT_LENGTH], min_value=0)
|
|
91
|
+
translated_model_dict[cnt] = {MODEL_PATH: m_hyp[MODEL_PATH], MODEL_NAME: model_name, THRESHOLD: float(m_hyp[THRESHOLD]), MINIMUM_BOUT_LENGTH: int(m_hyp[MINIMUM_BOUT_LENGTH])}
|
|
92
|
+
self.clf_names = list(model_dict.keys())
|
|
93
|
+
self.clf_cnt = len(self.clf_names)
|
|
94
|
+
self._override_model_dict = translated_model_dict
|
|
95
|
+
else:
|
|
96
|
+
self._override_model_dict = None
|
|
77
97
|
if feature_subsets_by_clf is not None:
|
|
78
98
|
check_valid_dict(x=feature_subsets_by_clf, valid_key_dtypes=(str,), source=f'{self.__class__.__name__} feature_subsets_by_clf')
|
|
79
99
|
for cnt, (k, v) in enumerate(feature_subsets_by_clf.items()):
|
|
@@ -83,10 +103,13 @@ class InferenceBatch(TrainModelMixin, ConfigReader):
|
|
|
83
103
|
for subset_name, feature_names in v.items():
|
|
84
104
|
check_valid_lst(data=feature_names, source=f'{self.__class__.__name__} feature_subsets_by_clf {k} {subset_name}', valid_dtypes=(str,), min_len=1, raise_error=True)
|
|
85
105
|
if minimum_bout_length is not None: check_int(name=f'{self.__class__.__name__} minimum_bout_length', value=minimum_bout_length, allow_zero=False, allow_negative=False, raise_error=True)
|
|
106
|
+
if save_agg_stats is not None:
|
|
107
|
+
check_if_dir_exists(in_dir=save_agg_stats, source=f'{self.__class__.__name__} save_agg_stats')
|
|
108
|
+
self.save_agg_stats = save_agg_stats
|
|
86
109
|
self.verbose, self.feature_subsets_by_clf, self.minimum_bout_length = verbose, feature_subsets_by_clf, minimum_bout_length
|
|
87
110
|
if verbose: stdout_information(msg=f"Analyzing {len(self.feature_file_paths)} file(s) with {self.clf_cnt} classifier(s)...")
|
|
88
111
|
self.timer = SimbaTimer(start=True)
|
|
89
|
-
self.model_dict = self.get_model_info(config=self.config, model_cnt=self.clf_cnt)
|
|
112
|
+
self.model_dict = self._override_model_dict if self._override_model_dict is not None else self.get_model_info(config=self.config, model_cnt=self.clf_cnt)
|
|
90
113
|
|
|
91
114
|
def run(self):
|
|
92
115
|
check_all_file_names_are_represented_in_video_log(video_info_df=self.video_info_df, data_paths=self.feature_file_paths)
|
|
@@ -133,19 +156,27 @@ class InferenceBatch(TrainModelMixin, ConfigReader):
|
|
|
133
156
|
write_df(df=out_df, file_type=self.file_type, save_path=file_save_path)
|
|
134
157
|
video_timer.stop_timer()
|
|
135
158
|
if self.verbose: stdout_information(msg=f"Predictions created for {file_name} (frame count: {len(in_df)}, elapsed time: {video_timer.elapsed_time_str}) ...")
|
|
159
|
+
if self.save_agg_stats is not None:
|
|
160
|
+
if self.verbose: stdout_information(msg=f"Computing aggregate classifier statistics into {self.save_agg_stats}...")
|
|
161
|
+
agg = AggregateClfCalculator(config_path=self.config_path, classifiers=list(self.clf_names), data_dir=self.save_dir, save_dir=self.save_agg_stats)
|
|
162
|
+
agg.run()
|
|
163
|
+
agg.save()
|
|
136
164
|
self.timer.stop_timer()
|
|
137
165
|
stdout_success(msg=f"Machine predictions complete for {len(self.feature_file_paths)} file(s). Files saved in {self.save_dir} directory", elapsed_time=self.timer.elapsed_time_str, source=self.__class__.__name__)
|
|
138
166
|
|
|
139
|
-
if __name__ == "__main__" and not hasattr(sys, 'ps1'):
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
167
|
+
# if __name__ == "__main__" and not hasattr(sys, 'ps1'):
|
|
168
|
+
# parser = argparse.ArgumentParser(description="Perform classifications according to rules defined in SimBA project_config.ini.")
|
|
169
|
+
# parser.add_argument('--config_path', type=str, required=True, help='Path to SimBA Project config.')
|
|
170
|
+
# args = parser.parse_args()
|
|
171
|
+
# runner = InferenceBatch(config_path=args.config_path)
|
|
172
|
+
# runner.run()
|
|
146
173
|
|
|
147
174
|
|
|
148
|
-
#
|
|
175
|
+
#
|
|
176
|
+
# test = InferenceBatch(config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini",
|
|
177
|
+
# save_dir=r'G:\projects\jason_zhang\jason_project\project_folder\csv\REARING\REARING_DATA',
|
|
178
|
+
# model_dict={'REARING': {'model_path': r"G:\projects\jason_zhang\jason_project\models\REARING.sav", 'minimum_bout_length': 100, 'threshold': 0.25}},
|
|
179
|
+
# save_agg_stats=r'G:\projects\jason_zhang\jason_project\project_folder\csv\REARING\REARING_DATA')
|
|
149
180
|
# test.run()
|
|
150
181
|
|
|
151
182
|
#
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
__author__ = "Simon Nilsson; sronilsson@gmail.com"
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from typing import Dict, List, Union
|
|
5
|
+
|
|
6
|
+
from simba.mixins.config_reader import ConfigReader
|
|
7
|
+
from simba.mixins.train_model_mixin import TrainModelMixin
|
|
8
|
+
from simba.model.inference_batch import InferenceBatch
|
|
9
|
+
from simba.utils.checks import check_file_exist_and_readable, check_str
|
|
10
|
+
from simba.utils.errors import (InvalidInputError, NoDataError,
|
|
11
|
+
NoFilesFoundError)
|
|
12
|
+
from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
|
|
13
|
+
from simba.utils.read_write import read_df
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class InferenceMultiAnimalBatch(TrainModelMixin, ConfigReader):
|
|
17
|
+
"""
|
|
18
|
+
Run a single trained behavior classifier across every animal in a SimBA project, producing per-animal predictions in the output CSVs.
|
|
19
|
+
|
|
20
|
+
.. seealso::
|
|
21
|
+
Training counterpart: :class:`simba.model.grid_search_rf.GridSearchRandomForestClassifier` with ``feature_subset_suffix='_animal_<N>'``.
|
|
22
|
+
|
|
23
|
+
:param Union[str, os.PathLike] config_path: Path to the SimBA project_config.ini.
|
|
24
|
+
:param str clf_name: Name of the configured classifier to run multi-animal inference for.
|
|
25
|
+
|
|
26
|
+
:example:
|
|
27
|
+
>>> InferenceMultiAnimalBatch(config_path=r'/path/project_folder/project_config.ini', clf_name='wing_wave').run()
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(self,
|
|
31
|
+
config_path: Union[str, os.PathLike],
|
|
32
|
+
clf_name: str):
|
|
33
|
+
|
|
34
|
+
check_file_exist_and_readable(file_path=config_path)
|
|
35
|
+
check_str(name=f'{self.__class__.__name__} clf_name', value=clf_name)
|
|
36
|
+
ConfigReader.__init__(self, config_path=os.fspath(config_path), create_logger=False)
|
|
37
|
+
TrainModelMixin.__init__(self)
|
|
38
|
+
|
|
39
|
+
if self.animal_cnt < 2:
|
|
40
|
+
raise InvalidInputError(
|
|
41
|
+
msg=f'{self.__class__.__name__} requires a project with 2 or more animals (project animal_cnt={self.animal_cnt}). '
|
|
42
|
+
f'Use simba.model.inference_batch.InferenceBatch for single-animal projects.',
|
|
43
|
+
source=self.__class__.__name__)
|
|
44
|
+
if clf_name not in self.clf_names:
|
|
45
|
+
raise InvalidInputError(
|
|
46
|
+
msg=f'Classifier "{clf_name}" is not configured in the project. Available classifiers: {self.clf_names}.',
|
|
47
|
+
source=self.__class__.__name__)
|
|
48
|
+
if len(self.feature_file_paths) == 0:
|
|
49
|
+
raise NoFilesFoundError(
|
|
50
|
+
msg=f'No feature files found in {self.features_dir}. Run feature extraction before inference.',
|
|
51
|
+
source=self.__class__.__name__)
|
|
52
|
+
|
|
53
|
+
model_dict = self.get_model_info(config=self.config, model_cnt=self.clf_cnt)
|
|
54
|
+
clfs_with_valid_models = [v['model_name'] for v in model_dict.values()]
|
|
55
|
+
if clf_name not in clfs_with_valid_models:
|
|
56
|
+
raise NoFilesFoundError(
|
|
57
|
+
msg=f'No valid trained model file is registered for classifier "{clf_name}". '
|
|
58
|
+
f'Check that "model_path_N" for "{clf_name}" in the [SML settings] section of the project config points to an existing .sav file. '
|
|
59
|
+
f'Classifiers with valid model files: {clfs_with_valid_models}.',
|
|
60
|
+
source=self.__class__.__name__)
|
|
61
|
+
|
|
62
|
+
features_df = read_df(file_path=self.feature_file_paths[0], file_type=self.file_type)
|
|
63
|
+
feature_subset_dict: Dict[str, List[str]] = {}
|
|
64
|
+
for animal_id in range(1, self.animal_cnt + 1):
|
|
65
|
+
suffix = f'_animal_{animal_id}'
|
|
66
|
+
cols = [c for c in features_df.columns if c.endswith(suffix)]
|
|
67
|
+
if len(cols) == 0:
|
|
68
|
+
raise NoDataError(
|
|
69
|
+
msg=f'No feature columns ending in "{suffix}" found in {self.feature_file_paths[0]}. '
|
|
70
|
+
f'Multi-animal inference requires features named with "_animal_<N>" suffixes for every animal.',
|
|
71
|
+
source=self.__class__.__name__)
|
|
72
|
+
feature_subset_dict[suffix[1:]] = cols
|
|
73
|
+
|
|
74
|
+
self.clf_name = clf_name
|
|
75
|
+
self.feature_subsets_by_clf = {clf_name: feature_subset_dict}
|
|
76
|
+
|
|
77
|
+
def run(self) -> None:
|
|
78
|
+
timer = SimbaTimer(start=True)
|
|
79
|
+
stdout_information(msg=f'Running multi-animal inference for classifier "{self.clf_name}" across {self.animal_cnt} animals...')
|
|
80
|
+
InferenceBatch(config_path=self.config_path, feature_subsets_by_clf=self.feature_subsets_by_clf).run()
|
|
81
|
+
timer.stop_timer()
|
|
82
|
+
stdout_success(msg=f'Multi-animal inference complete for classifier "{self.clf_name}" (elapsed: {timer.elapsed_time_str}s).', source=self.__class__.__name__)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
# if __name__ == "__main__":
|
|
86
|
+
# InferenceMultiAnimalBatch(config_path=r"F:\troubleshooting\sophiaa\project_folder\project_config.ini", clf_name="wing_wave").run()
|
|
@@ -20,11 +20,13 @@ from simba.mixins.config_reader import ConfigReader
|
|
|
20
20
|
from simba.mixins.geometry_mixin import GeometryMixin
|
|
21
21
|
from simba.mixins.plotting_mixin import PlottingMixin
|
|
22
22
|
from simba.mixins.train_model_mixin import TrainModelMixin
|
|
23
|
-
from simba.utils.checks import (check_float,
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
from simba.utils.checks import (check_float, check_if_dir_exists,
|
|
24
|
+
check_if_valid_rgb_tuple, check_int,
|
|
25
|
+
check_nvidea_gpu_available, check_str,
|
|
26
|
+
check_that_column_exist,
|
|
26
27
|
check_that_hhmmss_start_is_before_end,
|
|
27
28
|
check_valid_boolean, check_valid_dict,
|
|
29
|
+
check_valid_lst,
|
|
28
30
|
check_video_and_data_frm_count_align)
|
|
29
31
|
from simba.utils.data import (check_if_string_value_is_valid_video_timestamp,
|
|
30
32
|
create_color_palette, detect_bouts,
|
|
@@ -212,7 +214,7 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
212
214
|
:param Union[str, os.PathLike] config_path: Path to SimBA project config file in Configparser format.
|
|
213
215
|
:param bool video_setting: If True, creates compressed MP4 videos. Default True.
|
|
214
216
|
:param bool frame_setting: If True, saves individual annotated frames as PNG images. Default False.
|
|
215
|
-
:param Optional[Union[List[Union[str, os.PathLike]], Union[str, os.PathLike]]] video_paths: Path(s) to video file(s) to process. If None, processes all videos found in the project's video directory. Default None.
|
|
217
|
+
:param Optional[Union[List[Union[str, os.PathLike]], Union[str, os.PathLike]]] video_paths: Path(s) to video file(s) to process. Accepts a single video file path, a list of video file paths, or a path to a directory containing videos (in which case all videos in that directory are processed). If None, processes all videos found in the project's video directory. Default None.
|
|
216
218
|
:param bool rotate: If True, rotates output videos 90 degrees clockwise. Default False.
|
|
217
219
|
:param bool animal_names: If True, displays animal names on the video frames. Default False.
|
|
218
220
|
:param bool show_pose: If True, overlays pose-estimation keypoints on the video. Default True.
|
|
@@ -233,6 +235,9 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
233
235
|
:param bool gpu: If True, uses GPU acceleration for video concatenation (requires CUDA-capable GPU). Default False.
|
|
234
236
|
:param bool verbose: If True, prints progress and status messages during processing. Default True.
|
|
235
237
|
:param int core_cnt: Number of CPU cores to use for parallel processing. Pass -1 to use all available cores. Default -1.
|
|
238
|
+
:param Optional[Union[str, os.PathLike]] data_dir: Directory containing the classification data files (one per video, named ``<video_name>.<file_type>``) to overlay on the videos. If None, defaults to the project's ``machine_results_dir``. Default None.
|
|
239
|
+
:param Optional[Union[str, os.PathLike]] save_dir: Directory in which to write annotated videos/frames. Created if it does not exist. If None, defaults to the project's ``sklearn_plot_dir``. Default None.
|
|
240
|
+
:param Optional[Union[List[str], Tuple[str, ...]]] clf_names: Optional subset of classifier names to visualize. Each entry must match a classifier defined in the project config. If None, all project classifiers are plotted (current behavior). Default None.
|
|
236
241
|
|
|
237
242
|
:example:
|
|
238
243
|
>>> clf_plotter = PlotSklearnResultsMultiProcess(
|
|
@@ -274,7 +279,10 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
274
279
|
text_bg_clr: Tuple[int, int, int] = (0, 0, 0),
|
|
275
280
|
gpu: bool = False,
|
|
276
281
|
verbose: bool = True,
|
|
277
|
-
core_cnt: int = -1
|
|
282
|
+
core_cnt: int = -1,
|
|
283
|
+
data_dir: Optional[Union[str, os.PathLike]] = None,
|
|
284
|
+
save_dir: Optional[Union[str, os.PathLike]] = None,
|
|
285
|
+
clf_names: Optional[Union[List[str], Tuple[str, ...]]] = None):
|
|
278
286
|
|
|
279
287
|
|
|
280
288
|
ConfigReader.__init__(self, config_path=config_path)
|
|
@@ -314,23 +322,43 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
314
322
|
self.gpu = True if check_nvidea_gpu_available() and gpu else False
|
|
315
323
|
self.pose_threshold = read_config_entry(self.config, ConfigKey.THRESHOLD_SETTINGS.value, ConfigKey.SKLEARN_BP_PROB_THRESH.value, Dtypes.FLOAT.value, 0.00)
|
|
316
324
|
self.time_slice, self.overwrite, self.print_timer = time_slice, overwrite, print_timer
|
|
317
|
-
if not
|
|
318
|
-
|
|
319
|
-
|
|
325
|
+
if save_dir is not None:
|
|
326
|
+
check_if_dir_exists(in_dir=save_dir, source=f'{self.__class__.__name__} save_dir', create_if_not_exist=True, raise_error=True)
|
|
327
|
+
self.save_dir = save_dir
|
|
328
|
+
else:
|
|
329
|
+
self.save_dir = self.sklearn_plot_dir
|
|
330
|
+
if not os.path.exists(self.save_dir):
|
|
331
|
+
os.makedirs(self.save_dir)
|
|
332
|
+
if isinstance(video_paths, str):
|
|
333
|
+
if os.path.isdir(video_paths):
|
|
334
|
+
self.video_paths = find_all_videos_in_project(videos_dir=video_paths, raise_error=False)
|
|
335
|
+
if len(self.video_paths) == 0:
|
|
336
|
+
raise NoDataError(msg=f'Cannot create classification videos. No videos exist in {video_paths} directory', source=self.__class__.__name__)
|
|
337
|
+
else:
|
|
338
|
+
self.video_paths = [video_paths]
|
|
320
339
|
elif isinstance(video_paths, list): self.video_paths = video_paths
|
|
321
340
|
elif video_paths is None:
|
|
322
341
|
self.video_paths = find_all_videos_in_project(videos_dir=self.video_dir)
|
|
323
342
|
if len(self.video_paths) == 0:
|
|
324
343
|
raise NoDataError(msg=f'Cannot create classification videos. No videos exist in {self.video_dir} directory', source=self.__class__.__name__)
|
|
325
344
|
else:
|
|
326
|
-
raise InvalidInputError(msg=f'video_paths has to be a path
|
|
345
|
+
raise InvalidInputError(msg=f'video_paths has to be a path, directory, or a list of paths. Got {type(video_paths)}', source=self.__class__.__name__)
|
|
327
346
|
|
|
347
|
+
if data_dir is not None:
|
|
348
|
+
check_if_dir_exists(in_dir=data_dir, source=f'{self.__class__.__name__} data_dir', raise_error=True)
|
|
349
|
+
self.data_dir = data_dir
|
|
350
|
+
else:
|
|
351
|
+
self.data_dir = self.machine_results_dir
|
|
328
352
|
for video_path in self.video_paths:
|
|
329
353
|
video_name = get_fn_ext(filepath=video_path)[1]
|
|
330
|
-
data_path = os.path.join(self.
|
|
354
|
+
data_path = os.path.join(self.data_dir, f'{video_name}.{self.file_type}')
|
|
331
355
|
if not os.path.isfile(data_path): raise NoDataError(msg=f'Cannot create classification videos for {video_name}. Expected classification data at location {data_path} but file does not exist', source=self.__class__.__name__)
|
|
332
356
|
check_int(name=f'{self.__class__.__name__} core_cnt', value=core_cnt, min_value=-1, unaccepted_vals=[0])
|
|
333
357
|
self.core_cnt = find_core_cnt()[0] if int(core_cnt) == -1 or int(core_cnt) > find_core_cnt()[0] else int(core_cnt)
|
|
358
|
+
if clf_names is not None:
|
|
359
|
+
if isinstance(clf_names, tuple): clf_names = list(clf_names)
|
|
360
|
+
check_valid_lst(data=clf_names, source=f'{self.__class__.__name__} clf_names', valid_dtypes=(str,), valid_values=self.clf_names, min_len=1)
|
|
361
|
+
self.clf_names = clf_names
|
|
334
362
|
self.conf_cols = [f'Probability_{x}' for x in self.clf_names]
|
|
335
363
|
if platform.system() == "Darwin":
|
|
336
364
|
multiprocessing.set_start_method("spawn", force=True)
|
|
@@ -338,8 +366,9 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
338
366
|
def __get_print_settings(self):
|
|
339
367
|
optimal_circle_size = self.get_optimal_circle_size(frame_size=(self.video_meta_data["width"], self.video_meta_data["height"]), circle_frame_ratio=100)
|
|
340
368
|
longest_str = str(max(['TIMERS:', 'ENSEMBLE PREDICTION:'] + self.clf_names, key=len))
|
|
341
|
-
|
|
342
|
-
|
|
369
|
+
auto_thickness = max(TextOptions.TEXT_THICKNESS.value, int(round(min(self.video_meta_data["width"], self.video_meta_data["height"]) / 500)))
|
|
370
|
+
self.video_text_thickness = auto_thickness if self.text_thickness is None else int(max(self.text_thickness, 1))
|
|
371
|
+
optimal_font_size, _, optimal_spacing_scale = self.get_optimal_font_scales(text=longest_str, accepted_px_width=int(self.video_meta_data["width"] / 2.5), accepted_px_height=int(self.video_meta_data["height"] / 5), text_thickness=self.video_text_thickness)
|
|
343
372
|
self.video_circle_size = optimal_circle_size if self.circle_size is None else int(max(1, self.circle_size))
|
|
344
373
|
self.video_font_size = optimal_font_size if self.font_size is None else self.font_size
|
|
345
374
|
self.video_space_size = optimal_spacing_scale if self.space_size is None else int(max(self.space_size, 1))
|
|
@@ -352,7 +381,7 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
352
381
|
video_timer = SimbaTimer(start=True)
|
|
353
382
|
_, self.video_name, _ = get_fn_ext(video_path)
|
|
354
383
|
if self.verbose: stdout_information(msg=f"Creating classification visualization for video {self.video_name}...")
|
|
355
|
-
self.data_path = os.path.join(self.
|
|
384
|
+
self.data_path = os.path.join(self.data_dir, f'{self.video_name}.{self.file_type}')
|
|
356
385
|
self.data_df = read_df(self.data_path, self.file_type).reset_index(drop=True).fillna(0)
|
|
357
386
|
if self.show_pose: check_that_column_exist(df=self.data_df, column_name=self.bp_col_names, file_name=self.data_path)
|
|
358
387
|
if self.show_confidence: check_that_column_exist(df=self.data_df, column_name=self.conf_cols, file_name=self.data_path)
|
|
@@ -363,17 +392,17 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
363
392
|
frm_ids = find_frame_numbers_from_time_stamp(start_time=self.time_slice[START_TIME], end_time=self.time_slice[END_TIME], fps=int(self.video_meta_data['fps']))
|
|
364
393
|
self.data_df = self.data_df.loc[frm_ids]
|
|
365
394
|
height, width = deepcopy(self.video_meta_data["height"]), deepcopy(self.video_meta_data["width"])
|
|
366
|
-
self.save_path = os.path.join(self.
|
|
395
|
+
self.save_path = os.path.join(self.save_dir, f"{self.video_name}.mp4")
|
|
367
396
|
self.video_frame_dir, self.video_temp_dir = None, None
|
|
368
397
|
if self.video_setting:
|
|
369
398
|
if os.path.isfile(self.save_path) and not self.overwrite:
|
|
370
399
|
FileExistWarning(msg=f'Skipping video {self.video_name}: The output video exist ({self.save_path}) and overwrite is FALSE', source=self.__class__.__name__)
|
|
371
400
|
continue
|
|
372
|
-
self.video_save_path = os.path.join(self.
|
|
373
|
-
self.video_temp_dir = os.path.join(self.
|
|
401
|
+
self.video_save_path = os.path.join(self.save_dir, f"{self.video_name}.mp4")
|
|
402
|
+
self.video_temp_dir = os.path.join(self.save_dir, self.video_name, "temp")
|
|
374
403
|
create_directory(paths=self.video_temp_dir, overwrite=True)
|
|
375
404
|
if self.frame_setting:
|
|
376
|
-
self.video_frame_dir = os.path.join(self.
|
|
405
|
+
self.video_frame_dir = os.path.join(self.save_dir, self.video_name)
|
|
377
406
|
create_directory(paths=self.video_temp_dir, overwrite=True)
|
|
378
407
|
if self.rotate:
|
|
379
408
|
self.video_meta_data["height"], self.video_meta_data["width"] = (width, height)
|
|
@@ -452,11 +481,54 @@ class PlotSklearnResultsMultiProcess(ConfigReader, TrainModelMixin, PlottingMixi
|
|
|
452
481
|
terminate_cpu_pool(pool=self.pool, force=False, source=self.__class__.__name__)
|
|
453
482
|
self.timer.stop_timer()
|
|
454
483
|
if self.video_setting:
|
|
455
|
-
stdout_success(msg=f"{len(self.video_paths)} video(s) saved in {self.
|
|
484
|
+
stdout_success(msg=f"{len(self.video_paths)} video(s) saved in {self.save_dir} directory", elapsed_time=self.timer.elapsed_time_str, source=self.__class__.__name__)
|
|
456
485
|
if self.frame_setting:
|
|
457
|
-
stdout_success(f"Frames for {len(self.video_paths)} videos saved in sub-folders within {self.
|
|
486
|
+
stdout_success(f"Frames for {len(self.video_paths)} videos saved in sub-folders within {self.save_dir} directory", elapsed_time=self.timer.elapsed_time_str, source=self.__class__.__name__)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
# if __name__ == "__main__":
|
|
492
|
+
# clf_plotter = PlotSklearnResultsMultiProcess(config_path=r"G:\projects\jason_zhang\jason_project\project_folder\project_config.ini",
|
|
493
|
+
# video_paths=r"G:\projects\jason_zhang\jason_project\project_folder\videos\2025-10-22 12-01-34_box2.mp4",
|
|
494
|
+
# data_dir=r"G:\projects\jason_zhang\jason_project\project_folder\csv\REARING\REARING_DATA",
|
|
495
|
+
# save_dir=r'G:\projects\jason_zhang\jason_project\project_folder\csv\REARING\REARING_VIDEOS',
|
|
496
|
+
# clf_names=('REARING',),
|
|
497
|
+
# video_setting=True,
|
|
498
|
+
# frame_setting=False,
|
|
499
|
+
# rotate=False,
|
|
500
|
+
# show_confidence=True,
|
|
501
|
+
# core_cnt=8,
|
|
502
|
+
# show_pose=True,
|
|
503
|
+
# animal_names=False,
|
|
504
|
+
# print_timer=HHMMSSSSSS,
|
|
505
|
+
# overwrite=True,
|
|
506
|
+
# time_slice=None, #{START_TIME: '00:00:00', END_TIME: '00:01:00'}, #,{START_TIME: '00:00:00', END_TIME: '00:01:00'}
|
|
507
|
+
# bbox='animal-aligned',
|
|
508
|
+
# text_opacity=0.6,
|
|
509
|
+
# show_gantt=None)
|
|
510
|
+
# clf_plotter.run()
|
|
511
|
+
|
|
458
512
|
|
|
459
513
|
|
|
514
|
+
# if __name__ == "__main__":
|
|
515
|
+
# clf_plotter = PlotSklearnResultsMultiProcess(config_path=r"E:\troubleshooting\mitra_emergence_hour\project_folder\project_config.ini",
|
|
516
|
+
# video_paths=r"E:\troubleshooting\mitra_emergence_hour\project_folder\videos\Box3_180mISOcontrol_Females.mp4", #,#,
|
|
517
|
+
# video_setting=True,
|
|
518
|
+
# frame_setting=False,
|
|
519
|
+
# rotate=False,
|
|
520
|
+
# show_confidence=False,
|
|
521
|
+
# core_cnt=12,
|
|
522
|
+
# show_pose=False,
|
|
523
|
+
# animal_names=False,
|
|
524
|
+
# print_timer=HHMMSSSSSS,
|
|
525
|
+
# overwrite=False,
|
|
526
|
+
# time_slice=None, #,{START_TIME: '00:00:00', END_TIME: '00:01:00'}
|
|
527
|
+
# bbox=None,
|
|
528
|
+
# text_opacity=0.6,
|
|
529
|
+
# show_gantt=None)
|
|
530
|
+
# clf_plotter.run()
|
|
531
|
+
|
|
460
532
|
|
|
461
533
|
|
|
462
534
|
# if __name__ == "__main__":
|
|
@@ -31,8 +31,6 @@ tabulate == 0.8.3; python_version=="3.6"
|
|
|
31
31
|
tabulate == 0.9.0; python_version>="3.9"
|
|
32
32
|
tqdm == 4.30.0
|
|
33
33
|
xgboost == 0.90
|
|
34
|
-
yellowbrick==0.9.1; python_version=="3.6"
|
|
35
|
-
yellowbrick==1.5.0; python_version>="3.9"
|
|
36
34
|
kaleido == 0.2.1; python_version=="3.6"
|
|
37
35
|
kaleido; python_version>="3.9"
|
|
38
36
|
psutil == 5.9.8; python_version=="3.6"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: simba-uw-tf-dev
|
|
3
|
-
Version: 5.3.
|
|
3
|
+
Version: 5.3.7
|
|
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
|
|
@@ -651,6 +651,7 @@ simba/model/__init__.py
|
|
|
651
651
|
simba/model/grid_search_multiclass_rf.py
|
|
652
652
|
simba/model/grid_search_rf.py
|
|
653
653
|
simba/model/inference_batch.py
|
|
654
|
+
simba/model/inference_multi_animal_batch.py
|
|
654
655
|
simba/model/inference_multiclass_batch.py
|
|
655
656
|
simba/model/inference_validation.py
|
|
656
657
|
simba/model/ordinal_clf.py
|