videomae-base-finetuned-kinetics-movieshots-movement

gullalc
Clasificación de video

El modelo videomae-base-finetuned-kinetics-movieshots-movement está ajustado para clasificar el movimiento de las escenas en cinco clases: Estático, Movimiento, Pull, Push. Se utiliza el conjunto de datos Movienet para ajustar el modelo durante 5 épocas. El archivo v1_split_trailer.json proporciona las divisiones de datos para entrenamiento, validación y prueba.

Como usar

Esta es la manera de probar el modelo en una toma/clip de un video. Se utiliza el mismo código para procesar, transformar y evaluar en el conjunto de prueba de movienet.

from transformers import VideoMAEImageProcessor, VideoMAEForVideoClassification
from pytorchvideo.transforms import ApplyTransformToKey
from torchvision.transforms import v2
from decord import VideoReader, cpu

## Transformación de Evaluación
transform = v2.Compose(
[
ApplyTransformToKey(
key="video",
transform=v2.Compose(
[
v2.Lambda(lambda x: x.permute(0, 3, 1, 2)), # T, H, W, C -> T, C, H, W
v2.UniformTemporalSubsample(16),
v2.Resize(resize_to),
v2.Lambda(lambda x: x / 255.0),
v2.Normalize(img_mean, img_std)
]
),
),
]
)

## Carga del preprocesador y del modelo
image_processor = VideoMAEImageProcessor.from_pretrained("gullalc/videomae-base-finetuned-kinetics-movieshots-movement")
model = VideoMAEForVideoClassification.from_pretrained("gullalc/videomae-base-finetuned-kinetics-movieshots-movement")

img_mean = image_processor.image_mean
img_std = image_processor.image_std
height = width = image_processor.size["shortest_edge"]
resize_to = (height, width)

## cargar video/clip y predecir
video_path = "random_clip.mp4"
vr = VideoReader(video_path, width=480, height=270, ctx=cpu(0))
frames_tensor = torch.stack([torch.tensor(vr[i].asnumpy()) for i in range(len(vr))]) ## Shape: (T, H, W, C)

frames_tensor = transform({"video": frames_tensor})["video"]

output = model(pixel_values=frames_tensor)
pred = torch.argmax(outputs.logits, axis=1).cpu().numpy()

print(model.config.id2label[pred[0]])

Funcionalidades

Clasificación de video
Transformers
Safetensors
Clasificación de tipo de toma
Movienet
Clasificación de movimiento de cámara
Movimiento de toma
Puntos de inferencia

Casos de uso

Clasificación de movimiento en tomas de video
Análisis de escenas en películas
Detección de tipos de movimiento de cámara