Skip to content

Latest commit

 

History

History
165 lines (135 loc) · 11.2 KB

README.md

File metadata and controls

165 lines (135 loc) · 11.2 KB

Shape Completion Benchmark

This directory contains the data for

@article{Stutz2018ARXIV,
    author    = {David Stutz and Andreas Geiger},
    title     = {Learning 3D Shape Completion under Weak Supervision},
    journal   = {CoRR},
    volume    = {abs/1805.07290},
    year      = {2018},
    url       = {http://arxiv.org/abs/1805.07290},
}

Examples of the data.

Data

The data is derived from ShapeNet, KITTI and ModelNet. For ShapeNet, two datasets, a clean dataset and a noisy dataset, were created. On ModelNet, individual datasets for bathtubs, chairs, tables and desks where created as well as a datset for ModelNet10. In each case several resolutions may be available and are offered as download separately. We also provide the watertight (not simplified) as well as the simplified models.

Download links:

If these links do not work anymore, please let us know!

Contained files, for example for resolution 24 x 54 x 24 and SN-clean:

File Description
test_off_gt_5_48x64_24x54x24_clean Test meshes as OFF files, scaled to the corresponding resolutions.
test_txt_gt_5_48x64_24x54x24_clean Test point clouds as TXT files, scaled.
training_inference_off_gt_5_48x64_24x54x24_clean Training meshes as OFF files, scaled.
training_inference_txt_gt_5_48x64_24x54x24_clean Training point clouds as TXT files, scaled.
training_prior_off_gt_5_48x64_24x54x24_clean Meshes as OFF files for training a possible shape prior (if applicable), scaled.
test_filled_5_48x64_24x54x24_clean.h5 Test shapes as occupancy grids, in a tensor of size N x 1 x H x D x W.
test_inputs_5_48x64_24x54x24_clean.h5 Test point clouds as occupancy grids, same size.
test_inputs_ltsdf_5_48x64_24x54x24_clean.h5 Test point clouds as log-truncated distance functions, same size.
test_ltsdf_5_48x64_24x54x24_clean.h5 Test shapes as log-truncated signed distance functions, same size.
test_space_5_48x64_24x54x24_clean.h5 Test free space as occupancy grids, same size.
training_inference_filled_5_48x64_24x54x24_clean.h5 Training shapes as occupancy grids, same size.
training_inference_inputs_5_48x64_24x54x24_clean.h5 Training point clouds as occupancy grids, same size.
training_inference_inputs_ltsdf_5_48x64_24x54x24_clean.h5 Training point clouds as log-truncated distance functions, same size.
training_inference_ltsdf_5_48x64_24x54x24_clean.h5 Training shapes as log-truncated signed distance functions, same size.
training_inference_space_5_48x64_24x54x24_clean.h5 Training free space as occupancy grids, same size.
training_prior_filled_5_48x64_24x54x24_clean.h5 Shapes as occupancy grids for training a possible shape prior, same size.
training_prior_ltsdf_5_48x64_24x54x24_clean.h5 Shapes as log-truncated signed distance functions for training a possible shape prior, same size.

The same files are provided for the ModelNet datasets. For KITTI, we provide (for the same resolution):

File Description
bounding_boxes_txt_training_padding_corrected_1_24x54x24 Training point clouds as TXT files, scaled to [0,24] x [0,54] x [0,24].
bounding_boxes_txt_validation_gt_padding_corrected_1_24x54x24 Validation point clouds as TXT files, same scale.
velodyne_gt_txt_training_padding_corrected_1_24x54x24 Training ground truth point clouds as TXT files, same scale.
velodyne_gt_txt_validation_gt_padding_corrected_1_24x54x24 Validation ground truth point clouds as TXT files, same scale.
bounding_boxes_training_padding_corrected_1_24x54x24.txt List of training bounding boxes as TXT files, each bounding box being described by (width_x, height_y, depth_z, translation_x, translation_y, translation_z, rotation_x, rotation_y, rotation_z), not scaled.
bounding_boxes_validation_gt_padding_corrected_1_24x54x24.txt List of validation bounding boxes as above.
input_training_padding_corrected_1_24x54x24_f.h5 Training point clouds as occupancy grids, as 24 x 54 x 24 resulting in a N x 1 x 24 x 54 x 24 tensor.
input_validation_gt_padding_corrected_1_24x54x24_f.h5 Validation point clouds as occupancy grids, same size.
input_lsdf_training_padding_corrected_1_24x54x24_f.h5 Training point clouds as log distance functions, same size.
input_lsdf_validation_gt_padding_corrected_1_24x54x24_f.h5 Validation point clouds as log distance functions, same size.
part_space_training_padding_corrected_1_24x54x24_f.h5 Training free space as occupancy grids, same size.
part_space_validation_gt_padding_corrected_1_24x54x24_f.h5 Validation free space as occupancy grids, same size.
real_space_statistics_training_prior.h5 Occupancy probabilities computed on the shape prior training set; indicates the probability of a voxel being occupied.

Note that for higher resolutions, the point clouds may not be provided in TXT format. However, these can easily be obtained by manually scaling the low resolution ones.

Tools

Some tools for I/O can be found in tools/. Tools for visualization can be found in davidstutz/bpy-visualization-utils.

The tools are mostly self-explanatory, but include:

  • Python:
    • Conversion between OFF and OBJ formats.
    • Conversion between our TXT point cloud format and PLY format.
    • I/O code for KITTI's bounding boxes (note that the format is not the same as used for KITTI).
  • LUA:
    • Example for HDF% I/O.
  • C++:
    • Examples for reading OFF, HDF5 and TXT point clouds files.

Date Generation

The code provided in code/ is an untested version of the data generation code.

The code should be self-explanatory, but may be tricky to understand in the beginning. The C++ tools can be compiled with CMake, given that Boost, Eigen3, HDF5 and JSONCpp are installed. For rendering griegler/pyrender is required. The easiest way to get started is to look into the configuration files outlining the individual steps of the data pipeline and then look into the corresponding python scripts.

Note that the data provided above only represents the final results of the full pipeline. You need to download the original datasets yourself.

License

Note that the data is based on ShapeNet [1], KITTI [2], ModelNet [3] and Kinect [4]. Check the corresponding websites for licenses. The derived benchmarks are licensed as CC BY-NC-SA 3.0.

The code includes snippets from the following repositories:

The remaining code is licensed as follows:

Copyright (c) 2018 David Stutz

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.