文本识别 用 Tesseract 进行 OpenCV OCR 和 文本识
在本教程中,您将学习如何应用OpenCV OCR(光学字符识别)。我们将使用OpenCV,Python和Tesseract 执行(1)文本检测 和(2)文本识别 。
几周前,我向您展示了如何使用OpenCV的EAST深度学习模型进行文本检测。使用此模型,我们能够检测并本地化图像中包含的文本的边界框坐标。
下一步是采用包含文本的每个区域,并使用OpenCV和Tesseract实际识别和OCR文本。
要了解如何构建自己的OpenCV OCR和 文本识别 系统,请继续阅读!
寻找这篇文章的源代码?
跳到下载部分。
使用Tesseract进行OpenCV OCR和 文本识别
为了执行OpenCV OCR文本识别,我们首先需要安装Tesseract v4,其中包括一个高度准确的基于深度学习的文本识别模型。
从那里,我将向您展示如何编写以下Python脚本:使用OpenCV的EAST文本检测器执行文本检测,这是一种高度精确的深度学习文本检测器,用于检测自然场景图像中的文本。
一旦我们用OpenCV 检测到文本区域,我们就会提取每个文本ROI并将它们传递给Tesseract,使我们能够构建一个完整的OpenCV OCR管道!
最后,我将通过向您展示使用OpenCV应用 文本识别 的一些示例结果以及讨论该方法的一些限制和缺点来结束今天的教程。
让我们继续开始使用OpenCV OCR吧!
如何安装Tesseract 4
Tesseract是一种非常受欢迎的OCR引擎,最初由Hewlett Packard在20世纪80年代开发,然后于2005年开源。谷歌于2006年采用该项目,并一直赞助它。
如果您已经阅读过我之前关于每个方面一样,字符识别和手写识别也是如此。
基于深度学习的模型已经设法获得前所未有的 文本识别 准确性,远远超出传统的特征提取和机器学习方法。
Tesseract采用深度学习模型来进一步提高OCR准确度只是时间问题 – 实际上,时机已到。
Tesseract (V4)的最新版本支持深学习型OCR是显著更准确。
底层OCR引擎本身使用长短期记忆(LSTM)网络,一种回归神经网络(RNN)。
在本节的其余部分中,您将学习如何在计算机上安装Tesseract v4。
在本博文后面,您将学习如何在单个Python脚本中将OpenCV的EAST文本检测算法与Tesseract v4相结合,以自动执行OpenCV OCR。
让我们开始配置您的机器!
安装OpenCV
要运行今天的脚本,您需要安装OpenCV。需要3.4.2或更高版本。
要在您的系统上安装OpenCV,只需按照我的一个OpenCV安装指南,确保您在此过程中下载正确/所需版本的OpenCV和OpenCV-contrib。
在Ubuntu上安装Tesseract 4
用于在Ubuntu上安装Tesseract 4的确切命令将根据您使用的是Ubuntu 18.04还是Ubuntu 17.04及更早版本而有所不同。
要检查您的Ubuntu版本,您可以使用 lsb_release 命令
$ lsb_release -a对于Ubuntu 18.04用户,Tesseract 4是主要apt-get存储库的一部分,通过以下命令可以非常轻松地安装Tesseract
$ sudo apt install tesseract-ocr如果您正在使用Ubuntu 14,16或17,则由于依赖性要求,您将需要一些额外的命令。
好消息是Alexander Pozdnyakov 为Tesseract创建了一个Ubuntu PPA(个人包存档),这使得在旧版本的Ubuntu上安装Tesseract 4非常容易。
只需将 alex – p / tesseract – ocr PPA存储库添加到您的系统,更新您的包定义,然后安装Tesseract
$ sudo add-apt-repository ppa:alex-p/tesseract-ocr
$ sudo apt-get update
$ sudo apt install tesseract-ocr假设没有错误,您现在应该在您的计算机上安装Tesseract 4。
在macOS上安装Tesseract 4
如果您的系统上安装了Homebrew,macOS’“非官方”软件包管理器,那么在macOS上安装Tesseract非常简单。
只要运行下面的命令,确保指定 – HEAD 参数,Tesseract V4将您的Mac上安装:
$ brew install tesseract --HEAD如果您已经在Mac上安装了Tesseract(例如,如果您按照我以前的Tesseract安装教程),您首先要取消原始安装的链接
$ brew unlink tesseract从那里你可以运行install命令。
验证您的Tesse