机器学习笔记 - 如何在Python中对网格和点云进行体素化?
一、简述
本文主要是为了了解如何生成体素表示,体素之于3D就像像素之于2D。体素本质上是 3D 像素,但它们不是正方形,而是完美的立方体。 理论上,体素是复制现实的完美建模技术。
这里我们要了解四个广泛流行的 Python 库(Open3D、Trimesh、PyVista、pyntcloud )生成点云和网格的体素表示的步骤。体素化是许多 3D 深度学习模型的重要预处理步骤。
本文展示了如何计算体素级特征,例如颜色、点密度和占用率等。最后,还演示了如何创建简单的交互式体素化和阈值化示例。
3D 数据的深度学习正在成为机器学习和理解我们周围世界的越来越重要的一部分。随着深度摄像头和激光雷达等新的 3D 数据提取硬件在闭路电视、摄像头和智能手机中变得越来越普遍,越来越多的人正在使用它提供的附加维度。此外,摄影测量和 Motion 结构正在成为 3D 重建和建模流程的正常组成部分,并且提取和操作大型 3D 数据集已成为必需。
3D 深度学习的非结构化数据可以有不同的表示形式:点云、体素和体素网格、深度图、CAD 模型、多视图图像等等。
二、体素化
构建网格和点云的体素化表示是许多深度学习方法数据预处理的重要步骤。体素化也广泛用于处理点云——二次采样、特征提取和占用分析等。最后,生成网格体的体素表示对于游戏和简化表面模拟也很有用。
当点云或网格转换为体素表示时,它与体素网格相交。然后,点云或网格中的点落在某些体素中。这些体素被留下,而所有其他不与任何点相交的体素要么被丢弃,要么被清零,我们留下的是对象的雕刻表示。体素化可以只是表面水平或遍及整个网格/点云体积。