用于平面表面分割的视觉系统和分析方法与流程

文档序号:17705471发布日期:2019-05-21 20:48阅读:185来源:国知局
用于平面表面分割的视觉系统和分析方法与流程

本发明涉及机器视觉系统。



背景技术:

机器视觉系统用于制造环境,以通过捕获和分析数字影像而自动地检查零件、部件、子系统和其他制造产品。



技术实现要素:

一种视觉系统配置为动态检查视野中的物体。这包括使用摄像头捕获视野的三维(3D)点云数据和将3D点云数据的每一个点转变为多个切向表面向量。基于多个切向表面向量确定用于3D点云数据的每一个点的表面法向向量。采用单元球面网格检测表面法向向量中的分布峰值。使用距离分布峰值分离平行平面。执行径向相接最近相邻策略,其与基于单元划分的最近相邻搜索过程组合,以将平面区块分割。基于分割的平面区块识别平面表面。

根据本发明一方面,提供一种用于采用视觉系统动态检查视野中物体的方法,包括:

捕获视野的三维(3D)点云数据;

将3D点云数据的每一个点转换为多个切向表面向量;

基于多个切向表面向量确定用于3D点云数据的每一个点的表面法向向量;

采用单元球面网格检测表面法向向量中的分布峰值;

使用距离分布峰值将平行平面分离;

使用控制器执行径向相接最近邻策略,其与基于单元划分的最近邻搜索过程组合,以将平面区块分割;和

基于分割的平面区块识别物体的平面表面。

优选地,其中将3D点云数据转换为多个切向表面向量包括,获得两个邻近点的差,以将3D点云数据中每一个点转换为切向表面向量。

优选地,其中基于多个切向表面向量确定用于3D点云数据的每一个点的表面法向向量包括:

识别3D点云中每一个点周围的表面区域中点的邻域;

确定用于点的邻域中的每一个点的切向表面向量;和

计算用于点的邻域的切向表面向量的叉积。

优选地,其中识别3D点云中每一个点周围的表面区域中的点的邻域包括,识别用于3D点云数据中每一个点的7x7点的表面区域。

优选地,其中确定用于多个切向表面向量的表面法向向量包括:

识别3D点云数据中每一个点周围的点的邻域;

确定与点的邻域相关的切向表面向量;和

计算切向表面向量的叉积以确定用于3D点云数据中每一个点的表面法向向量。

优选地,其中采用单元球面网格检测表面法向向量中的分布峰值包括,在单元球面网格的网格顶点上施加离散Laplacian-Beltrami(LB)算子,以检测分布峰值。

优选地,其中捕获视野的3D点云数据包括使用数字摄像头捕获视野的3D点云数据。

优选地,其中使用分布峰值将平行平面分离包括沿平面法向方向使用距离分布将平行平面分离。

根据本发明再一方面,提供一种用于动态处理与视野相关的三维(3D)点云的方法,包括:

将3D点云的每一个点转换为多个切向表面向量;

基于多个切向表面向量确定用于3D点云的每一个点的表面法向向量;

采用单元球面网格检测表面法向向量中的分布峰值;

使用距离分布峰值将平行平面分离;

通过使用控制器执行与基于单元划分的最近邻搜索过程组合的径向相接最近邻策略将平面区块分割;和

基于分割的平面区块识别平面表面。

优选地,其中将3D点云数据转换为多个切向表面向量包括,获得两个相邻点的差,以将3D点云数据中的每一个点转换为切向表面向量。

优选地,其中基于多个切向表面向量确定用于3D点云数据的每一个点的表面法向向量包括:

识别3D点云中的每一个点周围的表面区域中的点的邻域;

确定用于点的邻域中的每一个点的切向表面向量;和

计算用于点的邻域的切向表面向量的叉积。

优选地,其中识别3D点云中的每一个点周围的表面区域中的点的邻域包括,识别用于3D点云数据中的每一个点的7x7点的表面区域。

优选地,其中确定用于多个切向表面向量的表面法向向量包括:

识别3D点云数据中的每一个点周围的点的邻域;

确定与点的邻域相关的切向表面向量;和

计算切向表面向量的叉积以确定用于3D点云数据中的每一个点的表面法向向量。

优选地,其中采用单元球面网格检测表面法向向量中的分布峰值包括,在单元球面网格的网格顶点上应用离散Laplacian-Beltrami(LB)算子,以检测分布峰值。

优选地,其中捕获视野的3D点云数据包括使用数字摄像头捕获视野的3D点云数据。

优选地,其中使用分布峰值将平行平面分离包括沿平面法向方向使用距离分布将平行平面分离。

根据本发明又一方面,提供一种用于动态检查视野中的物体的视觉系统,包括:

数字摄像头,信号连接到摄像头控制器,所述摄像头控制器信号连接到分析控制器;

数字摄像头配置为捕获包括视野的三维(3D)影像的位图影像文件;

摄像头控制器在位图影像文件上执行数字信号处理,以产生3D点云;和

分析控制器执行控制例程,其包括以下步骤:

将3D点云数据的每一个点转换为多个切向表面向量,

基于多个切向表面向量确定用于3D点云数据的每一个点的表面法向向量;

采用单元球面网格检测表面法向向量中的分布峰值,

使用距离分布峰值将平行平面分离,

执行径向相接最近邻策略,其与基于单元划分的最近邻搜索过程组合,以将平面区块分割;和

基于分割的平面区块识别物体的平面表面。

从下文结合附图考虑时进行的对实施本发明的较佳模式中的一些和其他实施例做出的详尽描述能容易地理解上述的本发明的特征和优点以及其他的特征和优点。

附图说明

现在参考附图通过例子描述一个或多个实施例,其中:

图1示意性地示出了根据本发明的包括影像检测器(摄像头)和分析控制器的示例性视觉系统;

图2示意性地显示了根据本发明的用于将在数字摄像头的视野中产生的场景点云的平面表面区块分割的平面表面分割过程,所述摄像头能捕获三维(3D)影像;

图3通过图表显示了根据本发明的3D点云的一个点周围的邻域,包括多个切向表面向量和估计的表面法向向量;

图4通过图表显示了根据本发明的3D坐标系情况下单元球面网格的实施例;

图5-1、5-2和5-3通过图表显示了根据本发明的单元球面网格用于具有三个标准正交平面的箱体的3D点云数据的应用;

图6-1通过图表显示了根据本发明的多个平行的平面候选点,其相对于始于3D空间的源点的平均表面法向向量和点向量绘制;

图6-2通过图表显示了根据本发明的基于参考图6-1所示的结果沿一个平面表面法线方向投射的距离分布的一维(1D)直方图;

图7通过图表显示了根据本发明的执行快速平面表面区块分割的结果,其包括将相同平面上每一个区块中的所有点转换到XOY平面;和

图8通过图表显示了可应用到单元球面网格的三角划分网格,所述单元球面网格例如为参考图4所示的单元球面网格。

具体实施方式

点云是在三维(3D)坐标系的情况下描述视野中的三维场景的点的集合,且可图示一个实施例中的物体的外部表面。点云可以用于执行各种操作,例如物体识别、物体分类、场景可视化、分割、二维影像数据增强和/或其他类型的操作。使用点云执行这些操作的性能水平可能取决于该点云的分辨率。如在本文使用的,点云的分辨率可以是通过点云捕获的场景中的特征结构在点云中可辨别的细节水平。点云的分辨率可能取决于点云中点的数量和/或在点云的一个或多个部分中的点的点密度。如在本文使用的,点密度是每单元体积的点数量的测量值。具有比点云的另一部分更高点密度的点云的部分与其他部分相比不稀疏。

现在参见附图,其中绘图仅是用于示出某些示例性实施例的目的而不是为了对其进行限制,图1示意性地示出了示例性视觉系统100,其包括影像记录器(摄像头)10、控制器20和分析控制器60。

摄像头10优选是数字影像记录装置,其能捕获视野(FOV)35的三维(3D)影像,该三维影像通过摄像头控制器20转换以产生包括3D点云25的数据文件。替换地,摄像头10可包括任何成像装置,其产生包括FOV 35中的3D点云25的数据文件,该3D点云25的一部分有利地图示了实体物体40。如此,3D点云25图示了实体物体40的被测量的表面,且可包括三维坐标系中的点(例如通过x、y、z坐标限定的一组点)。通过定义,影像是图示视野的任何视觉可察觉的绘图。在一个实施例中,影像可以涵盖从可见光谱而来的视野中的反射光的全部或一部分,包括灰度反射、红色-绿色-蓝色(RGB)反射、黑白反射或任何其他合适或期望反射。优选地,影像被捕获且记录在非瞬时存储介质中,例如在非瞬时数字数据存储介质中。

摄像头10可处于相对于FOV 35的任何位置和取向。在一个实施例中,FOV 35包括在可动平面45上取向的实体物体40,可动平面45与摄像头10相距预定距离22。物体40为结构实物,具有一些特征结构,所述特征结构包括例如空间尺寸、材料和表明反射率的表面光洁度等。在一个实施例中,物体40可以是组装车间中的车辆上的部件或区域。

在一个实施例中,可动平面45上取向的物体40安装在第一传送系统42上,所述第一传送系统42以已知速率沿直线路径41传送物体40,且摄像头10安装在第二传送系统12上,所述第二传送系统12以已知速率沿相应直线路径将它们传送固定距离。物体40和摄像头10被传送所沿的直线路径41包括FOV 35。

在一个实施例中,3D点云数据25通过将8位灰度影像形式的具有图示FOV的经编码的结构化光图案的多个位图影像15或FOV的由色调-饱和度-亮度(his三要素)或红、绿、蓝(RGB)三原色图示的彩色影像(或其他影像图示而没有限制)译码而产生。3D点云数据的其他实施例可通过扫描激光或RGB-D传感器获得。摄像头10包括影像获取传感器,所述影像获取传感器信号连接到摄像头控制器20,该摄像头控制器20在位图影像文件15上执行数字信号处理(DSP),以产生3D点云25。摄像头控制器20将3D点云25通信到分析控制器60,用于进行如在本文所述的处理和分析。

影像获取传感器以预定分辨率捕获FOV 35中的像素,且产生FOV 35的位图影像文件15,例如以预定分辨率图示FOV 35的8位像素t位图。位图影像文件15被通信到摄像头控制器20。位图影像文件15在一个实施例中是存储在非瞬时数字数据存储介质中的编码的数据文件。位图影像文件15包括影像的数字图示,其可以包括物体40中的一个或多个,且图示以摄像头10的原始分辨率捕获的FOV 35的原始影像。摄像头10的影像获取传感器以名义标准限定分辨率(例如640x480像素)捕获FOV 35的影像。替换地,摄像头10的影像获取传感器可以以名义高限定分辨率(例如1440x1024像素)或以另一合适分辨率捕获影像。摄像头10的影像获取传感器优选捕获一个或多个静态影像形式的3D影像。

控制器、控制模块、模块、控制装载、控制单元、处理器和相似的术语是指一个或多个专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序或例程的中央处理单元(优选为微处理器)和相关的存储器及存储装置(只读的、可编程只读的、随机存取的、硬件驱动的等)、组合逻辑电路、输入/输出电路和装置、适当的信号调制和缓冲器电路、和提供包括数据存储和数据分析的所述的功能的其他部件中的任一个或各种组合。软件、固件、程序、指令、例程、代码、算法和相似的术语是指任何控制器可执行的指令集,包括标准和查找表。

图2示意性地显示了采用参考图1所述的视觉系统100的实施例用于将3D点云的平面表面区块分割的平面表面区块分割过程200,所述3D点云在能捕获三维(3D)影像的数字摄像头10的视野35中产生。平面表面区块分割过程200被转换为控制例程,所述例程动态可在分析控制器60或另一合适处理装置中实时地动态执行。表1提供为符号表,其中对应于平面表面区块分割过程200的数字标记的图框和相应的功能描述如下。

表1

总的来说,平面表面区块分割过程200包括用于动态识别平面表面的方法和有关算法,用于通过向量叉积(vector cross-products)的简单计算该过程200包括中预先计算的单元球面网格情况下,对于每一个点估计表面法向向量并且检测峰值。沿平面法向方向使用距离分布分离平行平面,且使用单元划分方法对平面区块进行识别和分割。平面表面区块分割过程200和其要素优选周期性地执行,以从采用视觉系统100的实施例捕获的影像识别物体的特征结构。在一个实施例中,平面表面区块分割过程200以小于1秒的速率周期性地执行。如在本文使用的,术语‘动态’和‘动态地’描述了在例程的执行过程中或例程执行的迭代之间实时执行且特征为监测或以其他方式确定参数状态并且有规律地或周期性地更新参数状态的步骤或过程。在一个实施例中,这包括如下所述内容。

视觉系统的实施例从FOV中的场景产生3D点云25,210,且针对3D点云25中的所有点通过获得两个相邻点的差,处理器将3D点云25中的每一个点转换为切向表面向量,220。在一个实施例中,通过视觉系统100的摄像头10产生的3D点云25以FOV的0.2mm的3D分辨率产生3D数据集,且中一个实施例中每一个点对应于3D数据集中的一个像素。3D空间中的分辨率通过距离测量。从来自步骤220的切向表面向量估计表面法向向量,230。表面法向向量是基本垂直于在3D点云25中的每一个点处的隐含表面(implied surface)的向量。3D点云25中的每一个点被认为是具有相应表面法向向量的源点。

从切向表面向量估计表面法向向量包括识别3D点云25中的每一个点周围的点的邻域,其中每一个点代表3D点云25中的一个点。优选地,3D点云25中的每一个点周围的点的邻域被限定为7x7点表面面积。图3通过图表显示了3D点云25的一个点320周围的邻域310,7x7相邻点通过角部点P1302、P2304、P3306和P4308以及相关的切向表面向量和示出。通过计算向量的叉积,可使用线性代数方法针对3D点云中的一个点320进行表面法向向量公式如下。

以这种方式,针对3D点云25中的每一个点可计算表面法向向量。在一个实施例中,通过这种构造使得准确性和用于执行计算的计算时间之间的权衡最小化。

再次参见图2,在IJK空间中采用单元球面网格检测峰值,240,所述IJK空间限定表面法线空间。图4通过图表显示了IJK空间情况下单元球面网格410的实施例,其中IJK空间图示了限定了具有原点415和轴线I 412、J 414和K 416的3D坐标系的向量空间。单元球面网格410通过图表图绘了在顶点处的多个参考点,所述顶点的相邻距离相等。单元球面网格410用于检测IJK空间中的峰值,因为具有高密度的峰值标示最集中的表面法向向量。离散Laplacian-Beltrami(LB)算子应用于网格顶点上,以检测和识别峰值。

用于形成单元球面网格的最佳三角形网格意味着离散LB算子的截断误差为最小误差,且是有界限的。球的三角形网格可递归产生。这包括以在单元球中内接的二十面体开始,通过将每一个边缘在中点处分为两个,且随后沿法向方向将中点投射到单元球中,将每一个三角形递归细分为四个三角形。该过程产生分别具有20、80、320、1280、5120、20480、81820……个三角形面的三角划分序列举个例子,由于计算时间和准确性之间的权衡,具有20480个三角形和10242个顶点的单元球网格可有利地用于IJK空间中的峰值检测。对于单元球面网格410的一个实施例,两个相邻顶点之间的最小、最大和平均角度分别为1.98、2.36和2.16度。因为用于产生这些参考点的计算成本,示例性单元球网格410和两个相邻顶点之间的最小、最大和平均角度优选保存在非瞬时存储装置中,且在平面表面区块分割过程200执行时被加载。在IJK空间的情况下参考图4通过图表显示的单元球面网格410包括20480个三角形和10242个顶点,其可用于IJK空间中的峰值检测。单元球面网格410可在运行时从非瞬时存储装置加载,离散Laplacian-Beltrami(LB)算子在网格顶点位置处应用以识别峰值。

图8通过图表显示了可应用到单元球面网格(例如参考图4所示的单元球面网格410)的三角形网格马赛克800,以执行离散Laplacian运算。Laplace算子是微分算子的形式,其可用于描述多维欧几里得空间中的偏微分方程(PDE)。LB算子形成几何PDE,例如用于影像处理、表面建模和计算机制图的平均曲率流和表面扩散流。在表面网格上应用的离散LB算子与网格的一致性非常相关。应用到单元球形三角划分网格时,每一个参考点pi 810具有六个相邻的点pj,通过要素820、822、824、826、828和830示出。相邻点中两个邻近的点之间的距离对于两对来说几乎相同,允许之后的假设:

αij=βij,

A(pi)=A(pj)且

pipj=pipj-1=pipj+1=pjpj-1=pjpj+1

其中

αij是pipj-1和pjpj-1之间的顶点处的几何角度

βij是pipj+1和pjpj+1之间的几何角度

pj,pj-1和pj+1是相邻的点,例如分别为点822、820和824,且pipj,pipj-1,pipj+1,pjpj-1和pjpj+1是相应点之间的直线距离。

这种离散化可通过下列等式重写为:

其中函数f(pi)和f(pj)表示属于pi和pj周围区域的点数。

使用三角形网格马赛克800可针对单元球面网格410上的所有参考点计算Laplacian值,所述三角形网格马赛克具有(1、1,1,-6、1,1、1)的值,因为每一个参考点仅具有6个相邻点。离散LB算子可被视觉化,如参考图8所示,其中参考点pi810具有-6的值且六个相邻点pj每一个(通过要素820、822、824、826、828和830示出)具有1的值。该马赛克应用到单元球面网格410,以近似Laplacian值定义中的二阶导数。具有负Laplacian值的参考点为可考虑的峰值候选点,且用于Laplacian值的预定临界值优选用于检测主峰值。

图5-1、5-2和5-3通过图表显示了将单元球面网格应用于具有三个标准正交平面的箱体的3D点云数据。图5-1用图显示了具有三个标准正交平面的3D箱体510的实施例的等轴视图。使用参考图1所述的示例性视觉系统捕获3D箱体510的3D点云数据。图5-2通过图表显示了参考图5-1所示的3D箱体510的通过单元球面网格520捕获的3D点云数据的最终表面法线分布522。图5-3通过图表显示了3D箱体530的3D点云数据的包括第一峰值532的部分,显示了与在图5-2中所示的最终表面法线分布522相关的第一平面取向。

再次参见图2,来自单元球面网格峰值检测步骤240的输出包括平面的取向N→→(i,j,k)。使用距离分布峰值分离平行平面。分离平行平面包括沿相同取向将平面分割,其中来自单元球面网格峰值检测步骤的输出为平行平面的取向N→→(i,j,k)。属于一个被找到的峰值的3D点代表一组具有相同法向向量的平行平面,但是这些3D点处于不同距离处。针对具有被检测平面表面法线的平面上的3D点P(xn,yn,zn),可计算或以其他方式确定距离{D1,D2,…,Dn}。

属于在几个平行平面以外的一个平面的所有3D点可通过其沿平均平面法向向量610的相关的距离分布尖峰而被分出。平面法向向量610类似于表面法向向量,其如平面表面区块分割过程200中所述的那样获得。图6-1通过图表显示了投射在3D中的平均平面法向向量610和距离向量605上的平面1611,平面2613和平面3615的多个平行平面候选点,所述3D是在具有原点601的x轴线602、y轴线604和z轴线606的情况下限定的,所述原点与距离向量的原点重合。

图6-2通过图表显示了基于参考图6-1所示的结果用于一个平面法向向量的所有3D点的距离分布的一维(1D)直方图。水平轴线620描绘了沿平面法向向量的方向的来自距离向量的距离分布密度的距离,并且直方图621、623和625分别对应于参考图6-1所示的平面1611,平面2613和平面3615。基于即距离向量和平均平面法向向量的点积确定直方图621、623和625的大小。该结果提供了用于所有平行平面的沿相同表面法线方向的距离分布。如此,平面法向方向用于计算距离分布。这允许将3D点投射到一维方向,例如属于平面1611的任何3D点被沿平面法向向量方向聚集到一个距离尺寸下的一个峰值中。在两个点属于同一平面时,它们可被投射到距离尺寸下的同一峰值中。否则,它们属于不同的平行平面。在这种情况下平行于平面法向向量的投射方向能将这两个平行平面区分。

在沿平面法向向量的距离分布可用时,包括模拟退火法和爬山法在内的组合方法可用于检测峰值。模拟退火法和爬山法是用于识别局部最小和最大峰值的已知分析技术,爬山法用于识别向上和向下运算,而模拟退火法用于识别局部最小和最大峰值二者。这些峰值代表用于识别数据和将数据分割的平行平面段,以检测距离空间中的一个或多个峰值。

再次参见图2,在使用距离分布峰值将在不同高度下的具有相同法向向量的不同平面分离250之后,平面数据被在同一平面上分割为一个或多个区块,即分割为平面区块260,优选采用与基于单元划分的最近邻搜索过程组合的径向相接最近邻(radially bounded nearest neighbor:RBNN)策略。RBNN策略是已知的,且包括将位于一定半径范围内的点云分配到用于分析的群。RBNN方法优选与基于单元划分的最近邻搜索的改进一起应用,以加速处理且由此降低执行时间。RBNN策略能以高的精确水平检测平坦箱体和平坦表面。平面上的所有点被划分为具有相同尺寸的单元,且每一个单元代表一组点。选择具有的点数量大于预定临界值的单元。对于所有所选单元,相邻单元通过3x3马赛克(mask)限定。如此,将平面数据分割为一个或多个相同平面区块包括将相同平面上的每一个平面区块的所有点转换到XOY平面,即垂直于其法向方向的平面中。最大的长方形被识别、划分为相等的单元,且含有至少一个点的单元被选择。基于两个邻近单元应具有在相同群中的点的规则来实现聚集。该方法可基于用于多个尺寸数据的Eps-相邻的局部密度识别任意形状。在一个实施例中,花费37毫秒来处理100,000个点,使得处理的该部分适用于实时应用以识别平面表面。如所述和所采用的,每一个相邻点在3x3矩阵中。通过将数据分为单元和将单元视为点,被分析的点的数量可以40到50的系数来减少,而相邻搜索计算时间保持不变。基于平面区块识别平面表面270,且该迭代结束280。

快速平面表面区块分割方法快速执行。计算时间的主要减少是在使用单元球面网格在IJK空间中进行峰值检测的步骤中,即步骤240中。如此,采用该方法可识别主平面表面。由此,实时自动视觉部件检查可用于在制造环境中改善产品质量。

图7通过图表显示了执行快速平面表面区块分割的结果,其包括将相同平面上的每一个区块中的所有点转换到XOY平面705,即垂直于法向方向的平面。通过将点沿平行于平面法向方向的方向投射,两个区块710和720可被区分,如所示的。

附图和具体实施方式是对本发明的支持和描述,而本发明的范围仅通过权利要求限定。尽管已经对实行本发明的较佳模式中的一些和其他实施例进行了详尽的描述,但是存在用来实施在所附的权利要求中限定的本发明的许多替换设计和实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1