videomae-base

rapadilla
Clasificación de video

VideoMAE es una extensión de Autoencoders enmascarados (MAE) para video. La arquitectura del modelo es muy similar a la de un Transformer de Visión estándar (ViT), con un decodificador encima para predecir valores de píxeles para parches enmascarados. Los videos se presentan al modelo como una secuencia de parches de tamaño fijo (resolución 16x16), que se incrustan linealmente. También se añade un token [CLS] al inicio de una secuencia para usarlo en tareas de clasificación. Además, se añaden incrustaciones de posición sinusoidales/cosinusoidales fijas antes de alimentar la secuencia a las capas del codificador Transformer. Al preentrenar el modelo, aprende una representación interna de los videos que luego se puede usar para extraer características útiles para tareas posteriores. Por ejemplo, si tienes un conjunto de datos de videos etiquetados, puedes entrenar un clasificador estándar colocando una capa lineal sobre el codificador preentrenado. Normalmente se coloca una capa lineal sobre el token [CLS], ya que el último estado oculto de este token puede verse como una representación de todo el video.

Como usar

Aquí se muestra cómo usar este modelo para predecir valores de píxeles para parches enmascarados aleatoriamente:

from transformers import VideoMAEImageProcessor, VideoMAEForPreTraining
import numpy as np
import torch

num_frames = 16
video = list(np.random.randn(16, 3, 224, 224))

processor = VideoMAEImageProcessor.from_pretrained('MCG-NJU/videomae-base')
model = VideoMAEForPreTraining.from_pretrained('MCG-NJU/videomae-base')

pixel_values = processor(video, return_tensors='pt').pixel_values

num_patches_per_frame = (model.config.image_size // model.config.patch_size) ** 2
seq_length = (num_frames // model.config.tubelet_size) * num_patches_per_frame
bool_masked_pos = torch.randint(0, 2, (1, seq_length)).bool()

outputs = model(pixel_values, bool_masked_pos=bool_masked_pos)
loss = outputs.loss

Para más ejemplos de código, nos referimos a la documentación.

Funcionalidades

Clasificación de video
Transformers
PyTorch
Autoentrenamiento de visión
Endpoints de inferencia
Autoencoders enmascarados

Casos de uso

Predecir valores de píxeles para parches enmascarados de un video.
Afinar el modelo para una tarea de clasificación de video descendente.
Extraer características útiles de videos para tareas posteriores.