This is a personal reimplementation of SPyNet [1] using PyTorch. Should you be making use of this work, please cite the paper accordingly. Also, make sure to adhere to the licensing terms of the authors. Should you be making use of this particular implementation, please acknowledge it appropriately [2].
For the original Torch version of this work, please see: https://github.com/anuragranj/spynet
Other optical flow implementations from me: pytorch-pwc, pytorch-unflow, pytorch-liteflownet
To run it on your own pair of images, use the following command. You can choose between various models, please make sure to see their paper / the code for more details.
python run.py --model sintel-final --one ./images/one.png --two ./images/two.png --out ./out.flo
I am afraid that I cannot guarantee that this reimplementation is correct. However, it produced results identical to the implementation of the original authors in the examples that I tried. Please feel free to contribute to this repository by submitting issues and pull requests.
As stated in the licensing terms of the authors of the paper, the models are free for non-commercial and scientific research purpose. Please make sure to further consult their licensing terms.
[1] @inproceedings{Ranjan_CVPR_2017,
author = {Ranjan, Anurag and Black, Michael J.},
title = {Optical Flow Estimation Using a Spatial Pyramid Network},
booktitle = {IEEE Conference on Computer Vision and Pattern Recognition},
year = {2017}
}
[2] @misc{pytorch-spynet,
author = {Simon Niklaus},
title = {A Reimplementation of {SPyNet} Using {PyTorch}},
year = {2018},
howpublished = {\url{https://github.com/sniklaus/pytorch-spynet}}
}