环境:
EasyOCR
win10
i5 cpu运行
问题描述:
如何用python部署本地ocr脚本?
解决方案:
EasyOCR 是一个可以在本地运行的 OCR 工具。它不需要依赖于云端服务或互联网连接,所有处理都在本地计算机上完成。这意味着可以将 EasyOCR 集成到你的应用程序中,并在没有网络的情况下使用它进行文本识别。
本地运行的优势
- 隐私保护:因为所有的图像和文本处理都在本地进行,所以不用担心数据泄露或隐私问题。
- 实时性:本地处理可以减少延迟,提供更快的响应时间,特别是在需要快速反馈的应用场景中。
- 成本控制:无需支付云服务费用,特别是对于大规模或频繁使用的应用来说,这可以显著降低成本。
- 离线可用:即使没有互联网连接,你也可以正常运行 EasyOCR 进行 OCR 任务。
本地环境要求
为了确保 EasyOCR 在本地环境中顺利运行,你需要满足以下几点:
- Python 环境 :
-
安装 Python(推荐版本 3.6+)。
-
使用
pip
安装 EasyOCR 及其依赖项:bashpip install easyocr
-
-
硬件资源:
- EasyOCR 可以在普通的 CPU 上运行,但如果你有 GPU 支持(如 NVIDIA),可以通过安装 PyTorch 的 GPU 版本来加速处理速度。
- 对于较大的图像或复杂的 OCR 任务,更多的内存和更强的处理器会提高性能。
-
预训练模型下载:
- 第一次初始化
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 页面获取。该页面列出了所有可用的语言模型及其下载链接。
直接下载链接
对于常用的语言模型,如中文(简体)和英文,你可以使用以下直接下载链接:
-
craft_mlt_25k.pth(文本检测模型):
-
chinese_g2.pth(中文识别模型):
-
english_g2.pth(英文识别模型):
下载并安装模型文件
-
创建存储目录:
-
在你的用户主目录下创建
.EasyOCR
文件夹,并在其中创建model
子文件夹。bashmkdir -p ~/.EasyOCR/model
-
-
下载模型文件:
- 使用你喜欢的下载工具(如浏览器、
wget
或curl
)从上述链接下载所需的模型文件,并将它们保存到~/.EasyOCR/model
目录中。
- 使用你喜欢的下载工具(如浏览器、
-
验证文件完整性:
- 确保下载的文件完整无误。你可以通过对比文件大小或计算哈希值来验证。
-
运行代码:
- 再次运行你的 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.")
注意事项
- 网络连接:确保你有稳定的互联网连接以完成下载。
- 文件权限:确保你有权限在目标目录中创建文件和写入数据。
- 磁盘空间:确认有足够的磁盘空间来存储这些模型文件。