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')[source]¶
通用 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, optional) – 一个函数/转换,它接收一个 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 is True
并且视频档案已解压。
- 特殊成员: