Tesseract OCR:在 Ubuntu 16.04 上的安装和使用
在此页
- 1 安装 Tesseract
- 2 安装Imagemagick 运行以下命令安装imagemagick
- 3 Tesseract 用法
- 4 图像预处理
- 4.1 调整大小
- 4.2 使用灰度图像
- 4.3 图像二值化
Tesseract 是当今最强大的开源 OCR 引擎之一。 OCR 代表光学字符识别。这是从图像中提取文本的过程。例如,考虑下面的图像,其中有一些必须提取出来的文本:
OCR 引擎的输出,一旦完成一些处理,将是这样的:
Open Access Button
这就是 OCR 的工作原理。它在许多应用中都很有用,例如车牌识别、将文档的扫描副本转换为 word 格式、从收据中自动提取详细信息等。它也是许多自然语言处理任务的第一步。在本教程中,我们将研究如何快速安装和设置 Tesseract、imagemagick 以及如何使用它们通过图像预处理获得最佳结果。
图像预处理是使用 Tesseract 执行 OCR 的重要部分。这样可以确保提取的文本的准确性高并减少错误。我们将通过一些基本操作来使用它对图像执行。 Imagemagick 是一个基于命令行的图像处理工具,可以帮助我们执行裁剪、调整大小、更改配色方案等操作。
1 安装正方体
安装 tesseract 非常简单,运行以下命令:
sudo apt update sudo apt install tesseract-ocr
这将安装 Tesseract 引擎。下图显示了正确安装后的输出:
接下来要做的是安装语言包。 Tesseract 非常强大,如果下载了语言包,它可以提取 100 多种不同的语言。您可以使用以下通用命令下载特定语言包:
sudo apt-get install tesseract-ocr-[lang]
在上面的命令中,将“[lang]”替换为您要下载的语言。英语和法语的示例如下:
sudo apt-get install tesseract-ocr-eng sudo apt-get install tesseract-ocr-fra
通常,tesseract 默认自带英文包。下图显示已经安装了英语,必须下载并安装法语:
或者,如果要下载所有语言包,可以运行以下命令:
sudo apt-get install tesseract-ocr-all
这样就完成了 Tesseract 安装。
2 安装Imagemagick 运行以下命令安装imagemagick
sudo apt install imagemagick
使用转换命令从命令行使用此工具。要检查安装是否正确,请运行以下命令,输出应类似于下图:
convert -h
3 Tesseract 用法
Tesseract 能够拍摄许多不同格式的图像,如 jpg、png、tiff 等,并从中提取文本。本节重点介绍运行 tesseract,在下一节中,我们将了解如何提高准确性。以下是运行 tesseract 的一些基本命令:
要在终端中获取输出,请使用图像路径运行通用命令
要将 OCR 输出存储到文件,请运行以下通用命令:
tesseract [image_path] [file_name]
在两张图片之后,显示使用的图片以及在该图片上运行上述命令的输出
正如您所观察到的,运行第二个命令导致创建了一个名为 \outfile.txt\ 的文件,其中可以找到输出。
4 图像预处理
从前面的输出中,您可能已经观察到,输出中存在错误,并且还显示像素尺寸较小的错误。这是 Tesseract 的缺点之一,它希望您提供可以对其执行 OCR 的处理图像。在本节中,我们将介绍一些您可以在 imagemagick 的帮助下使用的策略,以提高图像质量,从而提高输出的准确性。
4.1 调整大小
调整大小是提高 OCR 准确性的最有用的技巧之一。这是因为大多数时候图像的字体非常小,无法被 Tesseract 正确读取。您可以使用以下命令调整图像大小。百分比数量表示调整大小限制。由于我们想要增加大小,因此我们需要给出一个大于 100 的值。在这里,我们给出了 150% 的值(使用试错法来确定您的用例的完美调整大小百分比)。
convert -resize 150% [input_file_path] [output_file_path]
在上述命令中,将 [input_file_path] 替换为必须调整大小的图像路径,将 [output_file_path] 替换为应存储输出的图像路径。下图是我运行命令时的输出:convert -resize 150% image7.png image7_resize.png
4.2 使用灰度图像
如果您有彩色图像,建议先将其转换为灰度图像。这很有可能足以获得您想要的 OCR 准确度。否则,为了进一步处理,您可以使用灰度图像对图像进行二值化。使用以下命令转换图像以将其转换为灰度
convert [input_file_path] -type Grayscale [output_file_path]
下图显示了运行命令 convert image6_resize.png -type Grayscale image6_gray.png 的输出
4.3 图像二值化
二值化或阈值处理涉及将图像转换为黑白值。此图像中的每个像素只有两个值之一,黑色或白色。这大大降低了图像的复杂性。如果您的图像有噪声或图像有阴影,或有很多文本,您可以使用这种预处理方法。要将此图像二值化,请确保您首先有一个灰度图像,然后使用以下命令:
convert [input_file_path] -threshold 55% [output_file_path]
可以改变阈值 % 以获得适合您的用例的最佳结果。下图显示了一个示例。重要的是要注意,对于手头的图像,二值化不是最佳选择,因为它会丢失一些数据。
在应用上述任何或所有预处理技术之前,必须牢记以下几点:
- 根据用例,预处理步骤中的一个或多个预处理步骤的组合将很有用。
- 当预处理步骤导致精度下降时,应从预处理步骤中忽略它。
- 调整大小或设置阈值时的百分比因图像而异,因此需要应用试错法来获得最佳可能的百分比值,从而在运行 Tesseract 时提供最高的准确度
完成预处理后,使用处理后的图像运行 Tesseract 以检查准确性。 Tesseract 非常强大,但在输入图像类型方面有一些限制。希望本教程对您有所帮助。