Kinetics¶
- class torchvision.datasets.Kinetics(root: Union[str, Path], frames_per_clip: int, num_classes: str = '400', split: str = 'train', frame_rate: Optional[int] = None, step_between_clips: int = 1, transform: Optional[Callable] = None, extensions: tuple[str, ...] = ('avi', 'mp4'), download: bool = False, num_download_workers: int = 1, num_workers: int = 1, _precomputed_metadata: Optional[dict[str, Any]] = None, _video_width: int = 0, _video_height: int = 0, _video_min_dimension: int = 0, _audio_samples: int = 0, _audio_channels: int = 0, _legacy: bool = False, output_format: str = 'TCHW')[源代码]¶
通用 Kinetics 数据集。
Kinetics-400/600/700 是动作识别视频数据集。此数据集将每个视频视为一组固定大小的视频剪辑,由
frames_per_clip
指定,其中每个剪辑之间的帧步长由step_between_clips
提供。举个例子,对于两个分别有 10 和 15 帧的视频,如果
frames_per_clip=5
且step_between_clips=5
,则数据集大小将为 (2 + 3) = 5,其中前两个元素来自视频 1,后三个元素来自视频 2。请注意,我们丢弃不包含确切frames_per_clip
元素的剪辑,因此视频中的所有帧可能都不在数据集中。- 参数:
root (str 或
pathlib.Path
) –Kinetics 数据集的根目录。目录应按以下方式构建: .. code
root/ ├── split │ ├── class1 │ │ ├── vid1.mp4 │ │ ├── vid2.mp4 │ │ ├── vid3.mp4 │ │ ├── ... │ ├── class2 │ │ ├── vidx.mp4 │ │ └── ...
注意:split 会自动附加到使用 split 参数。
frames_per_clip (int) – 一个剪辑中的帧数
num_classes (int) – 选择 Kinetics-400(默认)、Kinetics-600 和 Kinetics-700 之间的
split (str) – 要考虑的数据集拆分;支持
"train"
(默认)、"val"
和"test"
frame_rate (float) – 如果省略,则为每个剪辑插值不同的帧率。
step_between_clips (int) – 每个剪辑之间的帧数
transform (callable, 可选) – 一个函数/转换,它接收 TxHxWxC 视频并返回转换后的版本。
download (bool) – 将官方版本的数据集下载到根文件夹。
num_workers (int) – 使用多个工作进程创建 VideoClips
num_download_workers (int) – 使用多进程以加快下载速度。
output_format (str, optional) – 输出视频张量的格式(在应用变换之前)。可以是“THWC”或“TCHW”(默认)。请注意,在大多数其他工具和数据集中,默认值实际上是“THWC”。
- 返回:
一个 3 元组,包含以下条目:
video (Tensor[T, C, H, W] 或 Tensor[T, H, W, C]): torch.uint8 张量中的 T 个视频帧
audio(Tensor[K, L]): 音频帧,其中 K 是通道数,L 是 torch.float 张量中的点数
label (int): 视频剪辑的类别
- 返回类型:
- 抛出:
RuntimeError – 如果
download 为 True
且视频存档已解压。
- 特殊成员:
- __getitem__(idx: int) tuple[torch.Tensor, torch.Tensor, int] [源代码]¶
- 参数:
index (int) – 索引
- 返回:
样本和元数据,可通过相应的变换进行可选变换。
- 返回类型:
(任意)