【openMVG+openMVS】手机拍照重建三维场景

本文详细指导如何在Ubuntu18.04环境下配置CMake3.20.x和GCC/G++9,包括openMVG结构从运动和openMVS多视图立体的安装。重点介绍了使用openMVG进行SfM重建的步骤,包括图像预处理、内参设置、数据格式转换和openMVS的重建过程,最终展示了良好重建效果。
摘要由CSDN通过智能技术生成

环境配置

测试环境ubuntu18.04 cmake3.20.x   gcc/g++ 9

首先安装openMVG (用于structure from motion)

https://github.com/openMVG/openMVG/blob/master/BUILD.md

然后安装openMVS(Multi view stereo)

 Building · cdcseacave/openMVS Wiki · GitHub

实操环节

1.进入openMVG的build后的文件夹

cd xxx/openMVG/build/software/SfM

2.使用openMVG的重建管线脚本

python SfM_GlobalPipeline.py [full path image directory] [resulting directory]

注意:一般拍摄图像中会有相机的参数信息,OpenMVG将尝试检索图像的像素焦距。如果没有,在 Scene Initialization stage我们可以使用-f X * 1.2 提供一个近似焦距,其中X = Max(image <Width, Height>)

此处可以修改脚本SfM_GlobalPipeline.py 里面的这一行

pIntrisics = subprocess.Popen( [os.path.join(OPENMVG_SFM_BIN, "openMVG_main_SfMInit_ImageListing"),  "-i", input_dir, "-o", matches_dir, "-d", camera_file_params,"-f","你的近似像素焦距"] )

初次运行可以使用 sceaux castle数据集进行尝试

GitHub - openMVG/ImageDataset_SceauxCastle: Image of "Chateau de Sceaux", Sceaux castle. France. Photographer: Copyright 2012 Pierre MOULON

在尝试自己采集的数据集时,按照示例的数据集的方式把图片放到一个文件夹里就好,有内参的写一个K.txt文件标定内参,没有的可以不写

 拍摄数据集时有一些注意事项:

1.场景特征要足够丰富,如果你想重建某个物体,这个物体最好不要是纯色的或者是大范围纯色的,否则图片匹配的时候容易失败(博主之前尝试拍客厅 玩具熊都失败了,因为纹理太少匹配失败)

2.拍摄的时候每次移动镜头的幅度和角度不要太大,移动幅度太大的地方图片容易匹配不上,没有匹配上的图片对于重建是没有作用的

3.使用openMVG的工具进行数据格式转换scene.mvs包含了位置姿态和图片

openMVG_main_openMVG2openMVS -i sfm_data.bin -o scene.mvs -d scene_undistorted_images

4.使用openMVS完成重建

cd ~/openMVS/make/bin     #切入openMVS可执行文件的文件夹

./DensifyPointCloud scene.mvs   #稠密点云重建

./ReconstructMesh scene_dense.mvs   #表面重建

./TextureMesh scene_dense_mesh_refine.mvs  #表面贴图

最后运行结果:

重建效果还是相当好的,鞋子的纹理和凹凸细节都被恢复出来了~

 

openMVG和openMVS是两个用于计算机视觉和三维重建的开源工具。openMVG用于生成稀疏点云,而openMVS用于进一步处理这些点云并生成稠密点云。 在配置openMVS和openMVG时,你可以按照官方提供的步骤进行操作。你提供的参考链接中包含了在Ubuntu 18.04上配置openMVS和openMVG的详细说明。\[1\] 在使用openMVS之前,你需要先生成openMVG生成的稀疏点云。然后,你可以使用openMVS的终端工具对点云进行处理。这些终端工具通常位于"/usr/local/bin/OpenMVS"目录下。你可以使用绝对路径来调用这些工具。例如,使用终端工具"DensifyPointCloud"可以建立稠密图。命令示例为: /usr/local/bin/OpenMVS/DensifyPointCloud dataset/eglise/result/out_Incremental_Reconstruction/scene.mvs \[3\] 如果你在使用过程中遇到问题,你可以参考openMVS的GitHub页面上的问题列表,可能会有其他用户遇到类似的问题并提供了解决方案。\[2\] 希望这些信息对你有帮助!如果你有任何其他问题,请随时提问。 #### 引用[.reference_title] - *1* *3* [openMVG+openMVS对数据集的详细重建步骤!避坑!!!](https://blog.csdn.net/vanilla_an/article/details/115334413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [使用ipad拍出来的相片利用openmvg+openmvs进行三维重建](https://blog.csdn.net/cangqiongxiaoye/article/details/123412689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值