开源OCR引擎Tesseract-OCR简介

时间:2022-08-11 09:02:41

这两天需要识别一些图像上的文字,在网上搜索了一下开源的OCR引擎,发现了Tesseract-ocr。它最早是HP开发的,在停滞了差不多10年后,于06年开源出来,目前是google在维护,可以说是too old了。项目首页是http://code.google.com/p/tesseract-ocr/

看了一下它的文档,发现识别效果也是一般,似乎OCR方面的开源实现和商业产品相比,还有很大的距离。不过对于我的应用场景来说,Tesseract已经够用了。我主要是识别一些书写非常规范的数字和英文。

Tesseract使用C++开发,提供了一系列函数,在官网上还能下载到编译好的应用程序供测试。理论上Tesseract能够识别各种语言和符号,前提是你需要有对应语言的数据文件,官网上也可以下载到一些,例如英文、法文德文等,但没有中文。如果没有对应的语言数据文件,或者你对识别效果有特殊要求,你还以对它进行训练,通过提供图像文件和识别结果文件(box文件),Tesseract能够进行学习。

Tesseract能够读取tiff文件,可以是单色或者灰度的,但只能是非压缩格式的。如果需要读取压缩格式的tiff,需要依赖libtiff,然后重新编译。在Windows平台下,还支持bmp文件,效果不错。

简单试用了一下发现,对英文和数字的识别率还算可以,前提是书写得比较正规,对于一些简单的校验码也能够识别得七七八八。不过另外尝试了一比较变态的校验码(扭曲得比较厉害的),发现几乎无法识别,看来用它实现Anti-CAPTCHA还是有困难,不知道增加一些图像预处理过程会不会好的。另外,识别的速度好像有点慢,对于一个1千个单词左右的BMP文件,花费大约9秒钟时间。

过两天正式应用一下,如果发现还行,再详细介绍一下它。