Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

DPVO

A streamlined implementation of DPVO (Deep Patch Visual Odometry). Using Rerun viewer, Pixi and Gradio for easy use.

example output

Installation

This package lives inside the examples-monorepo. All dependencies are managed by Pixi via the root pixi.toml.

# From the monorepo root:
pixi run -e dpvo --frozen dpvo-demo

Notes

  • This package uses the prebuilt lietorch package from Pixi instead of building the vendored copy in-tree.
  • lietorch is ABI-coupled to the exact PyTorch/libtorch build. If pixi upgrades pytorch without a matching lietorch build, imports will fail with undefined-symbol errors from lietorch_backends.
  • The current working combination is driven by pyproject.toml/pixi.lock; avoid changing pytorch, libtorch, torchvision, or lietorch independently.
  • torch_scatter was intentionally removed from the runtime dependency set and replaced with local scatter helpers implemented with native PyTorch ops in dpvo/scatter_utils.py.
  • This was not a cleanup preference. It was a compatibility decision required to move onto the newer PyTorch/CUDA stack needed by the prebuilt lietorch package and the current 5090-tested environment.
  • In practice: reintroducing torch_scatter means re-checking wheel availability and ABI compatibility against the exact pytorch/libtorch/CUDA combination in this repo. Do not assume a PyPI or PyG wheel will be compatible just because it exists for a nearby Torch/CUDA version.
  • That torch_scatter replacement is a narrow compatibility workaround for the current app/demo path and has not been broadly validated outside this workflow yet.
  • The package still builds its own CUDA extensions (dpvo._cuda_corr and dpvo._cuda_ba) locally through the _build-dpvo-cuda-kernels task, which runs automatically as a depends-on step of dpvo-demo, dpvo-app, and dpvo-eval-euroc. You can also build them directly with pixi run -e dpvo --frozen _build-dpvo-cuda-kernels.
  • Example assets and checkpoints are now fetched through hf download, not huggingface-cli.
  • pixi run -e dpvo --frozen dpvo-demo has been validated on an RTX 5090 with the current lockfile.
  • Rerun and GUI flows require a valid display session. In headless shells, Rerun will fail unless DISPLAY/XAUTHORITY are set.

Demo

Hosted Demos can be found in either lightning studio or huggingface spaces

Open In Studio

To run the full demo pipeline (from the monorepo root):

pixi run -e dpvo --frozen dpvo-demo

To launch the Gradio web UI:

pixi run -e dpvo --frozen dpvo-app

Look in the root pixi.toml file to see exactly what each command does under [feature.dpvo.tasks].

Acknowledgements

Original Code and paper from DPVO

@article{teed2023deep,
  title={Deep Patch Visual Odometry},
  author={Teed, Zachary and Lipson, Lahav and Deng, Jia},
  journal={Advances in Neural Information Processing Systems},
  year={2023}
}