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>



