| Developers' Corner

Deep OCR - 技巧和诀窍

您是否已经体验过使用 Deep OCR 相比传统基于规则的方法所带来的性能提升?

Deep OCR 在许多方面都优于传统方法。最明显的一点是识别率提高。不过,不受字体类型、文本极性和方向的影响,也是 Deep OCR 的强大优势。在本文中,我们会向您介绍一些可以进一步优化 Deep OCR 结果的技巧和诀窍。

首先,您应花点时间考虑适合自己应用的模式。Deep OCR 有两种模式可供选择:“检测”和“识别”。“检测”模式会在图像中找到作为字的相连字符,然后提供字的边界框。“识别”模式会将裁剪后的图像转换为机器可读的文本。

很多应用同时需要“检测”和“识别”两种模式。在这种情况下,可以使用“自动”模式。请记住,HALCON 提供了一个强大的工具箱,可以用来自己编写算法以便检测目标文本。如果您只对充满文本的图像中的特定文本行感兴趣,或是想要缩短运行时间,这可能会非常有用。
 

下面我们会为您提供一些关于如何在“检测”和“识别”模式下提高 Deep OCR 性能的提示。不过在评估结果之前,您应先看图像数据,考虑采用预处理方法,例如增强对比度。

检测

如果想要改进“检测”结果,应该看看得分图。您可以在 DeepOcrResult 句柄中找到得分图。特别是字符得分图和链接得分图,可帮助您深入了解“检测”结果。这些信息可用于调整重要参数“detection_min_word_score”和“detection_min_character_score”。

如果文本已经水平对齐,请将参数“detective_orientation”设置为 0,这样就不会出现矩形未完全对齐的问题。

对于包含细小文本的大幅图像,可以使用一个强大的参数“detection_tiling”。将此参数设置为“true”,可从内部将图像拆分为多个拼贴。拼贴过程完全自动完成,无需担心拼贴图像,只需享受文本检测结果即可。但是,请记住运行时间的增加取决于所处理图像的大小。

识别

如果在识别模式下得到了意外的结果,建议打开 DeepOcrResult 句柄查看用于识别的预处理图像。在许多情况下,这个图像可以解释“识别”失败的原因。最常见的问题是文本行的长度,可通过设置参数“recognition_image_width”来处理。可在标准示例“deep_ocr_workflow.hdev”中找到详细示例。

最后,往往也值得重新考虑 Deep OCR 是不是正确选择。即使 Deep OCR 优于基于规则的方法,仍有一些用例(速度限制、特定字体类型、硬件限制或像素精确分割)证明适合选择传统方法。