🚀 VideoMAE (大規模モデル、Kinetics-400でファインチューニング済み)
VideoMAEモデルは、1600エポックで自己教師付き学習方式で事前学習され、Kinetics-400で教師付き学習方式でファインチューニングされています。このモデルは、Tongらによる論文 VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training で紹介され、このリポジトリ で最初に公開されました。
免責事項: VideoMAEを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されました。
🚀 クイックスタート
このモデルは、ビデオを400種類のKinetics-400ラベルのいずれかに分類するために使用できます。以下に、ビデオを分類するための使用例を示します。
from transformers import VideoMAEImageProcessor, VideoMAEForVideoClassification
import numpy as np
import torch
video = list(np.random.randn(16, 3, 224, 224))
processor = VideoMAEImageProcessor.from_pretrained("MCG-NJU/videomae-large-finetuned-kinetics")
model = VideoMAEForVideoClassification.from_pretrained("MCG-NJU/videomae-large-finetuned-kinetics")
inputs = processor(video, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
より多くのコード例については、ドキュメント を参照してください。
✨ 主な機能
VideoMAEは、Masked Autoencoders (MAE) をビデオに拡張したモデルです。このモデルのアーキテクチャは、標準的なVision Transformer (ViT) に非常に似ており、マスクされたパッチのピクセル値を予測するためのデコーダが上部にあります。
ビデオは、固定サイズのパッチ (解像度16x16) のシーケンスとしてモデルに入力され、線形埋め込みが行われます。また、分類タスクに使用するために、シーケンスの先頭に [CLS] トークンが追加されます。シーケンスをTransformerエンコーダのレイヤーに入力する前に、固定の正弦/余弦位置埋め込みも追加されます。
モデルを事前学習することで、ビデオの内部表現を学習し、下流タスクに役立つ特徴を抽出することができます。たとえば、ラベル付きビデオのデータセットがある場合、事前学習されたエンコーダの上に線形レイヤーを配置して、標準的な分類器を学習することができます。通常、[CLS] トークンの上に線形レイヤーを配置します。このトークンの最後の隠れ状態は、ビデオ全体の表現と見なすことができます。
💻 使用例
基本的な使用法
from transformers import VideoMAEImageProcessor, VideoMAEForVideoClassification
import numpy as np
import torch
video = list(np.random.randn(16, 3, 224, 224))
processor = VideoMAEImageProcessor.from_pretrained("MCG-NJU/videomae-large-finetuned-kinetics")
model = VideoMAEForVideoClassification.from_pretrained("MCG-NJU/videomae-large-finetuned-kinetics")
inputs = processor(video, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
📚 ドキュメント
評価結果
このモデルは、Kinetics-400のテストセットで、Top-1精度が84.7、Top-5精度が96.5を達成しています。
BibTeXエントリと引用情報
misc{https://doi.org/10.48550/arxiv.2203.12602,
doi = {10.48550/ARXIV.2203.12602},
url = {https://arxiv.org/abs/2203.12602},
author = {Tong, Zhan and Song, Yibing and Wang, Jue and Wang, Limin},
keywords = {Computer Vision and Pattern Recognition (cs.CV), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training},
publisher = {arXiv},
year = {2022},
copyright = {Creative Commons Attribution 4.0 International}
}
📄 ライセンス
このモデルは、CC BY-NC 4.0ライセンスの下で提供されています。