ubuntu下使用Tesseract-ocr(编译、安装、使用、训练新的语言库)

本文前半部分是来自http://www.qisanfen.com/?p=185的一篇文章,主要讲了安装、训练的大致流程,注意如果需要训练语言库需要把所需要的库安装完整

后半部分大致是官方wiki的翻译版本

如果只安装,不训练,可以看我的另一篇比较简洁的文章http://blog.csdn.net/yimingsilence/article/details/51276138

关于训练的具体细节可以查看官方wiki : https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract

或者wiki的翻译版本http://qianjiye.de/2015/08/tesseract-ocr 和 http://yanghespace.com/2015/11/01/Tesseract3训练新语言/


安装、训练的大致流程

OCR的全称是Optical Character Recognition,是指识别计算机图片中的文字内容的过程。

Google Project下有一个C++开源项目叫做tesseract-ocr,这是一个命令行工具,运行时指定需要进行识别的图片,识别出来的文字存储在指定的文本文件中。它能识别包括中文在内的大多数语言,虽然初始安装时只能正确识别比较规范的字体,但可以通过训练提高其识别精确度。所谓训练,实际上就是通过一系列tesseract-ocr提供的工具,根据需要识别的语言及其字体的特点,生成一个以traineddata为扩展名的文件,文件名可随意,不过一般以语言缩写命名,比如训练英文生成的文件就是eng.traineddata,训练简体中文生成的文件就命名为chi_sim.traineddata。使用tesseract对某一图片进行文字识别时,需要指定识别成哪一种语言,然后tesseract就会读取对应该语言的traineddata进行识别。在我安装的ubuntu系统下,安装tesseract-ocr后,其使用的traineddata存放在/usr/local/share/tessdata/目录下。因此只要将你的训练结果复制/替换到这个目录下,tesseract就会根据你的训练结果来识别对应的语言了。由于安装和训练是独立的,你的训练结果可以在多个安装环境下使用;并且,如果有人共享了识别率较高的训练结果,你也不需要自己进行繁琐(是的,安装tesseract-ocr很简单,训练很麻烦)的训练了。

本文记录如何在ubuntu下安装,使用,训练tesseract-ocr。

词汇说明:

  • tesseract-ocr是项目名称,tesseract是安装tesseract-ocr后用于文字识别的命令行工具名称,本文不对两者进行严格的区分。

安装

用aptitude安装

如果你不打算自己训练tesseract(训练工具得通过源代码编译安装),或者想先体验一下tesseract的功能,那么最快速简单的方法就是使用aptitude了。关于aptitude的用法请参考官方User Manual

从源代码安装安装

在安装tesseract-ocr之前,如同官方wiki文档指出的那样,需要先安装一些Dependencies,包括:autotools-dev, libleptonica-dev, autoconf, automake, libtool, libpng12-dev, libtiff4-dev, zlib1g-dev, libicu-dev。这些可以用apt-get安装,也可以用aptitude,我使用的是aptitude。wiki中还提到了libjepg62-dev,但aptitude提示其与libtiff4-dev有冲突,因此我没有安装,但这并不影响本文提到的tesseract的使用及基础训练。

接下来下载代码,可以选择从svn下载,也可以直接下载代码压缩包。svn中包含了很多语言的traineddata,总共有600多M,而单纯的代码包只有几M。由于svn代码较新,相对代码压缩包来说,多了一些本文要用到的训练工具,因此我这里选择从svn下载安装。

代码checkout之后,在terminal下进入这个源代码文件夹,然后按顺序执行以下命令开始编译安装。

./autogen.sh
./configure
make
sudo make install
sudo ldconfig

到了这一步,你就可以看到 tesseract 已经被成功安装了

安装语言文件(Language Data)

在你用tesseract识别某一种语言之前,必须要确保你安装了对应的语言文件(Language Data,这是tesseract-ocr训练生成的文件,不是操作系统的语言包)。要查看是否安装了某种语言,只需要查看 /usr/local/share/tessdata/ 目录下是否有以该语言命名的traineddata就可以了,如果有eng.traineddata,那说名tesseract可以识别英文了,同样,chi_sim.traineddata对应于简体中文。

如果某种语言没有安装,安装方法也很简单,首先到官方下载列表里面找到并下载对应语言包。比如我要识别英文,而我安装的tesseract-ocr是3.02版本的,就下载对应版本的英文语言包 tesseract-ocr-3.02.eng.tar.gz。下载后解压,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值