跳转到内容

Template Matching vTool#

Template Matching vTool 允许您检测图像中的对象。使用训练模板,根据像素的灰度值信息进行检测。

它最适合检测边缘模糊或边界未清晰定义的对象。

Template Matching vTool 通过图像输入引脚接受图像,并通过输出引脚输出找到的匹配项的相关信息。

它还输出对齐转换数据,允许 Image Alignment vTool 将输入图像与匹配期间使用的参考图像对齐。这使得 Measurements vTools 可以测量与参考图像不同位置的对象。

如果您使用 ROI Creator vTool 指定感兴趣区域,则 Template Matching vTool 会通过其 Roi 输入引脚接受 ROI 数据。在这种情况下,只有当匹配模型的默认参考点位于感兴趣区域内时,才能找到对象。

感兴趣区域可用于聚焦于该特定区域中的对象,以消除潜在的错误候选项,或减少处理时间。

Template Matching vTool 的区域输出还可用作具有 ROI 输入引脚的 vTools 的 ROI 输入。有关更多信息,请参阅 ROI Creator vTool 主题。

您可以使用 Calibration vTool 提供的转换数据,以米为单位输出世界坐标中的匹配位置(Positions_m 输出引脚变为可用)。为此,请在匹配之前使用 Calibration vTool 并连接两个 vTools 的转换输出/输入引脚。

Template Matching Basic vTool

Template Matching 版本#

有两个版本的 Template Matching vTool 可用。下表显示了版本之间的差异。单击表标题中的版本可直接跳转到本主题中的相关部分。

Starter Basic
您如何定义自己的模板? 在所需对象周围拟合一个矩形。 使用画笔工具描绘所需对象的轮廓。
您可以指定超时时间吗?
您可以定义参考点吗?
是否可以检测到与所训练的对象不同角度的对象?
ROI 输入引脚的有效数据类型 RectangleF RectangleF、RectangleF 数组、区域、区域数组

运作原理#

通过定义模板并将其应用于输入图像,您可以收集有关匹配项的以下信息:

  • 匹配得分
  • 位置
  • 方向
  • 具有匹配项可视化的区域

模板定义#

Template Matching 的第一步是根据您的应用要检测的对象的代表性图像来训练模型。

在此训练图像中,标记所需区域并进行训练。您的应用使用此模型在您的生产环境中检测该对象。

仅检测图像中完全可见的对象。这意味着模板图像中标记的区域必须完全位于搜索图像中。因此,请确保在标记所需对象时做到非常精确,并尽可能使用最小的笔。

信息

Template Matching Starter vTool 会在标记区域周围创建一个边界框,并使用它进行匹配。因此,在教学过程中,您只需将此边界框保留在图像内即可。

对象的大小必须与训练模型中的对象完全相同,并且与相机的距离相同。

Template Matching 直接基于模型和搜索图像的灰度值信息。Template Matching 使用标准化互相关算法。

信息

  • 选择具有代表性的图像作为模板。
  • 在模板图像中标记所需对象的区域后,请选择具有对象特征且通常出现在搜索图像中的区域。

使用参考点#

Template Matching Basic vTool 允许您在标记的图案中显示参考点。默认情况下,参考点放置在图案的重心处。对于大多数应用而言,这很有效。

信息

如果您使用感兴趣区域,则默认参考点必须位于感兴趣区域内。

但是,如果需要,您可以将参考点移动到其他位置。机器人提货应用程序就是一个例子。在这种情况下,视觉系统必须考虑机器人的抓手和要拾取的物体的形状来确定机器人的抓握位置。在这里,您可以相应地放置参考点,以适应这两个方面。

要显示参考点,必须先在训练图像中标记模板区域。

执行设置#

  • Matches: 如果应用程序中只能出现有限数量的对象,您可能希望将可能的匹配数限制为恰好此数目。这将提高处理速度和稳健性。
  • Score: A score value is calculated for every match. This score is the correlation coefficient between the region in the model and the region matched 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 objects are found in the test images.
  • 超时:对于时间要求严格的应用程序,您可以指定超时时间。超时时间有助于处理时间变化或无法预见的情况,例如,如果图像不包含所训练的对象。通过指定超时时间,检测过程会在指定的超时时间后停止并继续下一个图像。
    Basler 建议将超时时间设置为略低于所需的时间限制。这是因为 vTool 不会立即停止检测过程。因此,将超时时间设置为所需时间限制的 70%–80%。

使用校准#

匹配项的结果位置也可以米为单位输出到世界坐标中。为此,将 Calibration vTool转换输出引脚连接到 Template Matching vTool 的转换输入引脚。

必须使用与实际处理相同的校准配置来设置 Template Matching vTool。

信息

  • 三维世界空间中,产生二维图像的对象的表面必须至少或多或少位于空间中的同一平面上。如果是这样的话,由于物体在世界中的不同位置和图像中的边缘而造成的透视失真的影响可以忽略不计。
  • 由于光学设置,广角镜头会引入显著的透视失真。对于这些镜头,检查对象的高度应相对于对象到相机的距离较低。或者,如果无法忽略对象高度,则在模板图像中选择一个相同高度级别的区域。
  • 在校准设置过程中,通过将校准板的表面放在对象的平面上来注册该平面。

常见用例#

  • 对象 Counting:在这种情况下,只有 Scores 输出引脚上的元素数量是相关的。
  • image coordinatesLocating 物体:使用 Positions_pxAngles_rad 输出引脚进行后续处理。
  • world coordinatesLocating 物体:使用 Positions_mAngles_rad 输出引脚将物体位置之类的数据传送给机器人以抓取物体。

Template Matching Starter#

您可以指定要在图像中检测的对象数量,也可以搜索无限数量的对象。将匹配项数量限制为预期数量可以使处理更快、更稳健。

通过调整分数值,您可以指定对象与所训练对象的匹配程度。

Template Matching Starter 使用边界框来标记具有所需对象的区域。在加载图像时,系统会自动显示一个矩形。将其放在所需目标对象周围,并根据需要调整其大小。为此,您可以使用矩形手柄或在矩形设置区域中手动输入所需的值。

如果要检测位于不同方向的对象,请启用旋转复选框。启用此选项后,模型设置区域中的选项变为可用。使用这些选项,您可以定义目标角度和允许对象偏离目标角度的公差。使用增量选项,您可以指定逐步进行检测。选择较大的增量可以加快处理速度,即加快检测速度。

配置 vTool#

要配置 Template Matching Starter vTool:

Template Matching Starter vTool 设置

  1. vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
    Template Matching Starter 对话框即打开。
  2. 拍摄或打开训练图像。
    您可以使用单拍按钮来拍摄实时图像,或单击打开图像按钮以打开现有图像。
  3. 矩形设置区域中,调整矩形的位置和大小,使其适合要用作模板的对象。
  4. 模型设置区域中,指定是否要启用旋转。
    这允许您匹配与模板方向不同的对象。
  5. 单击工具栏中的 Teach 按钮,训练匹配的模型。
  6. 如果需要,请调整 Execution Settings 区域中的 Matches 设置以将匹配数限制为最大值。
  7. 如有必要,请调整 Score 设置,以便仅找到目标对象。

您可以在引脚数据视图中查看 Template Matching 的结果。在这里,您可以选择要显示的输出。

Template Matching Basic#

您可以指定要在图像中检测的对象数量,也可以搜索无限数量的对象。将匹配项数量限制为预期数量可以使处理更快、更稳健。

通过调整分数值,您可以指定对象与所训练对象的匹配程度。

对于时间要求严格的应用程序,您可以指定超时时间。超时时间有助于处理时间变化或无法预见的情况,例如,如果图像不包含所训练的对象。

配置 vTool#

配置 Template Matching Basic vTool:

Template Matching Basic vTool 设置

  1. vTool 设置区域的配方管理窗格中,单击打开设置或双击 vTool。
    Template Matching Basic 对话框即打开。
  2. 拍摄或打开训练图像。
    您可以使用单拍按钮来拍摄实时图像,或单击打开图像按钮以打开现有图像。
  3. 使用笔在图像中标记所需的区域。
    要纠正绘图,您可以使用橡皮擦或将其完全删除。
  4. 单击工具栏中的 Teach 按钮,训练匹配的模型。
  5. 如果需要,通过单击显示参考点来显示参考点。
    参考点显示在模板区域的中心,手动设置参考点按钮变为可用。您现在可以将参考点拖动到所需位置。如果您再次单击手动设置参考点,参考点将跳回其默认位置。
  6. 如果需要,请调整 Execution Settings 区域中的 Matches 设置以将匹配数限制为最大值。
  7. 如有必要,请调整 Score 设置,以便仅找到目标对象。
  8. 如果要指定超时,请清除 No timeout 复选框并在输入字段中输入所需的超时。

您可以在引脚数据视图中查看 Template Matching 的结果。在这里,您可以选择要显示的输出。

输入#

图像#

直接从 Camera vTool 或从输出图像的 vTool(例如 Image Format Converter vTool)接受图像。

  • 数据类型:图像
  • 图像格式:8 位到 16 位单色或彩色图像。彩色图像在内部转换为单色图像。

ROI#

从 ROI Creator vTool 或任何其他可输出区域或矩形的 vTool 中接受感兴趣区域。多个矩形或区域在内部合并以形成单个感兴趣区域。Starter 版本仅接受 RectangleF。

  • 数据类型:RectangleF、RectangleF 数组、区域、区域数组

转型#

接受来自 Calibration vTool 的转换数据。

  • 数据类型:转换数据

输出#

得分#

返回匹配项的得分。

  • 数据类型:浮点数组

Positions_px#

返回图像坐标(行/列)中匹配项的位置。

  • 数据类型:PointF 数组

Positions_m#

以米为单位返回世界坐标中匹配项的位置 (x/y)。

  • 数据类型:PointF 数组

Angles_rad#

以弧度为单位返回匹配项的方向。

  • 数据类型:浮点数组

区域#

为找到的每个匹配项返回一个区域。

  • 数据类型:区域数组

AlignmentTf#

返回 Image Alignment vTool 用于将输入图像中的对象与匹配过程中使用的参考对象对齐的转换数据。

  • 数据类型:转换数据

典型前置项#

典型后置项#