Geometric Pattern Matching vTool#
It is best suited for detecting objects with sharp edges and larger objects because edge-based matching needs very few processing time and memory.
Geometric Pattern Matching vTool 通过图像输入引脚接受图像,并通过输出引脚输出找到的匹配项的相关信息。
它还输出对齐转换数据,允许 Image Alignment vTool 将输入图像与匹配期间使用的参考图像对齐。这使得 Measurements vTools 可以测量与参考图像不同位置的对象。
如果您使用 ROI Creator vTool 指定感兴趣区域,则 Geometric Pattern Matching vTool 会通过其 Roi 输入引脚接受 ROI 数据。在这种情况下,只有当匹配模型的默认参考点位于感兴趣区域内时,才能找到对象。
感兴趣区域可用于聚焦于该特定区域中的对象,以消除潜在的错误候选项,或减少处理时间。
您可以使用 Calibration vTool 提供的转换数据,以米为单位输出世界坐标中的匹配位置(Positions_m 输出引脚变为可用)。为此,请在匹配之前使用 Calibration vTool 并连接两个 vTools 的转换输出/输入引脚。
Geometric Pattern Matching 版本#
有两个版本的 Geometric Pattern Matching vTool 可用。下表显示了版本之间的差异。单击表标题中的版本可直接跳转到本主题中的相关部分。
Basic | Pro | |
---|---|---|
是否可以检测到部分可见的图案? | 无 | 是 |
Scaling 可用吗? | 无 | 是 |
是否以子像素准确度返回匹配项? | 无 | 是 |
是否检测到这样的图案,其边缘的极性与模型中的边缘不同? | 无 | 是 |
您是否可以限制探测角度? | 无 | 是 |
运作原理#
通过定义图案并将其应用于输入图像,您可以收集有关匹配项的以下信息:
- 匹配得分
- 位置
- 方向
- 垂直和水平 Scaling 系数(仅在 Pro 版本的 vTool 中可用)
- 具有匹配项可视化的区域
图案定义#
图案匹配的第一步是根据应用要检测的对象的代表性图像来训练模型。在此训练图像中,使用其中一支笔标记所需的图案并进行训练。您的应用使用此模型在您的生产环境中检测相同的图案。图案由边缘形成。
信息
- 选择具有代表性的图像作为模板。
- 在模板图像中标记所需图案的边缘。选择突出且通常存在于搜索图像中的边缘。
- 由笔标记的像素构成图案的一部分。了解这一点很重要,因为 Geometric Pattern Matching Basic vTool 仅检测图像中完全可见的图案。因此,Basler 建议使用尽可能小的笔。
使用参考点#
您可以决定在已标记的图案中显示参考点。默认情况下,参考点放置在图案的重心处。对于大多数应用而言,这很有效。
信息
如果您使用感兴趣区域,则默认参考点必须位于感兴趣区域内。
但是,如果需要,您可以将参考点移动到其他位置。机器人提货应用程序就是一个例子。在这种情况下,视觉系统必须考虑机器人的抓手和要拾取的物体的形状来确定机器人的抓握位置。在这里,您可以相应地放置参考点,以适应这两个方面。
要显示参考点,必须先在训练图像中标记一个图案。
对比度#
对比度设置是指图案边缘的对比度。一方面,将对比度设置得很低,以便检测到所有相关的模型边缘。另一方面,将对比度设置得足够高,以排除噪声或不需要的边缘。在大多数情况下,启用自动对比度可以获得良好的效果。如果启用,vTool 可确定合适的对比度。
对比度包含在模型中。如果您在此处进行更改,则必须重新训练模型。
Scaling#
Scaling 选项定义模型与位于搜索图像中的对象之间的尺寸容差。
信息
Scaling 仅在 Pro 版本的 vTool 中可用。
提供三种不同的缩放选项:无缩放、各向同性缩放或各向异性缩放。
- No scaling: 如果相机到物体的距离或物体本身的大小保持不变,请选择此选项。
- Isotropic scaling: 各向同性缩放可以补偿相机与物体之间距离的变化或物体大小的变化。
- Anisotropic scaling: 各向异性缩放意味着缩放发生在两个方向:垂直和水平。因此,物体的长度和宽度可能会有不同程度的变化。例如,此选项可用于检测具有不同长度和宽度的矩形。
信息
- 始终选择最简单的缩放选项以减少处理时间并增加 vTool 的稳健性。如果物体的比例在应用程序中保持不变,请使用 No scaling。如果物体大小有变化,请选择 Isotropic scaling。只有在形状变化的情况下,才使用 Anisotropic scaling。
- 如果应用程序需要缩放,请将缩放范围设置得尽可能低。这也减少了处理时间并增加了 vTool 的稳健性。
Scaling 设置包含在模型中。如果您在此处进行更改,则必须重新训练模型。
极性#
图案匹配算法基于模板和搜索图像中的边缘。边缘是一组相邻的边缘点。
因此,边缘点会标记背景和搜索图案之间的边界,即从亮到暗或从暗到亮像素的过渡。边缘点的极性表示此灰度值过渡的方向。
关于搜索图像中边缘点的极性,有三个选项可用:
- 相同:搜索图像中所有边缘点的极性必须与模板图像中的相同。如果搜索图像中某些边缘点的极性与模板图像中的极性不同,则仍然可以检测到该图案,但得分较低。
- 相同和反转:同时检测具有反转极性的边缘点。这意味着将检测到相同和反转的图案。一个简单的示例是圆形形状的检测,其中浅色背景上的深色圆圈和深色背景上的浅色圆圈都将使用相同的模型进行检测。
- 忽略极性:忽略边缘点的极性。这意味着将检测到任何极性的边缘点。
示例:您在浅色背景上训练一个灰色圆圈的图案。结果,将检测到浅色背景上的灰色圆圈、深色背景上的浅色圆圈以及包括明暗区域的混合背景上的圆圈。请注意,匹配得分可能会下降一点,因为搜索图像中满足指定最小边缘对比度的边缘点较少。
信息
Basler 建议仅在您的应用确实需要时才使用相同和反转以及忽略极性选项。尤其是忽略极性可能会增加检测到不需要的图案的可能性。
下表说明了不同的可用极性选项:
极性设置 | 模板图像 | 检测到的图案 |
---|---|---|
相同 | ||
相同和反转 | ||
忽略极性 |
检测角度#
在某些应用中,限制要检测的图案的方向可从模型旋转的角度可能很有用。这可以提高处理速度和强度。
有两个选项可以定义检测角度的范围:
- 目标:这是允许图案从模型旋转同时仍被检测到的角度。根据您要检测的图案的预期平均旋转选择一个值。默认设置为 0°,即假设搜索图像中的图案方向与模型中的方向相同。要允许变化,请选择适当的容差。
- Tolerance: This option allows you to specify the tolerance of the detection angle, i.e., it defines the range of angles centered around the target angle. The default setting is 180 °, i.e., 360° rotations are allowed.
根据目标和容差设置,检测角度的范围可以这样计算:从(目标 - 容差)开始,到(目标 + 容差)结束。
Example: If you know that objects in your application may appear rotated in the range from 10° to 30°, set the target angle to 20° and the angle tolerance to 10°.
Restricting the angle is especially useful for objects with any kind of symmetry. For rectangles, set the tolerance to 90°. For circles, set the tolerance to 0°.
信息
逆时针方向的角度为正。
执行设置#
- Matches: 如果应用程序中只能出现有限数量的对象,您可能希望将可能的匹配数限制为恰好此数目。这将提高处理速度和稳健性。
- Score: A score value is calculated for every match. This score indicates how closely the actual object in the image resembles the model of the pattern. For example, a score value of 0.9 says that 90 % of all model points could be matched to edges in the search image.
To find the optimum Score setting, start with a moderate value and run some test images. Observe the output values of the Scores pin. In order to securely find a match, always set the Score option to a value lower than the scores output by the Scores pin. This is best practice and recommended to allow for some tolerance.
Choose a score value between 50–80 % of the lowest score output values determined on the test image. In case the score is set too low, some unwanted matches may be detected as well. In that case, readjust the score value until only the intended patterns are found in the test images. - 超时:对于时间要求严格的应用程序,您可以指定超时时间。超时时间有助于处理时间变化或无法预见的情况,例如,如果图像不包含所训练的图案。通过指定超时时间,检测过程会在指定的超时时间后停止并继续下一个图像。
Basler 建议将超时时间设置为略低于所需的时间限制。这是因为 vTool 不会立即停止检测过程。因此,将超时时间设置为所需时间限制的 70%–80%。
使用校准#
匹配项的结果位置也可以米为单位输出到世界坐标中。为此,将 Calibration vTool 的转换输出引脚连接到 Geometric Pattern Matching vTool 的转换输入引脚。
必须使用与实际处理相同的校准配置来设置 Geometric Pattern Matching vTool。
信息
- 三维世界空间中,在图像中产生二维边缘的对象的轮廓必须至少或多或少位于同一平面上。如果是这样的话,由于对象在世界中的不同位置和图像中的边缘而造成的透视失真的影响可以忽略不计。
- 对于广角镜头,由于光学设置会引入显著的透视失真,相对于物体到相机的距离,检查对象的高度应该较低。或者,如果无法忽略对象高度,请选择相同高度级别的模型边缘。
- 在校准设置过程中,通过将校准板的表面放在对象轮廓的平面上来注册该平面。
常见用例#
- 对象 Counting:在这种情况下,只有 Scores 输出引脚上的元素数量是相关的。
- 在 image coordinates 中 Locating 物体:使用 Positions_px 和 Angles_rad 输出引脚进行后续处理。
- 在 world coordinates 中 Locating 物体:使用 Positions_m 和 Angles_rad 输出引脚将物体位置之类的数据传送给机器人以抓取物体。
- 确定对象的尺寸:使用 VScalingFactors 和 HScalingFactors 输出引脚来测量尺寸或物体距离变化。
图案匹配结果的典型示例如下所示:
Geometric Pattern Matching Basic#
Geometric Pattern Matching Basic vTool 仅检测图像中完全可见的对象。图案定义期间标记的像素在训练图案时构成对象的一部分。
如果对象只有一个像素在图像之外,则根本不会检测到该对象,或者该对象的位置不正确且得分较低。因此,Basler 建议使用尽可能小的笔。
对象必须与训练图案中的对象具有完全相同的大小,且与相机的距离相同。如果您预计大小和/或距离有变化,请使用 Geometric Pattern Matching Pro vTool,因为此 vTool 提供了一个 Scaling 选项。
Positions_px 输出引脚以整数值返回对象的位置。如果需要子像素准确度,请使用 Geometric Pattern Matching Pro vTool。
配置 vTool#
配置 Geometric Pattern Matching Basic vTool:
- 在 vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
Geometric Pattern Matching Basic 对话框即打开。 - 拍摄或打开训练图像。
使用单拍按钮来拍摄实时图像或单击打开图像按钮以打开现有图像。 - 使用笔在图像中标记所需的图案。
要纠正绘图,请使用橡皮擦或将其完全删除。 - 在 Model Settings: Contrast 区域中,调整 Contrast 以检测模型的相关边缘。
模型边缘在示教图像中以 Edge visualization 中选择的颜色进行可视化。 - Teach the matching model by clicking the Teach button on the toolbar.
- 如果需要,通过单击 Show Reference Point 来显示参考点。
参考点显示在图案的中心,Set Reference Point Manually 按钮变为可用。您现在可以将参考点拖动到所需位置。如果您再次单击 Set Reference Point Manually,参考点将跳回其默认位置。 - 如果需要,请调整 Execution Settings 区域中的 Matches 设置以将匹配数限制为最大值。
- 如有必要,请调整 Score 设置,以便仅找到目标对象。
- 如果要指定超时,请清除 No timeout 复选框并在输入字段中输入所需的超时。
您可以在引脚数据视图中查看模式匹配的结果。在这里,您可以选择要显示的输出。
Geometric Pattern Matching Pro#
Geometric Pattern Matching Pro vTool 为图案检测提供最大的灵活性。
使用 Scaling 选项,您可以确保即使对象的大小与训练的图案不同或相机和对象之间的距离发生变化,也仍可以检测到对象。此外,检测图像区域中不完全可见的对象,并以子像素精度返回匹配的位置。
极性选项允许您指定图案边缘点是否必须与模型中的边缘点具有相同的极性,或者是否也检测具有不同极性边缘点的图案。
使用检测角度选项,您可以限制图案的旋转角度可偏离模型的程度。
配置 vTool#
要配置 Geometric Pattern Matching Pro vTool:
- 在 vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
Geometric Pattern Matching Pro 对话框即打开。 - 拍摄或打开训练图像。
使用单拍按钮来拍摄实时图像或单击打开图像按钮以打开现有图像。 - 使用笔在图像中标记所需的图案。
要纠正绘图,请使用橡皮擦或将其完全删除。 - 在模型设置区域中,调整对比度以检测模型的相关边缘。
模型边缘在示教图像中以边缘可视化中选择的颜色进行可视化。 -
在模型设置区域中,根据需要配置以下选项:
- Scaling:选择所需的选项并根据应用的需要调整 Scaling 范围。
- 极性:根据您的应用要求选择所需的选项。
- 检测角度:根据您的应用要求减小或调整检测角度。
-
Teach the matching model by clicking the Teach button on the toolbar.
- 如果需要,通过单击 Show Reference Point 来显示参考点。
参考点显示在图案的中心,Set Reference Point Manually 按钮变为可用。您现在可以将参考点拖动到所需位置。如果您再次单击 Set Reference Point Manually,参考点将跳回其默认位置。 - 如果需要,请调整 Execution Settings 区域中的 Matches 设置以将匹配数限制为最大值。
- 如有必要,请调整 Score 设置,以便仅找到目标对象。
- 如果要指定超时,请清除 No timeout 复选框并在输入字段中输入所需的超时。
您可以在引脚数据视图中查看模式匹配的结果。在这里,您可以选择要显示的输出。
输入#
图像#
直接从 Camera vTool 或从输出图像的 vTool(例如 Image Format Converter vTool)接受图像。
- 数据类型:图像
- 图像格式:8 位到 16 位单色或彩色图像。彩色图像在内部转换为单色图像。
ROI#
从 ROI Creator vTool 或任何其他可输出区域或矩形的 vTool 中接受感兴趣区域。多个矩形或区域在内部合并以形成单个感兴趣区域。
- 数据类型:RectangleF、RectangleF 数组、区域、区域数组
转型#
接受来自 Calibration vTool 的转换数据。
- 数据类型:转换数据
输出#
得分#
返回匹配项的得分。
- 数据类型:浮点数组
Positions_px#
返回图像坐标(行/列)中匹配项的位置。
- 数据类型:PointF 数组
Positions_m#
以米为单位返回世界坐标中匹配项的位置 (x/y)。
- 数据类型:PointF 数组
Angles_rad#
以弧度为单位返回匹配项的方向。
- 数据类型:浮点数组
VScalingFactors#
返回匹配项的垂直缩放系数。
- 数据类型:浮点数组
HScalingFactors#
返回匹配项的水平缩放系数。
- 数据类型:浮点数组
区域#
为找到的每个匹配项返回一个区域。
- 数据类型:区域数组
AlignmentTf#
返回 Image Alignment vTool 用于将输入图像中的对象与匹配过程中使用的参考对象对齐的转换数据。
- 数据类型:转换数据