egorchistov/optical-flow-MEMFOF-Tartan
MEMFOF-Tartan
<a href="https://arxiv.org/abs/2506.23151" style="text-decoration: none;">๐ Paper</a> | <a href="https://msu-video-group.github.io/memfof" style="text-decoration: none;">๐ Project Page</a> | <a href="https://github.com/msu-video-group/memfof" style="text-decoration: none;">๐ป Code</a> | <a href="https://colab.research.google.com/github/msu-video-group/memfof/blob/dev/demo.ipynb" style="text-decoration: none;">๐ Colab</a> | <a href="https://huggingface.co/spaces/egorchistov/optical-flow-MEMFOF" style="text-decoration: none;">๐ค Demo</a>
๐ MEMFOF is a memory-efficient optical flow method for Full HD video that combines high accuracy with low VRAM usage.
โ ๏ธ Note: This particular checkpoint is intended only for further fine-tuning and is not recommended for direct use in applications.
๐ ๏ธ Usage
Install MEMFOF via the package manager:
pip3 install git+https://github.com/msu-video-group/memfofThen use the following snippet to compute backward and forward optical flow for three consecutive frames:
import torch
from memfof import MEMFOF
device = "cuda" if torch.cuda.is_available() else "cpu"
model = MEMFOF.from_pretrained("egorchistov/optical-flow-MEMFOF-Tartan").eval().to(device)
with torch.inference_mode():
# [B=1, T=3, C=3, H=1080, W=1920]
example_input = torch.randint(0, 256, [1, 3, 3, 1080, 1920], device=device)
# [B=1, C=2, H=1080, W=1920]
backward_flow, forward_flow = model(example_input)["flow"][-1].unbind(dim=1)๐ Citation
@article{bargatin2025memfof,
title={MEMFOF: High-Resolution Training for Memory-Efficient Multi-Frame Optical Flow Estimation},
author={Bargatin, Vladislav and Chistov, Egor and Yakovenko, Alexander and Vatolin, Dmitriy},
journal={arXiv preprint arXiv:2506.23151},
year={2025}
}