Python中用于从图像中提取文本的8大OCR库

woshicver 2024-08-19 16:35:05 阅读 53

介绍

你是否曾想过你的电脑如何能够从图像中读取文字?这都要归功于一种叫做光学字符识别(Optical Character Recognition, OCR)的技术。

在Python中,有一些非常酷的库可以帮助你的电脑理解图片中的文字。从谷歌强大的Tesseract到EasyOCR时髦的深度学习,这些库能够做一些非常了不起的事情。

让我们来看看Python中的OCR库,了解这些库是如何将图像转换成可读文字的吧!

15acd56bdca90da6cf1fc050454d7532.jpeg

目录

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。

<code>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 参数以最大限度地提高准确性。

此外,Pytesseract 还可以与 Python Imaging Library Pillow 交互,从而实现 OCR 过程之前的预处理。

安装和实施 Pytesseract 的步骤

安装 pytesseract 库并使用它对照片执行光学字符识别 (OCR) 是 pytesseract 的实现。以下是如何在 Python 中逐步使用 Pytesseract:

步骤1:安装Tesseract

在使用 pytesseract 之前,你需要在系统上安装 Tesseract OCR 引擎。你可以从这里下载并安装它:https://github.com/tesseract-ocr/tesseract

步骤2:安装 pytesseract

接下来,使用 pip 安装 pytesseract 库:

pip install pytesseract

步骤3:导入 pytesseract

在你的 Python 脚本或笔记本中导入 pytesseract 模块:

import pytesseract

步骤4:对图像执行OCR

使用pytesseract 中的函数image_to_string()对图像执行 OCR。

将图像文件路径作为参数传递:

# Perform OCR on an image

text = pytesseract.image_to_string('image.jpg')

这将从图像中提取文本并将其存储在text变量中。

步骤5:可选配置

你可以配置 pytesseract 以使用特定的 OCR 参数,例如语言和页面分割模式。

例如:

# Set language (default is English)

pytesseract.pytesseract.tesseract_cmd = r'/path/to/tesseract'

tessdata_dir_config = '--tessdata-dir "/usr/share/tesseract-ocr/4.00/tessdata"'

text = pytesseract.image_to_string('image.jpg', config=tessdata_dir_config)

步骤6:显示结果

最后,你可以根据需要打印或处理提取的文本:

print(text)

这些步骤将帮助你快速将 Pytesseract 集成到 Python 环境中,以便你可以使用 OCR 从照片中提取文本。请记住,许多变量(如语言、文本复杂性和图像质量)都会影响 OCR 的准确性。对于特定使用情况,修改参数和准备照片可以帮助提高 OCR 准确性。

7. OpenCV

OpenCV 由英特尔创建,并由全球开发者社区不断更新。它是计算机视觉和机器学习的重要工具。可用于各种用途,例如图像处理、对象检测、人脸识别、增强现实和机器人技术。它提供了广泛的功能和技术。

OpenCV 的 Python 接口有助于快速开发和原型设计,其跨平台兼容性保证可在多个系统上访问。

OpenCV 是计算机视觉的基础库,可与其他 Python 库(如 NumPy、SciPy 和 TensorFlow)无缝集成。这使开发人员能够在一系列领域设计创新应用程序。

安装和实施 OpenCV 的步骤

安装库并利用其功能执行不同的计算机视觉任务构成了 OpenCV 的实现。以下是如何在 Python 中使用 OpenCV 处理图像的简单说明:

步骤1:安装OpenCV

使用 pip 在你的 Python 环境中安装 OpenCV 库。

pip install opencv-python

步骤2:导入OpenCV

在你的 Python 脚本或笔记本中导入 OpenCV 库:

import cv2

步骤3:读取图像

使用cv2.imread()函数从文件读取图像:

# Read an image from file

image = cv2.imread('image.jpg')

步骤4:显示图像

使用cv2.imshow()函数在窗口中显示图像:

# Display the image in a window

cv2.imshow('Image', image)

步骤5:等待用户输入

使用 cv2.waitKey() 函数等待按键关闭窗口:

# Wait for a key press and close the window

cv2.waitKey(0)

cv2.destroyAllWindows()

步骤6:执行图像处理(可选)

你可以使用各种 OpenCV 函数执行图像处理任务,例如调整大小、裁剪、过滤等:

# Resize the image

resized_image = cv2.resize(image, (width, height))

# Convert the image to grayscale

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Apply Gaussian blur to the image

blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

步骤7:保存处理后的图像(可选)

使用cv2.imwrite()函数将处理后的图像保存到文件:

# Save the processed image to file

cv2.imwrite('processed_image.jpg', processed_image)

通过遵循这些步骤,你可以轻松地在 Python 环境中实现 OpenCV 来执行各种图像处理任务。OpenCV 提供了广泛的功能和能力,允许你处理图像、检测对象、跟踪运动等等。

尝试不同的函数和参数将帮助你探索 OpenCV 在计算机视觉应用中的全部潜力。

8. Amazon Textract

Amazon Textract 是 Amazon Web Services (AWS) 提供的一项机器学习服务,可高效地从文档中提取文本和数据。它使用高级算法来识别和分析结构化数据,包括文本、表格和表单。它对财务报告和发票特别有用。

Textract 可自动提取键值对和表单数据,从而简化数据输入和处理工作流程。它还提供高级文档分析功能。

Amazon Textract 与其他 AWS 服务集成,确保可扩展性、高性能和可靠性。它还为金融、医疗保健、法律和政府等各个领域的文档处理提供了安全的环境。

安装和实施 Amazon Textract 的步骤

实施 Amazon Textract 涉及使用 AWS SDK 与 Textract API 交互。

以下是在 Python 中实施 Amazon Textract 的步骤的高级概述:

步骤 1:设置 AWS 凭证

确保你已配置具有适当权限的 AWS 凭证以访问 Textract 服务。

步骤2:安装AWS SDK

使用 pip 安装适用于 Python (Boto3) 的 AWS SDK:

pip install boto3

步骤3:初始化 Textract 客户端

使用 Boto3 库和你的 AWS 凭证创建 Textract 客户端对象:

import boto3

# Initialize Textract client

textract_client = boto3.client('textract', region_name='your-region', aws_access_key_id='your-access-key-id', aws_secret_access_key='your-secret-access-key')code>

步骤4:处理文件

使用Textract客户端的analyze_document()方法分析文档,提取文本和数据:

# Process document

response = textract_client.analyze_document(Document={'S3Object': {'Bucket': 'your-bucket-name', 'Name': 'your-document-key'}}, FeatureTypes=['TABLES', 'FORMS'])

这将返回包含从文档中提取的文本、表格和表单的响应。

步骤5:访问提取的数据

可以从响应对象中访问提取的文本、表格和表单,并根据需要进一步处理:

# Extract text

extracted_text = response['Blocks']

# Extract tables

extracted_tables = [block for block in extracted_text if block['BlockType'] == 'TABLE']

# Extract forms

extracted_forms = [block for block in extracted_text if block['BlockType'] == 'KEY_VALUE_SET']

步骤6:处理错误和异常

实现错误处理,以优雅地处理文档处理过程中可能发生的异常和错误:

try:

    response = textract_client.analyze_document(Document={'S3Object': {'Bucket': 'your-bucket-name', 'Name': 'your-document-key'}}, FeatureTypes=['TABLES', 'FORMS'])

except Exception as e:

    print(f'Error processing document: {e}')

步骤7:进一步处理与整合

根据你的应用程序要求,你可能需要进一步处理提取的文本、表格和表单,并将其集成到你的工作流程或应用程序中。

通过遵循这些步骤,你可以在 Python 应用程序中实施 Amazon Textract,以从存储在 Amazon S3 中的文档中提取文本和数据。

请务必参考 AWS 文档以获取有关 Textract API 及其用法的详细信息。

结论

光学字符识别 (OCR) 彻底改变了计算机文本理解,支持各种应用。Python 提供了八个顶级 OCR 库,每个库都具有独特的功能。EasyOCR 易于使用,Tesseract 准确,Amazon Textract 高效。

OCR 库可满足各种需求和用例,可自动执行任务、简化工作流程并从非结构化数据中提取有价值的见解。随着机器学习和计算机视觉的进步,OCR 的未来充满创新和增强的光明前景。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

842b828749e739d9dbf655ab8616c670.jpeg



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。