您的位置:首页 > 运维架构 > Linux

linux系统如何使用tess4j(java)进行ocr图片文字识别

2017-05-25 17:20 2406 查看
最近研究百度指数的采集,需要用到ocr,在网上找了很多材料,发现tesseract比较容易上手,而且可以自己训练,最重要的是,可以通过tess4j实现Java的JNA调用,如此一来,不但性能有保障,而且还可以跨平台。于是就在我的Windows机器上面创建了工程,参考着百度指数采集这篇博文的思路,写了代码,自己训练了数据样本,实现了百度指数的采集,感觉很开心。于是就想往Linux上面部署试试。结果遇到了问题。

首先,tess4j默认带有win32-x86-64 和win32-86 两个文件夹分别存放着64位和32位动态链接库,但是唯独没有Linux的动态链接库。于是我习惯性地从网上找相关材料,找了很久,只找到tess4j linux需要的so文件
- 下载频道 - CSDN.NET,以及


Linux——完全安装Tesseract环境
- Clare_0_0专栏 - 博客频道 - ... 但是这并不能解决我的问题,我尝试了so文件(放在自己新建的linux-x86-64目录下),










也安装了Tesseract环境,却出现了glibc版本不兼容,缺少libjpg.so这样的错误。我尝试一一解决这些问题(包括安装各种依赖包、安装和升级gcc、glibc),但是坑越挖越大,最后,发现这篇博文 CENTOS
下 编译安装 tesseract-ocr 3.0.4 识别文字  
我按照博文的步骤安装了tesseract并进行了测试,结果成功实现了识别。这说明tesseract在我这个版本的Linux环境(centos 6.3)下没有兼容性问题。那么我的工程中对于依赖包的引用就有问题啦。根据上面的实验、分析,结合配置过程中的错误提示,最终总结出了Linux下支持tess4j的完整步骤(具体不同的系统操作上会有差别,但是原理一致):

1、安装GCC开发环境,从而支持后续程序的编译安装:
yum groupinstall "Development Tools"


2、安装tesseract所需的依赖库
yum -y install libjpeg* libpng* freetype* gd* giflib* libtiff* zlib*


3、安装tesseract和leptonica
参考:CENTOS
下 编译安装 tesseract-ocr 3.0.4 识别文字


注意: 安装完成后,将/usr/local/lib/ 目录下的so文件拷贝到 /usr/lib64/
cp /usr/local/lib/*.so.* /usr/lib64/


4、测试和验证
通过上述3步,就完成了tesseract所需的环境配置,你的tess4j相关的应用,就可以在本Linux系统上面溜溜的运行了。

百度指数的原始图片数据,百度对数据做了打乱和混淆处理:



百度指数经过拼接后还原的图片数据(其中图片文件名即为tess4j识别的结果):



完美!

参考: http://www.jianshu.com/p/361c97b4428a

解决/usr/lib/libstdc++.so.6:
version `GLIBCXX_3.4.14' not found问题

version
`GLIBCXX_3.4.21' not found 解决办法
CentOS6.5系统"libc.so.6:
version 'GLIBC_2.15' not found"解决方法
CENTOS
下 编译安装 tesseract-ocr 3.0.4 识别文字 

淘宝爬虫 百度指数批量抓取
整体趋势 PC趋势 移动趋势 准确值

非常感谢上述博主的无私分享,也希望转载本文时注明出处!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息