# Video information manager¶

Collects information concerning the video (fps, number of channels, …) and manages the creation of the folders used to save and load both partial and final outputs of the algorithm

class video.Video(video_path=None)[source]
Attributes: video_path : str path to the video (if the video is split in portions, the path to one of the portions) number_of_animals : int number of animals to track episodes_start_end : list list of lists of the form [start, end] to parallelise processes original_bkg : ndarray model of the background with size the frame size bkg : ndarray resized bkg according to Video.resolution_reduction subtract_bkg : bool True if bkg subtraction is performed original_ROI : ndarray ROI of the size of frame ROI : ndarray resized ROI according to Video.resolution_reduction apply_ROI : bool True if a non-trivial ROI has been specified min_threshold : int minimum intensity threshold max_threshold : int maximum intensity threshold min_area : int minimum blob area max_area : int maximum blob area resegmentation_parameters : list segmentation parameters specific to a frame has_preprocessing_parameters : bool True if the preprocessing has been concluded succesfully maximum_number_of_blobs : int Maximum number of blobs segmented from a single frame resolution_reduction : float resolution reduction to be applied to the original frame erosion_kernel_size : int size of the kernel used to erode blobs while solving the crossings. See assign_them_all

Methods

 check_split_video() If the video is divided in segments retrieves their paths compute_identification_image_size(…) Uses an estimate of the body length of the animals in order to compute the size of the square image that is generated from every blob to identify the animals create_accumulation_folder([…]) Folder in which the model generated while accumulating is stored (after pretraining) create_crossings_detector_folder() If it does not exist creates a folder called crossing_detector in the video folder create_embeddings_folder() If it does not exist creates a folder called embedding in the video folder create_preprocessing_folder() If it does not exist creates a folder called preprocessing in the video folder create_pretraining_folder([delete]) Creates a folder named pretraining in video_folder where the model trained during the pretraining is stored create_session_folder([name]) Creates a folder named training in video_folder and a folder session_num where num is the session number and it is created everytime one starts training a network for a certain video_path create_training_folder() Folder in which the last model is stored (after accumulation) create_trajectories_folder() Folder in which trajectories files are stored create_trajectories_wo_gaps_folder() Folder in which trajectories files are stored create_trajectories_wo_identities_folder() Folder in which trajectories without identites are stored get_episodes() Split video in episodes (chunks) of 500 frames for parallelisation get_info() Retrieves basic information concerning the video. in_which_episode(frame_number) Check to which episode a frame index belongs save() save class
 check_paths_consistency_with_video_path compute_overall_P2 copy_attributes_between_two_video_objects init_accumulation_statistics_attributes init_processes_time_attributes is_identity_transfer_possible rename_session_folder store_accumulation_statistics_data store_accumulation_step_statistics_data update_paths update_tensorflow_checkpoints_file
blobs_path

get the path to save the blob collection after segmentation. It checks that the segmentation has been succesfully performed

blobs_path_segmented

get the path to save the blob collection after segmentation. It checks that the segmentation has been succesfully performed

check_split_video()[source]

If the video is divided in segments retrieves their paths

compute_identification_image_size(maximum_body_length)[source]

Uses an estimate of the body length of the animals in order to compute the size of the square image that is generated from every blob to identify the animals

create_accumulation_folder(iteration_number=0, delete=False)[source]

Folder in which the model generated while accumulating is stored (after pretraining)

create_crossings_detector_folder()[source]

If it does not exist creates a folder called crossing_detector in the video folder

create_embeddings_folder()[source]

If it does not exist creates a folder called embedding in the video folder

create_preprocessing_folder()[source]

If it does not exist creates a folder called preprocessing in the video folder

create_pretraining_folder(delete=False)[source]

Creates a folder named pretraining in video_folder where the model trained during the pretraining is stored

create_session_folder(name='')[source]

Creates a folder named training in video_folder and a folder session_num where num is the session number and it is created everytime one starts training a network for a certain video_path

create_training_folder()[source]

Folder in which the last model is stored (after accumulation)

create_trajectories_folder()[source]

Folder in which trajectories files are stored

create_trajectories_wo_gaps_folder()[source]

Folder in which trajectories files are stored

create_trajectories_wo_identities_folder()[source]

Folder in which trajectories without identites are stored

fragments_path

get the path to save the list of global fragments after fragmentation

get_episodes()[source]

Split video in episodes (chunks) of 500 frames for parallelisation

get_info()[source]

Retrieves basic information concerning the video. If the video is recorded as a single file, it generates “episodes” for parallelisation during segmentation

global_fragments_path

get the path to save the list of global fragments after fragmentation

in_which_episode(frame_number)[source]

Check to which episode a frame index belongs

save()[source]

save class

tracking_interval

Tuple with the starting and ending frame on which the tracking will be performed.