动力学¶
- 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]¶
Generic Kinetics 数据集。
Kinetics-400/600/700 是动作识别视频数据集。 该数据集将每个视频视为固定大小的视频片段的集合,由
frames_per_clip
指定,其中每个片段之间的帧步长由step_between_clips
给出。举个例子,对于分别有10帧和15帧的2个视频,如果
frames_per_clip=5
和step_between_clips=5
,数据集的大小将是(2 + 3)= 5,其中前两个 元素将来自视频1,接下来的三个元素来自视频2。 请注意,我们会丢弃那些没有恰好frames_per_clip
元素的片段,因此并非所有 视频中的帧都可能出现。- Parameters:
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的视频并返回转换后的版本。
下载 (bool) – 将数据集的官方版本下载到根文件夹。
num_workers (int) – 使用多个工作线程进行VideoClips创建
num_download_workers (int) – 使用多进程以加速下载。
output_format (str, 可选) – 输出视频张量的格式(在转换之前)。 可以是“THWC”或“TCHW”(默认值)。 请注意,在大多数其他工具和数据集中,默认值实际上是“THWC”。
- Returns:
一个包含以下条目的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): 视频片段的类别
- Return type:
- Raises:
RuntimeError – 如果
download is True
并且视频存档已经被提取。
- Special-members: