Python中用于从图像中提取文本的8大OCR库
woshicver 2024-08-19 16:35:05 阅读 53
介绍
你是否曾想过你的电脑如何能够从图像中读取文字?这都要归功于一种叫做光学字符识别(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。
<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」,每日朋友圈更新一篇高质量博文。
↓扫描二维码添加小编↓
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。