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] = 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
给出。举例来说,对于 2 个分别有 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) – 使用多个 worker 进行 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): 视频片段的类别
- 返回类型:
- Raises:
RuntimeError – 如果
download is True
且视频存档已解压。
- 特殊成员: