Home

Awesome

EVEREST: Efficient Masked Video Autoencoder by Removing Redundant Spatiotemporal Tokens [ICML2024]

This repository is an official Pytorch implementation of EVEREST: Efficient Masked Video Autoencoder by Removing Redundant Spatiotemporal Tokens.

The new version of EVEREST will be updated soon!!! 🚨

<p align="center"> <img align="middle" width="1000" src="assets/EVEREST_concept.PNG"> </p>

Abstract

Masked Video Autoencoder (MVA) approaches have demonstrated their potential by significantly outperforming previous video representation learning methods. However, they waste an excessive amount of computations and memory in predicting uninformative tokens/frames due to random masking strategies. (e.g., over 16 nodes with 128 NVIDIA A100 GPUs). To resolve this issue, we exploit the unequal information density among the patches in videos and propose EVEREST, a surprisingly efficient MVA approach for video representation learning that finds tokens containing rich motion features and discards uninformative ones during both pre-training and fine-tuning. We further present an information-intensive frame selection strategy that allows the model to focus on informative and causal frames with minimal redundancy. Our method significantly reduces the computation and memory requirements of MVA, enabling the pre-training and fine-tuning on a single machine with 8 GPUs while achieving comparable performance to computation- and memory-heavy baselines on multiple benchmarks and the uncurated Ego4D dataset. We hope that our work contributes to reducing the barrier to further research on video understanding.

Results

<p align="center"> <img align="middle" width="750" src="assets/EVEREST_plot.PNG"> </p>

Prerequisites

EVEREST is built in Python 3.7.12, torch 1.8.0 and torchvision 0.9.0. Please use the following command to install the requirements:

$ pip install -r requirements.txt

Run

  1. UCF101 experiment
$ bash scripts/ucf101/pretrain.sh
$ bash scripts/ucf101/finetune.sh
  1. HMDB51 experiment
$ bash scripts/hmdb51/pretrain.sh
$ bash scripts/hmdb51/finetune.sh
  1. K400, SSv2, OSCC experiment will be released soon.

Dataset

  1. Download UCF101 and HMDB51 datasets from the official websites.
  2. Make annotation files in *.csv format like this:
path_to_video/video_0.avi 0
path_to_video/video_1.avi 0
...
path_to_video/video_N.avi 101

Training Logs and Checkpoints

UCF101

Backbone#FramePre-train (3,200 epochs)Fine-tune (100 epochs)Top-1Top-5
ViT-B16x5x3log / checkpointlog / checkpoint93.798.9

Contact

Sunil Hwang: sunilhoho@kaist.ac.kr
Jaehong Yoon: jaehong.yoon@kaist.ac.kr

Acknowledgment

The code is built upon VidoeMAE.

Citations

@inproceedings{hwang2024everest,
    title={EVEREST: Efficient Masked Video Autoencoder by Removing Redundant Spatiotemporal Tokens},
    author={Hwang, Sunil and Yoon, Jaehong and Lee, Youngwan and Hwang, Sung Ju},
    booktitle={International Conference on Machine Learning},
    year={2024},
}