介绍
你是否曾想过你的电脑如何能够从图像中读取文字?这都要归功于一种叫做光学字符识别(Optical Character Recognition, OCR)的技术。
在Python中,有一些非常酷的库可以帮助你的电脑理解图片中的文字。从谷歌强大的Tesseract到EasyOCR时髦的深度学习,这些库能够做一些非常了不起的事情。
让我们来看看Python中的OCR库,了解这些库是如何将图像转换成可读文字的吧!
目录
-
EasyOCR
-
Doctr
-
Keras-OCR
-
Tesseract
-
GOCR
-
Pytesseract
-
OpenCV
-
Amazon Textract
-
结论
1. EasyOCR
EasyOCR以其用户友好的方法和深度学习驱动的模型简化了使用 Python 从图像中提取文本的过程。它支持多种语言,使其适用于国际应用程序。无论是印刷的还是手写的,水平还是垂直对齐,EasyOCR 都能熟练地处理各种文本样式和方向。它的效率确保了快速的性能,非常适合实时应用程序。
EasyOCR 的开源性质方便用户修改和贡献。它使用户能够根据自己的需求进行定制。它还提供了一种可靠且易于使用的方法,用于从照片中删除文本、优化文档处理、创建应用程序和提高可访问性。
安装和实施 EasyOCR 的步骤
步骤1:安装Python
首先,确保你的系统上安装了 Python。你可以从 Python 官方网站下载它并按照安装说明进行操作。
步骤2:安装 EasyOCR
安装 Python 后,打开命令行或终端并运行以下命令使用 pip 安装 EasyOCR。
pip install easyocr
步骤3:安装依赖项
EasyOCR 有一些需要安装的依赖项。不用担心;pip 会自动帮你安装这些依赖项。
步骤4:使用EasyOCR
现在 EasyOCR 已安装,你的 Python 脚本可以使用它。这是如何使用 EasyOCR 从图像中提取文本的基本说明。
import easyocr
# Create an OCR reader object
reader = easyocr.Reader(['en'])
# Read text from an image
result = reader.readtext('image.jpg')
# Print the extracted text
for detection in result:
print(detection[1])
如果你安装了 EasyOCR,现在你可以在 Python 程序中轻松从照片中提取文本。无论你是要提高可访问性还是自动化数据输入,EasyOCR 都能让文本提取变得简单。
2. Doctr
Doctr 是一个用于文档理解和处理的 Python 库,专为机器学习和自然语言处理应用而设计。它有助于完成文档布局分析、文本提取和语义理解等任务。
Doctr 可识别文档中的文本区域、图像和表格,并提供光学字符识别以从各种格式中提取文本。它还旨在通过命名实体识别和情感分析来理解语义含义。
Doctr 可扩展、高效,适用于生产环境中的大量文档。它鼓励社区贡献,并为自定义组件提供可扩展的架构。
安装和实施 Doctr 的步骤
步骤1:安装Doctr
你可以使用 Python 的包管理器 pip 安装 Doctr。打开命令行或终端并运行以下命令。
pip install doctr
步骤2:导入必要的模块
在你的 Python 脚本或笔记本中,导入文档处理任务所需的 Doctr 模块。
例如:
from doctr.models import ocr_predictor
步骤3:加载文档
根据你的使用情况,加载要处理的文档。Doctr 支持各种文档格式,包括 PDF 和图像。
步骤4:执行文档理解任务
使用 Doctr 的功能执行文档布局分析、文本提取和语义理解等任务。例如,你可以使用 OCR 预测器从图像中提取文本:
# Load an image
image_path = 'example_image.jpg'
# Create an OCR predictor
predictor = ocr_predictor.create_predictor()
# Perform OCR on the image
result = predictor(image_path)
# Print the extracted text
print(result)
步骤 5:与你的工作流程整合
一旦你对实施感到满意,请将 Doctr 集成到你的工作流程或应用程序中,以自动执行文档处理任务并简化你的工作流程。
这些步骤将帮助你在 Python 环境中安装和使用 Doctr。以便你可以快速有效地完成与文档理解和处理相关的活动。
3. Keras-OCR
Keras-OCR 是一个 Python 库,可通过 Keras 和 TensorFlow 框架简化 OCR 任务。它提供预训练模型,对各种文本和字体样式都具有高精度。其用户友好的 API 可轻松实现。Keras-OCR 具有灵活的配置功能,允许自定义输入图像大小和目标语言等参数。其开源特性促进了协作环境,提高了生产力并将 OCR 功能集成到 Python 应用程序中。
安装和实施 Keras-OCR 的步骤
要在 Python 中实现 Keras-OCR 进行文本识别,请按照以下步骤操作:
步骤1:安装Keras-OCR
使用 pip 在你的 Python 环境中安装 Keras-OCR 库。
pip install keras-ocr
步骤2:导入必要的模块
在你的 Python 脚本或笔记本中,从 Keras-OCR 导入所需的模块。
import keras_ocr
步骤3:加载预训练模型
Keras-OCR 提供了用于文本识别的预训练模型。你可以使用pipeline.Pipeline()函数加载其中一个模型。
pipeline = keras_ocr.pipeline.Pipeline()
步骤4:进行文本识别
使用已加载的管道对图像执行文本识别。你可以将单个图像或图像列表传递给 recognize() 函数。
images = ['image1.jpg', 'image2.jpg'] # List of image file paths
predictions = pipeline.recognize(images)
这将返回每个图像的预测,包含有关检测到的文本区域和识别的文本的信息。
步骤5:显示结果
然后,你可以迭代预测以显示识别的文本并可视化文本区域:
for image, prediction in zip(images, predictions):
keras_ocr.tools.drawAnnotations(image=image, predictions=prediction)
步骤6:集成
最后,根据需要将文本识别功能集成到你的 Python 应用程序或工作流程中。
按照以下步骤,你可以轻松地在 Python 项目中实现 Keras-OCR 进行文本识别。这些使你能够以高精度和高效率从图像中提取文本。
4. Tesseract
Tesseract 是 Google 维护的一款开源 OCR 引擎。它以出色的图像文本识别准确度而闻名。它支持 100 多种语言,可以处理各种图像类型,包括扫描文档和照片。用户可以自定义页面分割模式和语言模型等参数,以优化识别准确度。
Tesseract 鼓励社区贡献,并且易于与 Python 集成,为开发人员提供了一个简单的界面,可将 OCR 功能整合到他们的应用程序中。
安装和实施 Tesseract 的步骤
为了在 Python 中使用 Tesseract OCR,需要安装 pytesseract 库。Tesseract 引擎封装在此库中。以下是详细步骤:
步骤1:安装Tesseract
首先,你需要在系统上安装 Tesseract OCR 引擎。你可以从此处下载并安装它:https://github.com/tesseract-ocr/tesseract
步骤2:安装 pytesseract
接下来,
pytesseract
使用 pip 安装该库:
pip install pytesseract
步骤3:导入 pytesseract
在你的 Python 脚本或笔记本中导入 pytesseract 模块:
import pytesseract
步骤4:设置 Tesseract 路径(可选)
如果 Tesseract 未安装在默认系统路径中,则必须使用 pytesseract.pytesseract.tesseract_cmd 变量来定义 Tesseract 的位置:
pytesseract.pytesseract.tesseract_cmd = r'/path/to/tesseract'
步骤5:执行OCR
使用 image_to_string() 函数对图像执行 OCR。将图像文件路径作为参数传递:
# Perform OCR on an image
text = pytesseract.image_to_string('image.jpg')
这将从图像中提取文本并将其存储在
text
变量中。
步骤6:显示结果
然后你可以根据需要打印或处理提取的文本:
print(text)
按照以下说明,你可以在 Python 环境中快速集成 Tesseract OCR 以从照片中提取文本。
请记住,Tesseract 的准确性会根据多种变量而变化,包括语言、文本复杂性和图像质量。对于特定使用情况,修改参数和准备照片可以帮助提高 OCR 准确性。
5. GOCR
GOCR 是一款开源 OCR 引擎,根据 GNU 通用公共许可证创建,允许用户在各种平台上从照片中提取文本。它包括一些基本的文本识别功能,并与众多系统兼容。但它主要专注于英语,不支持其他语言。
由于缺乏积极的开发和有限的语言支持,与更现代的选项相比,它对某些应用程序的功效可能有限。
安装和实施 GOCR 的步骤
安装 GOCR 程序并利用其命令行界面 (CLI) 对照片执行光学字符识别是实施 GOCR 的第一步。以下是一般的实施方法:
步骤1:安装GOCR
根据你的操作系统,你可能能够使用包管理器(例如 Ubuntu 上的 apt 或 macOS 上的 Homebrew)安装 GOCR。或者,你可以下载源代码并手动编译。
步骤2:准备图像
准备包含要识别的文本的图像。确保图像清晰且质量足够高,以实现准确的 OCR。
步骤3:从命令行运行该库
使用 GOCR 命令行界面对图片执行 OCR。以下是在名为“image.jpg”的图片文件上运行 GOCR 的基本命令。
gocr image.jpg
它将处理图像并将识别的文本输出到终端。
步骤4:处理输出
一旦 GOCR 完成图像处理,你就可以从终端捕获输出文本并根据需要在应用程序中使用它。
请记住,与更现代的 OCR 引擎相比,此库在准确性、语言支持和易用性方面可能存在局限性。如果 GOCR 达不到标准,则必须评估你的需求并考虑其他 OCR 选项。
6. Pytesseract
Pytesseract 允许将 Google 的 Tesseract-OCR Engine 集成到 Python 程序中。它提供了一种有效的光学字符识别方法。由于其直观的界面,用户几乎不需要任何编码知识就可以从照片中提取文本。
Pytesseract 支持多种语言,包括英语、法语、西班牙语和德语,并与 Windows、macOS 和 Linux 操作系统兼容。
使用 Pytesseract ,可以处理不同字体、大小和样式的文本。开发人员可以调整 OCR 参数以最大限度地提高准确性。