3D 扫描

操作指南:对环境进行 3D 扫描的简单方式

在这份操作指南中,我们会分享一种简单的方式,您可以对环境进行 3D 扫描,然后访问并与朋友和家人共享该环境。这个过程将涉及多个步骤和软件,但相对简单易懂。您需要:

  • 英特尔® 实感™ 深度摄像头 D415、D435、D435i 或 L515
  • 微软* Surface 平板电脑、Windows* 笔记本电脑或兼容的 Android* 设备
  • Dot3D Pro*
  • Meshlab*
  • Blender*
  • Firefox*
  • 可选配 – VR 耳机 

第一步:创建扫描

目前有许多 3D 扫描应用程序能够与英特尔实感深度摄像头配合使用,但我们这里选择使用 Dot3D Pro,因为它使用简单,能够快速做好扫描并导出文件。在本次演示中,我们使用的是 Microsoft Surface Pro 4(第六代),但任何兼容 Dot3D Pro 的设备都可以使用。使用平板电脑可以使扫描过程更轻松,但也可以使用有足够长的 USB 线缆的笔记本电脑甚至台式机。

将摄像头连接到平板电脑后(对于这款应用程序,必须使用 USB 3 线缆和端口),我们打开软件,并在设置窗口选中这个软件。在那里,我们可以选择创建新扫描,然后只需选中“扫描”图标即可开始扫描。创建扫描 Dot3D Pro 随着您的移动,摄像头馈入的像素会变成白色、黄色和绿色。绿色表示该区域已完成扫描。对于完全水密扫描,您应该多花些时间在小细节处移动,填满所有缝隙。选择位置时,您可以选择户外空间,但请避免阳光直射,因为生成的模型可能会看起来不一致,或者在空间扫描的准确度方面可能会出现一些问题。如果您使用 L515 进行扫描,则只能扫描室内空间以获得最佳效果。从我们的扫描中可以看到,扫描亮黑色的桌子时有些问题,这种材料不容易被深度摄像头捕捉到,因此请尽可能避免扫描颜色很深并且反光的物体。Dot3D Pro 扫描过程 当您在空间内移动并尽可能全面扫描时,您还可以使用主机设备上的摄像头拍摄高清 RGB 静态照片,这些照片将与您的扫描位置相关联,如果您打算在例如 Blender 或 Maya 等 3D 软件包中处理该模型,可以将这些照片用作后期参考。

对扫描结果满意后,再次点击扫描按钮即可完成操作。这时你应该优化该模型。这可能需要几分钟,具体时间取决于扫描文件的大小。

优化后,将扫描结果保存为 .ply 文件。

第二步:转换为 OBJ. 格式

PLY 文件是一种点云文件,可直接使用,例如,通过将 PLY 文件上传到 sketchfab,您可以在 VR 中共享或查看扫描文件。然而,由于 PLY 文件相当大,如果您希望在文件处理方面有更大的灵活性,您可能希望将其转换为网格。在这一步中,我们要使用 Meshlab 将 PLY 转换为 OBJ。

打开 Meshlab,前往 File(文件)> Import Mesh(导入网格)。导入您在上一步中导出的 PLY 文件。

显示导出的网格的 Meshlab。

显示已导入网格的 Meshlab。

在这里,我们要运行几项操作,清除点云文件并将它转换为网格。根据文件的外观,您可能需要花一些时间来进行设置,并删除不需要的多余顶点。使用位于工具栏顶部的“选择顶点”按钮,然后用“删除选定的顶点集”工具选择要删除的顶点组。

突出显示这两种工具的清理后的网格。

突出显示这两种工具的清理后的网格。

接下来,前往 Filters(筛选器)> Sampling(采样)  > Poisson disk sampling(泊松盘采样) > On the settings(设置),确保您已选中“Base Mesh Subsampling(基网二次采样)”,并将样本数量更改为几万——我选择了 35,000。这里的数字越高,您最后的网格就越精细。但也不要过高,三角形的数量会影响您最终网格在其他程序和应用程序中的运行方式。在右侧的层菜单中,您现在应该能看到您的原始点云文件和泊松样本。删除原始网格,我们不再需要这些网格。

下一步,请前往 Filters(筛选器)> Point set(点集) > Compute normal for point set(计算点集的法线)。将邻居数改为 16 并运行。这是试图自动确定每个面指向哪个方向。

现在选择 Filters(筛选器)> Remeshing, Simplification and Reconstruction(网格重划、简化和重建)> Surface Reconstruction: Ball Pivoting(表面重建:滚球法)。单击位于“滚球半径”旁边的世界单位框上的向上箭头,它会自动填充一个适当的值。应用,现在我们就用网格取代了点云。如果您不喜欢生成的网格,您可以返回并对参数略作修改,重复这些步骤。

这样我们可以在从 Meshlab 中导出时保留颜色信息,请按以下步骤操作。

运行 Filters(筛选器)>Texture(纹理)>Parametrization: Trivial Per triangle。如果出现错误,请将“三角形间”边界值改为 1。

下一步,运行 Filters(筛选器)>Texture(纹理)>Transfer Vertex color to texture(将顶点颜色转移到纹理)。这一步会要求您保存该项目,请保存。使用建议的名称保存该纹理文件,它将在您的项目名称后增加  _tex.png 后缀。

在同一文件夹中导出以 OBJ 导出。确保勾选所有可用复选框,您会在框内右侧看到您刚刚创建的纹理文件。这种文件类型还可以用在 3D 软件包和游戏引擎(例如 Unity 或 Unreal 等)中。

在这里,我们将从 Meshlab 转移到 Blender(一款开源 3D 编辑器)。

第三步:转换为 GLB

打开 Blender,导入您的 OBJ 文件。如果导入文件后看不到任何东西,请单击位于视口左上角的“View(查看)”,并选中“Sidebar(侧边条)”框。在视口右侧,有一个标记为“View(查看)”的标签。将片段开始和结束参数更改为 0.01 m 和 10000 m。缩放,直到看到您的模型。它可能是上下颠倒的,所以我们需要适当旋转模型,并将它缩小一点。

转换为 GLB

混合器中的模型——左侧突出显示的是“rotate(旋转)”工具,右侧可以看到“View Panel(查看面板)”。

单击模型。在场景左侧,选择“旋转”图标,然后使用不同的定向环,直到您对地面的方向满意为止。在这一步同样将模型缩小,我们可以在下一步将尺寸调整为最终大小,但现在将它缩小至大约 10% 的大小很有帮助。

您可能还注意到,您的模型没有了纹理。在视窗右上方,有一些视口阴影图标。选择“材料预览”,您会看到模型显示颜色。

您还可以花点时间使用 Blender 的编辑工具让您的网格更美观,可以填充空隙,删除多余的面。那里有很多教程可以帮您完成这项操作,因此我们在这里不再赘述。对网格满意后,将它导出为 GLTF 2.0。您实际需要的文件扩展名是 gltf 的二进制版本,.glb。

第四步:导入 Mozilla Hubs

Mozilla hubs 是一个免费平台,可以让您将他人带入您的空间。我们要打造一个全新的房间,导入我们的模型,然后您就能与他人共享这个模型。

打开 Firefox,前往 hubs.mozilla.com。您需要注册一个账户。单击“Create a room(新建房间)”,然后“Choose Scene(选择场景)”。选择“Create a scene with Spoke(用 Spoke 创建一个场景)”。

创建一个新项目,并选择“New Empty Project(新的空白项目)”。

您会看到一个头像代表您的重生点,还会看到一个火山口地形。在左下方的面板中,单击“My assets(我的资产)”。在这里上传您的 .glb 文件,然后通过将其拖放到火山口地形上方的层次结构面板中,将其拖到场景中。以重生点图标和火山口地形为依据,适当缩放场景——我们将网格从其原始尺寸缩放到 0.002。您可以显示或隐藏火山口地形,添加例如光照等其他物体。

导入至 Mozilla Hubs

在层级和视口中显示我们最终场景的 Spoke 窗口,已缩放至适合重生点模型的大小。

满意后,选择“Publish to hubs(发布至中心)”。您的多边形似乎太多了,我们的网格非常详细,因此在移动设备上可能表现不佳。理想情况是,在混合器阶段,我们会将网格缩减到 50,000 个多边形以内,从而获得更好的性能。所有其他性能参数都很好。发布您的场景,选择“view your scene(查看您的场景)”然后“Create a room with this scene(使用此场景创建房间)。”

进入房间后,您可以与他人共享该链接并向他们展示您的扫描。这一流程适用于您使用 Dot3D pro 或其他支持英特尔实感技术的软件扫描的任何点云对象。恭喜!您创建了一个空间,人们可以通过浏览器进入这个空间与您聊天,甚至可以使用 VR 头显。

这是最后一幕场景。当然您可以通过一些工作来进一步优化和改进我们在高质量原始扫描的基础上创建的网格,但花费一些时间和努力后,您可以用这一工作流程创建一些出色的东西。

使用 Dot3D Pro 的最终 3D 扫描环境

可共享的社交 Mozilla Hubs 门户内的最终 3D 扫描环境。

接收最新博文和其他消息。

让我们来讨论一下英特尔实感深度传感摄像头如何增强您的解决方案。

提交此表单,即表示您确认自己已经年满 18 周岁,同意就此业务请求与英特尔分享您的个人信息。您还同意通过电子邮件和电话订阅来随时了解最新英特尔技术和行业趋势。您可以随时取消订阅。英特尔的网站和通讯受隐私声明使用条款的制约。