跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

Pattern OCR vTool#

Pattern OCR vTool 使用选定的模型读取图像中的文本。它专为预先知道预期文本布局或模式的应用场景而设计。

典型应用包括序列号、批号或其他具有固定结构的文本。在这些情况下,相关图像区域要么在设计上是稳定的,要么可以在预处理步骤中被可靠地提取和对齐。如果您的文本不遵循固定模式,请改用 Free-Form OCR vTool。

Pattern OCR vTool 读取通过 Image 输入引脚接收到的图像中的文本,并将其与模型设置的模式进行比较。它通过 Texts、BBoxes_px 和 Scores 输出引脚输出结果。

如果您在检测前使用 ROI Creator vTool 指定感兴趣区域,则 Pattern OCR vTool 会通过其 Roi 输入引脚接受 ROI 数据。在这种情况下,仅在感兴趣区域上执行检测。作为副作用,这会带来更快的处理速度。

要运行 Pattern OCR vTool,您需要 pylon Supplementary Package for pylon AI 1.6.1 或更高版本。

要购买 Pattern OCR vTool 的许可证,请访问 Basler 网站。

Pattern OCR vTool

运作原理#

假设您想读取包装上的保质期。这些日期始终以相同的字体打印并使用相同的日期格式。

这是显示保质期和其他信息的输入图像:

显示运单标签的输入图像

您可以通过加载经过训练以读取保质期的模型来配置该 vTool。

保质期 OCR 读取套件

在向导的第一页上,您可以指定一个替代字符,用作未识别字符的替代品。

您还可以看到可配置的模型特定参数。这些参数来自您所选的模型,因此此处不作文档记录。有关模型特定参数的更多信息,请在 Features - All 窗格中选择该参数,并在 Feature Documentation 窗格中查看其描述。

单击 Next 进入向导的第二页,您可以在其中配置字符设置。

Pattern OCR vTool 字符设置页面

模型可以包含一个预配置的模式,您可以保留它。要自己定义模式,请加载样本图像。使用 Single Shot 抓取当前图像,或使用 Open Image 加载 .png 文件。如果连接了 Roi 输入,Single Shot 将使用该区域。旋转的 ROI 在显示之前会被拉直。如果字符标记已经存在,请选择在抓取或打开另一图像时是保留还是删除它们。

您可以将每个字符分类为字母 (L)、数字 (D) 或未知 (U)。设置行 (1–10) 以及该行中的单词位置 (1–20)。这些适用于每个选定的字符。在一个选定的字符上设置单词中的字符位置 (1–20)。使用 Shift + 左键单击选择多个字符框,或者使用 Ctrl+A 选择全部。行、单词位置和字符位置的每个组合必须是唯一的。编辑器会报告重复的定义。

创建模式最简单的方法是使用 Auto-Recognize Pattern 按钮。

自动识别模式按钮

自动识别会询问该模式包含多少行。请输入 1 到 20 之间的值。它会在找到的每个字符周围加上一个方框,并相应地更新字符定义。如果已有标记,请在替换前进行确认。如果未找到任何字符,则当前模式保持不变。如果您发现错误,请选择一个字符方框并更改其定义。

若要手动定义字符,请单击 Mark Character 按钮。

标记字符按钮

这会在图像中添加一个字符方框。将其拖动到所需位置,并根据需要编辑字符定义。

Character Pattern 区域允许您检查定义是否正确。

配置 vTool 后,运行启动推理过程的配方。vTool 利用模型分析图像并读取其中的单词和文本片段。分析完成后,将返回 OCR 结果。

这是显示结果的引脚数据视图:

Pattern OCR 结果

图像格式#

根据模型的不同,Image 输入引脚可接受不同类型的图像,包括彩色图像 (BGR 8 Packed)、单色图像 (Mono 8) 或彩色和单色图像。

  • 如果模型需要彩色图像,彩色 Pixel Format 将在内部转换为 BGR 8 Packed。不接受单色图像。
  • 如果模型需要单色图像,单色 Pixel Format 将在内部转换为 Mono 8。不接受彩色图像。
  • 如果模型同时支持单色和彩色图像,则单色输入会转换为 Mono 8 并作为单色发送,彩色输入会转换为 BGR 8 Packed 并作为彩色发送。该 vTool 不会将彩色转换为单色,也不会将单色转换为彩色。

如果不支持输入的 Pixel Format,请先使用 Image Format Converter vTool 转换图像。彩色输入选择 BGR 8 Packed,单色输入选择 Mono 8。

输出数据映射#

Texts、BBoxes_px 和 Scores 结果输出为索引对齐的数组。输出中处于相同位置的元素对应于相同的文本片段。不会应用额外的 vTool 排序。

如果模型输出顺序或分割不同,输出引脚将保留模型的输出顺序。

示例:

包含三个元素的输出数据数组,即识别出的文本片段

Texts: ["AB", "12045", "XZ"]

Scores: [0.98, 0.95, 0.93]

BBoxes_px: [b0, b1, b2]

在此,索引 0 映射到元素/文本片段 1,索引 1 映射到元素/文本片段 2,索引 2 映射到元素/文本片段 3。

配置 vTool#

若要配置 Pattern OCR vTool:

Pattern OCR vTool 设置

  1. 在 vTool Settings 区域的 Recipe Management 窗格中,单击 Open Settings 或双击该 vTool。
    随即打开 Pattern OCR 对话框。

  2. 在 Server Selection 区域中,选择您要连接的服务器。
    服务器必须正在运行才能连接到它。

    • 选项 1:手动输入 Triton Inference Server 的 IP 地址和端口。
    • 选项 2:在下拉列表中选择服务器的 IP 地址 / 主机名和端口。
  3. 点击 Connect 以建立连接。
    随后,vTool 将加载可用的模型。

  4. 在 模型选择 区域中,在下拉列表中选择包含所需模型的 bundle。
    选择 bundle 后,下拉列表下方的区域将填充该 bundle 的详细信息,以便您确认选择的是正确的 bundle。
    模型选择区域

  5. 如果未列出所需的 bundle,请点击 部署新模型 下拉列表中的
    部署新模型
    这将打开 pylon AI Agent ,允许您部署更多模型。
    部署新模型后,您必须点击 刷新 按钮。

  6. 指定替代字符或保持默认字符不变。

  7. 指定特定于模型的参数。

    信息

    此区域中可用的参数取决于所选的模型。某些参数仅在选择特定模型后才可用。默认值由模型提供。

  8. 单击 下一步.
    即: 字符设置 页面随即打开。
    Pattern OCR vTool 字符设置页面

  9. 在 Character Settings 页面上,如果您的模型包含预配置的模式,请检查该模式。
    如果模型不包含预配置的模式,请使用 Single Shot 捕获样本图像,或者使用 Open Image 打开现有图像。使用 Auto-Recognize Pattern 或通过手动标记字符来定义模式。
  10. 在 Character Pattern 区域中检查模式。
  11. 点击 Finish。

您可以在 pin data view 中查看 Pattern OCR vTool 的结果。在此处,您可以选择要显示的输出。

输入#

图像#

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

  • 数据类型:图像
  • 图像格式:单色或彩色图像。支持的 Pixel Format 会在内部转换为 Mono 8 或 BGR 8 Packed(具体取决于模型)。有关更多详细信息,请参阅 Image Formats。

ROI#

接受来自 ROI Creator vTool 或任何其他输出矩形的 vTool 的一个感兴趣区域 (ROI)。

如果 ROI 与图像没有重叠,或者图像内部的区域小于或等于 1×1 像素,则 vTool 会在不调用推理服务器的情况下返回空的 Texts、Scores 和 BBoxes_px 数组。这包括未选择任何内容时的 ROI Creator 默认值。

如果 ROI 发生了旋转,则会在推理之前将其拉直。矩形内部的区域将从输入图像中裁剪出来并进行旋转,使其与坐标轴对齐。这种拉直后的裁剪图像将用于推理。

生成的边界框经过转换后,将作为与坐标轴对齐的矩形在原始输入图像的坐标系中返回。位置、宽度和高度始终参考输入图像,而不是裁剪后的区域。

  • 数据类型:RectangleF

输出#

Texts、BBoxes_px 和 Scores 结果输出为索引对齐的数组。输出中处于相同位置的项目对应于相同的文本片段。

如果输入图像无效或处理失败,则每个启用的输出都将返回带有错误原因的无效值。

文本#

返回检测到的每个单词或文本段。无法识别的文本将使用替代字符返回。

  • 数据类型:字符串数组

BBoxes_px#

为每个文本段返回一个与坐标轴对齐的边界框。每个框都是该段中字符框的并集,由其中心像素的坐标、宽度和高度(x_center、y_center、width、height)定义。段中的下划线字符 (_) 不包含在此并集中。

这些坐标参考原始输入图像,包括连接了 Roi 输入引脚的情况。如果 ROI 发生了旋转,这些框将被映射回该图像中,并作为与坐标轴对齐的矩形。边界框输出可用作其他 vTools 的 Roi 输入引脚的输入。

  • 数据类型:RectangleF 数组

得分#

返回识别出的每个文本段的置信度得分。较高的值表示较高的置信度。文本段得分是该段内识别出的字符得分的 Arithmetic 平均值。如果字符得分低于配置的阈值,并且该字符被替换为配置的 Character Substitution 值,则该字符位置仍会与其原始字符得分一起计入此平均值中。

返回 0 或更低的分数作为 0.0.

  • 数据类型:浮点数组

Payload#

返回有关用于评估的 Inference Server 性能的附加信息。只有在 Debug Settings 参数组的 Features - All 窗格中启用它时,此输出 pin 才会可用。

  • 数据类型:字符串