Windows下使用VisualSFM + CMVS/PMVS +MeshLab进行三维重建


由于参考博文中步骤很清晰,现根据自己重现情况步骤进行整理,其中在meshlab1.3.3版本上会有一些不同。

0、版本信息

环境:64位win10,未安装cuda
软件版本:VisualSFM V0.5.26
     MeshLab 64bit V2016.12

一、软件下载

共需要下载三部分内容:VisualSFM、PMVS/CMVS、MeshLab。
请在这里下载,下载币紧缺的可以留言。

配置方法:将下载好的文件解压,把toolkit\PMVS2\binariesWin-Linux\Win64-VS2010下的所有文件,全部拷贝到与VisualSFM.exe的相同根目录(toolkit\VisualSFM_windows_cuda_64bit)下即可使用,VisualSFM在运算过程中会自动使用PMVS/CMVS。

二、VisualSFM

在VisualSFM文件夹下,双击【VisualSFM.exe】运行,运行窗口如图所示:
VisualSFM软件运行窗口

(1)导入图像序列

点击【按键1】,选择多幅图像。导入成功后,如图所示:
导入图像
左侧窗口内显示导入图像缩略图,右侧的Log窗口,显示程序运行信息。(如果有报错,也会在该窗口显示。具体错误请参考官方文档)。不支持tiff格式图像,导入前需要进行图像格式转换成jpg等。

(2)特征点提取及匹配

单击【按键2】,会对每幅图像进行特征点提取,同时会在图像文件夹下生成特征点以及特征点匹配文件。所以对同一张图,特征点提取只用提取一次,很大节省运算时间。

(3)稀疏重建

单击【按键3】,则开始稀疏重建。旨在恢复出已匹配特征点的三维坐标和相机的姿态信息。
稀疏重建
左侧主窗口中,即为恢复出的特征点以及相机的空间位置,左键可拖拽,右键可旋转。

(4)稠密重建

单击【按键4】,弹出保存文件窗口,选择保存路径及文件名,在此文件名设置为box。
在保存路径下会生成box.0.ply和box.nvm文件和box.nvm.cmvs文件夹:
其中,box.nvm.cmvs\00(这里有可能不是00而是其他数字)文件夹下的centers-0000.ply等文件保存着重建后相机坐标文件,box.nvm.cmvs\00\models文件夹下保存着option-0000.ply文件,也就是稠密点云。当场景比较大的时候会保存不止一个文件,centers文件与option文件的编号是对应的。
此过程所需时间较长。

三、MeshLab表面重建

很多博客上在这一步都是使用旧版本,运行速度比较慢,容易闪退,并且得到的效果也不太理想。所以下载了新版本,在使用过程以及运行结果上都有不错的体验,以下是新版本(2016.12版本)的使用流程记录。
MeshLab需要安装,按照默认设置安装即可。

(1)导入稀疏点模型

打开【MeshLab】,窗口如图所示。如果按键5的小窗口未显示,则需要单击【按键2】。
MeshLab运行界面
点击【按键1】打开工程文件,即上一步保存的box.nvm.cmvs\00文件夹下的【bundle.rd.out】文件,随后弹出的窗口需要选择同一目录下的【list.txt】文件。
导入成功后,如若未显示,则单击【按键5】即可显示稀疏点。

(2)导入稠密点模型

在菜单栏中File–》Import Mesh,选择稠密点云文件,文件路径为【box.nvm.cmvs\00\models\option-0000.ply】:
导入稠密点模型
可以用玫红色框中的按钮,调整显示的模型及其显示状态。

(3)表面重建

首先需要选中稠密模型,在菜单栏中,Filters–》Point Set–》Smooths normals on a point sets,Number of neigbors使用默认的10即可,对点集法向进行平滑。
在这里插入图片描述
然后,Filters–》Remeshing,Simplification and Reconstruction–》Screened Poisson Surface Reconstruction,使用默认参数后,会生成Poisson mesh模型。
在这里插入图片描述
后面需要对表面模型进行优化:
选中Poisson mesh模型,Filters–》Selection–》Select faces withedges longer than,其中显示为红色的,即为需要去除的部分。然后单击【按键4】即粉红色框中的按键,即可删除。
在这里插入图片描述
同样,Filters->Selection-> Select Non-Manifold edges,修复流型边缘。同上,选中然后删除。

(4)参数化和纹理投影

在菜单栏中,Filter->Texture-> Parameterization + texturing from registered rasters,使用默认参数后,可以得到最终结果。
注意在观察时,需要隐藏其他模型,并且采用填充的方式显示。
在这里插入图片描述

参考博文

【1】https://blog.csdn.net/moneyhoney123/article/details/78454837
【2】https://www.it610.com/article/5937530.htm

  • 13
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 59
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 59
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值