EasyOCR
专用模型

EasyOCR

EasyOCR 是一个基于 Python 的即用型 OCR 库,支持超过 80 种语言和多种书写脚本。它基于 PyTorch 框架,提供了简单易用的 API,能够高效准确地从图像中提取文本,适用于各种 OCR 任务。

快点收藏起来

什么是 EasyOCR

EasyOCR 是一个强大且易于使用的 Python 光学字符识别(OCR)库,由 Jaided AI 开发并维护。它旨在提供一种简单的方法,让开发者能够从图像中提取文本,而无需深入了解复杂的 OCR 流程。EasyOCR 的核心优势在于其对超过 80 种语言和各种书写脚本的广泛支持,包括拉丁文、中文、阿拉伯文、梵文、西里尔文等等。该库基于 PyTorch 框架,利用深度学习模型实现了令人印象深刻的准确性,即使在处理复杂字体和装饰性字符时也能表现良好。EasyOCR 的设计理念是让 OCR 技术能够被更广泛的开发者所使用,从而推动其在各种应用场景中的普及。

jai-ocr

EasyOCR 的功能

EasyOCR 提供了许多实用的功能,使其成为 OCR 任务的理想选择:

  • 广泛的语言支持: EasyOCR 支持超过 80 种语言,并且可以同时识别图像中的多种兼容语言。这使得它在处理多语言文档或需要识别全球不同语言文本的应用中非常有用。
  • 简单易用的 API: EasyOCR 提供了直观的 Python API,只需几行代码即可实现文本提取,极大地简化了 OCR 的集成过程。
  • 高准确性: 借助深度学习模型,EasyOCR 能够提供较高的文本识别准确率,即使在面对复杂的字体、模糊的图像或不同的光照条件下也能保持良好的性能。
  • 多脚本支持: 除了支持多种语言外,EasyOCR 还能够识别不同的书写脚本,例如拉丁文、中文、阿拉伯文等。
  • GPU 加速: EasyOCR 可以利用 GPU 进行加速,从而显著提高文本识别的速度,尤其是在处理大量图像或进行实时 OCR 时。
  • 返回置信度: 对于每个识别出的文本块,EasyOCR 都会返回一个置信度分数,表示识别结果的可靠性,这有助于开发者根据需要进行结果过滤或进一步验证。
  • 支持多种输入格式: EasyOCR 可以处理各种常见的图像文件格式,如 PNG、JPG、TIFF 等。开发者也可以将图像数据作为 NumPy 数组或字节流直接传递给 EasyOCR。
  • 段落合并: EasyOCR 提供了将原始识别结果合并为更易读的段落的选项,从而改善了输出的可读性。

如何使用/快速开始

要开始使用 EasyOCR,请按照以下步骤进行操作:

  1. 安装 Python: 确保您的系统上安装了 Python 3.6 或更高版本。
  2. 安装 PyTorch: EasyOCR 依赖 PyTorch。请根据您的操作系统和是否使用 GPU,访问 PyTorch 官网获取安装命令并进行安装。例如,如果您的系统支持 CUDA,可以安装 CUDA 版本的 PyTorch。否则,安装 CPU 版本的 PyTorch 即可。
  3. 安装 EasyOCR: 使用 pip 包管理器安装 EasyOCR:
    pip install easyocr
  4. 导入 EasyOCR 库: 在您的 Python 脚本中导入 EasyOCR 库:
    import easyocr
  5. 创建 Reader 对象: 创建一个 Reader 对象,并指定您想要识别的语言代码列表。例如,要识别中文(简体)和英文,可以这样做:
    reader = easyocr.Reader(['ch_sim', 'en'])

    首次运行此代码时,EasyOCR 会自动下载所需的语言模型。如果您想在没有 GPU 的情况下运行,可以设置 gpu=False

    reader = easyocr.Reader(['ch_sim', 'en'], gpu=False)
  6. 读取图像中的文本: 使用 readtext() 方法读取图像中的文本。您需要提供图像的文件路径作为参数。该方法将返回一个列表,其中每个元素包含文本框的坐标、识别出的文本以及置信度:
    result = reader.readtext('chinese.jpg')
     print(result)

    输出结果的格式通常是这样的:[[[x1, y1], [x2, y2], [x3, y3], [x4, y4]], '识别出的文本', 置信度]

  7. 获取简单输出: 如果您只需要识别出的文本列表,可以将 detail 参数设置为 0:
    result = reader.readtext('chinese.jpg', detail=0)
     print(result)
  8. 处理图像数据: 除了文件路径,您还可以将图像作为 NumPy 数组(例如使用 OpenCV 读取的图像)或字节流传递给 readtext() 方法。
  9. 合并为段落: 对于某些场景,您可能希望将识别出的文本合并为段落。可以通过设置 paragraph=True 来尝试进行段落合并:
    result = reader.readtext('chinese.jpg', paragraph=True)

通过以上步骤,您就可以开始在您的项目中使用 EasyOCR 来提取图像中的文本了。由于其简单易用的 API 和强大的功能,EasyOCR 非常适合各种 OCR 应用场景,例如文档数字化、车牌识别、场景文本识别等。

相关导航