This is a reimplementation of softmax-splatting, which can also be executed on CPU only devices.
This implementation requires PyTorch to be installed.
Once PyTorch is installed, the package can be compiled with
pip install .
or pip install -e .
.
Alternatively, the extension can be compiled the first time you import it.
Therefore ninja needs to be installed, for example with pip install ninja
.
Then just import the module in your python script.
The first time you import it, the extension will be compiled.
The second time, it does not need to compile it anymore.
If you installed the extension with pip, you can simply import it:
from splatting import Splatting
If you choose to JIT compile it, you can add this repository to your project structure like
└── your_code
├── file1.py
├── file2.py
└── utils
└── splatting // this repository
you can import like this:
from your_code.utils.splatting import Splatting
The splatting function can be used like this:
import torch
from splatting import Splatting, splatting_function
frame = torch.ones([1, 3, 4, 4])
flow = torch.ones([1, 2, 4, 4])
# use of the slatting function
output = splatting_function("average", frame, flow)
# use of the splatting module
output = Splatting("average")(frame, flow)
[1] @inproceedings{Niklaus_CVPR_2020,
author = {Simon Niklaus and Feng Liu},
title = {Softmax Splatting for Video Frame Interpolation},
booktitle = {IEEE International Conference on Computer Vision},
year = {2020}
}