学习内容:
open3D+Python+RGBD 室内场景三维重建
主要步骤:
该系统具有4个主要步骤:
步骤 | 程序 |
---|---|
1 | make_fragments 建立局部几何表面 |
2 | register_fragments 全局配准 |
3 | refine_registration 局部配准 |
4 | integrate_scene 生成网格模型 |
详解:
第1步 :
reconstruction_system_make_fragments
:建立局部几何表面(fragments)来自输入RGBD序列的短子序列,如每100 frames变为1 fragment ;3000 frames 有30 fragments。这部分使用
:ref:
/ tutorial / pipelines / rgbd_odometry.ipynb
,
:ref:
/ tutorial / pipelines / multiway_registration.ipynb
,
:ref:
/ tutorial / pipelines / rgbd_integration.ipynb
。
在RGBD图像上,使用OpenCV ORB 稀疏匹配,然后执行5点RANSAC估计粗略对齐;
使用姿势图进行多路配准,为了提高效率,仅使用关键帧,并用TSDF表示几何表面。
folder_fragment : fragments/
template_fragment_posegraph : fragments/fragment_%03d.json
template_fragment_posegraph_optimized : fragments/fragment_optimized_%03d.json
template_fragment_pointcloud : fragments/fragment_%03d.ply
第2步 :
reconstruction_system_register_fragments
:这些 fragments是在全局空间中对齐,并进行闭环检测优化姿态。这部分使用
:ref:
/ tutorial / pipelines / global_registration.ipynb
,
:ref:
/ tutorial / pipelines / icp_registration.ipynb
,
:ref:
/ tutorial / pipelines / multiway_registration.ipynb
。
在点云上,相邻帧使用多尺度ICP; 否则使用FPFH+RANSAC或 FGR进行快粗配准.
folder_scene : scene/
template_global_posegraph : scene/global_registration.json
template_global_posegraph_optimized : scene/global_registration_optimized.json
第3步 :
reconstruction_system_refine_registration
:局部更紧密地对齐。这部分使用
:ref:
/ tutorial / pipelines / icp_registration.ipynb
,
:ref:
/ tutorial / pipelines / multiway_registration.ipynb
。
在点云上,使用多尺度ICP再次细化
template_refined_posegraph : scene/refined_registration.json
template_refined_posegraph_optimized : scene/refined_registration_optimized.json
template_global_mesh : scene/integrated.ply
template_global_traj : scene/trajectory.log
步骤4 :
reconstruction_system_integrate_scene
:集成RGB-D图像生成网格模型。这部分使用
: ref
/ tutorial / pipelines / rgbd_integration
。
在RGBD图像上,根据内参和外参,使用TSDF对RGBD图像融合.
参数:
Elapsed time (in hⓂ️s)
name : Redwood Dataset: http://redwood-data.org/indoor/dataset.html
path_dataset : RGBD/
path_intrinsic :
max_depth : 5.0
voxel_size : 0.05
max_depth_diff : 0.07
preference_loop_closure_odometry : 0.1
preference_loop_closure_registration : 5.0
tsdf_cubic_size : 4.0
icp_method : point_to_point
global_registration : ransac
python_multi_threading : True
depth_map_type : redwood
n_frames_per_fragment : 100
n_keyframes_per_n_frame : 5
min_depth : 0.3
depth_scale : 1000
- Making fragments 0:00:02.606030
- Register fragments 0:00:00.013032
- Refine registration 0:00:00.009904
- Integrate frames 0:00:00.574462
- Total 0:00:03.203429