开源OCR探索之旅(一):Tesseract4.0编译

    很久以前试了下 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文件中似乎找到佐证(英文有点渣,也不知道是否这个意思,如有不对,欢迎指正),如图:

***************************************************************************************************************

第二步开干了:(**********注意网络要好,适当需要fan qiang*************)

1.cmd,以 *****管理员身份**** 进入命令行终端(重要事情说三遍:管理员身份!管理员身份!管理员身份!)

2.运行cppan

   进入 解压后的Tesseract文件夹,可以发现有个cppan.yml,

   直接敲入命令:cppan   (如果出现 “no spec file”,就是目录不对,没有找到cppan.yml)

   这是在下载相关的的依赖,下载时间可能很长,需要耐心等待。我这里用了两个小时

(如果要编译x64版本,命令:cmake .. -G "Visual Studio 14 2015“)

   一大堆 downloading ...              //下载

               unpacking  ...                   //解压

                cleaning ...       //不知道在作甚???

    完成后,"C:/users/用户名/"目录下有个文件夹".cppan"(下载文件到C盘,这就是为什么要管理员身份的原因),

    里面是一些源文件、库、可执行程序

    “../Tesseract/”下也有个文件夹".cppan",里面是“cppan.h”,“checks.yml”."CMakeLists.txt"等4个文件

3.cmake编译

   先在Tesseract文件夹下建一个目录"build",并进入"build"目录

   终端敲入命令:cmake ..   (注意后面两个小点点".."不要掉)

   中间会出现很多"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盘,这就是为什么又要管理员身份的原因...)

照以上步骤,Release(Debug)再编译一遍。再编译之前记得先将之前生成在C盘的lib 和 dll保存起来,不然二次编译会覆盖。

到此,编译就算大功告成了   :)
 

猜你喜欢

转载自blog.csdn.net/andylanzhiyong/article/details/81746904