Video Frame Interpolation via Adaptive Separable Convolution

Simon Niklaus, Long Mai, Feng Liu
8/5/2017
cs.CV

Official code: sniklaus/sepconv-slomo (1,021 stars, PyTorch, last commit 2025-05-26).

Abstract

Standard video frame interpolation methods first estimate optical flow between input frames and then synthesize an intermediate frame guided by motion. Recent approaches merge these two steps into a single convolution process by convolving input frames with spatially adaptive kernels that account for motion and re-sampling simultaneously. These methods require large kernels to handle large motion, which limits the number of pixels whose kernels can be estimated at once due to the large memory demand. To address this problem, this paper formulates frame interpolation as local separable convolution over input frames using pairs of 1D kernels. Compared to regular 2D kernels, the 1D kernels require significantly fewer parameters to be estimated. Our method develops a deep fully convolutional neural network that takes two input frames and estimates pairs of 1D kernels for all pixels simultaneously. Since our method is able to estimate kernels and synthesizes the whole video frame at once, it allows for the incorporation of perceptual loss to train the neural network to produce visually pleasing frames. This deep neural network is trained end-to-end using widely available video data without any human annotation. Both qualitative and quantitative experiments show that our method provides a practical solution to high-quality video frame interpolation.

View on arXivView PDF

Code Implementations(1)

PyTorch

an implementation of Video Frame Interpolation via Adaptive Separable Convolution using PyTorch

1,021166PythonSep 10, 20171 years ago
cudacupydeep-learningpythonpytorch

Similar Papers

Cite this paper

@article{niklaus2017video,
  title  = {Video Frame Interpolation via Adaptive Separable Convolution},
  author = {Simon Niklaus and Long Mai and Feng Liu},
  year   = {2017},
  eprint = {1708.01692},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1708.01692}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1708.01692.svg)](https://codeofpaper.com/paper/1708.01692)

Discussion