Tesseract4编译
很久以前试了下 Tesseract3.x,识别中文的话那效果惨不忍睹,辣眼睛,直接放弃。
最近听说Tesseract4.x之后加入了机器学习,神经网络学,识别率及运行效率较之前的3.x版本有质的提高,而且可以直接识别一般的验证码。想想就很激动,于是开启了Tesseract4学习之旅。
万万没想到,Tesseract4.0编译过程很曲折,踩了很多坑。过程中参考了以下两篇博客:
https://blog.csdn.net/naidoudou/article/details/70225849
http://www.cnblogs.com/hupeng1234/p/8545371.html
现记录下过程,如下:
整个环境为:Tesseract-master4.0 + VS2015 + Win10, 最后编译的是x86的
*********************************************************************************************************************
第一步:工具、源码准备
1.cppan下载,链接为https://cppan.org/client/
编译过程中相应的支持库是由cppan下载的,我们需要下载cppan并设置其环境变量
解压后 在系统变量里面选择PATH变量,将cppan.exe所在的文件路径作为环境变量的值
2.cmake 下载,链接为https://cmake.org/download/,我用的cmake3.8.0_x86
为cmake设置环境变量,解压后目录下的bin文件夹的目录地址加载至系统环境变量PATH中,
与cppan设置环境变量的方法一致。
3.Tesseract源码下载,链接为https://github.com/tesseract-ocr/tesseract,我用的tesseract-master
解压后目录如下:
注意两个文件:
cppan.yml : cppan运行是根据这个文件来执行的
CMakeLists.txt: cmake嘛
另外,VS版本最好是VS2015以上版本。我之前一直用VS2013,在VS2013编译的时候有20000多错误,太让人崩溃了,直接放弃。网上找错误原因的时候,有网友说编译Tesseract4.0需要VS2015以上,本着探索精神,在Tesseract源码文件夹中的cppan.yml文件中似乎找到佐证(英文有点渣,也不知道是否这个意思,如有不对,欢迎指正),如图:
github上也有一说:
***************************************************************************************************************
第二步开干了:(**********注意网络要好,适当需要fan qiang*************)
1.cmd,以 *****管理员身份**** 进入命令行终端(重要事情说三遍:管理员身份!管理员身份!管理员身份!)
2.运行cppan
进入 解压后的Tesseract文件夹,可以发现有个cppan.yml,
直接敲入命令:cppan (如果出现 “no spec file”,就是目录不对,没有找到cppan.yml)
这是在下载相关的的依赖,下载时间可能很长,需要耐心等待。我这里用了两个小时
一大堆 downloading … //下载
unpacking … //解压
cleaning … //不知道在作甚???
完成后,”C:/users/用户名/”目录下有个文件夹”.cppan”(下载文件到C盘,这就是为什么要管理员身份的原因),
里面是一些源文件、库、可执行程序
“../Tesseract/”下也有个文件夹”.cppan”,里面是“cppan.h”,“checks.yml”.”CMakeLists.txt”等4个文件
3.cmake编译
先在Tesseract文件夹下建一个目录”build”,并进入”build”目录
终端敲入命令:cmake .. (注意后面两个小点点”..”不要掉)
(如果要编译x64版本,命令:cmake .. -G “Visual Studio 14 2015 Win64“)
中间会出现很多”not found”,以为又要凉了,其实没关系的
只要最后出现”Configure done” “Generate done”就是成功了
在刚才的“build”目录下就有了“tesseract.sln”
***************************************************************************************************************
第三步:VS2015编译工程(***以管理员身份运行VS***,重要事情说三遍:管理员身份!管理员身份!管理员身份!)
1.先编译“cppan-d-b-d”项目
打开sln,解决方案点开“CPPAN TARGETS”->”cppan-d-b-d”,右键->”生成”。
2.编译所有项目
“ALL_BUILD”右键->”生成“
【注意1】:1.2步顺序不能乱,好像是其它的工程要依赖“cppan-d-b-d”项目生成的库
【注意2】:会出现900多个错误,不要慌。错误有两点:
a.你没有“以管理员身份”运行VS.
b.字符编码的问题。只需要双击对应的错误,跳转到对应的文件,
然后点击左上角菜单 “文件选项” 下的”高级保存选项”, 选择“GB2312”.保存后再“生成”即可。
这个过程有点技巧(菜鸡参考):不需要每个错误页都去转编码,从上往下开始,一个文件转换编码后重新生成,
错误少很多 ,接着如此反复操作十次左右就全部解决了
3.编译完成后,在“解决方案资源管理器”中点选“解决方案 tesseract”–>“CMakeTargets”–>“INSTALL”,单击右键,
在出现的菜单中选择“生成”。Debug和release模式下需要分别执行上述步骤。
然后在“C:/Programe Files(x86)/tesseract/”目录下生成了4个目录”include”,”lib”,”bin”,”cmake”
(生成文件到C盘,这就是为什么又要管理员身份的原因…)
到此,编译就算大功告成了 :)
</div>