simba-uw-tf-dev 4.7.6__py3-none-any.whl → 4.7.8__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.
- simba/assets/.recent_projects.txt +1 -0
- simba/assets/icons/folder_2.png +0 -0
- simba/assets/icons/folder_video.png +0 -0
- simba/assets/lookups/tooptips.json +35 -2
- simba/model/yolo_fit.py +42 -9
- simba/sandbox/clean_sleap.py +4 -0
- simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py +1 -2
- simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py +21 -13
- simba/ui/create_project_ui.py +1 -1
- simba/ui/pop_ups/batch_preprocess_pop_up.py +2 -2
- simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py +96 -96
- simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py +32 -18
- simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py +15 -14
- simba/ui/pop_ups/video_processing_pop_up.py +8 -7
- simba/ui/pop_ups/yolo_plot_results.py +146 -153
- simba/ui/pop_ups/yolo_pose_train_popup.py +69 -23
- simba/ui/tkinter_functions.py +53 -6
- simba/utils/checks.py +2414 -2401
- simba/utils/read_write.py +22 -20
- simba/video_processors/batch_process_menus.py +22 -22
- simba/video_processors/video_processing.py +3 -2
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/METADATA +1 -1
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/RECORD +27 -24
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/LICENSE +0 -0
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/WHEEL +0 -0
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/entry_points.txt +0 -0
- {simba_uw_tf_dev-4.7.6.dist-info → simba_uw_tf_dev-4.7.8.dist-info}/top_level.txt +0 -0
simba/utils/read_write.py
CHANGED
|
@@ -71,7 +71,7 @@ from simba.utils.errors import (CorruptedFileError, DataHeaderError,
|
|
|
71
71
|
NoFilesFoundError, NotDirectoryError,
|
|
72
72
|
ParametersFileError, PermissionError,
|
|
73
73
|
SimBAPAckageVersionError)
|
|
74
|
-
from simba.utils.printing import SimbaTimer, stdout_success
|
|
74
|
+
from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
|
|
75
75
|
from simba.utils.warnings import (
|
|
76
76
|
FileExistWarning, FrameRangeWarning, GPUToolsWarning, InvalidValueWarning,
|
|
77
77
|
NoFileFoundWarning, ThirdPartyAnnotationsInvalidFileFormatWarning)
|
|
@@ -572,7 +572,9 @@ def get_video_info_ffmpeg(video_path: Union[str, os.PathLike]) -> Dict[str, Any]
|
|
|
572
572
|
print(e.args)
|
|
573
573
|
raise InvalidVideoFileError(msg=f'Cannot use FFMPEG to extract video meta data for video {video_name}, try OpenCV?', source=get_video_info_ffmpeg.__name__)
|
|
574
574
|
|
|
575
|
-
def remove_a_folder(folder_dir: Union[str, os.PathLike],
|
|
575
|
+
def remove_a_folder(folder_dir: Union[str, os.PathLike],
|
|
576
|
+
ignore_errors: Optional[bool] = True,
|
|
577
|
+
verbose: bool = False) -> None:
|
|
576
578
|
"""Helper to remove a directory"""
|
|
577
579
|
valid_dir = check_if_dir_exists(in_dir=folder_dir, source=remove_a_folder.__name__, raise_error=False)
|
|
578
580
|
if not valid_dir and not ignore_errors:
|
|
@@ -580,6 +582,7 @@ def remove_a_folder(folder_dir: Union[str, os.PathLike], ignore_errors: Optional
|
|
|
580
582
|
if not valid_dir and ignore_errors:
|
|
581
583
|
return
|
|
582
584
|
try:
|
|
585
|
+
if verbose: stdout_information(msg=f'Removing directory {folder_dir}...')
|
|
583
586
|
shutil.rmtree(folder_dir, ignore_errors=ignore_errors)
|
|
584
587
|
except Exception as e:
|
|
585
588
|
raise PermissionError(msg=f'Could not delete directory: {folder_dir}. is the directory or its content beeing used by anothe process?', source=remove_a_folder.__name__)
|
|
@@ -1759,7 +1762,9 @@ def read_roi_data(roi_path: Union[str, os.PathLike]) -> Tuple[pd.DataFrame, pd.D
|
|
|
1759
1762
|
|
|
1760
1763
|
|
|
1761
1764
|
|
|
1762
|
-
def create_directory(paths: Union[str, os.PathLike, bytes, List[str], Tuple[str]],
|
|
1765
|
+
def create_directory(paths: Union[str, os.PathLike, bytes, List[str], Tuple[str]],
|
|
1766
|
+
overwrite: bool = False,
|
|
1767
|
+
verbose: bool = False) -> None:
|
|
1763
1768
|
|
|
1764
1769
|
"""
|
|
1765
1770
|
Create one or multiple directories.
|
|
@@ -1779,15 +1784,17 @@ def create_directory(paths: Union[str, os.PathLike, bytes, List[str], Tuple[str]
|
|
|
1779
1784
|
path = os.path.abspath(path)
|
|
1780
1785
|
if not os.path.exists(path):
|
|
1781
1786
|
try:
|
|
1787
|
+
if verbose: stdout_information(msg=f'Creating directory {path}...')
|
|
1782
1788
|
os.makedirs(path)
|
|
1783
1789
|
except Exception as e:
|
|
1784
|
-
raise PermissionError(f'SimBA is not allowed to create the directory {path} ({e})')
|
|
1790
|
+
raise PermissionError(f'SimBA is not allowed to create the directory {path} ({e}). Is a file in this directory open in another process?')
|
|
1785
1791
|
elif overwrite:
|
|
1786
1792
|
try:
|
|
1787
1793
|
remove_a_folder(folder_dir=path)
|
|
1794
|
+
if verbose: stdout_information(msg=f'Creating directory {path}...')
|
|
1788
1795
|
os.makedirs(path)
|
|
1789
1796
|
except Exception as e:
|
|
1790
|
-
raise PermissionError(f'SimBA is not allowed to overwrite the directory {path} ({e})')
|
|
1797
|
+
raise PermissionError(f'SimBA is not allowed to overwrite the directory {path} ({e}). Is a file in this directory open in another process?')
|
|
1791
1798
|
|
|
1792
1799
|
|
|
1793
1800
|
def find_max_vertices_coordinates(shapes: List[Union[Polygon, LineString, MultiPolygon, Point]], buffer: Optional[int] = None) -> Tuple[int, int]:
|
|
@@ -1935,7 +1942,8 @@ def read_dlc_superanimal_h5(path: Union[str, os.PathLike], col_names: List[str])
|
|
|
1935
1942
|
return data
|
|
1936
1943
|
|
|
1937
1944
|
|
|
1938
|
-
def clean_sleap_filenames_in_directory(dir: Union[str, os.PathLike]
|
|
1945
|
+
def clean_sleap_filenames_in_directory(dir: Union[str, os.PathLike],
|
|
1946
|
+
verbose: bool = False) -> None:
|
|
1939
1947
|
"""
|
|
1940
1948
|
Clean up SLEAP input filenames in the specified directory by removing a prefix
|
|
1941
1949
|
and a suffix, and renaming the files to match the names of the original video files.
|
|
@@ -1949,24 +1957,18 @@ def clean_sleap_filenames_in_directory(dir: Union[str, os.PathLike]) -> None:
|
|
|
1949
1957
|
>>> clean_sleap_filenames_in_directory(dir='/Users/simon/Desktop/envs/troubleshooting/Hornet_SLEAP/import/')
|
|
1950
1958
|
"""
|
|
1951
1959
|
|
|
1952
|
-
SLEAP_CSV_SUBSTR = ".analysis"
|
|
1953
1960
|
check_if_dir_exists(in_dir=dir)
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
SLEAP_CSV_SUBSTR, ""
|
|
1963
|
-
),
|
|
1964
|
-
)
|
|
1965
|
-
os.rename(file_path, new_name)
|
|
1961
|
+
data_paths = find_files_of_filetypes_in_directory(directory=dir, extensions=[f'.{Formats.H5.value}', f'.{Formats.CSV.value}'], raise_error=True, sort_alphabetically=True, as_dict=False)
|
|
1962
|
+
for file_path in data_paths:
|
|
1963
|
+
directory, file_name, ext = get_fn_ext(filepath=file_path)
|
|
1964
|
+
if verbose: print(f'Renaming {file_name} ...')
|
|
1965
|
+
new_name = clean_sleap_file_name(filename=file_name)
|
|
1966
|
+
new_path = os.path.join(directory, f'{new_name}{ext}')
|
|
1967
|
+
if new_path != file_path:
|
|
1968
|
+
os.rename(file_path, new_path)
|
|
1966
1969
|
else:
|
|
1967
1970
|
pass
|
|
1968
1971
|
|
|
1969
|
-
|
|
1970
1972
|
def copy_files_in_directory(in_dir: Union[str, os.PathLike],
|
|
1971
1973
|
out_dir: Union[str, os.PathLike],
|
|
1972
1974
|
raise_error: bool = True,
|
|
@@ -20,7 +20,7 @@ from simba.utils.checks import (check_ffmpeg_available,
|
|
|
20
20
|
check_if_string_value_is_valid_video_timestamp,
|
|
21
21
|
check_int, check_nvidea_gpu_available,
|
|
22
22
|
check_that_hhmmss_start_is_before_end)
|
|
23
|
-
from simba.utils.enums import Formats, Keys, Links, Options
|
|
23
|
+
from simba.utils.enums import Formats, Keys, Links, Options
|
|
24
24
|
from simba.utils.errors import (FFMPEGCodecGPUError, FFMPEGNotFoundError,
|
|
25
25
|
NoFilesFoundError)
|
|
26
26
|
from simba.utils.lookups import (get_color_dict, get_ffmpeg_encoders,
|
|
@@ -28,9 +28,7 @@ from simba.utils.lookups import (get_color_dict, get_ffmpeg_encoders,
|
|
|
28
28
|
percent_to_crf_lookup,
|
|
29
29
|
video_quality_to_preset_lookup)
|
|
30
30
|
from simba.utils.printing import SimbaTimer, stdout_success
|
|
31
|
-
from simba.utils.read_write import (
|
|
32
|
-
check_if_hhmmss_timestamp_is_valid_part_of_video, get_fn_ext,
|
|
33
|
-
get_video_meta_data, str_2_bool)
|
|
31
|
+
from simba.utils.read_write import (check_if_hhmmss_timestamp_is_valid_part_of_video, get_fn_ext, get_video_meta_data, str_2_bool, read_frm_of_video)
|
|
34
32
|
from simba.video_processors.batch_process_create_ffmpeg_commands import \
|
|
35
33
|
FFMPEGCommandCreator
|
|
36
34
|
from simba.video_processors.roi_selector import ROISelector
|
|
@@ -76,12 +74,15 @@ class BatchProcessFrame(PopUpMixin):
|
|
|
76
74
|
raise FFMPEGNotFoundError(msg='Cannot perform batch video processing: FFMPEG not found', source=self.__class__.__name__)
|
|
77
75
|
|
|
78
76
|
|
|
79
|
-
|
|
77
|
+
|
|
80
78
|
self.input_dir, self.output_dir = input_dir, output_dir
|
|
81
79
|
if not os.path.exists(self.output_dir):
|
|
82
80
|
os.makedirs(self.output_dir)
|
|
83
81
|
self.videos_in_dir_dict, self.crop_dict = {}, {}
|
|
84
82
|
self.get_input_files()
|
|
83
|
+
if len(list(self.videos_in_dir_dict.keys())) == 0:
|
|
84
|
+
raise NoFilesFoundError(msg=f"The input directory {self.input_dir} contains ZERO video files in either .avi, .mp4, .mov, .flv, or m4v format", source=self.__class__.__name__)
|
|
85
|
+
PopUpMixin.__init__(self, title="BATCH PRE-PROCESS VIDEOS IN SIMBA", size=(2000, 600), icon='factory')
|
|
85
86
|
self.red_drop_img = ImageTk.PhotoImage(image=PIL.Image.open(MENU_ICONS["crop_red"]["icon_path"]))
|
|
86
87
|
self.black_crop_img = ImageTk.PhotoImage(image=PIL.Image.open(MENU_ICONS["crop"]["icon_path"]))
|
|
87
88
|
self.percent_to_crf_lookup = percent_to_crf_lookup()
|
|
@@ -91,8 +92,7 @@ class BatchProcessFrame(PopUpMixin):
|
|
|
91
92
|
self.video_quality_to_preset_lookup = video_quality_to_preset_lookup()
|
|
92
93
|
self.clrs = get_color_dict()
|
|
93
94
|
self.gpu_available_state = NORMAL if check_nvidea_gpu_available() else DISABLED
|
|
94
|
-
|
|
95
|
-
raise NoFilesFoundError(msg=f"The input directory {self.input_dir} contains ZERO video files in either .avi, .mp4, .mov, .flv, or m4v format", source=self.__class__.__name__)
|
|
95
|
+
|
|
96
96
|
self.max_char_vid_name = len(max(list(self.videos_in_dir_dict.keys()), key=len))
|
|
97
97
|
self.root.lift()
|
|
98
98
|
self.root.attributes("-topmost", True)
|
|
@@ -124,24 +124,24 @@ class BatchProcessFrame(PopUpMixin):
|
|
|
124
124
|
self.quick_settings_frm = CreateLabelFrameWithIcon(parent=self.main_frm,header="QUICK SETTINGS",icon_name=Keys.DOCUMENTATION.value,icon_link=Links.BATCH_PREPROCESS.value)
|
|
125
125
|
|
|
126
126
|
self.clip_video_settings_frm = CreateLabelFrameWithIcon(parent=self.quick_settings_frm, header='CLIP VIDEOS SETTING', icon_name='clip', padx=5, pady=5)
|
|
127
|
-
self.quick_clip_start_entry_box = Entry_Box(parent=self.clip_video_settings_frm, fileDescription='START TIME: ', labelwidth=15, value="00:00:00", justify='center', img='play', entry_box_width=12)
|
|
128
|
-
self.quick_clip_end_entry_box = Entry_Box(parent=self.clip_video_settings_frm, fileDescription='END TIME: ', labelwidth=15, value="00:00:00", justify='center', img='finish', entry_box_width=12)
|
|
127
|
+
self.quick_clip_start_entry_box = Entry_Box(parent=self.clip_video_settings_frm, fileDescription='START TIME: ', labelwidth=15, value="00:00:00", justify='center', img='play', entry_box_width=12, tooltip_key='BATCH_CLIP_START_TIME')
|
|
128
|
+
self.quick_clip_end_entry_box = Entry_Box(parent=self.clip_video_settings_frm, fileDescription='END TIME: ', labelwidth=15, value="00:00:00", justify='center', img='finish', entry_box_width=12, tooltip_key='BATCH_CLIP_END_TIME')
|
|
129
129
|
self.quick_clip_apply = SimbaButton(parent=self.clip_video_settings_frm, txt='APPLY', img='arrow_down_green_2', cmd=self.apply_trim_to_all)
|
|
130
130
|
|
|
131
131
|
self.quick_downsample_frm = CreateLabelFrameWithIcon(parent=self.quick_settings_frm, header='DOWNSAMPLE VIDEOS', icon_name='resize', padx=5, pady=5)
|
|
132
|
-
self.quick_downsample_width = Entry_Box(parent=self.quick_downsample_frm, fileDescription='WIDTH: ', labelwidth=15, value=400, justify='center', img='width', entry_box_width=12)
|
|
133
|
-
self.quick_downsample_height = Entry_Box(parent=self.quick_downsample_frm, fileDescription='HEIGHT: ', labelwidth=15, value=600, justify='center', img='height', entry_box_width=12)
|
|
132
|
+
self.quick_downsample_width = Entry_Box(parent=self.quick_downsample_frm, fileDescription='WIDTH: ', labelwidth=15, value=400, justify='center', img='width', entry_box_width=12, tooltip_key='BATCH_DOWNSAMPLE_WIDTH')
|
|
133
|
+
self.quick_downsample_height = Entry_Box(parent=self.quick_downsample_frm, fileDescription='HEIGHT: ', labelwidth=15, value=600, justify='center', img='height', entry_box_width=12, tooltip_key='BATCH_DOWNSAMPLE_HEIGHT')
|
|
134
134
|
self.quick_downsample_apply = SimbaButton(parent=self.quick_downsample_frm, txt='APPLY', img='arrow_down_green_2', cmd=self.apply_resolution_to_all)
|
|
135
135
|
|
|
136
136
|
|
|
137
137
|
self.quick_set_fps = CreateLabelFrameWithIcon(parent=self.quick_settings_frm, header="CHANGE FPS", icon_name='camera', padx=5, pady=12)
|
|
138
|
-
self.quick_fps_entry_box = Entry_Box(parent=self.quick_set_fps, fileDescription='FPS: ', labelwidth=15, value=15.0, justify='center', img='camera', entry_box_width=12)
|
|
138
|
+
self.quick_fps_entry_box = Entry_Box(parent=self.quick_set_fps, fileDescription='FPS: ', labelwidth=15, value=15.0, justify='center', img='camera', entry_box_width=12, tooltip_key='BATCH_FPS')
|
|
139
139
|
self.quick_fps_apply = SimbaButton(parent=self.quick_set_fps, txt='APPLY', img='arrow_down_green_2', cmd=self.apply_fps_to_all)
|
|
140
140
|
|
|
141
141
|
|
|
142
142
|
self.quick_set_quality = CreateLabelFrameWithIcon(parent=self.quick_settings_frm, header="OUTPUT VIDEO QUALITY", icon_name='star', padx=5, pady=12)
|
|
143
|
-
self.use_gpu_dropdown = SimBADropDown(parent=self.quick_set_quality, label="USE GPU", label_width=20, dropdown_options=['TRUE', 'FALSE'], value='FALSE', img='gpu_3', state=self.gpu_available_state, dropdown_width=15)
|
|
144
|
-
self.quick_set_quality_dropdown = SimBADropDown(parent=self.quick_set_quality, label='VIDEO QUALITY %', label_width=20, dropdown_options=self.cpu_video_quality, value=60, img='star', dropdown_width=15)
|
|
143
|
+
self.use_gpu_dropdown = SimBADropDown(parent=self.quick_set_quality, label="USE GPU", label_width=20, dropdown_options=['TRUE', 'FALSE'], value='FALSE', img='gpu_3', state=self.gpu_available_state, dropdown_width=15, tooltip_key='USE_GPU')
|
|
144
|
+
self.quick_set_quality_dropdown = SimBADropDown(parent=self.quick_set_quality, label='VIDEO QUALITY %', label_width=20, dropdown_options=self.cpu_video_quality, value=60, img='star', dropdown_width=15, tooltip_key='OUTPUT_VIDEO_QUALITY')
|
|
145
145
|
self.quick_set_quality_apply = SimbaButton(parent=self.quick_set_quality, txt='APPLY', img='arrow_down_green_2', cmd=self.apply_quality_to_all)
|
|
146
146
|
|
|
147
147
|
self.quick_settings_frm.grid(row=0, column=0, sticky=W, padx=10)
|
|
@@ -224,15 +224,15 @@ class BatchProcessFrame(PopUpMixin):
|
|
|
224
224
|
self.headings["start_time_col_head"] = SimBALabel(parent=self.videos_frm, txt='START \n TIME', font=Formats.FONT_REGULAR_BOLD.value, justify='center', padx=12, img='play')
|
|
225
225
|
self.headings["end_time_col_head"] = SimBALabel(parent=self.videos_frm, txt='END \n TIME', font=Formats.FONT_REGULAR_BOLD.value, justify='center', img='stop', padx=12)
|
|
226
226
|
self.headings["video_quality_head"] = SimBALabel(parent=self.videos_frm, txt='QUALITY', font=Formats.FONT_REGULAR_BOLD.value, justify='center', padx=12, img='star')
|
|
227
|
-
self.headings["shorten_all_videos_cbox"], self.headings["clip_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n CLIP', txt_img='clip', cmd=lambda: self.inverse_all_cb_ticks(variable_name="clip_cb_var"))
|
|
227
|
+
self.headings["shorten_all_videos_cbox"], self.headings["clip_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n CLIP', txt_img='clip', cmd=lambda: self.inverse_all_cb_ticks(variable_name="clip_cb_var"), tooltip_key='BATCH_APPLY_CLIP')
|
|
228
228
|
self.headings["video_width_col_head"] = SimBALabel(parent=self.videos_frm, txt='WIDTH', img='width', font=Formats.FONT_REGULAR_BOLD.value, justify='center', padx=12)
|
|
229
229
|
self.headings["video_height_col_head"] = SimBALabel(parent=self.videos_frm, txt='HEIGHT', img='height', font=Formats.FONT_REGULAR_BOLD.value, justify='center', padx=12)
|
|
230
|
-
self.headings["downsample_all_videos_cbox"], self.headings["downsample_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n DOWNSAMPLE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="downsample_cb_var"))
|
|
230
|
+
self.headings["downsample_all_videos_cbox"], self.headings["downsample_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n DOWNSAMPLE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="downsample_cb_var"), tooltip_key='BATCH_APPLY_DOWNSAMPLE')
|
|
231
231
|
self.headings["fps_col_head"] = SimBALabel(parent=self.videos_frm, txt='FPS', img='camera', font=Formats.FONT_REGULAR_BOLD.value, justify='center', padx=12)
|
|
232
|
-
self.headings["change_fps_all_videos_cbox"], self.headings["fps_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n VIDEO FPS', cmd=lambda: self.inverse_all_cb_ticks(variable_name="fps_cb_var"))
|
|
233
|
-
self.headings["grayscale_cbox"], self.headings["grayscale_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n GREYSCALE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="grayscale_cb_var"))
|
|
234
|
-
self.headings["frame_cnt_cbox"], self.headings["frame_cnt_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n FRAME COUNT', cmd=lambda: self.inverse_all_cb_ticks(variable_name="frame_cnt_cb_var"))
|
|
235
|
-
self.headings["apply_clahe_cbox"], self.headings["apply_clahe_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n CLAHE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="apply_clahe_cb_var"))
|
|
232
|
+
self.headings["change_fps_all_videos_cbox"], self.headings["fps_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n VIDEO FPS', cmd=lambda: self.inverse_all_cb_ticks(variable_name="fps_cb_var"), tooltip_key='BATCH_APPLY_FPS')
|
|
233
|
+
self.headings["grayscale_cbox"], self.headings["grayscale_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n GREYSCALE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="grayscale_cb_var"), tooltip_key='BATCH_APPLY_GREYSCALE')
|
|
234
|
+
self.headings["frame_cnt_cbox"], self.headings["frame_cnt_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n FRAME COUNT', cmd=lambda: self.inverse_all_cb_ticks(variable_name="frame_cnt_cb_var"), tooltip_key='BATCH_APPLY_FRAME_COUNT')
|
|
235
|
+
self.headings["apply_clahe_cbox"], self.headings["apply_clahe_cb_var"] = SimbaCheckbox(parent=self.videos_frm, txt='APPLY \n CLAHE', cmd=lambda: self.inverse_all_cb_ticks(variable_name="apply_clahe_cb_var"), tooltip_key='BATCH_APPLY_CLAHE')
|
|
236
236
|
|
|
237
237
|
self.videos_frm.grid(row=1, column=0, sticky=W, padx=5, pady=15)
|
|
238
238
|
self.headings["video_name_col_head"].grid(row=0, column=0, sticky=NW)
|
|
@@ -270,12 +270,12 @@ class BatchProcessFrame(PopUpMixin):
|
|
|
270
270
|
for w in self.videos_frm.grid_slaves():
|
|
271
271
|
if int(w.grid_info()["row"]) > 1:
|
|
272
272
|
w.destroy()
|
|
273
|
-
|
|
274
273
|
for video_cnt, (name, data) in enumerate(self.videos_in_dir_dict.items()):
|
|
275
274
|
self.videos[name] = {}
|
|
276
275
|
row = video_cnt * 2 + 2
|
|
277
276
|
row_color = '#f8f8f8' if video_cnt % 2 == 0 else '#e5e5e5'
|
|
278
|
-
|
|
277
|
+
img = read_frm_of_video(video_path=data['file_path'], frame_index=0, raise_error=False, size=(420, 280), keep_aspect_ratio=True)
|
|
278
|
+
self.videos[name]["video_name_lbl"] = SimBALabel(parent=self.videos_frm, txt=name, font=Formats.FONT_REGULAR_BOLD.value, width=self.max_char_vid_name, justify='center', bg_clr=row_color, hover_img=img)
|
|
279
279
|
self.videos[name]["crop_btn"] = SimbaButton(parent=self.videos_frm, txt='CROP', txt_clr='black', cmd=lambda k=self.videos[name]["video_name_lbl"]["text"]: self.batch_process_crop_function(k), img='crop_2')
|
|
280
280
|
self.videos[name]["start_entry"] = Entry_Box(parent=self.videos_frm, fileDescription='', value="00:00:00", justify='center', entry_font=Formats.FONT_REGULAR_BOLD.value, entry_box_width=12)
|
|
281
281
|
self.videos[name]["end_entry"] = Entry_Box(parent=self.videos_frm, fileDescription='', value=data["video_length"], justify='center', entry_font=Formats.FONT_REGULAR_BOLD.value, entry_box_width=12)
|
|
@@ -53,10 +53,11 @@ from simba.utils.errors import (CountError, DirectoryExistError,
|
|
|
53
53
|
NotDirectoryError, ResolutionError,
|
|
54
54
|
SimBAGPUError)
|
|
55
55
|
from simba.utils.lookups import (get_current_time, get_ffmpeg_codec,
|
|
56
|
-
get_ffmpeg_crossfade_methods,
|
|
56
|
+
get_ffmpeg_crossfade_methods,
|
|
57
|
+
get_ffmpeg_encoders, get_fonts,
|
|
57
58
|
get_named_colors, percent_to_crf_lookup,
|
|
58
59
|
percent_to_qv_lk, quality_pct_to_crf,
|
|
59
|
-
video_quality_to_preset_lookup
|
|
60
|
+
video_quality_to_preset_lookup)
|
|
60
61
|
from simba.utils.printing import SimbaTimer, stdout_information, stdout_success
|
|
61
62
|
from simba.utils.read_write import (
|
|
62
63
|
check_if_hhmmss_timestamp_is_valid_part_of_video,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: simba-uw-tf-dev
|
|
3
|
-
Version: 4.7.
|
|
3
|
+
Version: 4.7.8
|
|
4
4
|
Summary: Toolkit for computer classification and analysis of behaviors in experimental animals
|
|
5
5
|
Home-page: https://github.com/sgoldenlab/simba
|
|
6
6
|
Author: Simon Nilsson, Jia Jie Choong, Sophia Hwang
|
|
@@ -13,7 +13,7 @@ simba/__init__.py,sha256=Zbw277SaA4dLpF3IDQnIjzOb-GWKgF-V6caod95b4YA,539
|
|
|
13
13
|
simba/requirements.txt,sha256=Ou1KKYqIsOaqQ10UeqxTPorpHWBH5rTMGzpFif1VRWc,2072
|
|
14
14
|
simba/assets/.DS_Store,sha256=ElS4pjNueynnfN3F6ibhpIe9tS-jrVEx88jASA9_DYo,14340
|
|
15
15
|
simba/assets/.env,sha256=bI_XK4TDnRDnV1M5SyZrEfeayi9ZK7rX2lrYQcJnH0s,538
|
|
16
|
-
simba/assets/.recent_projects.txt,sha256=
|
|
16
|
+
simba/assets/.recent_projects.txt,sha256=N08PrJVCrYbcdE6ZRhKBmRLcTQLD_jikoSrTWC41Gps,339
|
|
17
17
|
simba/assets/TheGoldenLab.PNG,sha256=Dwg7zXASz_XDhJ_gDgKyBmAINxLL-Zkg-3xzy94YEsc,31812
|
|
18
18
|
simba/assets/UbuntuMono-Regular.ttf,sha256=N0xTF4v7xLE_m2rVu8gaQ5OqZSZf_H0zqnvYnxKjDfg,189004
|
|
19
19
|
simba/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -173,6 +173,8 @@ simba/assets/icons/flip_black.png,sha256=ZQ1SK3SNjwBeBBqxKLWVM4JXq_mTtIONmwLABR9
|
|
|
173
173
|
simba/assets/icons/flip_green.png,sha256=G3ZISmJP44T-tYZZZrDu284Pxu7PMzwwE9gbi8XVXKI,1072
|
|
174
174
|
simba/assets/icons/flip_red.png,sha256=Ow8sbCPAAwd3YuM5cP342zOBKntNLUePvZMgJLmHuj0,1132
|
|
175
175
|
simba/assets/icons/folder.png,sha256=-kwt7XAbokXAM-AMw8nfoO8doamxNLUDA-cp4wFBpVs,464
|
|
176
|
+
simba/assets/icons/folder_2.png,sha256=-QJo11xbdkyGfngahvdQwO9NmMNVK6nYhVh2PKsTL3c,292
|
|
177
|
+
simba/assets/icons/folder_video.png,sha256=BmNs-5Q8M5uu9z5B8XAmhfuVN9oAPJl_0YvXcnBkYSM,428
|
|
176
178
|
simba/assets/icons/font.png,sha256=ERoNS-BSd-E9kyU4Q96RCKdxTPguqICvPkh5jZu47vM,547
|
|
177
179
|
simba/assets/icons/font_size.png,sha256=JK18ekjZkGi4hkauWxon4ecOlXPf7DSS7FQBYxN_QIY,390
|
|
178
180
|
simba/assets/icons/forest.png,sha256=saOvtPz6P_-uF9ObNpVcpVAURzXW1-A_BSevzQS84Pc,588
|
|
@@ -462,7 +464,7 @@ simba/assets/lookups/critical_values_05.pickle,sha256=bYlqp9T6ehVIjIJr3Uwfulj-kS
|
|
|
462
464
|
simba/assets/lookups/feature_extraction_headers.csv,sha256=I5TLfAihpHgzUZ7OUyGge-Yu-XGbQmHbDFAD4vVAc4w,2987
|
|
463
465
|
simba/assets/lookups/features.csv,sha256=bc6aN2ZRa2J2dxur-Zjcpc4I3q6vd-gN2erwnhdzLIk,14175
|
|
464
466
|
simba/assets/lookups/model_names.parquet,sha256=hOuvYONO8wZGcAwRNSf_hS_lUaynC8Gt24MLOg3w5ZA,270783
|
|
465
|
-
simba/assets/lookups/tooptips.json,sha256=
|
|
467
|
+
simba/assets/lookups/tooptips.json,sha256=OJurG8K738TNZVwAk-OfUFuC69ZW7UjiU-8mjowKcd8,11349
|
|
466
468
|
simba/assets/lookups/unsupervised_example_x.csv,sha256=bc6aN2ZRa2J2dxur-Zjcpc4I3q6vd-gN2erwnhdzLIk,14175
|
|
467
469
|
simba/assets/lookups/yolo.yaml,sha256=3Omt-t-w555E4oAJsRRblBjzyiTW9e5x-0VuyQ-t9C0,278
|
|
468
470
|
simba/assets/lookups/yolo_schematics/yolo_1.csv,sha256=TzUzWAtia4P-5FRwLPnjU0zDSkAA-nItNFCcq6nG_iQ,72
|
|
@@ -644,7 +646,7 @@ simba/model/sam_inference.py,sha256=4Jwy-OU773iJI2Zyl-tVHLDaUU1BkjJpr_riRkPPTY8,
|
|
|
644
646
|
simba/model/train_multiclass_rf.py,sha256=B445OFCLexqYYCeiaLe3-JI8PXm3JK3YcN8irAZFhNQ,15219
|
|
645
647
|
simba/model/train_multilabel_rf.py,sha256=oZUrnd7bfhaXVMhedSL7q47taiCgh4mn8ONdvkVAeo4,7321
|
|
646
648
|
simba/model/train_rf.py,sha256=OlF-Bq2TItMh7ao0xXKl43mFJkr2OHqIdwytPg41hCw,22700
|
|
647
|
-
simba/model/yolo_fit.py,sha256=
|
|
649
|
+
simba/model/yolo_fit.py,sha256=uF-HYd6fxKupJ8TuZcx6V0JJvFbMloKr0ItuLF0bRbw,12680
|
|
648
650
|
simba/model/yolo_inference.py,sha256=ZD-43PZB1Ja5f7W_kPWyRr4j8YvQkTkNsq7ois9JuHw,13565
|
|
649
651
|
simba/model/yolo_pose_inference.py,sha256=kpHYnsS-eK2QmdXwiZfml8AGLCdQ4XZB-xBMXm7AZno,28202
|
|
650
652
|
simba/model/yolo_pose_track_inference.py,sha256=gOopeNEUggqJfH73dDkjetHlpwsU-VrjCH4B4gKOktw,22917
|
|
@@ -845,6 +847,7 @@ simba/sandbox/clahe_fix.py,sha256=mX5kpUk4v9XRCq8ZMDN9N_-f9jaQ8c00EEdAqMZjP4A,65
|
|
|
845
847
|
simba/sandbox/clahe_gpu.py,sha256=4un9bbVkNlhF2wmH7XSPy7BwhGiQt937qwLhCbm4JDY,3306
|
|
846
848
|
simba/sandbox/clahe_mp.py,sha256=yM0aGRR0Kh5u7ENBhALmPVhAgQ1qw7-3X8RevIgeHE4,6631
|
|
847
849
|
simba/sandbox/clean_features.py,sha256=yGjrcwKCdaaxDAF0qLT6-HZFsP8ETfRokx9yJQD_AsY,920
|
|
850
|
+
simba/sandbox/clean_sleap.py,sha256=_EqW7c06ytRdZF8i76GKSpOGMJcIKmVwkdIDwGnC3nw,205
|
|
848
851
|
simba/sandbox/clean_sleap_filename.py,sha256=XyND8MT65SGi3c3QlLgLFzLLQ-BS7eNZr_vlBbf9ulI,959
|
|
849
852
|
simba/sandbox/clip_multiple_videos_by_frame_numbers.py,sha256=nEk0uU0Jppm9ScHRRxZBX49RrwotIZVP0_4jLkDPbgc,11451
|
|
850
853
|
simba/sandbox/clip_videos_by_frm.py,sha256=erJzAg1A_7aUwnrL-SOlO_Lm0M35Tm6x3HMAlY6kTa8,4550
|
|
@@ -1344,7 +1347,7 @@ simba/third_party_label_appenders/solomon_importer.py,sha256=YkHUgtQhLEzMVPvxTcK
|
|
|
1344
1347
|
simba/third_party_label_appenders/third_party_appender.py,sha256=_jvK38h-qpVyNU6GKJlj0-uCBGyu9gwhkowtiWArbUg,21580
|
|
1345
1348
|
simba/third_party_label_appenders/tools.py,sha256=-DzeTk7ULQML6r0zHPMjBw_x5oJD0WeN_4UpK6_dSYk,21212
|
|
1346
1349
|
simba/third_party_label_appenders/transform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1347
|
-
simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py,sha256=
|
|
1350
|
+
simba/third_party_label_appenders/transform/coco_keypoints_to_yolo.py,sha256=1YCFPdpD50sCG22mw13j47AJ8GhiRSRTdl9M-deABpk,15608
|
|
1348
1351
|
simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_bbox.py,sha256=dP3cIM4uDPLrpADa_SJf8wvFOr8PqhQTVZ88gTEuvyA,15601
|
|
1349
1352
|
simba/third_party_label_appenders/transform/coco_keypoints_to_yolo_seg.py,sha256=ko160LwH0px8iXhf_GG_nUi2bq4m9Ys0q5XyzFd2T5o,9536
|
|
1350
1353
|
simba/third_party_label_appenders/transform/dlc_ma_h5_to_yolo.py,sha256=SkMPLpCoJRtFcuguoJd8RcdHj3-3gViqQkHisffkWFM,11151
|
|
@@ -1360,7 +1363,7 @@ simba/third_party_label_appenders/transform/labelme_to_yolo_seg.py,sha256=wJOGVZ
|
|
|
1360
1363
|
simba/third_party_label_appenders/transform/simba_roi_to_yolo.py,sha256=i0bO_ZwjHSMzCfHlKecuqYXBvJgzhg2ohoVXdjzkemU,12969
|
|
1361
1364
|
simba/third_party_label_appenders/transform/simba_to_yolo.py,sha256=9_gH94YxdeDwVfZF9Vlv-w5SiOu41X1Lpk98UWztXZ4,13570
|
|
1362
1365
|
simba/third_party_label_appenders/transform/simba_to_yolo_seg.py,sha256=NzmzQj618_SqTn16b9PPohaFYjzmtFFMUKoDezN_wLA,12732
|
|
1363
|
-
simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py,sha256=
|
|
1366
|
+
simba/third_party_label_appenders/transform/sleap_csv_to_yolo.py,sha256=lIPv-QhFO22OYHrcT9OaIjO7UVntZrUA3IzkYnu3fVI,12832
|
|
1364
1367
|
simba/third_party_label_appenders/transform/sleap_h5_to_yolo.py,sha256=bb-5JgTp8rtOdJgkbsghQNyxM4BwQSRkY37-v2XVMHM,11036
|
|
1365
1368
|
simba/third_party_label_appenders/transform/sleap_to_yolo.py,sha256=yorjyNlUnPzgVJDHahxBlIE2F-1JTvJaIXynnRZrAFw,10342
|
|
1366
1369
|
simba/third_party_label_appenders/transform/utils.py,sha256=2W1G0pyUm7oHqu0xhyJowxPp9xxSmMpqXfNzGJIFjvo,31652
|
|
@@ -1369,14 +1372,14 @@ simba/ui/.DS_Store,sha256=iQb7oqWWyurQk2ZeMphWuiG7QX5btEEdLeeeHBL1zRU,10244
|
|
|
1369
1372
|
simba/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1370
1373
|
simba/ui/blob_quick_check_interface.py,sha256=DqedeHPFdbiYEX15V_wi5T5zJbgyn4mSbFdjFdmy7xM,12377
|
|
1371
1374
|
simba/ui/blob_tracker_ui.py,sha256=42ojgDgXRyMqk_-v0S_0P4glFi-QVvSx0VNAlAjSIZc,36232
|
|
1372
|
-
simba/ui/create_project_ui.py,sha256=
|
|
1375
|
+
simba/ui/create_project_ui.py,sha256=lTl9qW8pnthKQafxWVvKzJ0eRW9NGb1Mh25FTR-ZPNk,12544
|
|
1373
1376
|
simba/ui/get_tree_view.py,sha256=KpEs89bZ_XMoJVdH2G-J8tajBUAn8XToLzfnT1XnfcY,6432
|
|
1374
1377
|
simba/ui/import_pose_frame.py,sha256=YTnbIXGiImkB3Nuxjyc6k2iE_bqD9tt7cLyhjCjae6Y,38518
|
|
1375
1378
|
simba/ui/import_videos_frame.py,sha256=i0LnQzPLFne9dA_nvpVWAHYGmi0aTRXpiHzEog_-Raw,6614
|
|
1376
1379
|
simba/ui/machine_model_settings_ui.py,sha256=hTfpBxtfYGH9Rsf3JdQ5Sc8z874tYAoZefvjF1JD6gA,38292
|
|
1377
1380
|
simba/ui/ml_settings_frm.py,sha256=f1-E6pEGjWJVF3I6n0azO9zAnsskpZjInViguHIDntw,3101
|
|
1378
1381
|
simba/ui/px_to_mm_ui.py,sha256=ETedZPFkloU0l3JeGnhiSIAsGBQzzv0YrDWtiVGOmJ4,9387
|
|
1379
|
-
simba/ui/tkinter_functions.py,sha256=
|
|
1382
|
+
simba/ui/tkinter_functions.py,sha256=2CFxlXZ8-gRxTRBPtcHsga1PkR8wlwJGIXYsxTgHrRk,43526
|
|
1380
1383
|
simba/ui/user_defined_pose_creator.py,sha256=QAfdp8r225DONLaCgQJe6kXiZZLj20VQCLJEnCvZsKs,9249
|
|
1381
1384
|
simba/ui/video_info_ui.py,sha256=ld_fN-3vCYJDFv1t9i5B-VVtoaBCspDmiDUIfOSJb_8,17262
|
|
1382
1385
|
simba/ui/video_timelaps.py,sha256=GSQAD0Qg_7ctDsUsKFHm-6pSYGau_EZv5oBJ50ssUUE,26010
|
|
@@ -1387,7 +1390,7 @@ simba/ui/pop_ups/animal_directing_other_animals_pop_up.py,sha256=eaRVoEJ0WPnR15B
|
|
|
1387
1390
|
simba/ui/pop_ups/append_roi_features_animals_pop_up.py,sha256=__UwX3PuzPIeg5mSOY2yk4rJPHwwyCsWpLuqcBhLgH0,3308
|
|
1388
1391
|
simba/ui/pop_ups/append_roi_features_bodypart_pop_up.py,sha256=b21GIlgBCgAAM-MR_1LUmAdV9oiyHzO4fv_4HvqjVQM,1955
|
|
1389
1392
|
simba/ui/pop_ups/archive_files_pop_up.py,sha256=4dByXZS0bCZxy06-7WoElmcFSMoKfBbX3ZgamkZgIfs,1734
|
|
1390
|
-
simba/ui/pop_ups/batch_preprocess_pop_up.py,sha256=
|
|
1393
|
+
simba/ui/pop_ups/batch_preprocess_pop_up.py,sha256=DruWHeMYAlf18vK_LeyO9ewGFPKiGbCtIHGwHZQ9RQA,2869
|
|
1391
1394
|
simba/ui/pop_ups/blob_visualizer_pop_up.py,sha256=6OzJMROHowZWIcI5FL9a8uIo70K_dZKaVNs9-rUWWbE,6924
|
|
1392
1395
|
simba/ui/pop_ups/boolean_conditional_slicer_pup_up.py,sha256=q3IGjO4rwCCM8ODS2O7CueNRPFvSkJLHAgcV31sE0y4,5506
|
|
1393
1396
|
simba/ui/pop_ups/change_speed_popup.py,sha256=59Ck0kzLTQpE5AXURVRcNdK-a0kFOnwvTE0RZjs0lfI,5940
|
|
@@ -1462,10 +1465,10 @@ simba/ui/pop_ups/select_video_for_pseudo_labelling_popup.py,sha256=KLih5Z-Pj_b0S
|
|
|
1462
1465
|
simba/ui/pop_ups/set_machine_model_parameters_pop_up.py,sha256=hr3ekYbKZ_7NxeFbQwNpaeR7cRERHi4yrMSGriTdBj4,5881
|
|
1463
1466
|
simba/ui/pop_ups/severity_analysis_pop_up.py,sha256=WkD85uom2qrsYwc-Ykppy9gEuI1jhCgMhoux9ayejn4,9015
|
|
1464
1467
|
simba/ui/pop_ups/simba_rois_to_yolo_pop_up.py,sha256=1JI6iBjMFuO9C2-TWSL6wKVKYWCD0zIHAHsVVuIUJPc,4423
|
|
1465
|
-
simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py,sha256=
|
|
1468
|
+
simba/ui/pop_ups/simba_to_yolo_keypoints_popup.py,sha256=dnchG6IguHxD2gkFjyqIaER9Uj-7TEq8nGPGcoL2Hog,5931
|
|
1466
1469
|
simba/ui/pop_ups/single_video_to_frames_popup.py,sha256=--Ex2j7sYdWbHC5Ea-Lf_FInCEXZShlzS9Idzt1s7f4,5326
|
|
1467
|
-
simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py,sha256=
|
|
1468
|
-
simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py,sha256=
|
|
1470
|
+
simba/ui/pop_ups/sleap_annotations_to_yolo_popup.py,sha256=uJWvPuSgske-5p89entlomJF7qzDXXf_M4xtBvVliP8,5918
|
|
1471
|
+
simba/ui/pop_ups/sleap_csv_predictions_to_yolo_popup.py,sha256=AiG3pXXbBkinFyzgQrI8ADgIm2LZLOXDuB1EX7tQYu4,7446
|
|
1469
1472
|
simba/ui/pop_ups/sleap_h5_inference_to_yolo_popup.py,sha256=B9ZROIFDL2TOQNkKXsyllOAeqzCDdHQ3E6bPu56xCiU,6609
|
|
1470
1473
|
simba/ui/pop_ups/smoothing_popup.py,sha256=pR-xykkZwRkjyXt0Y1m6-4p4-83DEhBbUrULcBCCAcA,6092
|
|
1471
1474
|
simba/ui/pop_ups/splash_popup.py,sha256=AB2RozaTYdaP5h56jR9dm2vLg5gBCx66Bp_j4Iv1lvw,4053
|
|
@@ -1474,11 +1477,11 @@ simba/ui/pop_ups/subset_feature_extractor_pop_up.py,sha256=M24iJSqh-DpYdpw1pSaIm
|
|
|
1474
1477
|
simba/ui/pop_ups/targeted_annotation_clips_pop_up.py,sha256=PFh5ua2f_OMQ1Pth9Ha8Fo5lTPZNQV3bMnRGEoAPhTQ,6997
|
|
1475
1478
|
simba/ui/pop_ups/third_party_annotator_appender_pop_up.py,sha256=Xnha2UwM-08djObCkL_EXK2L4pernyipzbyNKQvX5aQ,7694
|
|
1476
1479
|
simba/ui/pop_ups/validation_plot_pop_up.py,sha256=yIo_el2dR_84ZAh_-2fYFg-BJDG0Eip_P_o9vzTQRkk,12174
|
|
1477
|
-
simba/ui/pop_ups/video_processing_pop_up.py,sha256=
|
|
1480
|
+
simba/ui/pop_ups/video_processing_pop_up.py,sha256=YPFbfbukxIOge2SO1pA57nxVoLwToPrJpsQ_cf1qU9A,252384
|
|
1478
1481
|
simba/ui/pop_ups/visualize_pose_in_dir_pop_up.py,sha256=PpFs0zaqF4dnHJ_yH-PqYgsjAyxYPVP427Soj-kYtM0,8838
|
|
1479
1482
|
simba/ui/pop_ups/yolo_inference_popup.py,sha256=C4_WDvEHLp9JMUTjLZuRpKHxMCGpa_pxXELuj-zerCs,14679
|
|
1480
|
-
simba/ui/pop_ups/yolo_plot_results.py,sha256=
|
|
1481
|
-
simba/ui/pop_ups/yolo_pose_train_popup.py,sha256=
|
|
1483
|
+
simba/ui/pop_ups/yolo_plot_results.py,sha256=WvDS3kCYZU_27EpADNev0tAKBPI-CUkYv9Dxz0eP83c,9803
|
|
1484
|
+
simba/ui/pop_ups/yolo_pose_train_popup.py,sha256=30CmqmhgFaFD4eRlENvP4D3Fh2eQ9rXIUPC47Z6dhbs,8904
|
|
1482
1485
|
simba/unsupervised/.DS_Store,sha256=3YMgk5I3uoYy8KIh_EO-KH7CFu-0y7ileb-YFwM4ks4,6148
|
|
1483
1486
|
simba/unsupervised/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1484
1487
|
simba/unsupervised/bout_aggregator.py,sha256=FJiAdl3RWpCOPdi0Qzq3vPYzG62zQZqeo8mYUrTqRto,4674
|
|
@@ -1515,7 +1518,7 @@ simba/unsupervised/pop_ups/transform_cluster_popup.py,sha256=uWL-QySsInUsXx8CZ2C
|
|
|
1515
1518
|
simba/unsupervised/pop_ups/transform_dim_reduction_popup.py,sha256=0eaq6iI6QRJ143OcN6VUwJGKYqtOSmmpRTR4DF3DAts,4092
|
|
1516
1519
|
simba/utils/.DS_Store,sha256=dv7VXL3RuC-Ia6BytEmj0Ef07zH6aMabiQLXkJVn2N4,6148
|
|
1517
1520
|
simba/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1518
|
-
simba/utils/checks.py,sha256=
|
|
1521
|
+
simba/utils/checks.py,sha256=AsRfz5GOiEJ1h_mNqHCMdgLvIuthRDiVyzi65ZCVvVM,115425
|
|
1519
1522
|
simba/utils/config_creator.py,sha256=KxBdMOTf85bnAf9KprfIebzBbr5JlZl2EH0c-UMW45Y,14894
|
|
1520
1523
|
simba/utils/custom_feature_extractor.py,sha256=lFOxtHQyKAB8PysXOzPXkUydmHUkkz0Tix-8KRI5-QE,11870
|
|
1521
1524
|
simba/utils/data.py,sha256=IGYfzWKrlhwZL1LcDpQg84i-8A4RRLEU1lD8tqXUyQA,100777
|
|
@@ -1523,7 +1526,7 @@ simba/utils/enums.py,sha256=ZR2175N06ZHZNiHk8n757T-WGyt1-55LLpcg3Sbb91k,38668
|
|
|
1523
1526
|
simba/utils/errors.py,sha256=aC-1qiGlh1vvHxUaPxBMQ9-LW-KKWXCGlH9acCPH0Cc,18788
|
|
1524
1527
|
simba/utils/lookups.py,sha256=hVUIis9FxgoKvTa2S2Rhrqg_LKrzW13tEBr3Tt8ZP44,50458
|
|
1525
1528
|
simba/utils/printing.py,sha256=2s-uESy1knuPiniqQ-q277uQ2teYM4OHo9Y4L20JQWM,5353
|
|
1526
|
-
simba/utils/read_write.py,sha256=
|
|
1529
|
+
simba/utils/read_write.py,sha256=dPVXv1lb748gZipOL6hP40_sRzk_gGsJpHYoJyI5w3o,190067
|
|
1527
1530
|
simba/utils/warnings.py,sha256=K7w1RiDL4Un7rGaabOVCGc9fHcaKxk66iZyNLS_AtOE,8121
|
|
1528
1531
|
simba/utils/yolo.py,sha256=UZzpnDqZj81SOMnwsWPQIhFAsHHSSaDawi1UUh0-uAA,19264
|
|
1529
1532
|
simba/utils/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1532,7 +1535,7 @@ simba/video_processors/.DS_Store,sha256=6gsgZL1uIfKqBNSk6EAKBP9lJ1qMrQy6XrEvluyc
|
|
|
1532
1535
|
simba/video_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1533
1536
|
simba/video_processors/async_frame_reader.py,sha256=_17735pfAKUDHE18snAbWIbxUhIFkx3m-HipWqoE6r8,8059
|
|
1534
1537
|
simba/video_processors/batch_process_create_ffmpeg_commands.py,sha256=qfGb6KeJ7kOpRreRfpV1Lb9zCOL2g7cDqUFbEk9or2k,14194
|
|
1535
|
-
simba/video_processors/batch_process_menus.py,sha256=
|
|
1538
|
+
simba/video_processors/batch_process_menus.py,sha256=ZyurUh8XPa9iT9vQXIBGCK41ryQT_YE1xp01g1M75jU,38224
|
|
1536
1539
|
simba/video_processors/blob_tracking_executor.py,sha256=hyB-FYwbCmk44ytOmYQsiWHh7ecE0h5A0-ySjpYWyvY,18395
|
|
1537
1540
|
simba/video_processors/brightness_contrast_ui.py,sha256=nWmzho1WeJuIp3CuDjJmqMIzge2sTZn6_H0lWyZYaz0,5202
|
|
1538
1541
|
simba/video_processors/calculate_px_dist.py,sha256=se9M1Kv6VxjVTZqSBmdmx29fg10s-1tL1UqJ6353Iqc,10029
|
|
@@ -1544,11 +1547,11 @@ simba/video_processors/multi_cropper.py,sha256=1BI0Ami4kB9rdMUHR0EistmIKqc-E5FK5
|
|
|
1544
1547
|
simba/video_processors/roi_selector.py,sha256=5N3s0Bi1Ub6c9gjE_-mV7AWr8Fqg7HQKdBKBF6whurg,8522
|
|
1545
1548
|
simba/video_processors/roi_selector_circle.py,sha256=SD_lv6V3MGiIQd0VtUFSKe83ySW_qvE1t8xsgAlr2hI,6436
|
|
1546
1549
|
simba/video_processors/roi_selector_polygon.py,sha256=DMtilt__gGwNu6VV73CWbnPqrPBXkan1_akUqGEzfGw,6742
|
|
1547
|
-
simba/video_processors/video_processing.py,sha256=
|
|
1550
|
+
simba/video_processors/video_processing.py,sha256=hYyAqBQfSwPFruqLvjGr1nBG7Tfp9VAWySh4HN_SPpA,328019
|
|
1548
1551
|
simba/video_processors/videos_to_frames.py,sha256=8hltNZpwUfb3GFi-63D0PsySmD5l59pbzQGJx8SscgU,7818
|
|
1549
|
-
simba_uw_tf_dev-4.7.
|
|
1550
|
-
simba_uw_tf_dev-4.7.
|
|
1551
|
-
simba_uw_tf_dev-4.7.
|
|
1552
|
-
simba_uw_tf_dev-4.7.
|
|
1553
|
-
simba_uw_tf_dev-4.7.
|
|
1554
|
-
simba_uw_tf_dev-4.7.
|
|
1552
|
+
simba_uw_tf_dev-4.7.8.dist-info/LICENSE,sha256=Sjn362upcvYFypam-b-ziOXU1Wl5GGuTt5ICrGimzyA,1720
|
|
1553
|
+
simba_uw_tf_dev-4.7.8.dist-info/METADATA,sha256=eOVBjatTdeyGOyU4tVJ14bW-G7vZd6kOoxRW-GH-MDw,11432
|
|
1554
|
+
simba_uw_tf_dev-4.7.8.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
1555
|
+
simba_uw_tf_dev-4.7.8.dist-info/entry_points.txt,sha256=Nfh_EbfDGdKftLjCnGWtQrBHENiDYMdgupwLyLpU5dc,44
|
|
1556
|
+
simba_uw_tf_dev-4.7.8.dist-info/top_level.txt,sha256=ogtimvlqDxDTOBAPfT2WaQ2pGAAbKRXG8z8eUTzf6TU,14
|
|
1557
|
+
simba_uw_tf_dev-4.7.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|