训练手写数字的Tesseract:mftraining步骤需要永远

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了训练手写数字的Tesseract:mftraining步骤需要永远相关的知识,希望对你有一定的参考价值。

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

我从我扫描的页面创建了一个单独的tiff图像,其中包括我的手写数字。我能够创建一个盒子文件并使用特定的第三方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. 训练Tesseract页面指出我应该将我的训练文本添加为​​UTF-8文本文件,但我还没有完成这一步。我没有培训文本,但没有图像,我不知道如何将数字转换为UTF-8文本文件以及放置该文件的位置。这会导致我遇到的问题吗?
  3. 也许我创建的文件位于错误的目录中。目前我附加的所有文件(+ unicharset和font_properties)都在tesseract.304目录中。我应该将它们添加到tessdata还是在tesseract目录中创建一个新文件?

任何帮助回答这些问题或任何其他建议,为什么我的mftraining步骤将永远采取,将非常感谢。非常感谢你。

答案

好吧我认为问题是我没有预处理我的输入图像.tiff

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

convert -density 300 -depth 8 input.pdf output.tiff

此外,我认为将图像更改为灰度有助于。

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

以上是关于训练手写数字的Tesseract:mftraining步骤需要永远的主要内容,如果未能解决你的问题,请参考以下文章

用于英文手写文本的 Tesseract 4.0

Tesseract-OCR-03-图片文字识别

训练 Tesseract 3 从燃气表的真实图像中识别数字

如何训练 tesseract 识别低 DPI 下的小数字?

如何训练 tesseract 只识别 20 到 30 位数字?

如何用三种不同的笔迹训练相同数字的tesseract-ocr?