A streamlined implementation of DPVO (Deep Patch Visual Odometry). Using Rerun viewer, Pixi and Gradio for easy use.
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- This package uses the prebuilt
lietorchpackage from Pixi instead of building the vendored copy in-tree. lietorchis ABI-coupled to the exact PyTorch/libtorch build. Ifpixiupgradespytorchwithout a matchinglietorchbuild, imports will fail with undefined-symbol errors fromlietorch_backends.- The current working combination is driven by
pyproject.toml/pixi.lock; avoid changingpytorch,libtorch,torchvision, orlietorchindependently. torch_scatterwas intentionally removed from the runtime dependency set and replaced with local scatter helpers implemented with native PyTorch ops indpvo/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
lietorchpackage and the current 5090-tested environment. - In practice: reintroducing
torch_scattermeans re-checking wheel availability and ABI compatibility against the exactpytorch/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_scatterreplacement 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_corranddpvo._cuda_ba) locally through the_build-dpvo-cuda-kernelstask, which runs automatically as adepends-onstep ofdpvo-demo,dpvo-app, anddpvo-eval-euroc. You can also build them directly withpixi run -e dpvo --frozen _build-dpvo-cuda-kernels. - Example assets and checkpoints are now fetched through
hf download, nothuggingface-cli. pixi run -e dpvo --frozen dpvo-demohas 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/XAUTHORITYare set.
Hosted Demos can be found in either lightning studio or huggingface spaces
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].
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}
}
