设置首页收藏本站
开启左侧

[文档] Deep OCR - 技巧和诀窍

[复制链接]
Criss 发表于 2024-4-30 17:01:54 | 显示全部楼层 |阅读模式
Deep OCR 在许多方面都优于传统方法。最明显的一点是识别率提高。
不过,不受字体类型、文本极性和方向的影响,也是 Deep OCR 的强大优势。
在本文中,我们会向您介绍一些可以进一步优化 Deep OCR 结果的技巧和诀窍。

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

很多应用同时需要“检测”和“识别”两种模式。在这种情况下,可以使用“自动”模式。请记住,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 优于基于规则的方法,仍有一些用例(速度限制、特定字体类型、硬件限制或像素精确分割)证明适合选择传统方法。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
雾里看花 发表于 2024-5-4 12:02:38 | 显示全部楼层
感谢分享   也有用在项目上了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2024-5-6 09:33:42 | 显示全部楼层
写得很好
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
wenbo_bob 发表于 2024-5-6 10:35:09 | 显示全部楼层
学习一下 感谢分享
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
cfr2k 发表于 2025-3-5 16:58:52 | 显示全部楼层
写得太好了,使用后,检测识别率提高很多。
  1.     **检测2
  2.     **如果文本已经水平对齐,请将参数“detective_orientation”设置为 0,
  3.     **这样就不会出现矩形未完全对齐的问题。
  4.     set_deep_ocr_param (jzOcr, 'detection_orientation', 0)
  5.     **如果想要改进“检测”结果,应该看看得分图。您可以在 DeepOcrResult 句柄中找到得分图。
  6.     **特别是字符得分图和链接得分图,可帮助您深入了解“检测”结果。
  7.     **这些信息可用于调整重要参数“detection_min_word_score”和“detection_min_character_score”。
  8.     set_deep_ocr_param (jzOcr, 'detection_min_character_score', 0.1)//默认0.3
  9.     set_deep_ocr_param (jzOcr, 'detection_min_word_score', 0.4)//默认0.7
  10.    
  11.     **对于包含细小文本的大幅图像,可以使用一个强大的参数“detection_tiling”。
  12.     **将此参数设置为“true”,可从内部将图像拆分为多个拼贴。
  13.     **拼贴过程完全自动完成,无需担心拼贴图像,只需享受文本检测结果即可。
  14.     set_deep_ocr_param (jzOcr, 'detection_tiling', 'true')
复制代码

   
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
vc1110 发表于 2025-3-5 18:17:22 | 显示全部楼层
学习一下 感谢分享,之前OCR的功能用起来真是很头疼
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
雾里看花 发表于 2025-3-6 08:18:59 | 显示全部楼层
已在项目上使用  ,不过自己重新训练的模型
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
smallju12 发表于 2025-4-18 08:56:21 | 显示全部楼层
Awesome write up
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表