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