使用这款开源工具探索 3D 扫描

任何人都可以使用 MeshLab(一款开源 LiDAR 点云查看器和编辑器)来体验 LiDAR 的潜力。
36 位读者喜欢这篇文章。
woman on laptop sitting at the window

CC BY 3.0 US Mapbox Uncharted ERG

光探测和测距,更广为人知的名称是 LiDAR,是一种使用激光和 GPS 拍摄 3D 空间照片的方法。这听起来像是科幻小说——我可以想到一些电影中的场景,它们可能在没有意识到的情况下重新构想了这项技术——但这项技术已经存在 50 多年了。

LiDAR 可用于地形测量和考古记录,也可用于获取 3D 打印的源数据。我在参与一部电影制作时接触到它,这部电影需要将一条虚构的(或者说是真实的?)龙与真实的森林和伐木小镇融为一体。

为了让所有这些事物在同一部电影中无缝衔接,数字艺术家们被赋予了使用 3D 模型重建真实存在的树木或建筑物的任务。为了在 3D 建模应用程序中准确地还原真实世界的物体,艺术家们需要基本上描摹真实世界的物体,就像您可能描摹照片以在描图纸上绘制精确的图画一样。与照片不同,3D 建模艺术家使用 LiDAR 扫描,这使他们能够“描摹”物体的所有维度。

任何人都可以使用 MeshLab(一款开源 LiDAR 点云查看器和编辑器)来体验 LiDAR 的潜力。

在 Linux 上安装 MeshLab

MeshLab 在大多数 Linux 发行版中都可通过您的软件包管理器获得。

在 Fedora、Mageia 和类似发行版上

$ sudo dnf install meshlab

在基于 Debian 的发行版上

$ sudo apt install meshlab

我将 MeshLab 用作 Flatpak,并且在 MeshLab.net 上有一个方便的 AppImage 可用。

获取 LiDAR 扫描

LiDAR 设备不易获得,因此除非您正在进行使用 LiDAR 扫描的项目,否则您可能不会有 LiDAR 扫描数据闲置。

然而,OpenHeritage 项目致力于存档具有重要科学和公共利益的扫描数据。该项目拥有蒂卡尔古代遗址、法国、西班牙和意大利的教堂、叙利亚和约旦的宫殿等等的扫描数据,并根据 Creative Commons 许可条款发布。

LiDAR 扫描包含数百万个定义物体的点,因此它们对系统资源要求很高。为了舒适地处理 LiDAR 扫描,预计需要良好的显卡和充足的 RAM。如果您只想浏览扫描数据,Pantheon (10.26301/t9sj-mf53) 数据集出奇地干净,只有 89 MB,仅包含 600 万个顶点。

Pantheon 扫描数据归功于 Gerd Graßhoff、Michael Heinzelmann、Markus Wäfler、Christian Berndt、Jon Albers、Oskar Kaelin、Bernd Kulawik、Ralph Rosenbauer、Nikolaos Theocharis、Michael Lustenberger、Bernhard Fritsch 于 2021 年,并由 Open Heritage 3D 在 CC BY-NC-SA 许可下分发。

下载网格文件后,解压缩以解压.e57文件。

在本文中,术语网格点云数据集指的是同一事物:LiDAR 扫描产生的顶点集合。

MeshLab 界面

当您启动 MeshLab 时,通常没有加载 LiDAR 扫描数据。要导入一个,请转到“文件”菜单并选择“导入网格”或按键盘上的 Ctrl+I

选择您的网格。

您可以通过单击并拖动网格原点周围出现的轴手柄(MeshLab 术语中的轨迹球)来调整点云的视图。

使用滚轮放大和缩小点云。向下滚动放大,向上滚动缩小。不要将其与缩放混淆。轨迹球不会随您的网格而变化,因此点云看起来只是放大或缩小,但窗口底部的面板显示您的点数没有改变。

Mesh information

(Seth Kenlon, CC BY-SA 4.0)

MeshLab 窗口的顶部工具栏显示您的主要编辑工具。第一批工具是用于加载、保存和导出网格的文件操作。第二批是显示选项,您可以使用它们来更改查看数据集的方式:您可以仅查看点云周围的边界框、云中的点、仅查看线框、网格背景层、轴标签等等。工具栏的其余部分包含用于编辑网格的工具。

当未选择任何编辑工具时,您处于查看模式。

变换点云

MeshLab 不是 3D 建模应用程序,尽管在通用界面中有很多相似之处。但是,MeshLab 确实可以编辑网格,因此有一些工具可以变换点云。最基本的编辑是旋转、缩放和平移。

要变换网格,请单击顶部工具栏中的“操纵器”工具图标。

在“操纵器”工具处于活动状态时,您可以按 T 平移网格的位置,按 R 旋转网格,或按 S 缩放网格。每个操作都会显示控件,并且与 Blender 一样,您可以按额外的键来进一步约束您正在执行的操作。例如,在平移模式下按 X 可将平移约束为仅沿 X 轴。这些说明在 MeshLab 窗口的左上角提供。

当您完成某个工具后,您必须再次单击其图标以停用它。单击新工具不会停用您当前的工具。

按键盘上的 Escape 键可切换到查看模式,再次按下可返回到之前的工具。这样,您无需额外点击鼠标即可快速调整和编辑。

选择点

网格编辑器中的一项常见任务是通过删除无关的点来清理 LiDAR 扫描。Pantheon 的 LiDAR 扫描已经非常干净,但并非所有扫描都是如此,并且消除您不需要的顶点可以节省大量的处理能力和硬盘空间。

您可以使用“选择顶点簇”、“在平面上选择顶点”和“在多边形区域内选择面/顶点”工具来选择点。该概念类似于任何图形应用程序中的选择,尽管在 MeshLab 中它稍微复杂一些,因为您正在与 3D 空间进行交互。

我最喜欢的选择方法是使用“在多边形区域内选择面/顶点”工具

  1. 绘制一个多边形选择区域,包含您要选择的点。
  2. 获得选择区域后,按键盘上的 Q 键以激活多边形内点的选择。选定的点变为红色。
  3. 按键盘上的 Escape 键切换到查看模式,并旋转或重新定位您的点云以从不同的角度查看它。
  4. 添加到您的多边形选择并按 Q 以添加新点。

重复该过程,直到您在选择中获得所需的一切。

您可以通过按 C 清除多边形并开始新的多边形来优化您的选择。按 C 不会清除您的选择,只会清除选择区域,因此您可以绘制一个新的多边形,然后按 Q 添加更多点,或者按 W 删除您不打算选择的点。

获得选择后,单击“过滤器”菜单并浏览“选择”子菜单,以对您的点云执行所需的任何操作。

探索 LiDAR

MeshLab 包含许多功能,本文仅介绍了基础知识。

有很多过滤器和很多方法可以从参考源读取数据、点云简化、Z 轴绘制、模型对齐等等。

无论您是深入研究 LiDAR 以清理 3D 打印机的扫描数据、为下一部大片中精心策划的跟踪镜头调整原点,还是记录多年来历史遗址的状态,MeshLab 都是一款非常宝贵且独特的开源工具。

Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时从事这两个行业。

1 条评论

想当年,当我还是考古学家的时候,我的工具是泥刀、刷子、桶和铲子,但探索这个会很有趣

Creative Commons License本作品根据 Creative Commons License 许可获得许可,但可能并非在所有情况下都能做到。您有责任确保您拥有重新使用本网站上任何作品的必要许可。Red Hat 和 Red Hat 徽标是 Red Hat, Inc. 在美国和其他国家/地区注册的商标。
© . All rights reserved.