Tesseract OCR 命令行工具完全指南
概述
Tesseract 是一个开源的 OCR(光学字符识别)引擎,最初由 HP 实验室在 1985 至 1995 年间开发。它曾被评为 UNLV 测试中表现最佳的三大 OCR 引擎之一,2005 年被 HP 和 UNLV 开源,之后由 Google 维护至 2018 年。
基本用法
Tesseract 的基本命令行语法为:
tesseract 输入文件 输出基础名 [选项]... [配置文件]...
输入输出参数
-
输入文件:可以是图像文件或文本文件
- 支持 Leptonica 库能读取的大多数图像格式
- 文本文件应包含每行一个图像文件名列表
- 使用
stdin
或-
从标准输入读取
-
输出基础名:输出文件的基础名称
- 默认添加
.txt
扩展名 - 使用
stdout
或-
输出到标准输出
- 默认添加
核心选项详解
语言设置
-l LANG
- 指定识别语言,默认为英语(
eng
) - 支持多语言组合,如
eng+chi_sim
- 使用 3 字符 ISO 639-2 语言代码
页面分割模式(PSM)
--psm N
PSM 参数控制 Tesseract 如何处理图像布局:
| 值 | 模式描述 | |----|----------| | 0 | 仅方向和脚本检测(OSD) | | 1 | 自动页面分割+OSD | | 3 | 全自动页面分割(默认) | | 4 | 单列变大小文本 | | 6 | 单块统一文本 | | 7 | 单行文本 | | 8 | 单字 | | 10 | 单字符 | | 11 | 稀疏文本(无特定顺序) |
OCR引擎模式(OEM)
--oem N
| 值 | 引擎类型 | |----|----------| | 0 | 仅原始 Tesseract 引擎 | | 1 | 仅 LSTM 神经网络 | | 2 | Tesseract + LSTM | | 3 | 自动选择(默认) |
高级配置
配置文件
Tesseract 支持多种输出格式的配置文件:
alto
:ALTO XML 格式hocr
:hOCR 格式pdf
:PDF 输出tsv
:制表符分隔值txt
:纯文本(默认)
示例同时生成多种格式:
tesseract image.png output alto hocr pdf
用户自定义数据
可通过以下方式增强识别效果:
- 用户词表:
--user-words 文件
- 每行一个单词
- 用户模式:
--user-patterns 文件
- 定义特殊文本模式
- 自定义配置:创建配置文件禁用系统词典并加载用户数据
环境变量
TESSDATA_PREFIX
:指定语言数据目录路径OMP_THREAD_LIMIT
:控制线程数(默认为4)
语言与脚本支持
Tesseract 4 支持超过 100 种语言和脚本,包括:
- 主流语言:英语、中文(简/繁)、日语、韩语等
- 特殊脚本:阿拉伯文、西里尔文、梵文等
- 垂直文本:韩文垂直、日文垂直等
完整列表可通过 --list-langs
查看。
性能优化建议
- 对于简单文档,使用
--psm 6
或--psm 7
- 低性能设备设置
OMP_THREAD_LIMIT=1
- 特定领域文本使用自定义词表
- 高质量扫描文档使用 300-600 DPI
历史与发展
Tesseract 经历了多个重要版本迭代:
- 2.00:引入 Unicode 支持和训练能力
- 3.00:增加中日韩语言支持
- 4.00:引入 LSTM 神经网络引擎
当前版本同时支持传统模式和新式 LSTM 引擎,为用户提供灵活选择。
通过合理配置选项和自定义数据,Tesseract 能够满足从简单文档到复杂多语言文本的各种 OCR 需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考