Hub documentation

Video Dataset

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Video Dataset

このガイドでは、動画ファイルを含むデータセットリポジトリを設定する方法を示します。

サポートされている構造とファイル形式を持つデータセットは、Hub上のそのページに自動的にDataset Viewerが表示されます。

動画に関する追加情報(キャプションや、オブジェクト検出用のバウンディングボックスなど)は、メタデータファイル(metadata.csv/metadata.jsonl/metadata.parquet)にこの情報を含める限り、自動的に読み込まれます。

代わりに、動画はWebDataset形式のParquetファイルやTARアーカイブとして提供することもできます。

動画のみ

データセットが動画のみの1つのカラムで構成されている場合、動画ファイルをルートに保存するだけです:

my_dataset_repository/
├── 1.mp4
├── 2.mp4
├── 3.mp4
└── 4.mp4

またはサブディレクトリ内:

my_dataset_repository/
└── videos
    ├── 1.mp4
    ├── 2.mp4
    ├── 3.mp4
    └── 4.mp4

MP4、MOV、AVIなど、複数の形式を同時にサポートしています。

my_dataset_repository/
└── videos
    ├── 1.mp4
    ├── 2.mov
    └── 3.avi

複数のスプリットがある場合、それぞれに対応する名前のディレクトリに動画を配置できます。

my_dataset_repository/
├── train
│   ├── 1.mp4
│   └── 2.mp4
└── test
    ├── 3.mp4
    └── 4.mp4

詳細や、スプリットごとにデータを整理する他の方法については、ファイル名とスプリットを参照してください。

追加の列

データセットに関する追加情報(テキストキャプションやバウンディングボックスなど)をリポジトリに含めたい場合は、metadata.csvファイルとして追加してください。これにより、動画生成や物体検出などの異なるコンピュータビジョンタスク用のデータセットを素早く作成できます。

my_dataset_repository/
└── train
    ├── 1.mp4
    ├── 2.mp4
    ├── 3.mp4
    ├── 4.mp4
    └── metadata.csv

metadata.csvファイルには、動画ファイルとそのメタデータを関連付けるfile_name列が必要です。

file_name,text
1.mp4,an animation of a green pokemon with red eyes
2.mp4,a short video of a green and yellow toy with a red nose
3.mp4,a red and white ball shows an angry look on its face
4.mp4,a cartoon ball is smiling

metadata.jsonl という JSONL ファイルも使用できます:

{"file_name": "1.mp4","text": "an animation of a green pokemon with red eyes"}
{"file_name": "2.mp4","text": "a short video of a green and yellow toy with a red nose"}
{"file_name": "3.mp4","text": "a red and white ball shows an angry look on its face"}
{"file_name": "4.mp4","text": "a cartoon ball is smiling"}

より大きなデータセット、または高度なデータ取得機能に興味がある場合は、Parquetファイルmetadata.parquetを使用できます。

相対パス

メタデータファイルは、リンクされている動画と同じディレクトリ、またはその親ディレクトリ(この例のように)に配置する必要があります。

my_dataset_repository/
└── train
    ├── videos
    │   ├── 1.mp4
    │   ├── 2.mp4
    │   ├── 3.mp4
    │   └── 4.mp4
    └── metadata.csv

この場合、file_name列はファイル名だけでなく、動画への完全な相対パスである必要があります:

file_name,text
videos/1.mp4,an animation of a green pokemon with red eyes
videos/2.mp4,a short video of a green and yellow toy with a red nose
videos/3.mp4,a red and white ball shows an angry look on its face
videos/4.mp4,a cartoon ball is smiling

メタデータファイルは、動画を含むディレクトリのサブディレクトリに配置できません。

より一般的には、file_nameまたは*_file_nameと名付けられた任意の列には、動画への完全な相対パスが含まれている必要があります。

動画分類

動画分類のデータセットでは、シンプルな構成も使用できます。ディレクトリで動画のクラス名を指定します。動画ファイルを次のようなディレクトリ構造に保存してください。

my_dataset_repository/
├── green
│   ├── 1.mp4
│   └── 2.mp4
└── red
    ├── 3.mp4
    └── 4.mp4

この構造で作成されたデータセットには、videoとlabel(値はgreenとred)の2つのカラムが含まれます。

複数のスプリットを指定することもできます。その場合、データセットのディレクトリは以下の構造になっている必要があります(詳細はファイル名とスプリットを参照してください):

my_dataset_repository/
├── test
│   ├── green
│   │   └── 2.mp4
│   └── red
│       └── 4.mp4
└── train
    ├── green
    │   └── 1.mp4
    └── red
        └── 3.mp4

label列のこの自動追加は、YAML設定で無効にできます。ディレクトリ名に特別な意味がない場合は、READMEのヘッダーにdrop_labels: trueを設定してください。

configs:
  - config_name: default  # Name of the dataset subset, if applicable.
    drop_labels: true

大規模データセット

WebDataset形式

WebDataset形式は、大規模な動画データセットに適しています。 動画とそのメタデータを含むTARアーカイブで構成され、ストリーミング用に最適化されています。大量の動画を扱う場合や、大規模な学習用のストリーミングデータローダーを取得する場合に有用です。

my_dataset_repository/
├── train-0000.tar
├── train-0001.tar
├── ...
└── train-1023.tar

WebDatasetのTARアーカイブを作成するには、アーカイブに含める動画とメタデータファイルを含むディレクトリを作成し、tarコマンドなどを使用してTARアーカイブを作成します。 1つのアーカイブあたりの一般的なサイズは約1GBです。 各動画とメタデータのペアが同じファイルプレフィックスを共有していることを確認してください。例:

train-0000/
├── 000.mp4
├── 000.json
├── 001.mp4
├── 001.json
├── ...
├── 999.mp4
└── 999.json

ユーザーの利便性向上とDataset Viewerの有効化のため、Hubにホストされているすべてのデータセットは、5GBまで自動的にParquet形式に変換されます。動画は非常に大きくなることがあるため、変換されたParquetデータには動画のURLが保存され、動画バイト自体は含まれません。詳細はParquet formatのドキュメントを参照してください。

Update on GitHub