vak.transforms.frame_labels.transforms.PostProcess¶
- class vak.transforms.frame_labels.transforms.PostProcess(timebin_dur: float, background_label: int = 0, min_segment_dur: float | None = None, majority_vote: bool = False)[source]¶
Bases:
object
Apply post-processing transformations to a vector of frame labels.
Optional post-processing consist of two transforms, that both rely on there being a label that corresponds to the background class. The first removes any segments that are shorter than a specified duration, by converting labels in those segments to the background class label. The second performs a “majority vote” transform within run of labels that is bordered on both sides by the “background” label. I.e., it counts the number of times any label occurs in that segment, and then assigns all bins the most common label.
The function performs those steps in this order (pseudo-code):
if min_segment_dur: frame_labels = remove_short_segments(frame_labels, labelmap, min_segment_dur) if majority_vote: frame_labels = majority_vote(frame_labels, labelmap) return frame_labels
- timebin_dur¶
Duration of a time bin in a spectrogram, e.g., as estimated from vector of times using
vak.timebins.timebin_dur_from_vec
.- Type:
- background_label¶
Label that was given to segments that were not labeled in annotation, e.g. silent periods between annotated segments. Default is 0.
- Type:
- min_segment_dur¶
Minimum duration of segment, in seconds. If specified, then any segment with a duration less than min_segment_dur is removed from frame_labels. Default is None, in which case no segments are removed.
- Type:
- majority_vote¶
If True, transform segments containing multiple labels into segments with a single label by taking a “majority vote”, i.e. assign all time bins in the segment the most frequently occurring label in the segment. This transform can only be applied if the labelmap contains an ‘unlabeled’ label, because unlabeled segments makes it possible to identify the labeled segments. Default is False.
- Type:
- __init__(timebin_dur: float, background_label: int = 0, min_segment_dur: float | None = None, majority_vote: bool = False)[source]¶
Methods
__init__
(timebin_dur[, background_label, ...])