/ Модель

Характеристики

Параметры
113 млн
Лицензия
MIT
Архитектура
videomae · dense
Библиотека
transformers
Опубликована
31 мар 2024

videomae-base-finetuned-kinetics-movieshots-scale

Классификация видеоВидео → label3 профессии

VideoMAE, дообученная на MovieNet модель для классификации видеоклипов по пяти категориям крупности плана.

135скачиваний за 30 дней0лайковвеса обновлены7 апр 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это модель VideoMAE, дообученная для определения крупности плана в видео. Разработчик дообучил базовую модель VideoMAE, обученную на Kinetics, на наборе MovieNet в течение пяти эпох. Модель относит видеоклип к одному из пяти классов: экстремально крупный план, крупный план, средний план, общий план или дальний план.

Модель предназначена для классификации видеокадров и клипов по масштабу плана, например, для анализа кинематографических сцен и автоматической разметки видеоматериалов. В README сообщается точность 88,93% и macro-F1 89,19% на оценивании; точность по классам составляет от 83,65% до 94,55%. Репозиторий содержит веса safetensors, архитектура — VideoMAEForVideoClassification, размер — 113,2 млн параметров.

Модель принимает видео и выдаёт метку класса масштаба плана. Она ориентирована на пять указанных классов и обучена на MovieNet; результаты на других типах видео и распределениях данных могут отличаться. Лицензия — MIT.

Сценарии применения

  • автоматическая разметка крупности планов в фильмах
  • поиск сцен с крупным или общим планом
  • анализ композиции кинематографических сцен
  • сегментация видеоматериалов по масштабу плана

Ограничения

Модель различает только пять заданных категорий масштаба плана; качество может снижаться на видео, отличающихся от данных MovieNet.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

VideoMAE finetuned for shot scale classification

videomae-base-finetuned-kinetics model finetuned to classify shot scale into five classes: ECS (Extreme close-up shot), CS (close-up shot), MS (medium shot), FS (full shot), LS (long shot)

Movienet dataset is used for finetuning the model for 5 epochs. v1_split_trailer.json provides the training, validation and test data splits.

Evaluation

Model achieves accuracy of 88.93% and macro-f1 of 89.19%

Class-wise accuracies: ECS - 91.16%, CS - 83.65, MS - 86.2%, FS - 90.74%, LS - 94.55%

How to use

This is how model can be tested on a shot/clip from a video. Same code is used to process, transform and evaluate on the movienet test set.

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

## Evaluation Transform
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)
                ]
            ),
        ),
    ]
)

## Preprocessor and Model loading
image_processor = VideoMAEImageProcessor.from_pretrained("gullalc/videomae-base-finetuned-kinetics-movieshots-scale")
model = VideoMAEForVideoClassification.from_pretrained("gullalc/videomae-base-finetuned-kinetics-movieshots-scale")

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

## load video/clip and predict
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]])

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · video-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
VideoMAEForVideoClassification
Ревизия весов
fc16b13

0 моделей