Metadata-Version: 2.4
Name: extrinterp
Version: 2.2.2
Summary: Just a simple camera interpolator for Gaussian Splatting framework.
Author-email: yindaheng98 <yindaheng98@gmail.com>
License: MIT License
        
        Copyright (c) 2024 Project VVStreams
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/yindaheng98/ExtrinsicInterpolator
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gaussian-splatting
Provides-Extra: visualizer
Requires-Dist: open3d; extra == "visualizer"
Dynamic: license-file

# Extrinsic Interpolator

Just a simple camera interpolator for [Gaussian Splatting](https://github.com/yindaheng98/gaussian-splatting) framework.

## Install

Install from PyPI:

```sh
pip install extrinterp
pip install "extrinterp[visualizer]"
```

Install from source for development:

```sh
pip install --upgrade --target . --no-deps git+https://github.com/yindaheng98/gaussian-splatting.git@master --no-build-isolation
pip install --upgrade --target . --no-deps .
pip install open3d
```

`open3d` is only needed for the visualizer tools. It is also available through the optional dependency:

```sh
pip install ".[visualizer]"
```

## Render Interpolation

```sh
python -m extrinterp.renderer.interpolator -s data/truck -d output/truck -i 30000 --load_camera output/truck/cameras.json --interp_n 300 --interp_window_size 3 --use_intrinsics dict(image_width=1600,FoVx=1.4749,image_height=1200,FoVy=1.1990)
```

## Visualize Interpolation

```sh
python -m extrinterp.visualizer.interpolator -s data/truck --load_camera output/truck/cameras.json --interp_n 300 --interp_window_size 3
```

This shows the sorted input camera poses and the interpolation output in Open3D.

## Visualize Prediction

```sh
python -m extrinterp.visualizer.predictor -s data/truck --load_camera output/truck/cameras.json --update_interval 10 --predict_n 6 --integration_step 0.01 --smoothing_window 30
```

This uses `ConstantAngularAccelerationExtrinsicPredictor` on the sorted input camera poses. The black line is the ground truth path, and each orange branch is a prediction from one update point.
