一、Tesseract OCR引擎
Tesseract OCR是HP公司于1985~1995年间开发的商业级OCR(Optical Character Reader, 光学字符阅读器)引擎,并于2005年开放源代码。以下是它sourceforge上的网址:
http://sourceforge.net/projects/tesseract-ocr/?source=directory
现在已转移到谷歌的代码服务下:
https://code.google.com/p/tesseract-ocr/
源码和字库的下载列表:
https://code.google.com/p/tesseract-ocr/downloads/list
谷歌的服务器在国内不稳定,可以从http://pkgs.fedoraproject.org下载到所需的软件包和字库包:
>源码:http://pkgs.fedoraproject.org/repo/pkgs/tesseract/tesseract-ocr-3.02.02.tar.gz/
>中文字库:http://pkgs.fedoraproject.org/repo/pkgs/tesseract-langpack/tesseract-ocr-3.02.chi_sim.tar.gz/
>英文字库:http://pkgs.fedoraproject.org/repo/pkgs/tesseract/tesseract-ocr-3.02.eng.tar.gz/
二、面向Android的Tesseract工具
tess-two是Tesseract Tools for Android (tesseract-android-tools) 的一份拷贝,并添加了一些功能。Tesseract Tools for Android是Tesseract OCR和Leptonica图像处理库的Android API与构建文件的集合。github上的网址为:
https://github.com/rmtheis/tess-two
关于tess-two的编译过程,可以参考上述网址,根据我的编译经历,发现执行"android update project --path ."一步是,需要指定--target选项,其参数通过命令"android list targets"获取到id值,再指定,如下(记得连接好你的Android手机)。
root@Leon:/home/work/tess-two# android list targets
Available Android targets:
----------
id: 1 or "android-18"
Name: Android 4.3
Type: Platform
API level: 18
Revision: 1
Skins: WVGA854, WXGA800, WSVGA, WVGA800 (default), WQVGA400, WXGA720, QVGA, WQVGA432, WXGA800-7in, HVGA
ABIs : armeabi-v7a
root@Leon:/home/work/tess-two# android update project --path . --target 1
其中的"1"便是来自id后面的值。之后,便按照tess-two的github上的描述,添加到Eclispe即可。
三、基于tess-two的Android应用
有了面向Android的Tesseract库tess-two,接下来就是使用Android应用来测试和使用了。github上的android-ocr就是这样的应用:
https://github.com/rmtheis/android-ocr
我测试使用的是来自Mike_Wong的应用,参考了文章《浅析android OCR文字识别》,文章中包含了源码的下载地址。解压源码并导入到Eclipse之后,删除目录中的"gen"目录,并关闭工程再重新打开即可,为的是重新生成gen目录及其中的内容。源码中已包含tess-two编译会生成的libtess.so和liblept.so,并且包含了libjpeg.so。在编译并安装应用之前的唯一步骤是,在目标手机的SD目录下创建tessdata目录,将上面讲述的中英文字库添加到该目录,即"/sdcard/tessdata/"目录。
经过测试,发现算法的运行时间还是比较慢的,一段话的中文,处理时间大约20秒。识别精度也比较有限,在一张照片中文字比较多时,识别精度有所下降,如果文字比较少且比较大,则精度较高。
附录:其它参考文章
1. 《Android OCR 之 tesseract》
http://www.cnblogs.com/hangxin1940/archive/2012/01/13/2321507.html
2. 《安卓平台tess-two的图片识别终于成功》
http://www.cnblogs.com/muyun/archive/2012/06/12/2546693.html
3. 《tesseract-ocr训练方法》
http://my.oschina.net/lixinspace/blog/60124
4. 《Tesseract 3 语言数据的训练方法》
http://blog.wudilabs.org/entry/f25efc5f/