Tesseract 是目前最主流、免费开源的 OCR 引擎(Apache 2.0 协议),由 HP 始创、Google 长期维护,核心是图像→文本的高精度识别,支持 Windows/Linux/macOS 及 100+ 语言
核心定位与历史
-
全称:Tesseract OCR Engine
-
起源:1985--1994 HP 实验室;2005 开源;2006 起 Google 主导开发
-
最新稳定版:5.3.x(2025)
-
核心能力:
- 印刷体文字高准确率
- 多语言 / 混合语言(
eng+chi_sim) - 版面分析、位置信息输出
- 命令行 + C/C++/Python/JS 等绑定
- 可自定义训练(
traineddata)
标准工作流程(官方 pipeline)
Tesseract 严格按以下步骤执行:
图像输入与预处理
-
输入格式(Leptonica 支持):
PNG/JPEG/TIFF/GIF/BMP/WebP/JP2Tesseract OCR
-
预处理(自动 / 手动):
- 灰度化 → 二值化(黑白)
- 去噪、倾斜校正(deskew)
- 对比度增强、裁剪、缩放(建议 300 DPI)
版面分析(Layout Analysis)
- OSD:方向与脚本检测(Orientation & Script Detection)
- 页面分割:区分文本块 / 图片 / 表格 / 多栏
- 文本行定位 → 单词分割 → 字符分割
字符识别(两大引擎)
-
Legacy(v3 传统引擎):
模板匹配、特征树、字符模式识别
-
LSTM(v4+ 主力):
长短期记忆神经网络,行级端到端识别,精度大幅提升
后处理(校正)
- 词典匹配、语言模型纠错
- 空格 / 标点 / 大小写修正
- 置信度过滤(
wordconf/textconf)
输出
- 纯文本、hOCR(HTML + 位置)、PDF(可搜索)、TSV、ALTO XML
核心命令行参数(标准用法)
基本格式
tesseract 输入图 输出基名 [选项]
关键参数(必掌握)
引擎模式 --oem(OCR Engine Mode)
--oem 0:仅 Legacy 引擎--oem 1:仅 LSTM 引擎(推荐)--oem 2:Legacy + LSTM 融合--oem 3:自动(默认)
页面分割模式 --psm(Page Segmentation Mode)
常用值:
3:全自动分割 + OSD(默认)6:单一块文本(截图 / 纯文本最稳)7:单行8:单词10:单个字符11:稀疏文本(自然场景)
语言 -l
- 3 位 ISO 639-2:
eng/chi_sim/chi_tra/jpn/kor/ara - 混合:
-l eng+chi_sim
输出格式
tesseract in.png out txt hocr pdf # 同时输出三种
txt:纯文本hocr:带坐标的 HTML(用于版面还原)pdf:可搜索 PDFtsv:文本 + 坐标 + 置信度
常用优化
--dpi 300:指定分辨率-c tessedit_char_whitelist=0123456789:白名单-c tessedit_do_invert=0:禁用反色(黑底白字)
模型文件标准(tessdata)
模型类型
tessdata:仅 LSTM(v4+,小而准)tessdata_best:LSTM 高精度(慢)tessdata_fast:LSTM 快速(精度略降)tessdata_legacy:含传统引擎(v3 兼容)
命名与路径
-
文件名:
[lang].traineddata(如chi_sim.traineddata) -
标准路径:
- Linux:
/usr/share/tesseract-ocr/5/tessdata/ - Windows:
C:\Program Files\Tesseract-OCR\tessdata
- Linux:
-
环境变量:
TESSDATA_PREFIX
版本关键差异(标准演进)
-
v3:传统引擎;有限版面分析;不支持 LSTM
-
v4(重大升级):
- 加入 LSTM 主线
- 支持 100+ 语言
- 垂直文本、复杂排版
- hOCR/PDF 输出成熟
-
v5:
- LSTM 优化、速度提升
- 低质图鲁棒性增强
- 更好的 Unicode 与标点处理
识别准确率标准与优化
影响精度的关键因素
- 图像质量:300 DPI、清晰、无模糊、无阴影
- 二值化:干净黑白(避免灰度粘连)
- 语言正确 :
-l必须匹配 --psm合适:不要用全自动(3)处理纯文本 / 截图
标准优化流程(实战)
-
预处理(OpenCV/Pillow):
- 灰度 → 阈值二值化 → 去噪 → 倾斜校正
-
命令行:
tesseract clean.png result --oem 1 --psm 6 -l chi_sim -
后处理:正则过滤、词典校验
限制(标准边界)
-
不擅长:
- 手写体(仅非常工整印刷体风格除外)
- 极度模糊、低对比度、严重畸变
- 复杂公式、艺术字、密集表格
-
PDF :Tesseract 不直接读 PDF,需先用
pdf2image/OCRmyPDF转图Tesseract OCR
典型场景标准命令
-
纯英文截图
tesseract screen.png out --oem 1 --psm 6 -l eng -
中英文混合文档(300 DPI)
tesseract doc.tif out pdf --oem 1 --psm 3 -l eng+chi_sim --dpi 300 -
仅数字 + 大写字母(验证码 / 表单)
tesseract cap.png out --oem 1 --psm 8 -l eng -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
总结(标准要点)
-
Tesseract 标准 = LSTM 引擎 + 版面分析 + 多语言
traineddata+ 命令行 / API -
最佳实践:
- v5 +
tessdata+--oem 1 - 图像 300 DPI、二值化清晰
--psm 6/7处理纯文本 / 单行-l严格匹配语种
- v5 +
-
适合:文档数字化、截图转文、表单识别、批量扫描