| MVTec

DEEP OCR 识别训练 - 再上新台阶

HALCON 的 Deep OCR 功能强大,可以检测和识别各种工业场景中的文字。然而,如果遇到特殊字体或者是想要读取外文字符,该怎么办?HALCON 22.05 可以对识别模型进行训练,读取您想要读取的特殊字母或字体,同时 Deep OCR 的性能也得到提升,完美适配您的应用。

众所周知,要进行任何训练,首先需要一个数据集。如何建立合适的 Deep OCR 数据集?

从 Deep Learning Tool 22.06 开始,您可以使用 Deep OCR 标记的新功能。有两种可能的使用方式:

  • 您可以从头开始创建 Deep OCR 数据集:只需在 Deep Learning Tool 中初始化一个 Deep OCR 项目(参见屏幕截图),然后加载想要标记的图像即可。为了进行标记,需要沿读取方向在单词周围绘制一个矩形,工具会给出文本建议,您可对其进行修正或确认(参见屏幕截图)。
  • 另外,您也可以使用标准示例 deep_ocr_prelabel_dataset.hdev。它会根据要标记的图像和预训练的 Deep OCR 给出的文本建议创建一个数据集。您可以将创建的数据集(hdict 文件)导入 Deep Learning Tool 22.06,并对建议的标记进行修正。

一般而言,训练图像应包括可代表推理过程中各种可能性的集合。此外,建议使用平衡的数据集,也就是所有字符的出现次数大致相同。当然,出色的结果需要良好的标记。良好的真值边界框看起来应当像是 Deep OCR 检测模型的输出(参见屏幕截图)。如果对数据集感到满意,您需要将数据集导出为 hdict 文件,然后进入下一步,也就是训练。

标准示例 deep_ocr_recognition_training_workflow.hdev 会引导您完成训练工作流程。您只需在训练脚本中导入之前提取的数据集,并调整训练参数即可。其中一个重要的参数是识别模型的图像宽度。如果数据集包含带有大量字符的单词图像,就必须增加该宽度。请注意,ImageWidth 的设置与其默认值 (120) 相差越大,需要的训练数据就越多,因为预训练的模型是使用默认宽度进行训练的。因此,建议在训练过程中保持图像宽度接近默认值 (120)。周期数也需要根据训练误差及任务的复杂程度进行调整。

识别模型训练完成后,标准示例会告诉您如何评估微调后的模型,并将其与预训练的模型进行比较。

最后一步是将微调后的模型集成到您的推理步骤中,然后期待令您满意的结果。与往常一样,您可以在文档中找到更多信息(《解决方案指南 I》第 19.2 章)。