Python:我是否正确设置了Tesseract OCR?

时间:2018-07-05 16:30:04

标签: python python-3.x ocr tesseract

我想从图像(作为.jpg文件的文档)中读取文本信息。

我将Tesseract 4.0与python包装程序tesserocr结合使用,我使用conda install -c simonflueckiger/label/tesseract-4.0.0-master tesserocr安装了该包装。我还下载了英语和法语的tessdata(Tesseract训练过的数据文件),并使用了预先训练的Tesseract api。

可以正常看到:

import tesserocr
print(tesserocr.get_languages())

('D:\\anaconda3\\tessdata/', ['eng', 'fra'])

我正在使用python 3.6和Windows。

这是我的代码:

from tesserocr import PyTessBaseAPI

with PyTessBaseAPI() as api:
    api.SetImageFile('data/sample2-2.jpg')
    print(api.GetUTF8Text())

这确实有效,但是输出效果很差。

这是图像数据集中的an example(我减小了它的大小)。

实际图像尺寸为7250x12889,这是很大的

这是the output from Tesseract 4.0的屏幕截图。来自Tesseract 3.05的版本几乎相同。

如您所见,Tesseract的输出不是很令人信服。但是,我尝试了The first online OCR I saw,结果非常好。它实际上几乎是完美的,我几乎看不到整个输出的错误。 这是output的屏幕截图。

我希望Tesseract能够提供更好的结果,并且我认为我没有正确设置它,因为它应该能很好地工作,而且“未知” OCR api会以更大的结果击败它,这有点奇怪。 >

看看这两个输出,看起来Tesseract可以直接读取它的内容(很多不是真实的单词),而第二个OCR api将它读取的内容更正为真实的单词。

我知道Tesseract并不总是能提供良好的结果,我需要尝试一些预处理步骤,尽管我做了,但是我不了解的是这两种OCR API之间的质量差异很大。

我认为那是培训api的目的(不仅学习字体,还学习其中的语言和单词)。那么,就我而言,Tesseract是否经过正确培训?我想念什么吗?与第二个OCR API相比,获得如此糟糕的输出是否正常?

0 个答案:

没有答案