simba-uw-tf-dev 4.7.1__py3-none-any.whl → 4.7.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. simba/SimBA.py +13 -4
  2. simba/assets/icons/left_arrow_green.png +0 -0
  3. simba/assets/icons/left_arrow_red.png +0 -0
  4. simba/assets/icons/right_arrow_green.png +0 -0
  5. simba/assets/icons/right_arrow_red.png +0 -0
  6. simba/assets/lookups/yolo_schematics/yolo_mitra.csv +9 -0
  7. simba/mixins/geometry_mixin.py +357 -302
  8. simba/mixins/image_mixin.py +129 -4
  9. simba/mixins/train_model_mixin.py +1 -4
  10. simba/model/inference_batch.py +1 -1
  11. simba/model/yolo_fit.py +22 -15
  12. simba/model/yolo_pose_inference.py +7 -2
  13. simba/outlier_tools/skip_outlier_correction.py +2 -2
  14. simba/plotting/heat_mapper_clf_mp.py +45 -23
  15. simba/plotting/plot_clf_results.py +2 -1
  16. simba/plotting/plot_clf_results_mp.py +456 -455
  17. simba/roi_tools/roi_utils.py +2 -2
  18. simba/sandbox/convert_h264_to_mp4_lossless.py +129 -0
  19. simba/sandbox/extract_and_convert_videos.py +257 -0
  20. simba/sandbox/remove_end_of_video.py +80 -0
  21. simba/sandbox/video_timelaps.py +291 -0
  22. simba/third_party_label_appenders/transform/simba_to_yolo.py +8 -5
  23. simba/ui/import_pose_frame.py +13 -13
  24. simba/ui/pop_ups/clf_plot_pop_up.py +1 -1
  25. simba/ui/pop_ups/run_machine_models_popup.py +22 -22
  26. simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +2 -2
  27. simba/ui/pop_ups/video_processing_pop_up.py +3638 -3469
  28. simba/ui/pop_ups/yolo_inference_popup.py +1 -1
  29. simba/ui/pop_ups/yolo_pose_train_popup.py +1 -1
  30. simba/ui/tkinter_functions.py +3 -1
  31. simba/ui/video_timelaps.py +454 -0
  32. simba/utils/lookups.py +67 -1
  33. simba/utils/read_write.py +10 -3
  34. simba/video_processors/batch_process_create_ffmpeg_commands.py +0 -1
  35. simba/video_processors/video_processing.py +160 -39
  36. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/METADATA +1 -1
  37. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/RECORD +41 -31
  38. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/LICENSE +0 -0
  39. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/WHEEL +0 -0
  40. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/entry_points.txt +0 -0
  41. {simba_uw_tf_dev-4.7.1.dist-info → simba_uw_tf_dev-4.7.5.dist-info}/top_level.txt +0 -0
simba/SimBA.py CHANGED
@@ -1,6 +1,7 @@
1
1
  __author__ = "Simon Nilsson; sronilsson@gmail.com"
2
2
 
3
- from simba.utils.printing import SimbaTimer, stdout_success, stdout_warning
3
+ from simba.utils.printing import (SimbaTimer, stdout_information,
4
+ stdout_success, stdout_warning)
4
5
 
5
6
  load_timer = SimbaTimer(start=True)
6
7
  import os.path
@@ -223,7 +224,14 @@ sys.setrecursionlimit(10**6)
223
224
  currentPlatform = platform.system()
224
225
  ENV = read_sys_env()
225
226
  load_timer.stop_timer()
226
- print(f'SimBA environment variables: {ENV}. Load time: {load_timer.elapsed_time_str}s')
227
+
228
+ try:
229
+ import multiprocessing
230
+ is_worker_process = multiprocessing.current_process().name != 'MainProcess'
231
+ except (ImportError, AttributeError):
232
+ is_worker_process = False
233
+ if not is_worker_process:
234
+ print(f'SimBA environment variables: {ENV}. Load time: {load_timer.elapsed_time_str}s')
227
235
 
228
236
  class LoadProjectPopUp(object):
229
237
  def __init__(self):
@@ -779,14 +787,15 @@ class SimbaProjectPopUp(ConfigReader, PopUpMixin):
779
787
  _ = MachineModelSettingsPopUp(config_path=self.config_path)
780
788
 
781
789
  def run_feature_extraction(self):
782
- print(f"Running feature extraction... start time: {get_current_time()}")
783
790
  feature_extractor_classes = get_bp_config_code_class_pairs()
784
791
  if self.user_defined_var.get():
792
+ check_file_exist_and_readable(file_path=self.scriptfile.file_path, raise_error=True)
793
+ stdout_information(msg=f"Running feature extraction from file {self.scriptfile.file_path}...")
785
794
  custom_feature_extractor = CustomFeatureExtractor(extractor_file_path=self.scriptfile.file_path,config_path=self.config_path)
786
795
  custom_feature_extractor.run()
787
796
  stdout_success(msg="Custom feature extraction complete!",source=self.__class__.__name__)
788
797
  else:
789
- print(f"Pose-estimation body part setting for feature extraction: {str(self.animal_cnt)} animals {str(self.pose_setting)} body-parts...")
798
+ stdout_information(msg=f"Pose-estimation body part setting for feature extraction: {str(self.animal_cnt)} animals {str(self.pose_setting)} body-parts...")
790
799
  if self.pose_setting not in feature_extractor_classes.keys():
791
800
  raise InvalidInputError(msg=f"The project pose-configuration key is set to {self.pose_setting} which is invalid. OPTIONS: {list(feature_extractor_classes.keys())}. Check the pose-estimation setting in the project_config.ini", source=self.__class__.__name__)
792
801
  if self.pose_setting == "8":
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ left_ear
2
+ right_ear
3
+ nose
4
+ left_side
5
+ right_side
6
+ tail_base
7
+ center
8
+ tail_center
9
+ tail_tip