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 参数会自动附加拆分名称。
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
且视频存档已解压,则抛出。
- 特殊成员: