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

Docker环境下Tesseract-OCR运行远慢于本地的问题求助

Docker环境下Tesseract+PyMuPDF OCR性能远低于本地的排查求助

基于python:3.10镜像构建Docker容器,已成功安装tesseract 5.3.1,运行通过PyMuPDF启用OCR(后端调用Tesseract)的脚本时,同版本软件、同一文件的处理速度,Docker环境远慢于Windows本地。

测试配置与结果

  • 本地运行:
100%|██████████| 24/24 [00:49<00:00,  2.06s/it]
It took 0:00:49 to process 24 pages.
  • Docker内置安装运行:
100%|██████████| 24/24 [03:14<00:00,  8.12s/it]
It took 0:03:14 to process 24 pages.
  • Docker绑定挂载tessdata运行:
100%|██████████| 24/24 [02:06<00:00,  5.29s/it]
It took 0:02:06 to process 24 pages.

Docker Compose挂载配置

绑定挂载tessdata并设置环境变量TESSDATA_PREFIX指向/code/ocr/tessdata:

- type: bind
  source: "C:/Program Files/Tesseract-OCR/tessdata"
  target: /code/ocr/tessdata

核心OCR脚本

import fitz # pip install pymupdf
content_dict = {}
pages = fitz.open(pdf_file_path)
for page_num, page in enumerate(pages, start=1):
    list_of_text_in_block = []
    page_data = page.get_textpage_ocr(dpi=400, full=True)
    text_blocks = page_data.extractBLOCKS()
    for text_block in text_blocks:
        block_text = text_block[4]
        list_of_text_in_block.append(block_text)
    content_dict[page_num] = ' '.join(list_of_text_in_block)

Tesseract版本信息

  • Docker内tesseract --version输出:
tesseract 5.3.1
 leptonica-1.79.0
  libgif 5.1.9 : libjpeg 6b (libjpeg-turbo 2.0.6) : libpng 1.6.37 : libtiff 4.2.0 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.4.0     
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
 Found OpenMP 201511
 Found libcurl/7.74.0 OpenSSL/1.1.1n zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3
  • 本地tesseract --version输出(注:5.3.1与5.3.1.20230401为同一版本):
tesseract v5.3.1.20230401
 leptonica-1.83.1
  libgif 5.2.1 : libjpeg 8d (libjpeg-turbo 2.1.4) : libpng 1.6.39 : libtiff 4.5.0 : zlib 1.2.13 : libwebp 1.3.0 : libopenjp2 2.5.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
 Found libarchive 3.6.2 zlib/1.2.13 liblzma/5.2.9 bz2lib/1.0.8 liblz4/1.9.4 libzstd/1.5.2
 Found libcurl/8.0.1 Schannel zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0

疑问

运行脚本时,Docker仅占用1个CPU核心(主机共12核心)且满负荷,但此现象无法解释**绑定挂载tessdata比Docker内置安装快35%**的差异,请求排查性能差异的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:45:18