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 多种里面,可以自己准备训练数据跑一轮。

README区域截图

用法

装好之后命令行一行就能跑:

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 协议,商用也没有限制。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐