CoolFace
Modelpublic

egorchistov/optical-flow-MEMFOF-Tartan

sourceHugging Facebsd-3-clauseupdated 1y agoView on Hugging Face
0likes18downloads
Model Card

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:

shell
pip3 install git+https://github.com/msu-video-group/memfof

Then use the following snippet to compute backward and forward optical flow for three consecutive frames:

python
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}
}