• Stars
    star
    125
  • Rank 286,335 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PyTorch implementation of UPFlow (unsupervised optical flow learning)

[CVPR2021] UPFlow: Upsampling Pyramid for Unsupervised Optical Flow Learning

Kunming Luo1, Chuan Wang1, Shuaicheng Liu2,1, Haoqiang Fan1, Jue Wang1, Jian Sun1

1. Megvii Technology, 2. University of Electronic Science and Technology of China

This is the official implementation of the paper UPFlow: Upsampling Pyramid for Unsupervised Optical Flow Learning CVPR 2021.

Abstract

We present an unsupervised learning approach for optical flow estimation by improving the upsampling and learning of pyramid network. We design a self-guided upsample module to tackle the interpolation blur problem caused by bilinear upsampling between pyramid levels. Moreover, we propose a pyramid distillation loss to add supervision for intermediate levels via distilling the finest flow as pseudo labels. By integrating these two components together, our method achieves the best performance for unsupervised optical flow learning on multiple leading benchmarks, including MPI-SIntel, KITTI 2012 and KITTI 2015. In particular, we achieve EPE=1.4 on KITTI 2012 and F1=9.38% on KITTI 2015, which outperform the previous state-of-the-art methods by 22.2% and 15.7%, respectively.

This repository includes:

  • inferring scripts; and
  • pretrain model;

Presentation Video

[Youtube], [Bilibili]

Pipeline

pipeline Illustration of the pipeline of our network, which contains two stage: pyramid encoding to extract feature pairs in different scales and pyramid decoding to estimate optical flow in each scale. Note that the parameters of the decoder module and the upsample module are shared across all the pyramid levels.

Self-Guided Upsample Module

fig4

Usage

Please first install the environments following how_to_install.md.

Run python3 test.py to test our trained model on KITTI 2015 dataset. Note that Cuda is needed.

Results

results Visual example of our self-guided upsample module (SGU) on MPI-Sintel Final dataset. Results of bilinear method and our SGU are shown.

Citation

If you think this work is helpful, please cite

    @inproceedings{luo2021upflow,
      title={Upflow: Upsampling pyramid for unsupervised optical flow learning},
      author={Luo, Kunming and Wang, Chuan and Liu, Shuaicheng and Fan, Haoqiang and Wang, Jue and Sun, Jian},
      booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
      pages={1045--1054},
      year={2021}
    }

Acknowledgement

Part of our codes are adapted from IRR-PWC, UnFlow ARFlow and UFlow, we thank the authors for their contributions.