CogPMAlignTool

CogPMAlignTool 这个工具可以选择PatMax这个模式,匹配精确度最高的一个模式,当然耗时也会增加一些。现在重点介绍一下这个模式:

PatMax训练一个模式,然后在一个或多个运行时映像中定位该模式的一个或更多实例。PatMax与其他图案定位技术的不同之处在于,它不是基于无法有效准确旋转或缩放的像素网格表示。相反,PatMax使用了一种基于特征的表示,可以快速准确地进行变换以进行模式匹配。

训练

PatMax可以从包含与您希望在运行时找到的特征相似的特征的图像中进行训练,也可以从目标特征的几何描述中进行训练。PatMax训练产生包含几何特征的图案。

工具支持两种模式定位算法:PatMax和PatQuick。与PatQuick相比,PatMax提供了更高的准确性和额外的分数信息,但需要更多的时间来执行。 

PatMax从您获取的对象的图像中提取图案。PatMax图案是几何特征及其之间的空间关系的集合,其中每个特征是具有不同像素值的两个区域之间的边界上的点的集合。

下图显示了一个图像,它生成的相应PatMax模式,以及组成该模式的特征:

了解模式变换

图像中对象的外观可以有几种不同的方式变化,PatMax可以通过以下任何一种或所有方式查找外观不同的对象:

尺寸(整体尺寸变化或个别x轴和y轴尺寸变化)

旋转

位置

这些类型的转换中的每一种都被称为自由度( a degree of freedom)

uniform scale: 等比缩放

translation:转化

PatMax在运行时图像中找到经过训练的模式,无论该模式经历了何种转换组合。您可以将PatMax限制为考虑特定的自由度,并且在一个自由度内,仅考虑指定的范围。通过这样做,您可以确保PatMax在最短的时间内找到应用程序遇到的所有变化。对于PatMax在运行时映像中找到的每个模式实例,PatMax返回实例的位置以及该模式所经历的变换的每个自由度的值。PatMax还计算0.0和1.0之间的分数,该分数提供了运行时图像中的模式在考虑了模式已经经历的转换之后与训练的模式匹配的程度的指示。(简单点就是设置限定范围)

如果使用形状描述来训练PatMax,PatMax会将模型信息转换为相同的内部几何描述。一旦经过训练,PatMax的执行力都是一样的

图案特征

PatMax图案是一组特征。单个特征被定义为不同像素的区域之间的连续边界。区域可以具有不同的强度、对比度或纹理,也可以是开放的或封闭的。

下图显示了图像中打开和关闭特征的示例:

PatMax阵列特征由特征边界点的有序列表表示。特征边界点具有位置和角度,以及与其相邻边界点的链接。特征边界点的角度是图像坐标系x轴与垂直于特征边界并在暗到亮方向上通过特征边界点绘制的线之间的角度。

下图显示了定义一对特征的特征边界点

特征大小和图案粒度(粒度表示为感兴趣的半径,以像素为单位,在该半径内检测特征。)

组成图案的特征可以具有不同的大小,从几个像素大小的特征到50或100像素大小的功能。大多数图案都包含各种尺寸的特征。PatMax使用不同大小的功能在您获取的运行时图像中定位所需的功能。通常,PatMax使用大特征在运行时图像中快速找到近似的模式匹配,使用小特征精确确定模式位置。下图大功能用于粗略定位,小功能用于精细定位:

coarse:粗的 

PatMax可以在图像中检测到的特定特征由PatMax软件当前使用的粒度决定。大粒度设置允许软件仅检测图像中的大特征,而较小粒度设置允许工具定位较小特征。

上面的图展示了模式粒度的两个重要特征。

1、在小粒度和大粒度设置下都检测到大特征。

2、 根据粒度设置,图像中存在或不存在较小的特征。

然而,在某些情况下,功能可能以细粒度和粗粒度存在,但不以中等粒度存在。下图显示了不同粒度设置对单个图像中检测到的特征的影响。

granularity:粒度 

除了影响作为图案一部分训练的特征外,图案粒度还影响沿特征边界的边界点间距。通常,特征边界点的间距近似等于图案粒度。PatMax在训练图像中的图案时使用一系列图案粒度;PatMax在训练模式时自动确定最佳粒度设置。用于检测训练图像或形状描述中的特征的最小粒度称为细粒度极限。用于检测特征的最大粒度称为粗粒度限制。可以显示使用粗粒度和细粒度限制训练的实际特征和特征边界点。

注意:PatMax使用一系列粒度来训练模式,而不仅仅是粗粒度和细粒度限制。粗限和细限是PatMax使用的最大和最小粒度。 

阵列极性

描述阵列特征的每个边界点都有一个极性。边界点的极性指示边界是可以表征为亮到暗还是暗到亮。可以将PatMax配置为仅查找每个边界点与训练图案具有相同极性的对象,也可以将PatMax配置为查找极性不匹配的对象。忽略模式极性会增加PatMax发现的模式的多样性

下图显示了匹配和不匹配模式极性的一些示例。如果您将PatMax配置为忽略模式极性,它会找到图所示的所有模式。如果您将PatMax配置为考虑模式极性,它可能在右侧列中找不到模式,或者它可能找到了它们,但给它们分配的分数低于左侧列中的模式。

polarity:极性

如果您的应用程序遇到的运行时图像可能会发生极性或其他不均匀的亮度变化,并且您希望定位经历过这些类型亮度变化的对象,则应将PatMax配置为忽略图案极性。如果您希望PatMax只找到具有匹配极性的图案,则应将PatMax配置为考虑图案极性。如果使用形状训练,则必须定义正在训练的所有形状的极性,以便考虑图案极性;如果任何形状的极性不确定,则必须忽略图案的极性

注意:忽略图案极性会导致PatMax图案位置比考虑图案极性大约10% 

图案掩膜

使用图像训练PatMax时,可以通过提供掩膜图像从训练的图案中排除特征。如图显示了一个示例,说明如何使用掩膜来排除训练模式中使用的某些功能。

使用掩膜可以排除不同对象之间可能不同的特征,同时仍然可以使用全方位的粒度来查找图案。注意:形状训练不支持图案掩膜,因为您可以将形状描述设计为仅包含所需特征,因此无需掩膜不需要的特征。

掩膜图像解释如下:

1、训练图像中与掩模图像中具有大于或等于192的值的像素相对应的所有像素被认为是在乎像素。在护理像素内检测到的所有特征边界点都包括在训练的模式中。

2、 训练图像中对应于掩模图像中具有从0到63的值的像素的所有像素被认为不在乎,而是对像素进行评分。在内检测到的特征边界点不在乎,但分数像素不包括在训练的模式中。当训练的模式位于运行时图像中时,训练的模式的“不在乎但得分”部分中的特征将被视为杂斑

3、 训练图像中对应于掩模图像中具有从64到127的值的像素的所有像素被认为是不在乎的,并且不对像素进行评分。在不在乎和不得分像素内检测到的特征边界点不包括在训练的模式中。当训练的模式位于运行时图像中时,训练的模式中的“不在乎”和“不得分”部分中的特征将被忽略,不会被视为杂斑。

4、 保留从128到191的掩膜像素值供Cognex将来使用

注意:如果使用PatQuick算法(不考虑杂斑),则0到63之间的遮罩图像像素值将与64到127之间的遮罩图像素值相同。

—————————————————————————————— 

 PatMax如何在图像中查找图案

本节描述了PatMax如何在运行时图像中查找模式匹配


运行时空间

当您在运行时图像中搜索PatMax模式时,您定义了PatMax使用的运行时空间。
运行时空间由您启用的自由度和每个自由度内要考虑的值范围决定。
PatMax在运行时空间中识别可能的候选者,然后确定最好地描述从训练的模式几何到运行时图像中转换的模式几何的转换。

模式的粒度

PatMax在运行时空间中定位模式匹配,首先只搜索大的特征。在定位一个或多个模式匹配后,使用较小的特征确定训练模式与运行时图像中模式匹配之间的精确转换。
默认情况下,PatMax使用与训练模式时计算的粒度范围相同的粒度范围来检测运行时图像中的特征。

运行模式

PatMax支持两种运行模式,用于在每个获取的图像中定位模式。默认情况下,PatMax使用搜索图像模式,在整个图像中搜索它要找到的模式。PatMax还支持Refine Start Pose模式,该模式将模式搜索限制在定义的起始位置的几个像素内,通常由另一个视觉工具提供。使用“细化起始姿态”模式,PatMax不使用粗粒度设置来搜索图像中的较大特征,而是对较小的特征进行细化搜索,假设它们位于给定起始位置的极窄范围内。

高灵敏度模式

图像质量会对PatMax在图像中发现特征的成功与否产生重大影响。清晰、锐利、高对比度的图像通常会产生最好的效果,而低对比度和有噪声的图像可能会有问题。
为了更好地使PatMax处理这一范围的图像质量,提供了两种执行模式。对于低噪点和高对比度的好图像,您应该在标准模式下运行该工具,即正常操作模式。如果您的图像有噪声或对比度低,您可以通过在高灵敏度模式下运行工具来改善结果,这通常需要更多的训练时间和更多的执行时间。如图显示了一些好的和有问题的图像。请注意,对于具有小特征的图案,高灵敏度模式的性能可能比标准模式差。康耐视推荐大多数应用的标准模式。

 

敏感性参数

当你使用高灵敏度模式时,你也可以设置灵敏度训练参数,它允许你指定你的图像质量。灵敏度参数是一个范围在1.0到10.0之间的数字,它指定了PatMax应用于运行时图像的噪声抑制量。如果灵敏度参数设置为1.0,则应用最小噪声抑制。当灵敏度参数设置为10.0时,采用最大噪声抑制。由于图案的某些部分可能表现为随机噪声,因此实际的图案特征可能会丢失。最好的结果通常是使用默认的2.0。较低的灵敏度参数值对训练时间和执行时间的影响较小,而较高的灵敏度参数值往往会增加这些时间。

有噪声的图像,可以通过改变感光度参数进行实验,以确定最佳设置。增大灵敏度参数使PatMax对随机噪声的敏感性降低,减小灵敏度参数使PatMax对模式的敏感性提高。如果有帮助,您应该在1.0到5.0范围内找到最佳设置。高于5.0的设置不太可能产生最佳结果。

模式权重

当你使用PatMax形状训练时,你提供了一个单独的形状模型的集合。每个形状模型都可以分配一个权重因子,在运行工具时使用该因子来计算训练模型与所发现的相似性的匹配程度,如分配权重一节所述。权重系数越大的形状模型对得分的影响越大。

分数

对于PatMax在运行时图像中找到的训练模式的每个实例,它计算0.0到1.0之间的分数值。实例接收到的分数表明它与训练模式的匹配程度。得分为1.0表示完全匹配;分数为0.0表示模式根本不匹配。
当您指定PatMax算法时,PatMax会根据模式拟合的紧密程度(运行时图像中特征的形状符合训练模式中特征的形状的程度)和杂波的存在(无关的特征)对实例进行评分。当您指定PatQuick算法时,PatMax仅根据模式匹配对实例进行评分。
在考虑是否合适时,PatMax会考虑图案的形状。亮度或对比度的差异(只要极性相同)被忽略。(您可以指定除了亮度和对比度变化之外,PatMax还忽略极性变化。)PatMax对图案的弹性拉伸有一定的容忍度。对于缺少或无关特征的模式,PatMax倾向于返回较低的分数。下图显示了具有弹性拉伸的模式和缺少或无关特性(称为破碎模式)的模式的示例。

stretched :拉伸 

broken:破碎

如果你指定了PatMax算法,如果你指定了PatMax在计算分数时考虑杂斑。

对比度

除了总分之外,PatMax还返回它在运行时图像中找到的模式的每个实例的图像对比度。对比是PatMax在训练模式和运行时图像中的模式实例之间匹配的所有边界点的灰度值的平均差值。
由于PatMax是根据图案的形状来计算图案的分数,所以对比度值和分数值通常是独立的。您可以使用对比度值来获取有关对象的其他信息。您可以为PatMax搜索指定对比度阈值。如果指定对比度阈值,则只有所有边界点的灰度值的平均差值超过对比度阈值的模式实例才会被PatMax考虑。

拟合误差

拟合误差是对训练模式的形状与在运行时图像中找到的模式实例的形状之间的方差的度量。
拟合误差的计算方法是取模式中每个边界点与运行时图像中模式实例中对应边界点之间的加权平均距离和的平方根。如果运行时图像中的模式实例与训练好的模式完美匹配,则拟合误差为0.0。
您可以使用拟合误差来评估模式实例的形状与训练模式的形状匹配的程度。

杂斑分数(Clutter Score)

杂斑分数是对发现的对象包含训练模式中不存在的特征的程度的度量。
杂斑分数是发现对象中存在的无关特征相对于训练模式中特征数量的比例。杂斑分数为0.0表示找到的实例不包含无关的特征。杂斑分数为1.0表示,对于训练模式中的每个特征,在找到的模式实例中都有一个额外的无关特征。杂斑分数可以超过1.0。当PatMax计算杂波分数时,它会考虑与用于训练模式的图像区域相对应的运行时图像区域内的所有特征。

注意:使用形状训练的一个常见原因是应用程序使用的图像中存在许多变量和无关的特征。当您在这些图像中定位经过形状训练的模式时,可能会有大量的混乱。在许多情况下,您应该禁用杂斑评分

控制PatMax对齐

当您使用PatMax执行模式对齐时,对于每个广义自由度(x平移或y平移以外的自由度),您必须指定该自由度是禁用的,在这种情况下,您必须为该自由度指定一个标称值。PatMax只会找到接近该自由度的指定标称值的模式实例,而不会计算该自由度的值;它将报告您为自由度指定的标称值。
启用自由度,在这种情况下,您必须指定一个区域,该区域定义了该自由度的允许值范围。PatMax将在指定区域内找到具有自由度值的模式实例,并且PatMax将计算并报告自由度值。
例如,如果您使用PatMax来执行基准标记的仅平移对齐,则可能禁用旋转和缩放自由度,并指定旋转0度和缩放1.0度的标称值。
但是,如果您的应用程序遇到运行时图像,其中基准标记非常轻微地旋转或缩放,则PatMax将找到这些实例,但是位置信息的准确性可能会稍微降低,并且实例可能会获得较低的分数。PatMax不会计算缩放或旋转的值;它将报告您为自由度指定的标称值。
如图显示了指定标称旋转值和指定旋转区域时轻微旋转的效果。如果指定角度的标称值为0˚,则图案的稍微旋转的实例将被解释为图案的轻微不匹配。它得到较低的分数(0.80而不是0.98),较高的拟合误差,并且可以降低位置的精度。

如图设置角度范围的效果:

除了角度,还可以设置缩放比例,效果也是一样的。

__________________________________________

没有想象那么复杂:

这个工具就是用来特征匹配,你可以设置限定范围来影响匹配特征的分数,可以在杂斑、大小、角度、极性等方面设置限定。

用visionpro自带软件举例:

首先导入图片到工具里面,圈定训练区域为你想要的特征:

假如我们有一些特征不需要,我们可以把它掩膜掉(选择抓取图像,接着点开上面的那支画笔,也就是掩膜工具):

掩膜掉你不想要的特征,多摸索一下,如我只想要这个孔的特征,红色为掩膜掉的地方:

 选择“应用”,训练后,勾选显示精细就可以看到训练到的特征了:

放大后如图:

 

接着在后续的图片中,如果出现类似的孔,就会被匹配到,你看,我设置了缩放比例为(0.6-1.6),这导致了物体上圆孔全部都被当做了匹配到的特征了:

以上为基础啦,多练练。

我们看一下这个工具有什么终端接口可以让我们调用:
 

常用的当然是成员results下面的东西了。

其中Count可以用来判断匹配了几个特征,这里我们是匹配了5个,GetPose()方法下面有不同特征对应的匹配角度、分数、X、Y坐标等等,这些数据在一些难度的项目里面是非常有用的,比如我可以在每一个特征里面完成某些相同的图像处理操作。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值