Skip to main content

3D Volumetric Surface Reconstruction using the VDB data structure

Project description

NOTE: The support for this pip pacakge it is still under develpment and therefore might not be so stable.

VDBFusion

This is a small utility library that implement the VDBFusion algorithm, similar to TSDF-based reconstruction pipelines but using a different data-structure(VDB).

Installation

Take a seat and relax, you only need to:

pip install vdbfusion

If this step fails is most likely you have an old version of pip. To fix this, just pip install -U pip

Usage

from vdbfusion import VDBVolume

vdb_volume = VDBVolume(voxel_size=0.1, sdf_trunc=0.3, space_carving=False)

# You need to define your own Dataset.
dataset = Dataset(...)

for scan, origin in dataset:
    vdb_volume.integrate(scan, origin)

Visualizing the output

Open3D(pip install open3d)

import open3d as o3d
# Extract a mesh from vdbfusion
vertices, triangles = vdb_volume.extract_triangle_mesh()

# Visualize the results
mesh = o3d.geometry.TriangleMesh(
    o3d.utility.Vector3dVector(vertices),
    o3d.utility.Vector3iVector(triangles),
)
mesh.compute_vertex_normals()
o3d.visualization.draw_geometries([mesh])

trimesh(pip install trimesh)

import trimesh

# Extract your map
vertices, triangles = vdb_volume.extract_triangle_mesh()

mesh = trimesh.Trimesh(vertices=vertices, faces=triangles)
mesh.show()

Dataset snippet

You Dataset class must only define a __len__ and __getitem__ methods, similar to torch.Dataset:

class Dataset:
    def __init__(self, *args, **kwargs):
        # Initialize your dataset here ..

    def __len__(self) -> int:
        return len(self.n_scans)

    def __getitem__(self, idx: int) -> Tuple[np.ndarray, np.ndarray]:
        # points: np.array (N, 3)
        # origin: np.array(3,), sensor origin on the global coordinate frame.
        return points, origin

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

vdbfusion-0.1.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (749.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (749.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-cp38-cp38-manylinux_2_31_x86_64.whl (820.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.31+ x86-64

vdbfusion-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (749.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (752.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

vdbfusion-0.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (752.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

File details

Details for the file vdbfusion-0.1.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24c2b451ac83a7bfee377feff1551620807960aeb674f2251079de17206ca4c1
MD5 395ed40bca7f489ead6003d7c7988b33
BLAKE2b-256 7fd25d73c40e32a3d80aa80a5b290ee2085f97f1d3adf3336136d2fafb0e3bf3

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6aa1ccaca3b728830335774c6dab83d13fd5382565d34994a4758fd19c8939df
MD5 138a6f1f43979c71dc1321b0c4332200
BLAKE2b-256 ddd4df43e618fdad3778cdb2dd3dced5634abd3d7a1dab113a2e19f08a3af8c6

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bf4e56b24a361f1b0df4e2f7fa95e2f009598f64acf449ec27215efb73e41f9
MD5 ab30df82f5aaa7093abd37defba27f21
BLAKE2b-256 182e2fada7dd6a2410f025957dde3226c87b23e3683544527114e2a58839f0c3

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4fab4233e0d4b65e8b4f5b7b1b6920c8fc36565b266dffc7bcf7accdd02e344d
MD5 ee7f57c6819cd1fda4138338e11123ee
BLAKE2b-256 2172dd79f556bbf7ea2b7734d601bea1bc04f7fbef04ddf0663a4768edaf4d57

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp38-cp38-manylinux_2_31_x86_64.whl.

File metadata

  • Download URL: vdbfusion-0.1.4-cp38-cp38-manylinux_2_31_x86_64.whl
  • Upload date:
  • Size: 820.4 kB
  • Tags: CPython 3.8, manylinux: glibc 2.31+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for vdbfusion-0.1.4-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 29068f3c98971862189871a3349fa43290fedd6a2c087a1a5e989bee815f85c2
MD5 8f05ff4e673ee9bd0e1790f4ad25a907
BLAKE2b-256 330d76bf4f2104f5f3aed97ed11391b73a55e32d285992e5482a4615a3692ce0

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50cc07871c35eb832bf85a7f30d682872763b4c3e7722fdd52ad6a7166295ae2
MD5 7c77cbee70d4ec8491eaa6deefab0b53
BLAKE2b-256 476cd8c30dcd5807e73d3900fde53064b12760223ca100aed4662943a0cc7a2f

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6dfc802146ba32149754acf307c234cd62492f2c0b14e2fffbe51837de9bb3ba
MD5 56d40f9b1e3d1af67e5fd0c2c70c4c2a
BLAKE2b-256 c456f649e4f32d40c3cb01db452d3f19a610f0553ef370a8ce9c4e77d9dd760e

See more details on using hashes here.

File details

Details for the file vdbfusion-0.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vdbfusion-0.1.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 632cd938db40ba121b1633d3553727d6d20cb540716dbb2935c0a2d09e142637
MD5 ac187b9cf416b29cda1bea2d5de235bc
BLAKE2b-256 f08c3685c96c131dfd150c9143c60232252177b58746cad5324c100160293232

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page