New!
The test paths and results images from the project video are now available for download! The output images were generated using the publicly available datasets above in the following scenes: Creepy Attic, Dorm Room, Museum and Reading Corner. These paths are stored using the Bundler file format and can be opened with new versions of MeshLab.
Download them here (607 MB).
===========================================================================
==== Scalable Inside-Out Image-Based Rendering - Dataset Release ====
==== Peter Hedman, Tobias Ritschel, George Drettakis, Gabriel Brostow ====
==== SIGGRAPH Asia 2016 ====
===========================================================================
Structure-from-Motion is ambiguous with respect to orientation and scale. This means
that our SfM reconstructions do not have consitent scales and up-vectors. We automatically
compute scale from the (metric) RGB-D images from the depth scanner. For easier navigation,
we manually estimated the up vector forward vector in the scene.
While we store our depth maps as 16-bit PNGs with a millimeter scale, everything else
(all the meshes and the camera poses) live in the (arbitrary) coordinate space produced
by the SfM tool.
Use the following code to convert load a depth map with the scale of the SfM reconstruction:
// mm_to_sfm can be found in parameters.txt
cv::Mat load_depth_map(const std::string& path, float mm_to_sfm) {
static const float MAX_16BIT_VALUE = 65535.f;
cv::Mat input = cv::imread(path);
cv::Mat output;
input.convertTo(output, CV_32F, mm_to_sfm / MAX_16BIT_VALUE);
return output;
}
==========================================
== Scene parameters (in parameters.txt) ==
==========================================
estimated_up : Aproximate up vector expressed in SfM coordinates.
estimated_forward : Approximate forward vector expressed in SfM coordinates.
mm_to_sfm : Scaling factor which converts from a millimeter scale to the scale
Note that the up and forward vectors are not necessary. However, they are convenient
if you want the horizon to be correct when you're navigating the scene.
================
== Input data ==
================
Input_Data\Camera_Images_High_Res\*.jpg : Our input images after pre-processing
(cropped, denoised, and white-balanced).
Input_Data\RGBD_Scan.oni : The complete RGB-D scan, stored in the
OpenNI file format.
Input_Data\RGBD_Scan_As_Images\color-*.jpg : Color images extracted the RGB-D scan.
Input_Data\RGBD_Scan_As_Images\depth-*.png : Depth images extracted the RGB-D scan,
stored in millimeters as 16-bit PNGs.
Note that the color and depth videos from the RGB-D sensor are *NOT SYNCED*. To overcome
this, we only extracted color images that have a corresponding depth frame (within 60 ms).
========================
== SfM reconstruction ==
========================
We store camera poses for both the RGB-D images and the digital camera images in the NVM
file format, which can be read by VisualSFM (http://ccwu.me/vsfm/).
SfM\Input\Camera_Images_Low_Res\*.jpg : Input images downscaled by 4x,
to conserve memory and speed up
reconstruction.
SfM\Input\RGBD_Scan_As_Images_Subsampled\color-*.jpg
SfM\Input\RGBD_Scan_As_Images_Subsampled\depth-*.png : We subsample the RGB-D scan to
fewer than 500 images. This also
speeds up reconstruction.
SfM\Output\camera_poses.nvm : The camera poses for both the RGB-D images and
the digital camera images. Stored as an NVM file.
SfM\Output\images\color-*.jpg : The color components of the RGB-D images,
after after correcting for radial distortion.
SfM\Output\images\*.jpg : The digital camera images, after correcting for
radial distortion.
===========================
== Global reconstruction ==
===========================
Global_Reconstruction\Fused_Point_Cloud_From_RGBD_Images.ply : All the RGB-D images fused
into a point cloud with
colors and normals. Stored
as PLY files (binary).
Global_Reconstruction\Fused_Mesh_From_RGBD_Images.ply : A dense mesh reconstructed
from the point cloud. Stored
as PLY files (binary).
Note that both of these reconstructions use the same coordinate space as the
SfM reconstruction above. We use Screened Poisson Surface Reconstruction
(http://www.cs.jhu.edu/~misha/Code/PoissonRecon/Version5/)
to convert the point cloud into a dense mesh.
Both reconstructions can be loaded with e.g. MeshLab (http://www.meshlab.net/).
=============================
== Per-view reconstruction ==
=============================
Per_View_Reconstruction\Depth_Maps_For_Camera_Images\*.png : Our refined depth maps for
the digital camera images.
Stored in millimeters as
16-bit PNGs.
Per_View_Reconstruction\Meshes_For_Camera_Images\*.ply : Our local meshes for
the digital camera images.
Stored as PLY files (ASCII)
with normals and texture
coordinates.
Note that the meshes live in the SfM coordinate space also used by the global reconstruction.
The PLY meshes can be loaded with e.g. MeshLab (http://www.meshlab.net/).