2

我试图让 Tesseract 从煤气表装置的照片中识别数字。但它返回的主要是空页面作为输出。(我使用的是 Tesseract 3.02)例如

图1,一些调整

我想将 Tesseract 用于 Android 的 OCR 应用程序,所以我只是在检查 Tesseract 是否甚至能够识别这样的数字。第一张照片是我在我的 java 程序中通过图像预处理所能得到的。

如果我使用 gimp 并手动进行更多调整,tesseract 会识别它。但我需要它来识别像 1 这样的图片。我能做些什么来做到这一点?-> pic 2,gimp 调整

4

1 回答 1

3

第一张图片实际上是用最新的 Tesseract 版本给出了正确的输出。

由于遵循的分段逻辑,Tesseract 有时会给出空白页面。在您的情况下,它将尝试分割单个单词,结果所有这些字符都将被视为噪声并且识别将失败。

如果您打算识别煤气表单位的照片,请考虑将 Tesseract 的Page Segmentation Mode设置为 8(这告诉 tesseract 将给定图像假定为单个单词)

您还可以考虑 tesseract 的其他页面分割模式

0 = 仅方向和脚本检测 (OSD)。

1 = 使用 OSD 自动进行页面分割。

2 = 自动页面分割,但没有 OSD 或 OCR

3 = 全自动页面分割,但没有 OSD。(默认)

4 = 假设有一列可变大小的文本。

5 = 假设一个统一的垂直对齐文本块。

6 = 假设一个统一的文本块。

7 = 将图像视为单个文本行。

8 = 将图像视为一个单词。

9 = 将图像视为圆圈中的单个单词。

10 = 将图像视为单个字符。

要设置特定的 psm,请使用“tesseract -psm

我建议你再做一件事。由于您想识别只有数字的煤气表值,您可以在 tesseract 配置文件中指定一个仅包含数字的自定义字符集。字符集的大小越小,识别的准确性就越高。字符集应始终包含输入图像可能具有的字符。

即使在尝试了上述所有组合之后,如果 tesseract 无法正确识别输入图像,那么尝试通过去除那些不需要的斑点来提高输入图像的质量。您可以尝试使用ImageMagick清理输入图像。希望这可以帮助。

于 2013-05-08T15:51:56.320 回答