Tesseract混淆了两个数字

时间:2011-09-03 12:04:03

标签: ocr tesseract

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

这些数字使用的是OCR-B字体,也可能包含+>个字符。

这是我的源图片:

source image

即使将字符集限制为上述字符,使用Tesseract的扫描也不是很好。由于我没有找到任何针对Tesseract的OCRB培训文件,我决定自己进行培训。

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

然后我完成了所有步骤described here以创建其他必要文件。

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

$ tesseract esr2c.tif ocrb-esr2c -l ocrb

,源图像的输出为

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

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

怎么会发生这种情况?我在培训过程中是否犯了一些错误?我该如何解决?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

我在为OCR A扩展字体工作1个月后训练了tesseract 2.04。它的工作非常好,并且显示高于90的精度,字体大小为14。

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

使用“qt-box-editor-1.06.exe”检查并编辑您的盒子文件。它非常易于使用。 选中其中的所有框和字符。 这是非常重要的。你的盒子文件中的某个地方有1和8的错误字符。

运行其他cmds。