No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
CMakeLists.txt
LICENSE
README.md
__init__.py
cyfusion.pyx
fusion.cpp
fusion.cu
fusion.h
fusion_zach_tvl1.cu
gpu_common.h
setup.py

README.md

PyFusion

PyFusion is a Python framework for volumetric depth fusion. It contains simple occupancy and TSDF fusion methods that can be executed on a CPU as well as on a GPU.

To use the code, first compile the native code via

cd build
cmake ..
make

Afterwards you can compile the Cython code via

python setup.py build_ext --inplace

You can then use the fusion functions

import pyfusion

# create a views object
# depthmaps: a NxHxW numpy float tensor of N depthmaps, invalid depth values are marked by negative numbers
# Ks: the camera intric matrices, Nx3x3 float tensor
# Rs: the camera rotation matrices, Nx3x3 float tensor
# Ts: the camera translation vectors, Nx3 float tensor
views = pyfusion.PyViews(depthmaps, Ks,Rs,Ts)

# afterwards you can fuse the depth maps for example by
# depth,height,width: number of voxels in each dimension
# truncation: TSDF truncation value
tsdf = pyfusion.tsdf_gpu(views, depth,height,width, vx_size, truncation, False)

# the same code can also be run on the CPU
tsdf = pyfusion.tsdf_cpu(views, depth,height,width, vx_size, truncation, False, n_threads=8)

Make sure pyfusion is in your $PYTHONPATH.