Hub documentation
Jeu de données vidéo
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.mp4Plusieurs formats sont pris en charge simultanément, notamment MP4, MOV et AVI.
my_dataset_repository/
└── videos
├── 1.mp4
├── 2.mov
└── 3.aviSi 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.mp4Voir 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.csvVotre 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 smilingVous 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.csvDans 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 smilingLes 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.mp4Le 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.mp4Vous 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: trueJeux 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.tarPour 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.jsonNotez 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