3

我正在努力让林肯字体在 Tesseract 中工作,我得到的结果很糟糕,即使在经历了极其复杂的训练过程之后。

这就是字体的样子,所以是的,这有点棘手:

林肯样品

我已经仔细制作了一张训练图像,然后用它制作了一个盒子文件。训练图像在这里(25MB!)。图像为 300 DPI,具有代表性的字符很好地垂直和水平间隔。

我为训练图像制作了一个盒子文件,它工作正常。我已经使用box file editor验证了它是正确的。

我拿了这个盒子文件/tif 文件,并用它来创建训练数据。我对Tesseract 提供的30 个左右的其他示例图像/字体也做了同样的事情。

我创建了 unicharset 文件。

我创建了一个 font_properties 文件。网站上没有关于何时应该使用 fraktur 的指导。所以我已经尝试过这两种方式(林肯的fraktur):

eng.lincoln.box 0 0 0 0 1

这样(关闭):

eng.lincoln.box 0 0 0 0 0

最后,我在有和没有字典文件的情况下都试过了。当我使用字典文件时,它们是来自我的搜索引擎 Sphinx 的 wordmap,它们有大约 15K 的常用词和大约 20K 的不常用词。

在所有情况下,当我尝试对这个文件的前几行 (3MB)进行 OCR 时,质量都很糟糕。而不是得到:

United States Court of Appeals 
for the Federal Circuit

我得到:

OniteiJ %tates C0urt of QppeaIs
for the jfeI1eraICircuit

为什么?

4

2 回答 2

1

我不是 Tesseract 专家,但我评估了几乎所有可用的 OCR 引擎,我的评论基于我多年来分析 OCR 错误的经验。

只是想知道为什么您的图像在背景中有斑点而不是纯白色背景。我不知道 Tesseract 或培训工具是如何工作的,但背景可能会导致一些问题。

仅仅阅读示例页面是困难的,并且需要大量的注意力。F 和 I 等字符与 U 和 N 非常相似。像许多 OCR 引擎一样,Tesseract 将使用许多不同的技术来识别字符,并且这些字符中的许多字符在笔画和曲线方面并没有太大区别字体中使用。

这些字符,尤其是大写字符会混淆许多不同的匹配算法,因为它们与标准的拉丁/罗马类型字符如此不同。这显示在您的结果中,即。所有大写字母都有 OCR 错误。

于 2012-01-29T14:01:22.507 回答
1

我认为你需要更多的样本(字母)和更好的训练图像(干净的背景、灰度、300 DPI 等)。并尝试先只使用一种字体(例如 Lincoln)进行训练。您可以使用jTessBoxEditor工具生成训练图像并编辑框文件。

一旦你掌握了训练过程,你就可以在你的训练中添加其他字体。您可以通过在训练图像本身上执行 OCR 来测试结果语言数据的成功 - 识别率应该很高。

font_properties 中的字体名称应如下所示:

林肯 0 0 0 0 1

于 2012-02-02T04:02:38.363 回答