2012-01-28 66 views
3

我正在努力让林肯字体在Tesseract中工作,即使经历了wildly complicated training process之后,我也得到了糟糕的结果。向Tesseract OCR引擎添加Blackletter字体支持

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

Lincoln sample

我精心制作训练图像,然后用,为了使文件箱。 The training image is here (25MB!)。图像是300 DPI,并有垂直和水平很好的代表性字符。

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

我把这个盒子文件/ tif文件,并用它来创建训练数据。我也采用了Tesseract提供的30 or so other sample images/fonts

我创建了unicharset文件。

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

eng.lincoln.box 0 0 0 0 1 

而且这种方式(fraktur关闭):

eng.lincoln.box 0 0 0 0 0 

最后,我有和没有字典试过这种文件。当我使用字典文件时,它们是我的搜索引擎Sphinx的wordmap,它们有大约15K个常用字和大约20K个不常用字。

在所有情况下,当我尝试OCR第一对夫妇this file (3MB)时,质量很差。而不思:

United States Court of Appeals 
for the Federal Circuit 

我得到:

OniteiJ %tates C0urt of QppeaIs 
for the jfeI1eraICircuit 

为什么?

回答

1

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

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

在font_properties字体名称应该是这样的:

林肯0 0 0 0 1

+1

最终,我做出更大的训练文件,并一遍又一遍地重复训练过程,直到它的工作。谢谢您的帮助。 – mlissner 2012-02-13 08:04:25

1

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

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

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

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