Tesseract OCR:Ubuntu 16.04上的安装和使用

Tesseract是当今最强大的开源OCR引擎之一。 OCR代表光学字符识别。 这是从图像中提取文本的过程。 例如,考虑以下图像,其中有一些文本必须被提取出来:

一旦处理完成,OCR引擎的输出将是这样的:

  Open
  Access
  Button

这是OCR的工作原理。 它在许多应用中很有用,例如车牌识别,将文档的扫描副本转换为字格式,从收据中自动提取细节等。它也是许多自然语言处理任务中的第一步。 在本教程中,我们将研究如何快速安装和设置Tesseract,imagemagick以及如何使用它们通过图像预处理获得最佳效果。

图像预处理是使用Tesseract执行OCR的重要组成部分。 这确保提取的文本的准确性高,并减少错误。 我们将通过一些基本操作来执行使用它的图像。 Imagemagick是一种基于图像处理命令行的工具,可帮助我们执行裁剪,调整大小,更改配色方案等操作。

1安装Tesseract

安装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命令使用该工具。 要检查正确的安装,请运行以下命令,输出应与下图相似:

convert -h

3 Tesseract使用

Tesseract能够拍摄许多不同格式的图像,如jpg,png,tiff等,并从中提取文本。 本节重点介绍运行tesseract,下一节将介绍如何提高准确性。 以下是运行tesseract的一些基本命令:

要在终端中获取输出,请使用图像的路径运行generic命令

tesseract [image_path] stdout

要将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]

下图显示运行命令的输出image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image image

4.3对图像进行二值化

二值化或阈值涉及将图像转换为仅黑色和白色的值。 此图像中的每个像素只有黑色或白色的两个值之一。 这大大降低了图像的复杂度。 如果您的图像具有噪点或具有阴影的图像或大量文本,则可以使用这种预处理方法。要对图像进行二值化,请确保首先具有灰度图像,然后使用以下命令:

convert [input_file_path] -threshold 55% [output_file_path]

阈值%可以改变,以获得最佳的用例。 下图显示了一个例子。 重要的是要注意,对于手边的图像,二值化不是丢失一些数据的最佳选择。

在应用上述任何或所有预处理技术之前,必须牢记以下几点:

  • 根据用例,预处理步骤中的任一个或组合将是有用的。
  • 当预处理步骤导致精度降低时,应该从预处理步骤中忽略。
  • 调整大小或阈值的百分比因图像而异,因此需要应用尝试和错误方法以获得最佳可能的百分比值,以便在运行Tesseract时提供最高的准确性

完成预处理后,运行Tesseract处理的图像以检查准确性。 Tesseract非常强大,但对于作为输入给出的图像类型有一些限制。 希望你发现本教程有用。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏