Skip to content

Surfel-based 3D reconstruction algorithm for the boundary between known and unknown space

Notifications You must be signed in to change notification settings

RMonica/surfels_unknown_space_example

Repository files navigation

Surfels Unknown Space Example

Basic example to generate a results for Scenario 1 and Scenario 2, reported in the associated publication:

  • R. Monica and J. Aleotti, "Surfel-Based Incremental Reconstruction of the Boundary between Known and Unknown Space", IEEE Transactions on Visualization and Computer Graphics

Dependencies

  • Ubuntu 16.04 or 18.04
  • OpenCL C++ headers, version 2.0
  • OpenCL runtime, minimum version 1.1
  • PCL (Point Cloud Library)
  • Eigen3
  • CMake
  • unzip and wget (to download the dataset)

To install PCL, Eigen3 and CMake, run the script as root:

  # install_dependencies.sh

OpenCL installation depends on your OpenCL device (preferably an NVIDIA GPU).

If you are using an Intel CPU as OpenCL device, please uncomment the line

  config.opencl_use_intel = true;

in src/surfels_unknown_space_example.cpp to activate a workaround.

Note: This software was not tested on ATI/AMD.

Note: on most systems, after installing the OpenCL runtime, a suitable OpenCL C++ library and headers can be installed with the APT packages ocl-icd-opencl-dev and opencl-clhpp-headers.

Build

Standard CMake build is carried out by the script:

  build.sh

Dataset download

Run

  download_dataset.sh

to download (from rimlab.ce.unipr.it) and decompress the test dataset into the data folder.
About 7 GB will be downloaded. You will need about 30 GB of free disk space.

Running the example

Run

  run.sh

This can take from a few minutes to a few hours, depending on your system.

The following files will be created:

  • data/Scenario_1/output_cloud.pcd: surfel-based boundary for Scenario 1, in PCL PCD format.
  • data/Scenario_1/output_cloud.ply: surfel-based boundary for Scenario 1 as PLY mesh. Surfels are represented by hexagons.
  • data/Scenario_2/output_cloud.pcd: surfel-based boundary for Scenario 2, in PCL PCD format.
  • data/Scenario_2/output_cloud.ply: surfel-based boundary for Scenario 2 as PLY mesh. Surfels are represented by hexagons.

These surfel clouds are shown in the associated publication in Figure 12, top two rows.

The script

  compare.sh

in theory should output the data used to generate the left three columns of Table 2 in the associated publication, for Scenario 1 and 2. Unfortunately, the current parallel implementation of the surfels_unknown_space algorithm is non-deterministic, so actual numbers may vary.

About

Surfel-based 3D reconstruction algorithm for the boundary between known and unknown space

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published