点云是最灵活的几何表示形式之一,它使用三维欧几里得空间中的一组点来表示物体的表面。Levoy和Whitted[1]首次将点云作为图形显示原语推广开来。然而,点云之前也被用于模拟诸如烟雾和非传统几何形状(如云朵、植物等)[2][3][4][5]。这些方法主要用于计算机图形学中,用于可视化那些过于复杂或计算成本过高而无法用传统CAD几何形状(如样条线或多边形网格)表示的物体。传统几何形状通常需要连通性或拓扑信息,这限制了它们表示复杂物体的能力。相比之下,点云不受平滑性、流形性或封闭性的限制,因此可以非常有效地表示复杂表面。
近年来,扫描技术(如激光雷达和摄影测量)的快速发展极大地推动了点云表示的广泛应用。激光雷达在捕捉环境方面变得更加精确[6][7][8][9],而随着深度神经网络在特征识别方面的应用,摄影测量的使用也有所增加,从而提高了点云重建的质量[10][11]。这些进步推动了点云在多个领域的快速应用,包括自动驾驶车辆导航、机器人抓取的姿态估计[12][13][14][15]、卫星成像[16][17]、制造业和质量控制[18][19]、历史文物保护[20][21][22][23]。
尽管点云在许多应用中广泛用于表示复杂物体,但其高度灵活且非结构化的特性给直接用于工程分析带来了挑战。工程分析方法通常需要表面平滑性和流形性,而这些特性点云本身并不具备。直接分析点云的难度促使人们将其作为重建网格的中间步骤。将点云转换为网格的过程本身就很复杂,并且受到多个关键因素的影响,包括点云密度、物体的底层拓扑结构以及点云中的噪声量。低密度点云往往会导致表面重建不完整,网格连续性受损,从而产生孔洞和间隙,影响所需的封闭性。数据中的噪声会引入异常点,从而扭曲几何形状,导致表面表示不准确。当点云具有复杂的拓扑结构时,还会出现其他问题,因为重建方法常常难以区分紧密相邻但实际分离的结构,导致自相交、拓扑不一致和扭曲的几何形状。
k最近邻(kNN)搜索是点云重建技术中最常用的辅助算法之一,包括泊松表面重建(PSR)、移动最小二乘(MLS)、球体旋转算法(BPA)和神经表面重建方法[24][25]。kNN通过取一个查询点并根据距离度量确定最近的k个点来工作。表面重建技术要么直接依赖kNN作为其方法的一部分,要么利用kNN通过PCA或2-jet拟合等投影技术来获得有用的几何先验(如表面法线)[26][27][28]。虽然kNN在分类任务中可以有效[29][30][31],但在将其应用于几何重建时存在一些限制。特别是,随着k值的增加,kNN方法容易跨越或跳过底层几何结构中的预期间隙,导致局部邻域的拓扑不准确。在许多情况下,可以通过调整kNN参数来实现更准确的重建;然而,这仍然是一个手动、繁琐且不可靠的过程,且对每个点云都敏感。
已经提出了许多方法来解决点云重建中的挑战,其中一些方法专门关注保持物体的拓扑结构[32][33]。然而,这些保持拓扑结构的方法往往依赖于强先验,并且经常牺牲几何细节。其他方法通过结合分段特征提取和隐式平滑表面构建技术直接生成网格,以恢复清晰的特征[34],但这种方法不能保证生成的网格适合分析,并且需要为每种几何形状手动调整参数。另一种方法使用广义绕数来区分点云和网格中的内部和外部区域[1],从而实现更准确的重建[35]。然而,这种方法仍然依赖于强先验,并使用传统的kNN算法,容易错误地包括真实表面之外的点。一些方法尝试通过修改输入点云、将几何形状分割成体素并在每个体素内局部重采样点来改进重建[36]。然而,这些技术对体素大小敏感,并且不能保证生成的网格是封闭的或连续的,特别是对于复杂几何形状。总体而言,大多数现有方法要么依赖于标准的kNN(这通常会捕获不需要的点),要么需要为不同类型的物体手动调整参数,从而限制了它们的鲁棒性。
近年来,出现了一些新的方法,这些方法完全绕过了表面网格重建,而是直接使用点云进行分析。这些方法已成功应用于计算流体流动和结构分析[37][38][39][40][41]。它们利用点云表示物体表面并定义几何体的内部和外部,同时使用浸没法利用这些点来施加边界条件。这些方法依赖于kNN方法来获取法线和面积估计(如参考文献[38][39][40][41]中所述),或提取内外部信息(如Kudela等人[37]中所述)。虽然这些方法对许多几何形状都有效,但传统的kNN方法在几何扫描变得稀疏或复杂时,局部邻域识别的误差会逐渐增大。
标准的kNN算法依赖于两点之间的欧几里得距离(L2范数),而没有考虑点云的底层拓扑结构。在涉及狭窄间隙和邻近表面的情况下,基于欧几里得距离的kNN往往会通过连接空间上接近但在拓扑上分离的点来填补这些间隙。为了解决这个问题,提出了诸如可见邻域图(VNG)[42]等方法,该方法利用隐藏点移除(HPR)操作符[43]在识别邻居时结合了可见性。然而,这种方法需要预先计算点的法线来构建VNG,而这在原始点云中并不总是可行的。此外,最近的研究表明,与欧几里得距离相比,测地距离提供了一个更具流形意识的度量,显著提高了机器学习应用中的性能[44][45][46]。然而,由于在无组织点云上计算测地距离的计算成本和复杂性,基于测地距离的kNN方法在实践中并不常用[47][48][49]。
为了解决这些问题,我们提出了一种多级kNN(M-kNN)方法,该方法不需要先验法线信息,并避免了计算测地距离的计算开销。我们的方法采用了一种简单的迭代扩展方法:M-kNN通过连续的局部邻域层次进行填充过程,而不是进行一次性全局搜索。“多级”一词在这里的使用是因为每个点都有自己的“层次”,这是一个可以轻松遍历的局部图,用于填充局部点邻域。我们的方法能够有效地区分拓扑上模糊、接近接触的表面的点,而不会跨越预期的间隙——这是标准kNN方法中的一个常见问题。即使在k值增加的情况下,这种方法也能保持在单个点云表面上,从而获得更准确的法线和局部表面重建。所提出的M-kNN方法对参数选择具有鲁棒性,并且在识别正确邻域方面非常可靠,即使底层几何结构非常复杂。主要目标如图1所示,是在存在复杂结构或接近不同拓扑的情况下,可靠地识别几何表面上的正确邻居点,并协助进行法线和面积计算。我们工作的主要贡献包括:
•准确捕捉由点云表示的具有拓扑模糊特征的3D几何形状。
•能够捕捉邻近但非接触的几何形状,而不会不自然地桥接预期的间隙。
•建立间隙距离与点云密度之间的定量关系。
•展示了M-kNN在增强重采样方法中的实际应用,使点云适用于工程分析,特别是在生物医学应用中的流体流动模拟。
本文的结构如下。第2节概述了M-kNN算法、点云重采样和正则化方法以及基于点云的流动分析框架。第3节通过基准几何案例验证了算法的法线精度、拓扑正确性和噪声鲁棒性,并展示了其在恒定和脉动流动条件下对羊主动脉的血流动力学分析中的应用。最后,第4节总结了主要结果并指出了未来的研究方向。