Plane-Based RGB-D reconstruction of indoor scenes with geometry and texture optimization.
An example of plane partition result of scan copyroom from BundleFusion dataset:
Textured mesh:
Please cite these two papers if you want to use the code and data:
@inproceedings{wang2018plane,
title={[Plane-Based Optimization of Geometry and Texture for RGB-D Reconstruction of Indoor Scenes]},
author={Wang, Chao and Guo, Xiaohu},
booktitle={2018 International Conference on 3D Vision (3DV)},
pages={533--541},
year={2018},
organization={IEEE}
}
(here is PDF) and
@InProceedings{Wang_2019_CVPR_Workshops,
author = {Wang, Chao and Guo, Xiaohu},
title = {Efficient Plane-Based Optimization of Geometry and Texture for Indoor RGB-D Reconstruction},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2019}
}
PlaneRecon pipeline contains 4 programs running in time order:
mesh_partition
: takes as input a dense mesh, partition and then simplify it based on planes, and output simplified mesh with partition.mesh_visibility
: takes as input one mesh and camera poses in some RGB-D frames, compute the visible mesh vertices in each frame;blur_estimation
: estimate image blurriness for color images from a RGB-D sequence;mesh_texture_opt
: takes as input: 1) RGB-D sequence, including color and depth images and camera poses; 2) the simplified mesh from mesh_partition
; 3) visibility data across frames from mesh_visibility
; 4) blurriness of color images from blur_estimation
. Output: final textured obj mesh with optimized geometry and texture.You can use the script run_linux.sh
to run the entire pipeline. Note to modify relevant input parameters.
Each code has its own ReadMe file about usage and compilation. Refer to them for more details.
Dependencies for all programs are:
mesh_visibility
code)mesh_visibility
code)mesh_visibility
code)In linux, simply run build_linux.sh
and it will build all 4 programs.
Will support Windows build soon.
A typical input data for this code can be found from BundleFusion or 3DLite data, which contains reconstructed PLY model and camera pose files for each RGB-D sequence.
This code also supports ICL-NUIM dataset, but the sequence format is slightly different. You need to change it to fit the BundleFusion data format. Refer to run_linux.sh
for more details. Also, if you want to create a dense mesh from ICL-NUIM data or other RGB-D sequence, you can try VoxelHashing.
The folder models
contains result textured meshes used in the paper.
mesh_partition
program needs large amount of memory. For instance, for a mesh with 1M faces, it takes about 20G memory.Source code can be found here: https://github.com/chaowang15/RGBDPlaneDetection
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。