2

我一直在尝试训练 Tesseract 3.04 来识别手写数字。该方法首先在以下链接中的论文中提出:https ://arxiv.org/abs/1003.5897 。我已经使用 Training Tesseract 3.04 wiki 页面和本教程执行了必要的步骤:http ://www.resolverradiologic.com/blog/2013/01/15/training-tesseract/

我从扫描的页面创建了一个 tiff 图像,其中包括我手写的数字。我可以使用用于 tesseract 的某个第三方 GUI(称为 tesseract4java)创建一个盒子文件并编辑该盒子文件。我已经进入 mftraining 步骤,没有明显问题。

但是在给出命令后:mftraining -F font_properties -U unicharset -O ali.unicharset ali.test_font.exp0.tr

训练步骤需要永远运行,并且在某些时候我的笔记本电脑会崩溃。由于我只训练了 10 个字符,每个字符最多有 15 个实例,我假设这种行为正在发生,因为我在上一步中犯了错误。以下是我对可能出错的想法:

  1. 我创建了一个 font_properties 文件,并在其中添加了一个具有所需格式的文本文件。但由于我同时也在创建一种新字体,可能 tesseract 无法识别新字体或认为我将这些字体混合在一个 tiff 图像中。那么我应该在我的字体属性文件中添加一个新的字体名称吗?但是手写数字应该有什么字体呢?

  2. Training Tesseract 页面指出我应该将我的训练文本添加为​​ UTF-8 文本文件,但我还没有完成这一步。我没有训练文本,只有图像,我不知道如何将数字转换为 UTF-8 文本文件以及将该文件放在哪里。这会导致我遇到的问题吗?

  3. 也许我创建的文件在错误的目录中。目前我附加的所有文件(+unicharset 和 font_properties)都在 tesseract.304 目录中。我应该将它们添加到 tessdata 还是在 tesseract 目录中创建一个新文件?

任何回答这些问题的帮助或任何其他关于为什么我的 mftraining 步骤将永远进行的建议将不胜感激。非常感谢。

4

1 回答 1

0

好的,我认为问题在于我没有预处理我的输入图像 .tiff

在我将 tiff 图像转换为 8bpp(每像素位数)并转换为 300dpi 密度后,几秒钟后完成了 mftraining 步骤。我使用了以下命令:(来自 imagemagick)

转换 -density 300 -depth 8 input.pdf output.tiff

另外我认为将图像更改为灰度会有所帮助。

编辑:mftraining 命令中的 font_properties 文件也应命名为 lang.font_properties

于 2017-02-12T14:48:24.273 回答