⑴Meshroom是一款功能强大简单易用的三维重建软件,使用这款软件用户可以进行简单便捷的三维模型设计制作,可以打开本地项目对模型进行调整重建,该软件基于AliceVision摄影测量计算机视觉框架设计,拥有完善的三维模型设计辅助工具,具备专业的三维模型重建解决方案,可帮助用户解决各种模型重建问题;Meshroom界面简洁美观操作简单便捷,软件绿色安全免费开源,具有极强的兼容性,支持所有主流操作系统运行,通过该软件可以进行专业便捷的三维建模项目创建和设计,非常简单方便,有需要的朋友可以下载使用。
⑵内部摄像机参数可以从棋盘的多个视图中进行校准
⑶缩小图像。默认值为.
⑷基于SfM结果,我们可以执行摄像机定位并检索D重建场景中动画摄像机的运动
⑸本地化新图像(低,中,正常,高,超时为特征提取器预设
⑹装备的每个摄像机的视频文件路径,图像序列文件夹或文本文件
⑺检索SfM已解析的所有摄像机的每个像素的深度值。
⑻从图像中提取特征,以及这些特征的描述符。它将根据您提取的特征类型来更改文件扩展名。
⑼避免阴影和反射以及透明物体
⑽确保可以从各个角度拍摄照片
⑾避免在场景或背景中移动物体
⑿可对模型角度进行自定义调整
⒀内置多种便捷模型设计工具点击即可使用
⒁以不同的模式拍摄多次,不会留下任何盲点
⒂步骤 –图像采集
⒃拍摄质量是该过程中最重要和最具挑战性的部分。它对最终网格的质量产生巨大影响。
⒄拍摄始终是折衷方案,以适应项目的目标和约束:场景大小,材质属性,纹理质量,拍摄时间,光量,变化的光线或物体,相机设备的质量和设置。
⒅主要目标是获得清晰的图像,而没有运动模糊和深度模糊。因此,应使用三脚架或较快的快门速度来避免运动模糊,减小光圈(高f值以获得较大的景深,并减小ISO以最大程度地减少噪点。
⒆第步– Meshroom概念和UI概述
⒇网状室被认为可以解决两个主要用例:
⒈以最少的用户操作轻松地从多个图像中获得D模型。
⒉为高级用户(例如:图形专家,研究人员提供可以修改的解决方案,以适应他们的创意和/或技术需求。
⒊因此,Meshroom依赖于一个节点系统,该系统将所有摄影测量管线步骤公开为带有参数的节点。上方的高级界面使任何人都可以使用Meshroom,而无需进行任何修改。
⒋Meshroom使用者介面
⒌步骤 –基本工作流程
⒍对于第一步,我们将仅使用高级UI。让我们使用“文件>另存为...”将这个新项目保存到我们的磁盘上。
⒎Meshroom计算出的所有数据将最终保存在该项目文件旁边的“ MeshroomCache”文件夹中。请注意,项目是可移植的:您可以随后移动“
⒏.mg”文件及其“ MeshroomCache”文件夹。缓存位置显示在窗口底部的状态栏中。
⒐接下来,我们只需将图像拖放到左侧的“图像”区域中,即可将图像导入该项目。Meshroom会分析其元数据并设置场景。
⒑Meshroom依靠摄像机传感器数据库来确定摄像机内部参数并将它们组合在一起。如果您的图像缺少元数据和/或使用Meshroom未知的设备拍摄,则会显示明确的警告来解释问题。在所有情况下,该过程都将继续,但结果可能会降低。
⒒完成此操作后,我们可以按“开始”按钮并等待计算完成。彩色进度条有助于跟踪过程中每个步骤的进度:
⒓蓝色:提交进行计算
⒔步骤 –可视化并导出结果
⒕通用摄影测量流程可以看作具有两个主要步骤:
⒖SfM:运动结构(稀疏重建
⒗用所有摄像机的姿势(位置和方向和内部校准推断刚性场景结构(D点。
⒘结果是一组带有稀疏点云(Alembic文件格式的已校准摄像机。
⒙MVS:MultiView-Stereo(密集重建
⒚使用“运动结构”中的校准摄像机生成密集的几何表面。
⒛最终结果是一个带纹理的网格(OBJ文件格式以及相应的MTL和纹理文件。
①一旦获得“运动结构”的结果,它就会由Meshroom自动加载。至此,我们可以在“图像”面板(带有绿色相机图标中看到已经成功重建了哪些相机,并可视化了场景的D结构。我们还可以在“图像”面板中选择图像,以在D
②Viewer中查看相应的相机,反之亦然。
③图像选择在“图像”和“ D查看器”面板之间同步。
④D Viewer的互动与Sketchfab的互动非常相似:
⑤单击并移动以围绕视图中心旋转
⑥双击几何体(点云或网格以定义视图中心
⑦备选:Ctrl +单击
⑧中鼠标单击以平移
⑨替代:Shift +点击
⑩向上/向下滚轮放大/缩小
Ⅰ备选方案:Alt +右键单击并向左/向右移动
Ⅱ计算完整个管线后,可使用D Viewer底部的“加载模型”按钮加载和可视化带纹理的D网格。
Ⅲ从D Viewer可视化和访问磁盘上的媒体文件
Ⅳ该过程结束时没有导出步骤:生成的文件已在磁盘上可用。您可以右键单击媒体,然后选择“打开包含的文件夹”以进行检索。通过在“纹理”上执行此操作,我们可以访问包含OBJ和纹理文件的文件夹。
Ⅴ步骤 –后处理:网格简化
Ⅵ现在,让我们看看如何使用节点系统向该默认管道添加新过程。此步骤的目标是使用自动网格抽取创建模型的低多边形版本。
Ⅶ让我们转到“图形编辑器”,然后右键单击空白处以打开节点创建菜单。从那里,我们选择“
ⅧMeshDecimate”:这将在图形中创建一个新节点。现在,我们需要为其提供高多边形网格作为输入。通过单击并将其从MeshFiltering.output拖放到MeshDecimate.input来创建连接。现在,我们可以选择MeshDecimate节点并调整参数以满足我们的需求,例如,将最大顶点数设置为,。要开始计算,请按“开始”主按钮,或者右键单击特定的节点并选择“计算”。
Ⅸ创建一个MeshDecimate节点,连接它,调整参数并开始计算
Ⅹ默认情况下,图形将在开始计算后立即变为只读状态,以避免任何可能损害计划过程的修改。
㈠只需双击D查看器,就可以在D查看器中可视化每个生成D媒体的节点(点云或网格。一旦计算了MeshDecimate节点,就可以这样做。
㈡双击节点以在D查看器中将其可视化。如果尚未计算结果,将在可用时自动将其加载。
㈢Ctrl +单击媒体的可见性切换,以仅显示“
㈣图形编辑器”中的该媒体替代:Ctrl + DoubleClick在节点上
㈤步骤 –重新拓扑后重新纹理化
㈥更改原始的高多边形网格只是创建定制D模型的第一步。现在,让我们看看如何重新构造此几何图形。
㈦让我们回到图形编辑器并执行以下操作:
㈧右键单击“纹理”节点>“复制”
㈨右键单击连接MeshFiltering.output?Texturing.inputMesh>删除
㈩创建从MeshDecimate.output到Texturing.inputMesh的连接
这样,我们设置了一个纹理化过程,该过程将抽取结果用作输入几何。现在,我们可以根据需要调整“纹理”参数,然后开始计算。
使用第二个“纹理化”节点对抽取的网格进行纹理化
外部重新拓扑和自定义UV
此设置还可以用于在已在Meshroom外部修改的网格上重新投影纹理(例如:重新拓扑/展开。唯一的限制是与原始重建物保持在相同的D空间中,因此不改变比例或方向。
然后,不将其连接到MeshDecimate.output,而是直接从节点属性编辑器的Texturing.inputMesh参数中写入网格的文件路径。如果该网格已经具有UV坐标,则将使用它们。否则,它将基于所选的“展开方法”生成新的UV。
纹理也接受外部网格的路径
步骤 – SfM的草图网格划分
MVS包括为每个摄像机创建深度图,将它们合并在一起并使用大量信息来创建曲面。目前,这些深度图的生成是管道中计算量最大的部分,并且需要启用CUDA的GPU。现在,我们将说明如何直接从SfM输出生成快速且粗糙的网格,以便快速预览D模型。为此,我们将再次使用节点系统。
让我们回到默认管道并执行以下操作:
右键单击DepthMap>从此处复制节点(“ >> ”图标以在图形中创建一个分支,并保持先前的结果可用。
备选方案:Alt +单击节点
选择并删除(右键单击>删除节点或德尔深度图和DepthMapFilter
连接PrepareDenseScene.input?Meshing.input
连接PrepareDenseScene.output?Texturing.inputImages
通过StructureFromMotion设置进行草图网格划分
通过此快捷方式,网格划分直接使用SfM中的D点,从而绕开了计算量大的步骤,并大大加快了管道末端的计算速度。这也提供了在没有Nvidia
GPU的情况下获得草稿网格的解决方案。
缺点是该技术仅适用于可以在稀疏点云中产生足够点的高度纹理化的数据集。在所有情况下,它都无法达到默认管线的质量和精度水平,但是在采集过程中进行预览或在进行照片建模之前获取D测量值非常有用。
步骤 –迭代工作
现在,我们将通过解释到目前为止所总结的知识,来总结如何将其用于迭代工作并从数据集中获得最佳结果。
.首先计算和分析动态结构
这是在开始其余过程之前检查重建是否可能成功的最佳方法(在StructureFromMotion节点上单击鼠标右键>计算。重建摄像机的数量以及稀疏点云的长宽比/密度都是很好的指标。在管道的早期阶段,几种策略可以帮助改善结果:
通过在FeatureExtraction节点上将“ Describer Preset”设置为“ high”(对于小型数据集甚至是“
ultra”,从输入图像中提取更多关键点。
通过在FeatureExtraction,FeatureMatching和StructureFromMotion节点上的“描述者类型”中检查“
akaze”来提取多种类型的关键点。
.使用SfM中的草图网格划分来调整参数
通过提供密集重构的快速预览,对SfM输出进行网格划分还可以帮助配置标准网格划分过程的参数。让我们来看这个例子:
使用默认参数,我们可以从Meshing预览到重建区域包含了我们真正不需要的部分环境。通过增加“
SfM空间估计的最小观测角度”参数,我们排除了强角度约束(Meshing不支持的点。这导致在过程结束时没有背景元素的较窄区域(Meshing与默认Meshing。
.试验参数,创建变体并比较结果
节点系统的主要优点之一是能够在管道中创建变化并进行比较。无需更改已经计算出的节点上的参数并使该参数无效,我们可以复制它(或整个分支,处理此副本并比较变化以保持最佳版本。
除了本教程已经介绍的内容之外,Meshroom Wiki上还详细介绍了用于提高每个步骤的精度和性能的最有用的参数。
步骤 –在Sketchfab上上传结果
Meshroom尚未提供向Sketchfab的导出工具,但是结果全部为标准文件格式,可以使用Sketchfab
Web界面轻松上传。我们的工作流程主要包括以下步骤:
抽取网格空间中的网格以减少多边形的数量
如果需要,在外部软件中清理此网格(例如,删除背景元素
重新整理清理过的网格
将模型和纹理上传到Sketchfab
您可以在此处和我们的Sketchfab页面上看到来自社区的一些D扫描
可视化:新的可视化模块的特征提取。公关新QtAliceVision
支持原始图像文件。
纹理:大大提高纹理质量。
纹理:速度的改进。
纹理:添加对UDIM的支持。
网格化:导出Alembic中的密集点云。
网格化:导出完整的原始密集点云的新选项(所有D点候选点在切割和过滤之前)。
网格化:添加了一个选项来导出每个顶点的颜色数据,网格化可以正确地保留颜色。
基于AliceVision ..。