You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EasyOCR本地运行正常,部署至DigitalOcean(Ubuntu22.10)后极慢求助

解决EasyOCR在DigitalOcean Ubuntu服务器运行极慢的问题

可能的原因及修复步骤

1. 服务器配置不足(最常见)

DigitalOcean基础款Droplet(如1核1G内存)跑CPU版EasyOCR会非常吃力,因为EasyOCR的文本检测(CRAFT)和识别模型均为计算密集型。

  • 临时方案:升级Droplet配置,至少选择2核2G以上机型,优先选CPU性能更强的AMD系列。
  • 长期优化:若不想升级配置,可调整readtext参数降低计算负载:
    # 缩小图片尺寸减少计算量,scale越小速度越快但可能影响准确率
    results = reader.readtext(img, scale=0.5)
    # 或调整文本检测的阈值,减少候选框数量
    results = reader.readtext(img, width_ths=0.7, height_ths=0.7)
    

2. 依赖库未正确安装或未优化

Ubuntu默认Python环境可能缺少编译优化,导致EasyOCR依赖的OpenCV、PyTorch等库运行效率低下。

  • 重新安装优化后的依赖:
    1. 卸载现有库:
      pip uninstall -y easyocr opencv-python pytorch torchvision
      
    2. 安装带CPU优化的版本:
      # 安装针对CPU优化的PyTorch
      pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
      # 安装无头版OpenCV(无GUI依赖,更轻量化)
      pip install opencv-contrib-python-headless
      # 重装EasyOCR
      pip install easyocr
      
  • 启用OpenMP多核加速:Ubuntu需安装相关依赖以激活多核并行计算:
    sudo apt-get update && sudo apt-get install -y libomp-dev
    

3. 模型文件问题

手动下载模型需确保文件完整且路径权限正常:

  • 检查模型大小:craft_mlt_25k.pth约1GB,english_g2.pth约100MB,若文件大小不符需重新下载。
  • 修复路径权限:确保运行代码的用户拥有模型存储路径的读取权限:
    sudo chmod -R 755 /var/www/*****/*****/*****/server/utils
    

4. 图片预处理优化

高分辨率图片(如4K以上)会大幅增加计算量,建议提前缩放:

import cv2
# 将图片宽度缩至1000像素以内,可根据需求调整
img = cv2.imread("your_image_path.jpg")
max_width = 1000
if img.shape[1] > max_width:
    scale = max_width / img.shape[1]
    img = cv2.resize(img, (int(img.shape[1]*scale), int(img.shape[0]*scale)))

5. 代码逻辑优化

避免重复初始化Reader对象:每次创建reader都会重新加载模型,耗时极长。应将初始化放在全局位置,仅加载一次:

# 全局初始化,仅运行一次
import easyocr
path = "/var/www/*****/*****/*****/server/utils"
reader = easyocr.Reader(['en'], gpu=False, download_enabled=False, model_storage_directory=path)

# 业务处理函数
def process_image(img):
    results = reader.readtext(img)
    easyocr_Confidence = 0.4
    easyocrString = ""
    for detection in results:
        if detection[2] > easyocr_Confidence:
            easyocrString += detection[1] + ' '
    return easyocrString

内容的提问来源于stack exchange,提问作者Redstain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:52:53