12

所以我试图从图像中提取文本。并且由于图像的质量和尺寸不好,它会给出不准确的结果。我用 PIL 尝试了一些增强功能和其他东西,但这只会降低图像质量。

有人可以建议对图像进行一些增强以获得更好的结果。图片的几个例子:

二

三

4

1 回答 1

11

在提供的图像示例中,文本在视觉上质量非常好,所以问题是 OCR 给出不准确结果的原因是什么?

为了说明此答案的进一步文本中给出的结论,让我们运行给定的图像

在此处输入图像描述

通过正方体。在 Tesseract OCR 的结果下方:

"fhpgearedmomrs©gmachom"

现在让我们调整图像四次并对其应用阈值处理。我已经在 Gimp 中手动完成了调整大小和阈值,但是通过适当的调整大小方法和 PIL 的阈值,它可以肯定是自动化的,因此在增强后你会得到一个类似于我得到的增强图像的图像:

在此处输入图像描述

通过 Tesseract OCR 运行的改进图像提供以下文本:

“fhpgearedmotors©gmail.com”

这表明放大图像有助于在提供的文本图像示例上实现 100% 的准确度。

放大图像有助于实现更好的 OCR 准确性可能看起来很奇怪,但是...... OCR 被开发用于将印刷媒体的扫描转换为文本,并期望通过设计获得 300 dpi 的文本图像。这解释了为什么一些 OCR 程序没有自行调整文本大小以改善其结果,并且对期望通过放大来实现更高 dpi 分辨率的小字体表现不佳。

这里是github.com 上 Tesseract FAQ的摘录,证明了上述陈述:

[为了合理的准确性,有一个最小的文本大小。您必须考虑分辨率和点大小。精度下降到 10pt x 300dpi 以下,迅速低于 8pt x 300dpi。快速检查是计算字符 x 高度的像素。(X 高度是小写 x 的高度。)在 10pt x 300dpi 时,x 高度通常约为 20 像素,尽管这可能因字体而异。x 高度低于 10 像素,您几乎没有机会获得准确的结果,低于大约 8 像素,大部分文本将被“去除噪点”。]

于 2017-04-14T09:19:26.420 回答