Tesseract OCR无法正确训练图像

时间:2015-12-29 08:24:32

标签: c++ opencv tesseract

我在训练Tesseract OCR时面临以下问题。我正在使用Tesseract 3.02 for windows。

我有一个要训练的角色数据集。我编写了一个C ++程序来读取数据集中的每个字符,裁剪它&将其大小调整为40x40图像并合并/粘贴到大小为650x450的单个图像上(参见附图)。对于数据集中的所有100个图像重复此操作。 C ++程序还为每个添加的字符生成框文件。我已经使用Tesseract wiki上提到的Box编辑器工具验证了盒子文件和图像。这些文件是正确的。合并图像的扩展名为.tif。

我附上图片供您参考。问题是当我在Tesseract中训练图像时,我在控制台上得到以下输出。

F:\ test> tesseract eng.normal.exp0.tif eng.normal.exp0 box.train 与Leptonica一起使用Tesseract开源OCR Engine v3.02 APPLY_BOXES:    从boxfile读取的框:100    找到了100个好的斑点。 TRAINING ...字体名称=正常 生成9个字的培训数据

尽管图像中有36个不同的单词或字符,但Tesseract表示它可以生成仅9个字符的训练数据。它还说它发现了100个好的斑点。我不知道为什么会出现这个问题。盒子文件包含图像中所有100个字符的标签。

请帮忙!

training image

由于

2 个答案:

答案 0 :(得分:0)

根据training guide,训练数据集应该是切合实际的。请注意,正如您所提到的,它生成了9个字的训练数据而不是9个字符。可能它可能已经识别出所有角色。您可以使用this tool检查生成的.traineddata文件,以分析tesseract已经过培训的字符。

答案 1 :(得分:0)

Per Training Wiki,“不要混合图像文件中的字符(准确地说是在单个.tr文件中。)这将导致在聚类时丢弃要素,这会导致识别错误。”