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
- Ubuntu 16.04 or 18.04
- OpenCL C++ headers, version 2.0
- OpenCL runtime, minimum version 1.1
- PCL (Point Cloud Library)
- unzip and wget (to download the dataset)
To install PCL, Eigen3 and CMake, run the script as root:
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;
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
Standard CMake build is carried out by the script:
to download (from
rimlab.ce.unipr.it) and decompress the test dataset into the
About 7 GB will be downloaded. You will need about 30 GB of free disk space.
Running the example
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.
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.