tesseract 5.0.0 返回混合数字和字母的无意义结果

Posted

技术标签:

【中文标题】tesseract 5.0.0 返回混合数字和字母的无意义结果【英文标题】:pytesseract 5.0.0 returns non sense results for mix numbers and letters 【发布时间】:2019-12-25 12:49:36 【问题描述】:

问题:

我想从这些图像中提取由字母和数字混合而成的文本:

可以看出,图像可能有不同的方向,有时它们会包含噪点,例如第一个带有一些白色圆圈的图像,依此类推。但文本始终以字母“BF”开头,后跟 10 位数字。我认为tesseract 应该很容易做到这一点。还是不行!!

解决方法 t 我已经累了。首先是 pytesseract 版本,因为从我搜索的内容来看它似乎很重要(使用 Python 3.7.3):

import pytesseract
pytesseract.get_tesseract_version()
'5.0.0-alpha.20190708'

从this answer 和this one 开始,我尝试了一些应该可以使用混合数字和字母的配置,如下所示:

from PIL import Image
import pytesseract
print(pytesseract.image_to_string(Image.open('image.jpg')), config='tessedit_char_whitelist=01234ABCDEF'))

但结果:

第一张图片:'SALT LB:\n\nbe) be)' 第二张图片:'' 第三张图片:'OS26S0S061 38'

这太可怕了。我尝试了各种配置组合,但没有任何效果!我还确认这些文本可以通过免费在线版的在线认知服务(如Azure Cognitive Services)轻松提取,所以图像本身不是问题,我想我在pytesseract 中使用正确的配置或可能最新版本有错误! !

【问题讨论】:

【参考方案1】:

image processing to improve tesseract OCR accuracy 或 ImproveQuality 可能还有 Accuracy difference between Tesseract and others

【讨论】:

以上是关于tesseract 5.0.0 返回混合数字和字母的无意义结果的主要内容,如果未能解决你的问题,请参考以下文章

给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。

给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。

Tesseract API,白名单设置为数字但字母出现在结果中

JAVA排序数字字母混合

JAVA数字和字母混合排序

Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行