Hub documentation

Jeu de données vidéo

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Jeu de données vidéo

Ce guide vous montre comment configurer votre dépôt de jeu de données avec des fichiers vidéo.

Un jeu de données doté d'une structure prise en charge et de formats de fichiers appropriés dispose automatiquement d'un visualiseur de jeu de données sur sa page du Hub.

Des informations supplémentaires sur vos vidéos - telles que des sous-titres ou des boîtes englobantes pour la détection d'objets - sont chargées automatiquement dès lors que vous incluez ces informations dans un fichier de métadonnées (metadata.csv/metadata.jsonl/metadata.parquet).

Alternativement, les vidéos peuvent être stockées dans des fichiers Parquet ou dans des archives TAR suivant le format WebDataset.

Vidéos uniquement

Si votre jeu de données ne comporte qu'une seule colonne de vidéos, vous pouvez simplement stocker vos fichiers vidéo à la racine :

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

ou dans un sous-répertoire :

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

Plusieurs formats sont pris en charge simultanément, notamment MP4, MOV et AVI.

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

Si vous avez plusieurs splits, vous pouvez placer vos vidéos dans des répertoires nommés en conséquence :

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

Voir Noms de fichiers et splits pour plus d’informations et d’autres façons d’organiser les données par splits.

Colonnes supplémentaires

Si vous souhaitez inclure des informations supplémentaires sur votre jeu de données, comme des légendes de texte ou des boîtes englobantes, ajoutez-les sous forme de fichier metadata.csv dans votre dépôt. Cela vous permet de créer rapidement des jeux de données pour différentes tâches de vision par ordinateur, comme la génération de vidéos ou la détection d’objets.

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

Votre fichier metadata.csv doit contenir une colonne file_name qui associe les fichiers vidéo à leurs métadonnées :

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

Vous pouvez également utiliser un fichier JSONL metadata.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"}

Et pour des jeux de données plus volumineux ou si vous êtes intéressé par des fonctionnalités avancées de récupération de données, vous pouvez utiliser un fichier Parquet metadata.parquet.

Chemins relatifs

Le fichier de métadonnées doit se trouver soit dans le même répertoire que les vidéos auxquelles il est lié, soit dans un répertoire parent, comme dans cet exemple :

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

Dans ce cas, la colonne file_name doit contenir le chemin relatif complet vers les vidéos, et non simplement le nom du fichier :

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

Les fichiers de métadonnées ne peuvent pas être placés dans des sous-répertoires d'un répertoire contenant les vidéos.

Plus généralement, toute colonne nommée file_name ou *_file_name doit contenir le chemin relatif complet vers les vidéos.

Classification de vidéos

Pour les jeux de données de classification vidéo, vous pouvez également utiliser une configuration simple : utilisez des répertoires pour nommer les classes de vidéos. Stockez vos fichiers vidéo dans une structure de répertoires comme :

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

Le jeu de données créé avec cette structure contient deux colonnes : video et label (avec les valeurs green et red).

Vous pouvez également fournir plusieurs splits. Pour ce faire, votre répertoire de jeu de données doit avoir la structure suivante (voir Noms de fichiers et splits pour plus d’informations) :

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

Vous pouvez désactiver cette ajout automatique de la colonne label dans la configuration YAML. Si les noms de vos répertoires n’ont pas de signification particulière, définissez drop_labels: true dans l’en-tête du README :

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

Jeux de données à grande échelle

Format WebDataset

Le format WebDataset est bien adapté aux jeux de données vidéo de grande envergure. Il se compose d'archives TAR contenant des vidéos et leurs métadonnées, et est optimisé pour le streaming. Il est utile si vous disposez d'un grand nombre de vidéos et pour obtenir des chargeurs de données en streaming pour l'entraînement à grande échelle.

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

Pour créer une archive TAR WebDataset, créez un répertoire contenant les vidéos et les fichiers de métadonnées à archiver, puis créez l'archive TAR à l'aide, par exemple, de la commande tar. La taille habituelle par archive est généralement d'environ 1 Go. Assurez-vous que chaque paire vidéo/métadonnées partage le même préfixe de fichier, par exemple :

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

Notez que, pour la commodité des utilisateurs et afin de permettre le Dataset Viewer, chaque jeu de données hébergé sur le Hub est automatiquement converti au format Parquet jusqu'à 5 Go. Étant donné que les vidéos peuvent être assez volumineuses, les URL des vidéos sont stockées dans les données Parquet converties sans les octets de la vidéo elle-même. En savoir plus à ce sujet dans la documentation du format Parquet.

Update on GitHub