快捷方式

clips_at_regular_indices

torchcodec.samplers.clips_at_regular_indices(decoder: VideoDecoder, *, num_clips: int = 1, num_frames_per_clip: int = 1, num_indices_between_frames: int = 1, sampling_range_start: int = 0, sampling_range_end: Optional[int] = None, policy: Literal['repeat_last', 'wrap','error'] = 'repeat_last') FrameBatch[source]

以规则(等间隔)的索引采样视频片段

参数:
  • decoder (VideoDecoder) – 用于采样视频片段VideoDecoder 实例。

  • num_clips (int, 可选) – 要返回的视频片段数量。默认值:1。

  • num_frames_per_clip (int, 可选) – 每个视频片段的帧数。默认值:1。

  • num_indices_between_frames (int, 可选) – 同一视频片段内帧之间的索引数。默认值:1,表示帧是连续的。这有时被称为“膨胀”(dilation)。

  • sampling_range_start (int, 可选) – 采样范围的起始索引,定义了视频片段可能开始的第一个索引。默认值:0,即视频的起始位置。

  • sampling_range_end (intNone, 可选) – 采样范围的结束索引,定义了视频片段可能开始的最后一个索引。此值是排他的,即视频片段只能在 [sampling_range_start, sampling_range_end) 范围内开始。如果为 None(默认值),该值会自动设置,以确保视频片段不会超出视频的末尾。例如,如果视频中最后一个有效索引是 99,且视频片段跨越 10 帧,则该值设置为 99 - 10 + 1 = 90。接受负值,负值相当于 len(video) - val。当视频片段超出视频末尾时,policy 参数定义如何构建此类视频片段

  • policy (str, 可选) –

    定义如何构建超出视频末尾的视频片段。最好用一个例子来说明:假设视频中最后一个有效索引是 99,并且采样了一个从索引 95 开始的视频片段,其中 num_frames_per_clip=5num_indices_between_frames=2,则该视频片段中帧的索引应该是 [95, 97, 99, 101, 103]。但是 101 和 103 是无效索引,因此 policy 参数定义了如何用有效索引替换这些帧

    • “repeat_last”:重复视频片段中最后一个有效帧。我们将得到 [95, 97, 99, 99, 99]。

    • “wrap”:环绕到视频片段的开头。我们将得到 [95, 97, 99, 95, 97]。

    • “error”:引发错误。

    默认值为 “repeat_last”。请注意,当 sampling_range_end=None(默认值)时,此策略参数不太可能相关。

返回值:

采样的视频片段,为一个 5D FrameBatchdata 字段的形状为 (num_clips, num_frames_per_clips, …),其中 … 根据 VideoDecoderdimension_order 参数而定,为 (H, W, C) 或 (C, H, W)。 pts_secondsduration_seconds 字段的形状为 (num_clips, num_frames_per_clips)。

返回类型:

FrameBatch

使用 clips_at_regular_indices 的示例

如何采样视频片段

如何采样视频片段

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获取问题解答

查看资源