Hub documentation

Conjunto de datos de video

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Conjunto de datos de video

Esta guía te mostrará cómo configurar tu repositorio de datos con archivos de video.

Un conjunto de datos con una estructura y formatos de archivo admitidos tiene automáticamente un visor de conjuntos de datos en su página en el Hub.

La información adicional sobre tus videos, como subtítulos o cajas delimitadoras para la detección de objetos, se carga automáticamente siempre que incluyas esta información en un archivo de metadatos (metadata.csv/metadata.jsonl/metadata.parquet).

Alternativamente, los videos pueden estar en archivos Parquet o en archivos TAR que sigan el formato WebDataset.

Solo videos

Si su conjunto de datos consta únicamente de una columna con videos, puede simplemente almacenar sus archivos de video en la raíz:

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

o en un subdirectorio:

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

Se admiten varios formatos a la vez, incluidos MP4, MOV y AVI.

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

Si tienes varias divisiones, puedes colocar tus videos en directorios con los nombres correspondientes:

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

Consulte Nombres de archivo y divisiones para obtener más información y otras formas de organizar los datos por divisiones.

Columnas adicionales

Si tienes información adicional que quieras incluir sobre tu conjunto de datos, como descripciones de texto o cajas delimitadoras, añádela como un archivo metadata.csv en tu repositorio. Esto te permite crear rápidamente conjuntos de datos para diferentes tareas de visión por computadora, como generación de video o detección de objetos.

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

El archivo metadata.csv debe tener una columna file_name que vincule los archivos de video con sus metadatos:

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

También puedes usar un archivo 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"}

Y para conjuntos de datos más grandes o si te interesan las funciones avanzadas de recuperación de datos, puedes usar un archivo Parquet metadata.parquet.

Rutas relativas

El archivo de metadatos debe estar ubicado en el mismo directorio que los videos a los que está vinculado, o en cualquier directorio padre, como en este ejemplo:

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

En este caso, la columna file_name debe ser una ruta relativa completa a los videos, no solo el nombre del archivo:

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

Los archivos de metadatos no se pueden colocar en subdirectorios de un directorio con los videos.

Más en general, cualquier columna llamada file_name o *_file_name debe contener la ruta relativa completa a los videos.

Clasificación de video

Para conjuntos de datos de clasificación de video, también puedes usar una configuración sencilla: usa directorios para nombrar las clases de video. Guarda tus archivos de video en una estructura de directorios como:

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

El conjunto de datos creado con esta estructura contiene dos columnas: video y label (con los valores green y red).

También puedes proporcionar varias divisiones. Para ello, el directorio de tu conjunto de datos debe tener la siguiente estructura (consulta Nombres de archivo y divisiones para obtener más información):

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

Puede desactivar esta adición automática de la columna label en la configuración YAML. Si los nombres de sus directorios no tienen un significado especial, establezca drop_labels: true en la cabecera del README:

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

Conjuntos de datos a gran escala

Formato WebDataset

El formato WebDataset es adecuado para conjuntos de datos de video a gran escala. Consiste en archivos TAR que contienen videos y sus metadatos y está optimizado para streaming. Es útil si tienes un gran número de videos y para obtener cargadores de datos de streaming para entrenamiento a gran escala.

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

Para crear un archivo TAR de WebDataset, cree un directorio que contenga los videos y los archivos de metadatos a archivar y cree el archivo TAR usando, por ejemplo, el comando tar. El tamaño habitual por archivo suele ser de aproximadamente 1 GB. Asegúrese de que cada par de video y metadatos comparta el mismo prefijo de archivo, por ejemplo:

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

Tenga en cuenta que, por comodidad del usuario y para habilitar el Dataset Viewer, cada conjunto de datos alojado en el Hub se convierte automáticamente al formato Parquet hasta 5GB. Dado que los videos pueden ser bastante grandes, las URL de los videos se almacenan en los datos Parquet convertidos sin los propios bytes del video. Lea más al respecto en la documentación del formato Parquet.

Update on GitHub