【问题标题】:Tesseract confuses two numbersTesseract 混淆了两个数字
【发布时间】:2011-11-09 17:11:02
【问题描述】:

我正在编写一个应用程序来扫描图像中的数字。

数字使用 OCR-B 字体,还可能包含 +> 字符。

这是我的源图片:

使用 Tesseract 的扫描效果不是很好,即使将字符集限制为提到的字符也是如此。由于我没有找到任何 Tesseract 的 OCRB 训练文件,我决定自己训练它。

我创建了this training image 并从中制作了一个盒子文件。盒子文件正确,所有字母都匹配正确。

然后我做了所有步骤described here 来创建其他必要的文件。

使用这个新训练的 OCR-B tessdata-set,我在源图像上得到了很好的结果,但有一个小错误:所有1s 都被误认为8s,反之亦然。用于处理图像的命令是

$ tesseract esr2c.tif ocrb-esr2c -l ocrb

源图像的输出是

0800000001456>8 00000195731208 8 01050008 023+ 08 0301226>20

如果您交换所有1s 和8s 并将其与源图像进行比较,输出将是正确的(除了最后两个我可以忽略的字母)。

怎么会这样?我在训练过程中是否犯了一些错误?我该如何解决?

【问题讨论】:

  • 在此处发布该数据没有安全隐患?
  • @andrew 不是真的。只是一张旧的、无效的账单,参考 ID 中没有任何个人信息。
  • @DaniloBargen:如果可以的话,能否分享一下 OCRB 字体的训练数据?
  • @RaviGupta 我没有了,反正结果也不好。

标签: ocr tesseract


【解决方案1】:

您的 box 文件中的某处可能存在 1 和 8 的错误值(字符)。您可以使用jTessBoxEditor 程序进行验证。如果是,请更正,重新生成语言数据文件,然后重试。

【讨论】:

  • 我无法让 jTessBoxEditor 工作(imageio 库存在一些问题),但我使用 OwlBoxer 检查了 box 文件(我实际上使用该工具处理了该文件)并且一切看起来都正确。
  • 我也刚刚使用 tesseractTrainer.py 仔细检查了 box 文件,仍然没有发现任何错误。
  • 你能贴一个你的盒子文件的链接吗?您正在为哪个 Tesseract 版本进行培训?
  • 马上,我可以通过 jTessBoxEditor 看到前四个字符(行)在 box 文件中的位置和顺序不正确。请尝试将它们移动到正确的位置和顺序,然后继续剩余的训练步骤。 (抱歉,我还没有设置可以上传文件的地方。)
  • 哇,成功了!我认为订单不会有任何不同:) 感谢您的帮助!您可能想在回答中提及解决方案。
【解决方案2】:

经过 1 个月的 OCR A 扩展字体努力,我已经训练了 tesseract 2.04。它工作得很好,字体大小为 14 时,精度超过 90。

训练图像应该是高对比度图像。 使用“GIMP”图像编辑器并执行以下操作 菜单颜色->信息->直方图-读取标准偏差值 颜色-> 阈值 -> 将“标准偏差值”写入阈值 保存图片 用它来训练。

使用“qt-box-editor-1.06.exe”检查和编辑您的盒子文件。它非常易于使用。 选中其中的所有框和字符。 这是非常重要的。您的 box 文件中某处的 1 和 8 字符不正确。

运行其他 cmd。

【讨论】:

  • 我已经解决了这个问题(参见其他答案的评论)。 jTessBoxEditor 中框的顺序错误。无论如何,谢谢。
  • 我为 OCR-B 训练了 tesseract 3.02。它在相同的训练集上返回了 100% 的准确率。但是当我检查真实生活中的图片时,它的准确度几乎为零。对你们有用吗?
猜你喜欢
  • 2011-08-06
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
相关资源
最近更新 更多