跳转至正文内容

Tesseract OCR 技术开发手册

Tesseract OCR 是全球最流行且成熟的开源光学字符识别引擎,基于 LSTM 深度神经网络,支持识别 100 多种全球语言。

最新标准: 本手册完全基于搭载深度学习引擎的 Tesseract 5.5 进行编写。

什么是 Tesseract?

Tesseract 是一款把图像像素转换为可搜索结构化文本的 OCR 引擎。它于 1985 年起源于惠普公司,目前由开源社区维护,借助 LSTM 神经网络原生支持 100 多种语言。

开发者指南

除了本参考文档外,我们还为每项 Tesseract 开发任务发布了经过验证的完整指南:

安装指南

根据您的开发环境选择合适的操作系统安装指令:

macOS (Homebrew)

brew install tesseract
brew install tesseract-lang  # 安装全语言模型

Ubuntu / Debian

sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-chi-sim tesseract-ocr-eng

Windows

winget install UB-Mannheim.TesseractOCR
# 或使用 Scoop:
scoop install tesseract

CLI 快速入门

基础文字提取命令示例:

# 从图片识别中英文并输出至终端 stdout
tesseract input.png stdout -l chi_sim+eng

# 输出保存为文本文件 (output.txt)
tesseract scan.jpg output -l chi_sim+eng

# 直接生成双层可搜索可复制 PDF
tesseract document.tif output_searchable -l chi_sim pdf

页面分割模式 (PSM)

使用 --psm <N> 参数指定版面分析策略:

PSM 模式说明 适用场景
0 仅方向和文字体系检测 (OSD) 旋转角度校正与语种识别
1 自动页面分割 + OSD 多语言混排复杂扫描件
3 全自动页面分割 (默认) 标准多段落普通文档
6 单个统一文本块 发票、收据、单一文字段落
7 单行文本 车牌号码、条形码下方文本
8 单个单词 验证码、独立词语

OCR 引擎模式 (OEM)

OEM 用于在 Tesseract 传统的模式匹配引擎和现代 LSTM 神经网络之间切换。可以通过 --oem 参数进行设置。

要点:在 Tesseract 5 中,OEM 1(LSTM)是默认模式,准确率最高;OEM 0(传统引擎)仅建议用于某些早于神经网络模型的特定字体。
  • 0: 仅使用传统引擎(传统图像解析)。
  • 1: 仅使用 LSTM 神经网络引擎(快速且准确)。
  • 2: 传统引擎与 LSTM 组合使用。
  • 3: 默认值,取决于 .traineddata 模型中可用的内容。
兼容性:并非所有语言包都支持传统引擎(OEM 0)。“fast”模型只包含 LSTM 数据(OEM 1)。

输出格式 (PDF, hOCR)

使用 pdf 输出可将图片转换为可搜索的 PDF;如需每个词的坐标数据,请选择 hOCR/TSV/ALTO。

# 可搜索 PDF
tesseract document.tif output pdf
# 坐标数据 (hOCR)
tesseract input.png out hocr

→ Tesseract OCR PDF 完整指南 — 可搜索 PDF、OCRmyPDF、Python 与疑难解答。

Python 集成(pytesseract)

安装引擎,然后运行 pip install pytesseract pillow。完整指南涵盖 image_to_string、图像预处理、PDF、置信度、PSM/OEM 配置与故障排查。

→ Python 完整指南

Node.js 与浏览器(tesseract.js)

tesseract.js 通过 WebAssembly 在浏览器或 Node 中使用。它识别图像,不支持 PDF。所有封装与取舍请参阅库参考。

→ Tesseract OCR 库与封装

自定义模型微调训练 (tesstrain)

Tesseract 5 使用 tesstrain 项目微调和训练 LSTM 模型。训练无法通过二进制安装程序获得:你需要从源码构建(或 WSL2),以及 make、真值数据生成和 tesstrain 仓库。

→ Tesseract 训练完整指南(tesstrain、微调、部署)

相关的文档 AI 与深度学习引擎

Tesseract 是文字提取的成熟开源方案,但现代文档处理流程也常将其与专门的神经网络引擎配合使用:

  • PaddleOCR: 高精度的深度学习 OCR 引擎(PP-OCR),提供表格识别、版面分析和多语言支持。 (指南)
  • Docling: 开源文档解析器,可将 PDF、图片和 Office 文档转换为结构化的 Markdown 和 JSON,适用于生成式 AI 与 RAG。 (指南)
  • Pillow (PIL): Python 中最基础的图像处理库,用于在 OCR 前调整对比度、二值化、裁剪和转换格式。 (指南)