Metadata-Version: 2.1
Name: ezflow
Version: 0.2.5
Summary: A PyTorch library for optical flow estimation using neural networks
Home-page: https://github.com/neu-vig/ezflow
Author: EzFlow Contributors
Author-email: shahnh19@gmail.com
License: MIT
Project-URL: Source, https://github.com/neu-vig/ezflow
Keywords: optical flow,pytorch,machine learning,deep learning
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: absl-py==0.13.0
Requires-Dist: alabaster==0.7.12
Requires-Dist: antlr4-python3-runtime==4.8
Requires-Dist: appdirs==1.4.4
Requires-Dist: argh==0.26.2
Requires-Dist: arrow==0.15.1
Requires-Dist: attrs
Requires-Dist: Babel==2.9.1
Requires-Dist: backports.entry-points-selectable==1.1.0
Requires-Dist: binaryornot==0.4.4
Requires-Dist: black==21.7b0
Requires-Dist: bleach==3.3.0
Requires-Dist: brotlipy==0.7.0
Requires-Dist: bump2version==0.5.11
Requires-Dist: cachetools==4.2.2
Requires-Dist: certifi==2022.12.7
Requires-Dist: cffi==1.14.6
Requires-Dist: cfgv==3.3.0
Requires-Dist: chardet==4.0.0
Requires-Dist: charset-normalizer==2.0.1
Requires-Dist: click==8.0.1
Requires-Dist: colorama==0.4.4
Requires-Dist: coverage==5.5
Requires-Dist: cryptography==3.4.8
Requires-Dist: cycler==0.10.0
Requires-Dist: distlib==0.3.6
Requires-Dist: dnspython==1.16.0
Requires-Dist: docopt==0.6.2
Requires-Dist: docutils==0.17.1
Requires-Dist: easydict==1.9
Requires-Dist: entrypoints==0.3
Requires-Dist: fett==0.3.2
Requires-Dist: filelock==3.12.2
Requires-Dist: flake8==3.9.2
Requires-Dist: fvcore==0.1.5.post20210915
Requires-Dist: grpcio==1.39.0
Requires-Dist: identify==2.2.13
Requires-Dist: idna==3.2
Requires-Dist: imagesize==1.2.0
Requires-Dist: importlib-metadata==6.7.0
Requires-Dist: iniconfig==1.1.1
Requires-Dist: iopath==0.1.9
Requires-Dist: Jinja2==3.0.1
Requires-Dist: jinja2-time==0.2.0
Requires-Dist: kiwisolver
Requires-Dist: Markdown==3.3.4
Requires-Dist: MarkupSafe==2.0.1
Requires-Dist: matplotlib==3.4.2
Requires-Dist: mccabe==0.6.1
Requires-Dist: mypy-extensions==0.4.3
Requires-Dist: networkx==2.6.2
Requires-Dist: nodeenv==1.6.0
Requires-Dist: numpy==1.20.2
Requires-Dist: oauthlib==3.2.2
Requires-Dist: olefile==0.46
Requires-Dist: omegaconf
Requires-Dist: opencv-python==4.5.3.56
Requires-Dist: packaging==21.0
Requires-Dist: pathspec==0.9.0
Requires-Dist: pathtools==0.1.2
Requires-Dist: Pillow
Requires-Dist: pkginfo==1.7.1
Requires-Dist: platformdirs==3.8.0
Requires-Dist: pluggy==0.13.1
Requires-Dist: portalocker
Requires-Dist: poyo==0.5.0
Requires-Dist: pre-commit
Requires-Dist: protobuf==3.18.3
Requires-Dist: py==1.10.0
Requires-Dist: pyasn1==0.4.8
Requires-Dist: pyasn1-modules==0.2.8
Requires-Dist: pycodestyle==2.7.0
Requires-Dist: pycparser==2.20
Requires-Dist: pyflakes==2.3.1
Requires-Dist: Pygments==2.9.0
Requires-Dist: pymongo==3.11.4
Requires-Dist: pyOpenSSL==20.0.1
Requires-Dist: pyparsing==2.4.7
Requires-Dist: PySocks==1.7.1
Requires-Dist: pytest==6.2.4
Requires-Dist: python-dateutil==2.8.1
Requires-Dist: python-slugify==5.0.2
Requires-Dist: pytz==2021.1
Requires-Dist: PyYAML==5.4.1
Requires-Dist: readme-renderer==29.0
Requires-Dist: regex
Requires-Dist: requests==2.26.0
Requires-Dist: requests-oauthlib==1.3.0
Requires-Dist: requests-toolbelt==0.9.1
Requires-Dist: rsa==4.7.2
Requires-Dist: scipy==1.7.0
Requires-Dist: six
Requires-Dist: snooty-lextudio==1.11.1.dev0
Requires-Dist: snowballstemmer==2.1.0
Requires-Dist: tabulate==0.8.9
Requires-Dist: tensorboard==2.6.0
Requires-Dist: tensorboard-data-server==0.6.1
Requires-Dist: tensorboard-plugin-wit==1.8.0
Requires-Dist: termcolor==1.1.0
Requires-Dist: text-unidecode==1.3
Requires-Dist: toml
Requires-Dist: tomli==1.2.1
Requires-Dist: torch>=1.9.0
Requires-Dist: torchmetrics>=0.5.0
Requires-Dist: torchvision>=0.10.0
Requires-Dist: tornado
Requires-Dist: tqdm
Requires-Dist: twine==1.14.0
Requires-Dist: typed-ast
Requires-Dist: typing-extensions==4.6.3
Requires-Dist: Unidecode==1.3.2
Requires-Dist: urllib3==1.26.6
Requires-Dist: virtualenv==20.23.1
Requires-Dist: watchdog==1.0.2
Requires-Dist: webencodings==0.5.1
Requires-Dist: whichcraft==0.6.1
Requires-Dist: yacs==0.1.8
Requires-Dist: zipp==3.5.0

<p align="center">
    <br>
    <img src="./docs/assets/logo.png" height="60" width="60"/>
    <br>
</p>

<h1 align="center">EzFlow</h1>
<h3 align="center">A modular PyTorch library for optical flow estimation using neural networks</h3>

<div align='center'>

[![Tests](https://github.com/neu-vig/ezflow/actions/workflows/package-test.yml/badge.svg)](https://github.com/neu-vig/ezflow/actions/workflows/package-test.yml)
[![Docs](https://readthedocs.org/projects/ezflow/badge/?version=latest)](https://ezflow.readthedocs.io/en/latest/?badge=latest)
[![Downloads](https://static.pepy.tech/badge/ezflow)](https://pepy.tech/project/ezflow)  

<!-- [![Code style](https://github.com/neu-vig/ezflow/actions/workflows/linting.yml/badge.svg)](https://github.com/neu-vig/ezflow/actions/workflows/linting.yml) -->
<!-- [![Code coverage](https://github.com/neu-vig/ezflow/actions/workflows/codecov.yml/badge.svg)](https://github.com/neu-vig/ezflow/actions/workflows/codecov.yml) -->

**[Documentation](https://ezflow.readthedocs.io/en/latest/)** | **[Tutorials](https://ezflow.readthedocs.io/en/latest/tutorials/index.html)**

</div>


## Installation

### From source (recommended)

```shell

git clone https://github.com/neu-vig/ezflow
cd ezflow/
python setup.py install

```

### From PyPI

```shell

pip install ezflow

```
___

### Models supported

- [x] [DICL](https://arxiv.org/abs/2010.14851)
- [x] [DCVNet](https://jianghz.me/files/DCVNet_camera_ready_wacv2023.pdf) ([1 checkpoint](./configs/README.md))
- [x] [FlowNetS](https://arxiv.org/abs/1504.06852)
- [x] [FlowNetC](https://arxiv.org/abs/1504.06852) ([3 checkpoints](./configs/README.md))
- [x] [PWCNet](https://arxiv.org/abs/1709.02371) ([3 checkpoints](./configs/README.md)) 
- [x] [RAFT](https://arxiv.org/abs/2003.12039) ([3 checkpoints](./configs/README.md))
- [x] [VCN](https://papers.nips.cc/paper/2019/hash/bbf94b34eb32268ada57a3be5062fe7d-Abstract.html)

### Datasets supported

- [x] [AutoFlow](https://autoflow-google.github.io/)
- [x] [FlyingChairs](https://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs.en.html#flyingchairs)
- [x] [HD1K](http://hci-benchmark.iwr.uni-heidelberg.de/)
- [x] [KITTI](http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=flow)
- [x] [Kubric](https://github.com/google-research/kubric)
- [x] [MPI Sintel](http://sintel.is.tue.mpg.de/)
- [x] [SceneFlow Monkaa](https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html)
- [x] [SceneFlow Driving](https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html)
- [x] [SceneFlow FlyingThings3D](https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html)
- [x] [SceneFlow FlyingThings3D subset](https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html)

___

### Results and Pre-trained checkpoints

- #### DCVNet | [model config](./configs/models/dcvnet.yaml) | [paper](https://jianghz.me/files/DCVNet_camera_ready_wacv2023.pdf)
| Training Dataset                        | Training Config                                                         | ckpts                                                                                  | Sintel Clean (training) | Sintel Final(training)| KITTI2015 AEPE | KITTI2015 F1-all |
|-----------------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------|-------------------------|-----------------------|----------------|------------------|
| FlyingThings3DSubset + Monkaa + Driving | [config](./configs/trainers/dcvnet/dcvnet_sceneflow_baseline.yaml)      | [download](https://jianghz.me/files/ezflow_ckpts/dcvnet_sceneflow_step800k.pth)        | 1.90                    | 3.35                  | 4.75           | 23.41%           |

- #### FlowNetC | [model config](./configs/models/flownet_c.yaml) | [arXiv](https://arxiv.org/abs/1504.06852)

| Training Dataset | Training Config                                                         | ckpts                                                                                  | Sintel Clean (training) | Sintel Final(training)| KITTI2015 AEPE | KITTI2015 F1-all |
|------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------|-------------------------|-----------------------|----------------|------------------|
| Chairs           | [config](./configs/trainers/flownetc/flownetc_chairs_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/flownetc_chairs_step1200k.pth)        | 3.41                    | 4.94                  | 14.84          | 54.23%           |
| Chairs -> Things | [config](./configs/trainers/flownetc/flownetc_things_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/flownetc_chairs_things_step1574k.pth) | 2.93                    | 4.48                  | 12.47          | 45.89%           |
| Kubric           | [config](./configs/trainers/flownetc/flownetc_kubric_improved_aug.yaml) | [download](https://jianghz.me/files/ezflow_ckpts/flownetc_kubric_step1200k.pth)        | 3.57                    | 3.96                  | 12.11          | 36.35%           |

- #### PWC-Net | [model config](./configs/models/pwcnet.yaml)  | [arXiv](https://arxiv.org/abs/1709.02371)

| Training Dataset | Training Config                                                     | ckpts                                                                               | Sintel Clean (training) | Sintel Final(training)| KITTI2015 AEPE | KITTI2015 F1-all |
|------------------|---------------------------------------------------------------------|-------------------------------------------------------------------------------------|-------------------------|-----------------------|----------------|------------------|
| Chairs           | [config](./configs/trainers/pwcnet/pwcnet_chairs_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/pwcnet_chairs_step1200k.pth)       | 3.5                     | 4.73                  | 17.81          | 51.76%           |
| Chairs -> Things | [config](./configs/trainers/pwcnet/pwcnet_things_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/pwcnet_chairs_things_step2400k.pth)| 2.06                    | 3.43                  | 11.04          | 32.68%           |
| Kubric           | [config](./configs/trainers/pwcnet/pwcnet_kubric_improved_aug.yaml) | [download](https://jianghz.me/files/ezflow_ckpts/pwcnet_kubric_step1200k.pth)       | 3.08                    | 3.31                  | 9.83           | 21.94%           |


- #### RAFT | [model config](./configs/models/raft.yaml) | [arXiv](https://arxiv.org/abs/2003.12039)

| Training Dataset | Training Config                                                 | ckpts                                                                                | Sintel Clean (training) | Sintel Final(training)| KITTI2015 AEPE | KITTI2015 F1-all |
|------------------|-----------------------------------------------------------------|--------------------------------------------------------------------------------------|-------------------------|-----------------------|----------------|------------------|
| Chairs           | [config](./configs/trainers/raft/raft_chairs_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/raft_chairs_step100k_v2.pth)        | 2.23                    | 4.56                  | 10.45          | 38.93%           |
| Chairs -> Things | [config](./configs/trainers/raft/raft_things_baseline.yaml)     | [download](https://jianghz.me/files/ezflow_ckpts/raft_chairs_things_step200k_v2.pth) | 1.66                    | 2.75                  | 5.01           | 16.87%           |
| Kubric           | [config](./configs/trainers/raft/raft_kubric_improved_aug.yaml) | [download](https://jianghz.me/files/ezflow_ckpts/raft_kubric_step100k_v2.pth)        | 2.12                    | 2.54                  | 6.01           | 17.35%           |

___

#### Additional Information

- KITTI dataset has been evaluated with a center crop of size `1224 x 370`.
- FlowNetC and PWC-Net uses `padding` of size `64` for evaluating the KITTI2015 dataset.
- RAFT and DCVNet uses `padding` of size `8` for evaluating the Sintel and KITTI2015 datasets.
___
### References

- [RAFT](https://github.com/princeton-vl/RAFT)
- [DICL-Flow](https://github.com/jytime/DICL-Flow)
- [PWC-Net](https://github.com/NVlabs/PWC-Net)
- [FlowNetPytorch](https://github.com/ClementPinard/FlowNetPytorch)
- [VCN](https://github.com/gengshan-y/VCN)
- [detectron2](https://github.com/facebookresearch/detectron2)
- [CorrelationLayer](https://github.com/oblime/CorrelationLayer)
- [ptflow](https://github.com/hmorimitsu/ptlflow)




<br>

<footer>
<a target="_blank" href="https://icons8.com/icon/3Nj3FNnz36Id/pixels">Pixels</a> icon by <a target="_blank" href="https://icons8.com">Icons8</a>
</footer>



