用于执行对象的3-D测量的分辨率自适应网格转让专利

申请号 : CN201810707195.1

文献号 : CN109307478B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : Y·奥维奇科

申请人 : 波音公司

摘要 :

本申请公开用于执行对象的3‑D测量的分辨率自适应网格。一种生成用于对象的3‑D测量的分辨率自适应网格的方法包括接收来自多个传感器的点云数据。来自每个传感器的点云数据定义了表示对象的点云。每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息。该方法还包括基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率。该方法进一步包括使用每个传感器的分辨率从点云生成对象的表面表示。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3‑D测量。

权利要求 :

1.一种生成用于对象的3-D测量的分辨率自适应网格的方法,包括:接收来自多个传感器的点云数据,来自每个传感器的所述点云数据定义表示所述对象的点云,其中每个点云包括多个点,并且每个点至少包括在所述对象上的点的位置信息;

基于每个传感器相对于所述对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率;

其中接收所述点云数据包括接收来自每个传感器的所述点云并针对每个点接收不确定性椭球体,其中所述不确定性椭球体用于基于所述传感器相对于所述对象的位置确定每个传感器的分辨率;

将每个点分配给三角网格的最近的网格三角形,所述三角网格包括共同表示所述对象的表面的多个网格三角形;以及通过调整每个分配的网格三角形的网格顶点来使所述点云中的点到它们的最近网格三角形的平均距离di最小化,针对所述点云拟合三角网格,所述平均距离di通过在朝向分配的网格三角形上的最近点的方向上的位置相关的传感器分辨率的平方倒数被加权。

2.根据权利要求1所述的方法,其中进一步包括:使用每个传感器的分辨率来从所述点云生成所述对象的表面表示,所述对象的所述表面表示包括对应于所述对象的分辨率自适应网格,用于所述对象的3-D测量。

3.根据权利要求2所述的方法,其中生成所述表面表示包括针对所述点云拟合三角网格,其中所述点云中的每个点在生成所述表面表示中的贡献是基于每个点的精度或分辨率。

4.根据权利要求1所述的方法,进一步包括使用针对不同观察方向和距离的每个传感器的多个分辨率模型来估计从每个点到所述三角网格的方向上的预期标准偏差(σi),所述分辨率模型是根据传感器物理模型分析确定的,或者是根据若干不同位置处的分辨率目标的测量以经验确定的,这些位置被插值以覆盖整个测量体积。

5.根据权利要求1所述的方法,进一步包括使用表面插值方法初始化三角网格以提供表示所述对象的表面的初始化三角网格。

6.根据权利要求1所述的方法,进一步包括:

测量从每个点到所分配的网格三角形上最近点的距离;以及

在朝向每个点所分配的网格三角形上的所述最近点的方向上确定与所述每个点相关联的所述不确定性椭球体的半径。

7.根据权利要求6所述的方法,进一步包括:

形成用于针对所述点云拟合所述三角网格的目标函数,所述拟合自动选择并使用来自所述点云的最佳点云数据,所述目标函数包括加权拟合误差项和三角网格的表面积项;以及通过找到使所述目标函数最小化的每个网格三角形的顶点的位置,针对所述点云拟合所述三角网格。

8.根据权利要求7所述的方法,进一步包括:

执行旋转和平移操作以配准所述点云以形成复合点云;

将旋转和平移参数添加到所述目标函数,以及

同时执行在所述复合点云中配准所述点云以及通过找到使所述目标函数最小化的每个网格三角形的顶点的位置针对所述复合点云拟合所述三角网格。

9.根据权利要求7所述的方法,其中每个网格三角形的顶点不受约束。

10.根据权利要求7所述的方法,其中每个网格三角形的顶点被约束,其中仅一个方向是可变的,并且另外两个方向被固定在格子上。

11.根据权利要求1所述的方法,进一步包括:

通过使用多分辨率网格拟合针对所述点云拟合所述三角网格,其中当前分辨率水平的输出三角网格被细分并用作优化下一分辨率水平的初始三角网格;以及对每个分辨率水平的所述点云进行上采样以用在细分的三角网格上。

12.一种生成用于对象的3-D测量的分辨率自适应网格的系统,包括:用于收集对象的电子图像的多个传感器,所述电子图像包括所述对象的3-D点云数据;

处理器;以及

在所述处理器上操作的分辨率自适应网格模块,所述分辨率自适应网格模块被配置为执行根据权利要求1-11中任一项所述的方法。

13.一种生成用于对象的3-D测量的分辨率自适应网格的计算机可读存储介质,所述计算机可读存储介质具有包含于其中的程序指令,其中所述计算机可读存储介质本身不是暂时性介质,所述程序指令可由设备执行以致使所述设备执行根据权利要求1-11中任一项所述的方法。

说明书 :

用于执行对象的3-D测量的分辨率自适应网格

技术领域

[0001] 本公开涉及在工厂组装或其他过程期间对正被制造的对象执行测量,并且更具体地涉及生成用于被组装或制造的对象的三维(3-D)测量(metrology)的分辨率自适应网格(mesh)。

背景技术

[0002] 测量是在工厂组装或其他过程期间或在需要精确测量的其他目的的情况下精确测量对象的形状。来自用于测量的3-D传感器的原始数据通常采用点云的形式,或者是测量点的三维坐标列表的形式。点云很难解释或操纵,因此它们通常被转换为对象的网格表面表示(mesh surface representation),类似于计算机图形中用来表示计算机生成的对象以进行显示。虽然已经开发了许多用于从点云生成表面的方法,诸如样条曲线或正则化最小二乘拟合算法,但这些技术都没有包含关于传感器精度如何随观察方向上的位置而变化的现有知识。3-D传感器在沿着观察矢量的方向以及横向于观察矢量的方向上通常具有不同的精度,并且对于距被测对象的不同距离也是如此。这些不同的精度可导致组装大型复杂对象(诸如飞机)的时间和劳力增加。因此,需要一种用于考虑到这些不准确性而准确地产生对象的网格表面表示的系统和方法。

发明内容

[0003] 根据一个示例,一种生成用于对象的3-D测量的分辨率自适应网格的方法,其包括接收来自多个传感器的点云数据。来自每个传感器的点云数据定义了表示对象的点云。每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息。该方法还包括基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率。该方法进一步包括使用每个传感器的分辨率从点云生成对象的表面表示。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0004] 根据另一示例,一种生成用于对象的3-D测量的分辨率自适应网格的系统,其包括用于收集对象的电子图像的多个传感器。电子图像包括对象的3-D点云数据。该系统还包括处理器和在处理器上操作的分辨率自适应网格模块。分辨率自适应网格模块被配置为执行功能集,包括接收来自多个传感器中的每一个传感器的点云数据。来自每个传感器的点云数据定义了表示对象的点云。每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息。该功能集还包括基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率。该功能集进一步包括使用每个传感器的分辨率从点云生成对象的表面表示。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0005] 根据另一示例,一种生成用于对象的3-D测量的分辨率自适应网格的计算机程序产品,其包括具有包含于其中的程序指令的计算机可读存储介质。计算机可读存储介质本身不是暂时性介质。程序指令可由设备执行以致使设备执行包括接收来自多个传感器的点云数据的方法。来自每个传感器的点云数据定义表示对象的点云。每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息。该方法还包括基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率。该方法进一步包括使用每个传感器的分辨率从点云生成对象的表面表示。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0006] 根据另一示例或任何前述示例,生成表面表示包括针对点云拟合三角网格(fitting a triangular mesh to the point clouds)。点云中每个点在生成表面表示中的贡献是基于每个点的精度或分辨率。
[0007] 根据另一示例或任何前述示例,生成表面表示包括通过在从每个点到三角网格的方向上的期望误差标准偏差的倒数来加权每个点到三角网格的距离,针对点云拟合三角网格。
[0008] 根据另一示例或任何前述示例,该方法或功能集进一步包括使用针对不同观察方向和距离的每个传感器的多个分辨率模型来估计从每个点到三角网格的方向上的预期标准偏差。分辨率模型是根据传感器物理模型分析确定的,或者是根据若干不同位置处的分辨率目标的测量经验确定的,这些位置被插值以覆盖整个测量体积。
[0009] 根据另一示例或任何前述示例,接收点云数据包括接收来自每个传感器的点云和每个点的不确定性椭球体(uncertainty ellipsoid)。不确定性椭球体用于根据传感器相对于对象的位置来确定每个传感器的分辨率。
[0010] 根据另一示例或任何前述示例,该方法或功能集进一步包括使用表面插值方法来初始化三角网格以提供表示该对象的表面的初始化三角网格。
[0011] 根据另一示例或任何前述示例,该方法或功能集进一步包括将每个点分配给三角网格中的最近的网格三角形。三角网格包括共同表示对象的表面的多个网格三角形。
[0012] 根据另一示例或任何前述示例,该方法或功能集进一步包括测量从每个点到所分配的网格三角形上的最近点的距离,并在朝向为每个点所分配的网格三角形上的最近点的方向上确定与该点相关联的不确定性椭球体的半径。
[0013] 根据另一示例或任何前述示例,该方法或功能集进一步包括形成用于针对点云拟合三角网格的目标函数,该拟合自动选择并使用来自点云的最佳点云数据。目标函数包括加权拟合误差项和三角网格的表面积项。
[0014] 根据另一示例或任何前述示例,所述方法或功能集进一步包括通过找到使目标函数最小化的每个网格三角形的顶点的位置来针对点云拟合三角网格。
[0015] 根据另一示例或任何前述示例,该方法或功能集进一步包括执行旋转和平移操作以配准点云以形成复合点云。该方法或功能集还包括将旋转和平移参数添加到目标函数并同时在复合点云中配准点云以及通过找到使目标函数最小化的每个网格三角形的顶点的位置来针对复合点云拟合三角网格。
[0016] 根据另一示例或任何前述示例,该方法或功能集进一步包括使用粒子群优化来使目标函数最小化。
[0017] 根据另一示例或任何前述示例,每个网格三角形的顶点是不受约束的。
[0018] 根据另一示例或任何前述示例,每个网格三角形的顶点被约束为只有一个方向是可变的并且另外两个方向被固定在格子(grid)上。
[0019] 根据另一示例或任何前述示例,该方法或功能集进一步包括通过使用多分辨率网格拟合针对点云拟合三角网格。将当前分辨率水平的输出三角网格细分并用作初始三角网格,用于优化下一分辨率水平。
[0020] 根据另一示例或任何前述示例,该方法或功能集进一步包括对每个分辨率水平的点云进行上采样以用在细分的三角网格上。
[0021] 已经讨论的特征、功能和优点可以在各种示例中独立地实现,或者可以在其他示例中组合,其进一步的细节可以参考以下描述和附图看到。

附图说明

[0022] 图1是根据本公开的一个示例的生成用于对象的3-D测量的分辨率自适应网格的系统的示例的示意框图。
[0023] 图2A是根据本公开的一个示例的生成用于对象的3-D测量的分辨率自适应网格的方法的示例的流程图。
[0024] 图2B是根据本公开的另一示例的生成用于对象的3-D测量的分辨率自适应网格的方法的示例的流程图。
[0025] 图3是根据本公开的一个示例的多个点云的示例。
[0026] 图4是根据本公开的一个示例的点云中的测量点和相关联的不确定性椭球体的示例。
[0027] 图5是根据本公开的一个示例的使用表面插值方法初始化三角网格以提供表示对象表面的初始化三角网格的示例。
[0028] 图6是根据本公开的一个示例的针对点云拟合三角网格的示例的图示。
[0029] 图7是根据本公开的一个示例的用于针对复合点云拟合三角网格的多个点云的同时融合(fusion)和配准的示例的图示。
[0030] 图8是根据本公开的一个示例的用于使用多分辨率拟合来生成用于3-D测量的分辨率自适应网格的方法的示例的流程图。

具体实施方式

[0031] 示例的以下详细描述参考附图,附图示出了本公开的具体示例。具有不同结构和操作的其他示例不脱离本公开的范围。相同的附图标记可以指代不同附图中的相同元件或组件。
[0032] 本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的一个或更多个计算机可读存储介质,该指令用于致使处理器执行本公开的各方面。
[0033] 计算机可读存储介质可以是可保留和存储指令供指令执行设备使用的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码的设备(诸如在其上记录有指令的凹槽中的穿孔卡或凸起结构),以及前述的任何合适的组合。如本文使用的,计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。
[0034] 本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令并且转发计算机可读程序指令用于在相应计算/处理设备内的计算机可读存储介质中的存储。
[0035] 用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或更多种编程语言(包括诸如Smalltalk、C++等的面向对象的编程语言和诸如“C”编程语言或类似编程语言的传统过程编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全地在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包,部分地在用户的计算机上以及部分地在远程计算机上执行或完全地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者(例如,使用互联网服务提供商通过互联网)可以连接到外部计算机。在一些示例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本公开的各方面。
[0036] 本文参考根据本公开的示例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本公开的各方面。应该理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机可读程序指令来实施。
[0037] 这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行指令创建用于实施在流程图和/或框图的一个或更多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,该计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式操作,使得其中存储有指令的计算机可读存储介质包括制造物品,其包括实施在流程图和/或框图的一个或更多个框中指定的功能/动作的各方面的指令。
[0038] 计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上以致使在计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实施在流程图和/或框图的一个或更多个框中指定的功能/动作。
[0039] 根据一个示例,提供了一种方法和系统,用于表示和优化组合由3-D扫描系统产生的3-D点云数据,并且用于测量和跟踪大空间体积(诸如例如,在诸如飞行器之类的对象的制造或装配过程中的工厂)中的对象。根据一个示例性实例,3-D扫描系统包括多个传感器或3-D扫描传感器。每个3-D扫描传感器可以是任何类型的3-D扫描传感器。3-D扫描传感器的示例包括但不限于3-D立体相机、光探测和测距(激光雷达)设备或系统,或其他3-D扫描设备或系统。该方法将点云转换成对测量有用的表面表示,同时考虑观察相同对象的多个3-D扫描传感器的不同方向上的空间变化分辨率。该方法通过根据点云中的点的预期精度来不同地加权每个点对表面表示的贡献。这对比于现有的表面重建/曲面重建(surface reconstruction)方法,现有的表面重建方法均等地加权所有点并且不包含传感器分辨率模型或关于传感器的预期分辨率的现有知识作为观察方向和距对象的距离的函数。该方法优化了从来自多个3-D扫描传感器的点云融合导出的对象的3-D表面表示,该多个3-D扫描传感器观察相同对象但从不同方向和距离进行观察。
[0040] 图1是根据本公开的示例的生成用于对象104的3-D测量的分辨率自适应网格102的系统100的示例的示意框图。系统100包括多个传感器。根据一个示例,这些传感器是用于收集对象104的3-D电子图像108的3-D扫描传感器106a-106n。传感器或3-D扫描传感器106a-106n的示例包括但不必限于数码相机、光探测和测距(激光雷达)设备、3-D激光扫描设备、3-D飞行时间(ToF)相机或类似的成像设备。3-D电子图像108包括对象104的3-D点云数据110。来自每个3-D扫描传感器106a-106n的点云数据110定义表示对象104的点云112。
每个点云112包括多个点114,并且每个点至少包括在对象104的表面116上的对应点115的位置信息。来自每个3-D扫描传感器106a-106n的3-D点云数据110或点云112被存储在数据库117或其他数据存储设备中。根据一个示例,对象104是飞行器或飞行器的一部分,并且如本文所述,分辨率自适应网格102需要用于在组装或制造期间或者为了一些其他目的对飞行器或飞行器的一部分进行3-D测量。在其他示例中,对象104是任何产品或物品或产品或物品的一部分,并且如本文所述,分辨率自适应网格102需要在组装、制造或其他操作期间对设备或装备执行3-D测量。
[0041] 3-D扫描传感器106a-106n位于相对于对象104的不同位置,并且因此将具有对象104的不同观察方向。3-D扫描传感器106a-106n在沿着对对象104的观察矢量的方向以及横向于观察矢量的方向上将具有不同的测量精度和分辨率,并且对于距对象104不同的距离也是如此。
[0042] 系统100还包括处理器118。用于生成对象104的分辨率自适应网格102表面表示的分辨率自适应网格模块120在处理器118上可操作。根据一个示例,分辨率自适应网格模块120包括点云降噪元件122、用于组合多个点云112的点云融合元件124、用于配准点云112的配准元件126以及用于生成对象104的表面表示130的表面重建元件128,表面表示130包括用于对象104的3-D测量的分辨率自适应网格102。根据本文描述的示例,点云112的降噪
122、融合124和配准126以及表面重建128在对象104的表面表示130的构建期间同时实施。
生成对象104的表面表示130的表面重建128是动态测量模型132,其用于在组装或制造期间对象104的3-D测量,因为动态测量模型132由分辨率自适应网格102形成或包括分辨率自适应网格102,该分辨率自适应网格102解释了多个3-D扫描传感器106a-106n中的每个的空间变化分辨率并且自动使用来自每个3-D扫描传感器106a-106n的最优或最佳分辨率3-D点云数据110,如本文更详细描述的。
[0043] 分辨率自适应网格模块120被配置为执行包括从多个3-D扫描传感器106a-106n接收3-D点云数据110的功能集。如前所述,来自每个3-D扫描传感器106a-106n的点云数据110定义了表示对象104的点云112。每个点云112包括多个点114,并且每个点114至少包括在对象104上的对应点115的位置信息。该功能集还包括基于每个3-D扫描传感器106a-106n相对于对象104的位置和每个3-D扫描传感器106a-106n的物理属性来确定每个3-D扫描传感器106a-106n在三个正交维度中的每个维度中的分辨率。传感器的物理属性确定每个传感器在三个正交维度中的每个维度中的分辨率。立体相机传感器的物理属性的示例包括相机之间的分隔、相机焦距和成像传感器尺寸。激光雷达传感器的物理属性的示例包括光脉冲持续时间、光脉冲大小、光脉冲重复率和激光雷达旋转速率。该功能集进一步包括使用每个3-D扫描传感器106a-106n的分辨率从点云112生成对象104的表面表示130。如前所述,对象
104的表面表示130包括对应于对象104的分辨率自适应网格102以用于对象104的3-D测量。
[0044] 图2A是根据本公开的示例的生成用于对象的3-D测量的分辨率自适应网格的方法200的示例的流程图。根据一个示例,方法200被实现在图1中的分辨率自适应网格模块120中并由其执行。在框202中,从多个3-D扫描传感器(诸如图1中的3-D扫描传感器106a-106n)接收点云数据。来自每个3-D扫描传感器的点云数据定义表示对象的点云。每个点云包括多个点,并且每个点至少包括在对象上的对应点的位置信息。位置信息至少包括对象上的点的3-D坐标信息(x,y,z)。接收点云数据包括接收来自每个3-D扫描传感器的点云和每个点的不确定性椭球体。基于3-D扫描传感器相对于对象的位置,使用不确定性椭球体来确定每个3-D扫描传感器的分辨率。还参考图3和4,图3是根据本公开的示例的示例性对象302的多个点云300的示例。示例性对象302在图3中由虚线示出。图4是根据本公开的示例的点云(PC)402中的测量点Pi(P下标i)400a-400c和对应的不确定性椭球体404a-404c的示例。点云402与图3中的点云300中的一个相同。示出了测量点400a-400c与3-D轴x,y,z相关联,其中y轴从页面出来。
[0045] 基于每个3-D扫描传感器相对于对象的位置和每个3-D扫描传感器的物理属性,确定每个3-D扫描传感器在三个正交维度(x,y,z)中的每个维度中的分辨率。图1中的分辨率模型134提供用于每个3-D扫描传感器针对相对于对象的不同观察方向和距离的分辨率。分辨率模型根据传感器物理模型分析确定,或根据被插值以覆盖整个测量体积的多个位置处的分辨率目标的测量经验确定。分辨率或测量不确定性的值与点云402中的每个测量点(Pi)400a-400c相关联。
[0046] 点云402中的每个测量点(Pi)400a-400c由其位置或坐标以及相关联的与位置相关的不确定性椭球体404a-400c定义如下:
[0047] Pi=[xi,yi,zi,σx,σy,σz,θ,φ]
[0048] 如从对点(Pi)400a-400c进行测量的3-D扫描传感器可以看到,不确定性椭球体轴线对应于在对象上的测量点(Pi)400a-400c的范围和两个横向方向上的分辨率或标准偏差σx,σy,σz,(σ下标x,y或z)。不确定性椭球体404a的取向由两个角度θ和φ表示。
[0049] 在框204中,使用表面插值方法来初始化三角网格V 600(图4)以提供表示对象的表面的初始化三角网格。根据一个示例,所使用的表面插值方法的示例是Gridfit。Gridfit是一个开源的Matlab程序,可从马萨诸塞州(MA)纳蒂克(Natick)的MathWorks公司获得。还参考图5,图5是使用表面插值方法初始化三角网格V 600以提供表示对象的表面502的初始化三角网格500的示例。对象的表面502由图5中的虚线示出。如参照图6所述,三角网格V 600由多个网格三角形形成。
[0050] 在框206中,使用传感器分辨率针对点云拟合三角网格,其自动使用来自由每个3-D扫描传感器106a-106n生成的每个点云的最佳数据。来自每个点云的最佳数据对应于与其他点云中的其他附近测量点相比在给定方向上具有最高分辨率的点云中的测量点。根据一个示例,框208-216是框206的元素。还参考图6,图6是根据本公开的示例的针对点云402拟合三角网格V 600或初始化的三角网格500的示例的图示。点云402与图3中的点云300中的一个相同。在图4中还示出了三角网格600或初始化的三角网格500的侧视图。
[0051] 在图2A中的框208中,点云402中的每个测量点Pi 400a被分配给最近的网格三角形602a。三角网格V 600包括共同表示对象的表面604(图4)的多个网格三角形602a-602n。每个网格三角形602a-602n由三个顶点606a-606c(图6)定义。
[0052] 在框210中,测量从每个点Pi 400a朝向针对点云402中的每个点Pi 400a所分配的网格三角形602a上的最近点608的距离di(d下标i)。也确定每个点Pi 400a与所分配的网格三角形602a上的最近点608之间的方向ri(r下标i,由箭头610表示)。确定或估计在三角网格V 600的最近网格三角形602a的方向ri上与点Pi 400a相关联的不确定性椭球体404a的半径σi(ri)(σ下标i)。基本思想是通过调整每个分配的网格三角形602a-602n的网格顶点606a-606c来使点云402中的点400a到它们的最近网格三角形602a-602n的平均距离di最小化,针对点云402拟合三角网格V 600,该平均距离di通过在朝向分配的网格三角形602a-
602n上的最近点608的方向610上的位置相关的传感器分辨率的平方倒数被加权。这是通过使网格顶点606的位置、3N维度空间612上的目标函数E(V,PC)最小化而完成的,其中N是形成三角网格V 600的顶点606的数量。
[0053] 在框212中,确定、形成或计算用于针对来自点云300或每个点云402的点云数据拟合三角网格V 600的目标函数E(V,PC)。目标函数由等式1表示:
[0054]
[0055] 目标函数包含针对每个测量点Pi 400a确定通过1/σi加权的测量点Pi 400a到三角网格600距离di的范数(norm)。M是点云PC 402中的测量点Pi的数量。目标函数还包括与网格表面误差成比例的调节或惩罚项,以防止不希望的解决方案,其中三角网格V 600本身折叠或延伸超过点云PC 402。惩罚项的调节包括加权拟合误差项(λ)和三角网格的表面积项(Amesh)(A下标mesh)。
[0056] 根据一个示例,网格三角形602a-602n的3-D顶点606a-606c是不受约束的,也就是说,每个顶点的位置或方位不是固定的。在另一示例中,网格三角形602a-602n的3-D顶点606a-606c被约束。例如,顶点606a-606c在x和y坐标中的位置或方位被固定或约束到固定格子406,并且仅允许每个顶点606a-606c的z坐标位置或方位变化。
[0057] 在框214中,通过调整三角网格V 600以减少或最小化目标函数E(V,PC),使用传感器分辨率针对点云402拟合三角网格V 600,其自动使用来自每个3-D扫描传感器的点云402或300的最佳数据。根据一个示例,使用粒子群优化(Particle Swarm Optimization,PSO)或其他优化函数来减小或最小化目标函数E(V,PC)。粒子群优化在Kennedy,J.和Eberhart,R.在1995年的神经网络的IEEE国际会议IV的论文集第1942-1948页的(“Proceedings of IEEE International Conference on Neural Networks IV,”(1995)pp.1942-1948)发表的Particle Swarm Optimization(粒子群优化)中描述。根据其他示例,通过使用泛化算法来减小或最小化目标函数E(V,PC),诸如由Eiben,A.E.等人在1994年的基于自然思想的并行问题求解的第三届会议(PPSNⅢ)的关于进化计算的国际会议论文集第78-87页发表(“PPSN III:Proceedings of the International Conference on Evolutionary Computation,”The Third Conference on Parallel Problem Solving from Nature(1994),pp.78-87)的Generic Algorithms with Multi-Parent Recombination(多父代重组的泛化算法),或鲍威尔方法(Powell’s Method),由Powell,M.J.D.在1964年的计算机学报第7期第2卷第155-162页(“Computer Journal 7(2)”(1964),pp.155-162)发表的An efficient Method for Finding the Minimum of a Function for Several Variables without Calculating Derivatives(不用计算导数而发现若干变量的函数最小值的有效方法)。
[0058] 在框216中,确定目标函数E(V,PC)是否小于预设的最小值Emin(E下标min)或者在最近的几次迭代中是不变的。如果目标函数E(V,PC)不小于预设的最小值,则方法200返回到框212并且执行另一次迭代以进一步减小或最小化目标函数E(V,PC)。如果目标函数E(V,PC)小于预设的最小值Emin或在最近的几次迭代中不变,则方法200前进至框218。
[0059] 在框218中,生成或提供对象的表面表示以用于对象的3-D测量。如上所述,使用每个3-D扫描传感器的分辨率从点云中生成对象的表面表示。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。根据一个示例,使用包括分辨率自适应网格的对象的表面表示对对象执行操作(诸如制造操作)。因此,表面表示包括针对点云拟合三角网格,其中点云中的每个测量点在生成表面表示中的贡献是基于每个测量点的精度或分辨率。最小化或减小用于生成表面表示的目标函数E(V,PC)包括通过在从每个点Pi到三角网格V的方向ri上的预期误差标准偏差的倒数(1/σi)来加权每个测量点Pi到三角网格V的距离di,针对点云拟合三角网格V。通过寻找使目标函数E(V,PC)最小化的每个网格三角形602a-602n的顶点606a-606c的位置来针对点云拟合三角网格V。
[0060] 图2B是根据本公开的另一示例的生成用于3-D测量的分辨率自适应网格的方法200'的示例的流程图。方法200'类似于方法200,除了在框212'中计算或确定目标函数(E(V,P1,...,Pn,R,T),包括执行旋转和平移操作以将多个点云配准以形成复合点云。旋转和平移参数被添加到目标函数中。点云被同时配准在复合点云中。类似于前述,通过找到使目标函数最小化的每个网格三角形的顶点的位置来针对复合点云拟合三角网格。在框214'中,调整三角网格并执行旋转和平移操作以减小或最小化目标函数。根据一个示例,粒子群优化用于使目标函数最小化,类似于前述。
[0061] 还参考图7,图7是根据本公开的示例的用于针对复合点云拟合三角网格600(图6中的框206')的多个点云402a-402n的同时融合和配准的示例的图示。通过将附加的六个维度添加到解空间中而将多个点云402a-402n配准在公共坐标系中,解空间对应于一个点云坐标系相对于另一个点云坐标系的旋转和平移。当两个点云被配准时,来自观察相同对象的不同3-D扫描传感器的两个点云组成的复合点云的三角网格的剩余建模误差/建模残差(residual modeling error)被最小化。因此,本文描述的分辨率自适应网格过程用于配准多个点云以及类似于上述的生成组合点云或复合点云的分辨率自适应网格两者。解空间维度从3N增加到3N+6,其中N是三角网格V 600中的顶点606a-606c的数量,并且附加的6个维度是坐标旋转和平移参数。因此,两个点云的一个示例的目标函数变为:
[0062]
[0063] 参数α、β和θ是用于使点云P1相对于另一点云P2旋转的角度,反之亦然。
[0064] 其中,N个点的点云坐标矩阵为:
[0065]
[0066] 关于三个轴旋转点云的矩阵运算符是:
[0067]
[0068] 转换点云的3x N矩阵是:
[0069]
[0070] 然后通过以下确定被旋转和平移的点云:
[0071] P′=RP+T
[0072] 根据一个示例,多个点云中的每个点云被旋转并平移以形成组合或复合点云,然后类似于前述将其拟合到三角网格。
[0073] 在框218'中,生成或提供对象的表面表示以用于对象的3-D测量。对象的表面表示从组合点云或复合点云中产生,并且使用类似于前述的每个3-D扫描传感器的分辨率。对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0074] 图8是根据本公开的示例的用于使用多分辨率拟合来生成用于3-D测量的分辨率自适应网格的方法800的示例的流程图。根据一个示例,方法800由图1中的分辨率自适应网格模块120实现和执行。方法800包括通过使用多分辨率网格拟合针对点云拟合三角网格,其中将当前分辨率水平的输出三角网格细分并用作初始三角网格以优化下一分辨率水平。
[0075] 在框802中,接收来自多个3-D扫描传感器的点云数据。来自每个3-D扫描传感器的点云数据定义表示对象(诸如图1中的对象104)的点云。每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息。位置信息至少包括对象上的点的3-D坐标信息(x,y,z)。接收点云数据包括接收来自每个3-D扫描传感器的点云和每个点的不确定性椭球体。不确定性椭球体用于基于每个3-D扫描传感器相对于对象的位置和每个3-D扫描传感器的物理属性来确定每个3-D扫描传感器的分辨率。
[0076] 在框804中,通过选择每个点云内的一组点,将每个点云下采样到最低分辨率水平。根据一个示例,这组点被随机选择。根据另一示例,使用自适应方法,其中如果聚集在某点周围的点密度或点的数量低于点云中的其他点,则选择所述某点的概率更高,因为所述某点在提供用于生成对象的分辨率自适应网格表示的位置信息中比在点云的高密度区域中的点是更“有价值的”。
[0077] 在框806中,使用非分辨率自适应网格(RAM)方法来初始化低分辨率三角网格。根据一个示例性示例,Gridfit被用于初始化低分辨率三角网格。
[0078] 在框808中,将每个下采样点被分配给初始化三角网格中最近的网格三角形。在框810中,使用上采样点云和用于初始化的先前较低的分辨率水平网格来优化三角网格,以产生用于当前分辨率水平的优化网格812。在框814中使用细分网格生成上采样点云。生成上采样点以位于细分网格中的较小三角形上。
[0079] 在框814中,针对下一分辨率水平对三角网格进行细分并且对点云进行上采样。然后方法800返回到框808,该方法类似于先前描述的方法,直到在框810中获得期望的分辨率水平。当获得期望的分辨率水平时,方法800前进到框816。
[0080] 在框816中,生成或提供作为对象的表面表示的分辨率自适应网格。分辨率自适应网格用于对象的3-D测量。根据一个示例,可以使用分辨率自适应网格对对象执行操作(诸如制造操作)。
[0081] 根据一个示例,方法200、200'或800中的一个被实现在计算机程序产品(诸如图1中的计算机程序产品136)上。计算机程序产品136包括与先前描述的计算机可读存储介质类似的计算机可读存储介质,其具有包含于其中的计算机程序指令138。计算机可读存储介质本身不是暂时性介质。程序指令可由设备(诸如图1中的处理器118)执行,以致使该设备执行方法200、200'或800。根据一个示例,计算机程序指令138定义分辨率自适应网格模块120,其被存储在与处理器118相关联的存储设备上并且可从计算机程序产品136下载。
[0082] 附图中的流程图和框图示出了根据本公开的各种示例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现(一个或更多个)指定的逻辑功能的一个或更多个可执行指令。在一些替代实施方式中,框中提到的功能可以不按照附图中提到的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。还将注意到,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
[0083] 本文使用的术语仅用于描述特定示例的目的,而不意在限制本公开的示例。如本文所使用的,除非上下文另外清楚地指出,否则单数形式“一个(a/an)”和“该/所述(the)”也意在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或更多个其他特征、整体、步骤、操作、元件、部件和/或其组合。
[0084] 下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物意在包括用于结合具体要求保护的其他要求保护的元件来执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本实例的描述,但并不意为穷举的或者限于所公开的形式的示例。在不脱离示例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员而言将是明显的。
[0085] 此外,本公开包括根据以下实施例的示例:
[0086] 实施例1.一种用于生成用于对象的3-D测量的分辨率自适应网格的方法,包括:
[0087] 接收来自多个传感器的点云数据,来自每个传感器的点云数据定义表示对象的点云,其中每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息;
[0088] 基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率;以及
[0089] 使用每个传感器的分辨率从点云生成对象的表面表示,对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0090] 实施例2.根据实施例1的方法,其中生成表面表示包括针对点云拟合三角网格,其中点云中的每个点在生成表面表示中的贡献基于每个点的精度或分辨率。
[0091] 实施例3.根据实施例1的方法,其中生成表面表示包括通过在从每个点到三角网格的方向上的预期误差标准偏差的倒数来加权每个点到三角网格的距离,针对点云拟合三角网格。
[0092] 实施例4.根据实施例3的方法,进一步包括使用用于不同观察方向和距离的每个传感器的多个分辨率模型来估计从每个点到三角网格的方向上的预期标准偏差,分辨率模型是根据传感器物理模型分析确定的,或者是根据若干不同位置处的分辨率目标的测量经验确定的,这些位置被插值以覆盖整个测量体积。
[0093] 实施例5.根据实施例1的方法,其中接收点云数据包括接收来自每个传感器的点云和每个点的不确定性椭球体,其中不确定性椭球体用于基于每个传感器相对于对象的位置确定每个传感器的分辨率。
[0094] 实施例6.根据实施例5的方法,进一步包括使用表面插值方法初始化三角网格以提供表示对象的表面的初始化三角网格。
[0095] 实施例7.根据实施例5的方法,进一步包括将每个点分配给三角网格的最近网格三角形,三角网格包括共同表示对象的表面的多个网格三角形。
[0096] 实施例8.根据实施例7的方法,进一步包括:
[0097] 测量从每个点到分配的网格三角形上最近点的距离;以及
[0098] 在朝向每个点被分配的网格三角形上的最近点的方向上确定与点相关联的不确定性椭球体的半径。
[0099] 实施例9.根据实施例8的方法,进一步包括形成用于针对点云拟合三角网格的目标函数,该拟合自动选择并使用来自点云的最佳点云数据,目标函数包括加权拟合误差项和三角网格的表面积项。
[0100] 实施例10.根据实施例9的方法,进一步包括通过找到使目标函数最小化的每个网格三角形的顶点的位置来针对点云拟合三角网格。
[0101] 实施例11.根据实施例10的方法,进一步包括:
[0102] 执行旋转和平移操作以配准点云以形成复合点云;
[0103] 将旋转和平移参数添加到目标函数,并且
[0104] 同时在复合点云中配准点云,并通过找到使目标函数最小化的每个网格三角形的顶点位置来针对复合点云拟合三角网格。
[0105] 实施例12.根据实施例10的方法,进一步包括使用粒子群优化来使目标函数最小化。
[0106] 实施例13.根据实施例10的方法,其中每个网格三角形的顶点不受约束。
[0107] 实施例14.根据实施例10的方法,其中每个网格三角形的顶点被约束,其中仅一个方向是可变的,另外两个方向被固定在格子上。
[0108] 实施例15.根据实施例7的方法,进一步包括通过使用多分辨率网格拟合针对点云拟合三角网格,其中当前分辨率水平的输出三角网格被细分并且用作初始三角网格用于优化下一分辨率水平。
[0109] 实施例16.根据实施例15的方法,进一步包括对每个分辨率水平的点云进行上采样以用在细分的三角网格上。
[0110] 实施例17.一种生成用于对象的3-D测量的分辨率自适应网格的系统,包括:
[0111] 多个传感器,其用于收集对象的电子图像,电子图像包括对象的3-D点云数据;
[0112] 处理器;以及
[0113] 在处理器上操作的分辨率自适应网格模块,分辨率自适应网格模块被配置为执行功能集,包括:
[0114] 接收来自多个传感器的点云数据,来自每个传感器的点云数据定义表示对象的点云,其中每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息;
[0115] 基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率;以及
[0116] 使用每个传感器的分辨率从点云生成对象的表面表示,对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0117] 实施例18.根据实施例17的系统,其中功能集进一步包括生成表面表示包括针对点云拟合三角网格,其中点云中的每个点在生成表面表示中的贡献是基于每个点的精度或分辨率。
[0118] 实施例19.一种生成用于对象的3-D测量的分辨率自适应网格的计算机程序产品,计算机程序产品包括具有包含于其中的程序指令的计算机可读存储介质,其中计算机可读存储介质本身不是暂时性介质,程序指令可由设备执行以致使设备执行包括以下步骤的方法:
[0119] 接收来自多个传感器的点云数据,来自每个传感器的点云数据定义表示对象的点云,其中每个点云包括多个点,并且每个点至少包括在对象上的点的位置信息;
[0120] 基于每个传感器相对于对象的位置和每个传感器的物理属性来确定每个传感器在三个正交维度中的每个维度中的分辨率;以及
[0121] 使用每个传感器的分辨率从点云生成对象的表面表示,对象的表面表示包括对应于对象的分辨率自适应网格,用于对象的3-D测量。
[0122] 实施例20.根据实施例19的计算机程序产品,其中方法进一步包括生成表面表示包括针对所述点云拟合三角网格,其中点云中的每个点在生成表面表示中的贡献是基于每个点的精度或分辨率。
[0123] 虽然本文已经说明和描述了具体示例,但是本领域的普通技术人员应该理解,可以经计算以实现相同目的的任何布置可以替换所示的具体示例,以及示例在其他环境中具有其他应用。本申请意在涵盖任何调整或变化。随附权利要求绝非意在将本公开的示例的范围限制于本文所述的具体示例。