@inproceedings{firman-cvpr-2016,
author = {Michael Firman and Oisin Mac Aodha and Simon Julier and Gabriel J Brostow},
title = {{Structured Completion of Unobserved Voxels from a Single Depth Image}},
booktitle = {Computer Vision and Pattern Recognition (CVPR)},
year = {2016}
}
The tabletop dataset can be downloaded from:
https://www.dropbox.com/s/bqhub295475najw/voxlets_dataset.zip?dl=0
This is a 395MB zip file. You will have to change some of the paths in src/pipeline/real_data_paths.py
to the location you have extracted the dataset to.
The voxel regions used to evaluate each of the scenes can be downloaded from here:
https://www.dropbox.com/s/x8xc27jqbvqoal9/evaluation_regions.zip
An example iPython notebook file loading a ground truth TSDF grid and plotting on the same axes as a depth image is given in src/examples/Voxel_data_io_example.ipynb
The code is roughly divided into three areas:
src/common/
is a Python module containing all the classes and functions used for manipulation of the data and running of the routines. Files included are:
images.py
- classes for RGBD images and videoscamera.py
- a camera class, enabling points in 3D to be projected into a virtual depth image and vice versamesh.py
- a class for 3D mesh data, including IO and marching cubes conversionvoxel_data.py
- classes for 3D voxel grids, including various manipulation routines and ability to copy data between grids at different locations in world spacecarving.py
- classes for reconstructing 3D volumes from extrinsicly calibrated depth images.features.py
- classes for computing normals and other features from depth imagesrandom_forest_structured.py
- structured RF classscene.py
- class which contains a voxel grid and one or more images with corresponding coordinate frames.voxlets.py
- class for storing and predicting voxlets, and for doing the final reconstruction of the output voxel grid.src/pipeline/
- Contains scripts for loading data, performing processing and saving files out.
src/examples/
- iPython notebooks containing examples of use of the data and code.
I have run this code using Python 2 on a fairly up-to-date version of Anaconda on Ubuntu 14.04. If you have a newer version of scipy, you will need to install weave seprately, which has been moved to its own project.
Navigate to src/pipeline
>> python 06_compute_pca.py
>> python 08_extract_all_voxlets.py
>> python 09_train_forest.py
>> python 10_predict.py
>> python 11_render.py
Navigate to src/pipeline
>> python 06_compute_pca.py training_params_nyu_silberman.yaml
>> python 08_extract_all_voxlets.py training_params_nyu_silberman.yaml
>> python 09_train_forest.py training_nyu_silberman.yaml
>> python 10_predict.py testing_params_nyu_silberman.yaml
>> python 11_render.py testing_params_nyu_silberman.yaml