0

我是 tesseract 的新手,在尝试使用外部训练的数据集时出现此错误。

tesserocr.pyx in tesserocr.image_to_text (tesserocr.cpp:20994)()
RuntimeError: Failed recognize picture

我不知道如何解决它。问题出在外部库上,但除此之外,我不知道。任何指导表示赞赏。

我在带有 Tesserocr 包装器的 Ubuntu 16.04 LTS、x86_64、Python 2.7 上。外部库来自:https ://github.com/arturaugusto/display_ocr 。

我刚刚将letsgodigital.traineddata文件粘贴到:

/usr/share/tesseract-ocr/tessdata

代码:

import tesserocr
image = Image.fromarray(im)
print tesserocr.image_to_text(image, lang = 'letsgodigital', psm=8, )

语言检查

print tesserocr.get_languages() 
(u'/usr/share/tesseract-ocr/tessdata/', [u'letsgodigital', u'equ', u'osd', u'eng'])

使用默认英文库运行代码有效

print tesserocr.image_to_text(image, lang = 'eng', psm=8, )

正方体版本信息:

tesserocr.tesseract_version()

u'tesseract 3.04.01\n leptonica-1.73\n  libgif 5.1.2 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.0\n'
4

1 回答 1

1

该错误RuntimeError: Failed recognize picture表示图像无法加载。您可以在下面尝试以确保“eng”首先正常工作。然后将自定义语言指定到您的 7 段数字显示器。

import tesserocr
from PIL import Image

image = Image.open('english_text.png')
digits = tesserocr.image_to_text(image)  # print ocr text from image

如果您还没有这样做,还可TESSDATA_PREFIX以为经过训练的语言数据路径设置如下。

export TESSDATA_PREFIX=/usr/share/tesseract-ocr/tessdata

希望这有帮助。


更新:

测试了从样本中裁剪的以下图像,

在此处输入图像描述

Windows 10withTesseract 4.0.0a中,输出是正确的。

在此处输入图像描述

为了测试起见,如果上面的图片在你的机器上不起作用,你可以试试下面编辑的图片,它有更多的顶部和底部边距。这个即使在默认--psm 3--oem 3模式下也能工作。

在此处输入图像描述

于 2017-05-14T06:29:56.707 回答