Tesseract OCR:7万星的开源文字识别引擎
Tesseract OCR:7万星的开源文字识别引擎
做 OCR 相关工作的,基本都绕不开 Tesseract。这个项目在 GitHub 上拿了 7.4 万 Star,是目前最主流的开源文字识别引擎。它能识别 100 多种语言,支持 PNG、JPEG、TIFF 等常见图片格式,输出格式覆盖纯文本、HTML、PDF、TSV 等。
说白了,你给它一张带文字的图片,它能把文字提取出来。

历史比很多公司都长
Tesseract 最早是惠普实验室在 1985 年开始做的,一直到 1994 年基本完成。2005 年惠普把它开源,2006 年到 2017 年由 Google 接手维护。之后社区自己接管,当前稳定版本是 5.0。
一个 OCR 引擎能活将近 40 年,本质上就是因为它确实能解决问题。
两种识别引擎
Tesseract 4 引入了基于 LSTM 神经网络的识别引擎,主打行级别识别,速度和准确率都比老版本好。如果有特殊需求,也可以通过 --oem 0 参数切回 Tesseract 3 的传统字符模式匹配引擎。
大多数场景下,LSTM 模式够用。另外它还支持训练自定义模型,如果你要识别的语言不在自带的 100 多种里面,可以自己准备训练数据跑一轮。

用法
装好之后命令行一行就能跑:
tesseract imagename outputbase [-l lang]
指定图片文件名、输出文件名、语言就行。批量处理也很方便,写个循环遍历目录下的图片文件即可。
它也提供了 C 和 C++ 的 API,可以集成到自己的应用里。其他语言的绑定在官方文档的 AddOns 页面有列出,Java、Python、Node.js 等主流语言都有现成的封装。
实际效果
Tesseract 对扫描文档、印刷体文字的识别效果不错。手写体、复杂排版、低质量图片的表现会差一些,这是这类引擎的共同短板。官方文档里有一节专门讲怎么提高图片质量来改善识别结果,值得看看。
输出格式方面,纯文本之外还支持 hOCR(HTML 格式的识别结果)、带文字层的 PDF、TSV 等。如果后续要对接搜索引擎或者数据处理管道,格式选择很灵活。
另外它本身不带 GUI,纯命令行工具。需要图形界面的可以找社区做的第三方项目。
适合谁
如果你在做文档数字化、信息提取,或者给 AI 项目准备训练数据,Tesseract 是个可靠的选择。7.4 万 Star 积累到现在,稳定性和兼容性经过了长时间验证。Apache 2.0 协议,商用也没有限制。
积累到现在,稳定性和兼容性经过了长时间验证。Apache 2.0 协议,商用也没有限制。
更多推荐


所有评论(0)