lang='deu' 上数字的 Tesseract OCR 问题

Tesseract OCR Problem with Digits on lang='deu'

今天我遇到了一个我根本无法解释的OCR问题。

使用 Terreract 5.0 和 Python3.9

我有一个很清楚的数字:

当我使用标准设置制作 OCR 时,没问题,工作正常。

在我的应用程序中,文本形式 99% 是德语,所以我使用

text=pytesseract.image_to_string(im,lang='deu')

我从 https://raw.githubusercontent.com/tesseract-ocr/tessdata/main/deu.traineddata 它似乎在大多数非数字元素上都能正常工作。

它工作正常,但在一些非常非常清晰的数字上,tesseract 得到了一些非常疯狂的结果。在附图上,OCR结果是73185879,很奇怪...

我已经尝试过使用白名单, text = pytesseract.image_to_string(im, config='-c tessedit_char_whitelist=-0123456789') 但结果是一样的

这是另一个号码:

当我用标准配置运行时,结果是 19215056 当我切换到德语字符集时,它变得更加疯狂: 7192153056

有人知道如何处理吗? 有没有另一种方法可以使用标准语言并添加一些特殊字符,如 'ä,ß' 作为解决方法? 感谢任何提示

编辑:

我将图片缩小了 30%,OCR 效果很好,所以问题可能出在检测大字符上?

肯定是字体大小导致了这个问题。 我通过我的 tesseract 应用程序 运行 做了它,大图像的置信度为 81%,小图像高达 96%。 类似问题在这里:https://github.com/tesseract-ocr/tesseract/issues/3480

阅读tesseract documentation可以省去很多头痛。