如何用python部署本地ocr脚本

环境:

EasyOCR

win10

i5 cpu运行

问题描述:

如何用python部署本地ocr脚本?

解决方案:

EasyOCR 是一个可以在本地运行的 OCR 工具。它不需要依赖于云端服务或互联网连接,所有处理都在本地计算机上完成。这意味着可以将 EasyOCR 集成到你的应用程序中,并在没有网络的情况下使用它进行文本识别。

本地运行的优势

  1. 隐私保护:因为所有的图像和文本处理都在本地进行,所以不用担心数据泄露或隐私问题。
  2. 实时性:本地处理可以减少延迟,提供更快的响应时间,特别是在需要快速反馈的应用场景中。
  3. 成本控制:无需支付云服务费用,特别是对于大规模或频繁使用的应用来说,这可以显著降低成本。
  4. 离线可用:即使没有互联网连接,你也可以正常运行 EasyOCR 进行 OCR 任务。

本地环境要求

为了确保 EasyOCR 在本地环境中顺利运行,你需要满足以下几点:

  1. Python 环境
    • 安装 Python(推荐版本 3.6+)。

    • 使用 pip 安装 EasyOCR 及其依赖项:

      bash 复制代码
      pip install easyocr
  1. 硬件资源

    • EasyOCR 可以在普通的 CPU 上运行,但如果你有 GPU 支持(如 NVIDIA),可以通过安装 PyTorch 的 GPU 版本来加速处理速度。
    • 对于较大的图像或复杂的 OCR 任务,更多的内存和更强的处理器会提高性能。
  2. 预训练模型下载

    • 第一次初始化 easyocr.Reader 时,它会自动下载所需的预训练模型文件。这些模型文件会被缓存下来,以便后续使用时不再重新下载。
    • 如果你在没有互联网连接的环境中工作,可以提前在一个联网的机器上下载好模型文件,然后将其复制到目标机器的相应位置。

本地运行 EasyOCR

下面是一个完整的示例,展示了如何在本地环境中使用 EasyOCR 进行 OCR 识别:

python 复制代码
import easyocr

# 初始化 EasyOCR 读取器,指定所需的语言(例如中文、英文)
reader = easyocr.Reader(['ch_sim', 'en'])  # 支持多语言,如['en', 'zh-cn']

# 读取本地图像文件并进行 OCR 识别
result = reader.readtext('path_to_your_local_image.jpg')

# 打印结果
for (bbox, text, prob) in result:
    print(f"Detected text: {text}, Confidence: {prob:.2f}")

path_to_your_local_image.jpg 是你本地磁盘上的图像路径,EasyOCR 将直接从该路径加载图像并进行文本识别。

目标图片:

运行脚本要下模型,需要科学上网

下载完了模型再次运行

模型比较小很快下载好

识别结果:

CompleteDetected text: A漤人, Confidence: 0.05

Detected text: 携手创造美好未来, Confidence: 0.85

注意事项

  • 首次运行 :第一次调用 easyocr.Reader 时,可能会花费一些时间来下载必要的模型文件。之后这些文件会被缓存起来,再次运行时会快得多。
  • 模型大小:预训练模型文件可能较大,占用一定的磁盘空间。请确保有足够的存储空间。
  • 多语言支持:如果你选择了多种语言,那么相应的多语言模型文件也会被下载。如果只需要一种语言,可以选择只加载该语言的模型以节省资源。

手动下载 EasyOCR 所需的模型文件

手动下载 EasyOCR 所需的模型文件,你可以直接访问官方提供的模型下载链接。以下是具体的步骤和模型下载地址:

官方模型下载地址

EasyOCR 的预训练模型可以从其官方 GitHub 仓库中的 Model Hub 页面获取。该页面列出了所有可用的语言模型及其下载链接。

直接下载链接

对于常用的语言模型,如中文(简体)和英文,你可以使用以下直接下载链接:

下载并安装模型文件

  1. 创建存储目录

    • 在你的用户主目录下创建 .EasyOCR 文件夹,并在其中创建 model 子文件夹。

      bash 复制代码
      mkdir -p ~/.EasyOCR/model
  2. 下载模型文件

    • 使用你喜欢的下载工具(如浏览器、wgetcurl)从上述链接下载所需的模型文件,并将它们保存到 ~/.EasyOCR/model 目录中。
  3. 验证文件完整性

    • 确保下载的文件完整无误。你可以通过对比文件大小或计算哈希值来验证。
  4. 运行代码

    • 再次运行你的 Python 脚本,这次应该不会再尝试重新下载模型文件,而是直接使用本地已有的模型。

示例:批量下载多个模型

需要下载多个语言的模型文件,可以编写一个简单的脚本来自动化这个过程:

python 复制代码
import os
import urllib.request

# 创建存储目录
os.makedirs(os.path.expanduser('~/.EasyOCR/model'), exist_ok=True)

# 模型下载链接字典
model_links = {
    'craft_mlt_25k.pth': 'https://github.com/JaidedAI/EasyOCR/releases/download/pre-v1.4/craft_mlt_25k.pth',
    'chinese_g2.pth': 'https://github.com/JaidedAI/EasyOCR/releases/download/pre-v1.4/chinese_g2.pth',
    'english_g2.pth': 'https://github.com/JaidedAI/EasyOCR/releases/download/pre-v1.4/english_g2.pth'
}

# 下载模型文件
for model_name, url in model_links.items():
    model_path = os.path.join(os.path.expanduser('~/.EasyOCR/model'), model_name)
    print(f"Downloading {model_name}...")
    urllib.request.urlretrieve(url, model_path)
    print(f"Downloaded {model_name} to {model_path}")

print("All models have been downloaded.")

注意事项

  • 网络连接:确保你有稳定的互联网连接以完成下载。
  • 文件权限:确保你有权限在目标目录中创建文件和写入数据。
  • 磁盘空间:确认有足够的磁盘空间来存储这些模型文件。
相关推荐
RuiyChen9 分钟前
当comfyui-reactor-node 安装失败urllib.error.HTTPError: HTTP Error 403: Forbidden解决方法
图像处理·python
Jamesvalley34 分钟前
【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)
数据库·python·django
Q_274378510938 分钟前
django基于Python的智能停车管理系统
java·数据库·python·django
太阳花的小绿豆2 小时前
Python使用socket实现简易的http服务
python·socket
大风起兮122 小时前
ESP32,uart安装驱动uart_driver_install函数剖析,以及intr_alloc_flags 参数的意义
开发语言·单片机·嵌入式硬件
不是AI2 小时前
【C语言】【C++】Curl库的安装
c语言·开发语言·c++
视觉弘毅2 小时前
win10安装anaconda环境与opencv
python·opencv·anaconda
NoneCoder2 小时前
JavaScript系列(26)--安全编程实践详解
开发语言·javascript·安全
编程小筑2 小时前
R语言的数据库编程
开发语言·后端·golang
兩尛2 小时前
maven高级(day15)
java·开发语言·maven