Tesseract介绍
因为组织上的需要,开始接触OCR技术。在问了Google大叔后,他告诉我去找Tesseract吧,开源界很好用的一个OCR软件。然后我就来了 :)
其实最终是需要用在手机上,但是为了最快速的熟悉一下,决定现在PC(Ubuntu)上体验一下,跑通后再寻求手机上的应用实践。
Tesseract介绍
Tesseract是Ray Smith于1985到1995年间在惠普布里斯托实验室开发的一个OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。但1996年后基本停止了开发。2006年,Google邀请Smith加盟,重启该项目。目前项目的许可证是Apache 2.0。该项目目前支持Windows、Linux和Mac OS 等主流平台。但作为一个引擎,它只提供命令行工具。
下载Tesseract源码
当然,如果你想直接安装也可以:
apt-get install tesseract-ocr
但是这样就无法体会源码编译的快感了啊有木有!!!因为我的测试不是通过直接安装进行的,所以之后写的一些东西可能不适合安装版。
因为Tesseract现在由Google托管,所以其代码官网在google code处:https://code.google.com/p/tesseract-ocr/
由于此网站可能被和谐,所以在这里同时提供直接的源码同步地址:
svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr-read-only
准备工作
这里所说的准备工作包括两个部分,一个是Tesseract所需要的其他配置,另一个是其所依赖的leptonica。
leptonica
官网:http://www.leptonica.org/source/
源码包下载(v1.70):http://www.leptonica.org/source/leptonica-1.70.tar.gz
编译和安装很简单:
./configure && make && sudo make install
同时也可以进行卸载:
sudo make uninstall
其他配置
Tesseract在编译前可以通过autogen.sh进行检查,这一点在INSTALL文档中有提到(后续步骤也存在于这个文档中)。而这里所说的其他配置所指的就是在运行autogen.sh检查过程中的一些提示未找到或未安装的工具等,按照提示信息进行补全。而leptonica在前一个步骤已经编译安装了,相信这里的检查不会提示它的错误。
测试应用
在Tesseract源码目录下有一个testing目录,这个目录下有可以进行测试的文件和脚本。在测试前需要注意的一点是,要设置一个环境变量:
export TESSDATA_PREFIX=where_the_source_root_dir_is
即要将Tesseract源码目录的路径设置到环境变量中。(别忘了设置完后用source命令让其生效)
设置环境变量后,对phototest.tif进行测试:
tesseract phototest.tif output.txt
成功的话phototest.tif图片中的文字内容会被识别出放入output.txt中。
常见问题
- 提示缺少liblept.so.4,没找到此共享库。
解决办法:去/usr/local/lib下查看是否真的没有此库,若有(应为link)则尝试将其link到/usr/lib下看是否能修复此问题。 - 提示下面的错误
在网上搜过后发现一个很有意思的事,因为tesseract是依赖于leptonica的,所以这个问题tesseract的人说是leptonica的问题,而leptonica论坛中则说是tesseract的问题。很搞笑。回到正题,这个问题可能是系统缺少支持库造成的(对,而且没有提示),也可能是leptonica编译的设置问题(新版应该不存在)。套用tesseract论坛中以为热心网友的提示,他的解决办法对我有用:Error in pixReadStreamPng: function not present Error in pixReadStream: png: no pix returned Error in pixGetInputFormat: pix not defined Error in pixRead: image not returned Error in fopenReadStream: file not found Error in pixRead: image file not found
就是安装必要的库,然后对leptonica进行重编译。我出现过这个问题,就是这样解决的。I install: $ sudo apt-get install libjpeg-dev libpng-dev libtiff4-dev $ cd leptonica-1.70 $ ./configure && make && sudo make install $ tesseract -l eng -psm 7 baz.tif foo Then it don't report this error any more. However, it recognize nothing in foo.txt
更多推荐
所有评论(0)