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)
pyfusion is in your