Tesseract OCR 技术开发手册
Tesseract OCR 是全球最流行且成熟的开源光学字符识别引擎,基于 LSTM 深度神经网络,支持识别 100 多种全球语言。
什么是 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 参数进行设置。
- 0: 仅使用传统引擎(传统图像解析)。
- 1: 仅使用 LSTM 神经网络引擎(快速且准确)。
- 2: 传统引擎与 LSTM 组合使用。
- 3: 默认值,取决于 .traineddata 模型中可用的内容。
输出格式 (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 配置与故障排查。
Node.js 与浏览器(tesseract.js)
tesseract.js 通过 WebAssembly 在浏览器或 Node 中使用。它识别图像,不支持 PDF。所有封装与取舍请参阅库参考。
自定义模型微调训练 (tesstrain)
Tesseract 5 使用 tesstrain 项目微调和训练 LSTM 模型。训练无法通过二进制安装程序获得:你需要从源码构建(或 WSL2),以及 make、真值数据生成和 tesstrain 仓库。
相关的文档 AI 与深度学习引擎
Tesseract 是文字提取的成熟开源方案,但现代文档处理流程也常将其与专门的神经网络引擎配合使用: