Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习

Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习

    • 背景
    • Visual Studio 2019安装
    • OpenCV3安装、配置
    • Tesseract v5.0.0安装
    • 在Windows PowerShell中下指令识别字符
    • 训练字符库
      • 使用 jTessBoxEditor训练
    • 安装tesseract-master
    • 运行cppan.exe
    • 使用CMake编译Tesseract
      • 建构完成,文件有缺失,无法运行。
      • 更换次新的release v4.1.1。
      • 使用Visual Studio 2019打开Tesseract工程文件
    • 编译Leptonica
      • 使用Visual Studio 2019打开Leptonica工程文件
      • 加入第三方图像库
    • 编译tesseract v4.1.1
      • 使用Visual Studio 2019打开Tesseract工程文件
        • 在Visual Studio 2017中的尝试
          • 其它情况
    • 在Visual Studio 2019中配置Tesseract
      • 待更新...

背景

做一个字符检测比对的小项目,需要借助Tesseract的OCR进行开发。

Visual Studio 2019安装

详见另一篇:https://blog.csdn.net/weixin_46293955/article/details/105961344

OpenCV3安装、配置

待更新…

Tesseract v5.0.0安装

tesseract v5.0.0 64位安装包下载链接: https://download.csdn.net/download/weixin_46293955/12531753

双击安装程序
点击Next
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第1张图片
点击I Agree
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第2张图片
选择电脑用户,点击Next
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第3张图片
勾选组件
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第4张图片
选择语言包:符号、数字、简体中文、简体中文(复杂)、繁体中文、繁体中文(复杂)、英文(复杂)。
未选择的情况下自带英文、数字、符号。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第5张图片
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第6张图片
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第7张图片
自定义安装路径,这里安装到D盘Tesseract-OCR文件夹中
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第8张图片
点击Install按钮安装
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第9张图片
报错是由于语言包无法下载,点击确定跳过
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第10张图片
等待安装完成
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第11张图片
点击Finish安装完成
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第12张图片
加入系统环境变量Path
在这里插入图片描述
新建环境变量TESSDATA_PREFIX,路径指向tessdata文件夹
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第13张图片
安装完后文件如下图:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第14张图片
查看是否安装成功,在Windows PowerShell中下指令tesseract,出现如下回传,则表示安装成功。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第15张图片
查看支持的语言,在Windows PowerShell中下指令tesseract --list-langs,此处语言放在tessdata文件夹中。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第16张图片
语言包下载链接: 待更新

在Windows PowerShell中下指令识别字符

放置一张图片至D盘,命名为ROI.jpg(图片为在百度随机截取,侵删)
在这里插入图片描述
在Windows PowerShell中下指令tesseract D:\ROI.jpg D:\1
回传如下,可以看到识别为空。原因是文字太小或者太模糊(图截得很小)
在这里插入图片描述
使用画图工具放大后,回传如下
在这里插入图片描述
依然很模糊,不过可以识别,在D盘下会生成一个1.txt文件,打开后可以看到,已识别到文字。
在这里插入图片描述
指定识别类型,在Windows PowerShell中下指令tesseract D:\ROI.jpg D:\1 -1eng
指定输出文件类型,如pdf格式,在Windows PowerShell中下指令tesseract D:\ROI.jpg D:\1 -1eng pdf

训练字符库

如果需要提高识别率,需要自己训练字符库。

使用 jTessBoxEditor训练

需要配置JAVA开发环境,过程略。

训练方法: 待更新…

安装tesseract-master

若要在Visual Studio 2019下使用,则需要用CMake建构,用到Tesseract的tesseract-master版。
Tesseract v5.0.0 tesseract-master官网下载链接:https://github.com/tesseract-ocr/tesseract/
Tesseract v5.0.0 tesseract-master版下载: https://download.csdn.net/download/weixin_46293955/12533636
解压后文件如下图:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第17张图片

运行cppan.exe

cppan.exe for Windows下载链接: https://download.csdn.net/download/weixin_46293955/12522811
cppan.exe for Windows官网下载链接:https://cppan.org/client/

将cppan.exe放入tesseract安装的根目录中。

将cppan.exe所在的路径添加到系统变量中。

在Windows PowerShell下执行:.\cppan.exe命令,出现No spec file found报错,如下图。
在这里插入图片描述
原因:最新的tesseract5.0.0没有cppan.yml文件
在这里插入图片描述
解决方法:下载安装低版本的tesseract4.1,将其中的cppan.yml文件拷贝出来。再次运行,成功安装,如下图。过程中可能因为网络问题报错,多试几次(需要一定的时间,请耐心等待)
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第18张图片
低版本的cppan.yml单独下载链接: https://download.csdn.net/download/weixin_46293955/12532402
安装路径为C盘–用户–用户名–.cppan文件夹–storage文件夹,如果用户名中含有空格,则无法执行成功,需要更改用户名,或者在其它路径新建storage文件夹,并编辑修改.cppan文件夹中cppan.yml文件中的指向路径。

使用CMake编译Tesseract

CMake下载链接: 官网https://cmake.org/download/
CMake3.18 64位for Windows安装版&免安装版下载链接: https://download.csdn.net/download/weixin_46293955/12533155
CMake3.13 64位for Windows安装版下载链接: https://download.csdn.net/download/weixin_46293955/12532529

步骤待更新…
为cmake设置环境变量,解压后目录下的bin目录地址加至系统环境变量PATH中,与cppan设置环境变量的方法一致。

使用高版本cmake构建可能会报错,使用低版本cmake的没有VS2019。

在Tesseract目录下新建build文件夹,将来源路径及建构路径填入,如下图:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第19张图片
点击Tool–Configure,进行Configure
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第20张图片
选择合适版本的CMake,选择IDE。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第21张图片
点击Finish,若报错Error in configuration process,project files may be invlid,如下,原因是缺少CMakeLists.txt文件。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第22张图片

解决方法:1.将.cppan文件夹中的内容copy出来至Tesseract目录下。
2.使用tesseract-master,里面有CMakeLists.txt文件,重新建构即可。
3.更换低版本release,tesseract release v4.1.1
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第23张图片
手动修改CMakeLists.txt文件,过程待更新…

建构需要较长时间,请耐心等待。

在D盘下新建install文件夹,更改路径。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第24张图片
完成后再次点击Configure,然后点击Generate按钮,即完成。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第25张图片
建构完成,如下图:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第26张图片

建构完成,文件有缺失,无法运行。

更换次新的release v4.1.1。

官网下载链接:https://github.com/tesseract-ocr/tesseract/releases
tesseract release v4.1.1下载链接: 待更新…
在这里插入图片描述
操作同tesseract v5.0.0CMake使用cmake v3.17.3

使用Visual Studio 2019打开Tesseract工程文件

编译过程略,无法编译成功。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第27张图片

编译Leptonica

查阅资料发现,在VS2019中使用tesseract需要Leptonica的支持,leptonica是一个开源的面向教学的软件,通常被用来作为图像处理和图像分析的一个底层库支持。

leptonica官网下载地址:http://www.leptonica.org/download.html

解压到路径D:\temp\leptonica
在temp文件夹中新建leptonicanew文件夹,使用CMake建构leptonica,如下:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第28张图片
同样2次点击Configure按钮,直到没有报错。并更改INSTALL_PREFIX路径。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第29张图片
依次点击Configure按钮、Generate按钮,完成建构。
在这里插入图片描述

使用Visual Studio 2019打开Leptonica工程文件

文件路径:D:\temp\leptonicanew\leptonica.sln
更改配置属性:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第30张图片
选择release,配置中,勾选INSTALL
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第31张图片
release模式下生成解决方案。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第32张图片
生成成功
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第33张图片
文件在此路径D:\leptonica
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第34张图片

加入第三方图像库

下载链接:待更新…

编译tesseract v4.1.1

重新编译,tesseract v4.1.1解压路径D:\temp\Tesseract。
在temp文件夹下新建Tesseractnew文件夹。
使用CMake建构。
报错如下:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第35张图片
原因是找不到leptonica路径。
更改路径至之前编译好的cmake路径:Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第36张图片
若反复报错,可取消训练工具此勾再尝试。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第37张图片
使用CMake3.17多次Configure依然报错找不到LeptonicaConfig.cmake文件,实际文件夹中有:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第38张图片

更换CMake3.16.8,依然编译不通过,排除CMake版本问题。
删除C盘-用户下的.cppan文件夹,重新执行cppan.exe,完成如下(方法同上):
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第39张图片

再次使用CMake建构,报错消失。
多次Configure直至红色报错消失,会提示:CPPAN过旧,请考虑切换到软件构建。不用理会。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第40张图片
点击Generate,生成工程文件。
在这里插入图片描述

使用Visual Studio 2019打开Tesseract工程文件

需要使用管理员身份打开,具体参考:https://blog.csdn.net/lien0906/article/details/47300881

由于踩了坑,多次无法编译成功,换了Visual Studio 2017尝试,后换回Visual Studio 2019编译成功,步骤同如下尝试。

在Visual Studio 2017中的尝试

cppan.exe需要重新安装、需要用CMake重新建构。
建构时注意选择32/64位:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第41张图片
使用管理员打开工程文件
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第42张图片同样进行如下设置:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第43张图片
release模式下,生成解决方案
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第44张图片
可以看到有大量报错,大多都是cppan-d-b-d 字符编码乱码导致,单独编译cppan-d-b-d :
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第45张图片
双击错误,打开文件,点击左上角菜单 “文件选项" 下的"高级保存选项", 选择“GB2312”.保存后再“生成"即可。
在这里插入图片描述

如果找不到“高级保存选项”,点击工具–自定义,添加命令。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第46张图片
选择命令–文件–添加命令
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第47张图片
选择文件–高级保存选项,然后点击确定,即可添加成功。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第48张图片
改成UTF-8 有签名。
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第49张图片
重新生成,可解决字符乱码错误。

若出现如下endianness.h头文件报错找不到:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第50张图片
找到该目录下,可以看到endianness.h被编译成endianness.h.in
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第51张图片
解决方法一:把endianness.h.in的.in去掉,成为一个.h文件,打开:

#if !defined (L_BIG_ENDIAN) && !defined (L_LITTLE_ENDIAN)
# if @APPLE_UNIVERSAL_BUILD@
#  ifdef __BIG_ENDIAN__
#   define L_BIG_ENDIAN
#  else
#   define L_LITTLE_ENDIAN
#  endif
# else
#  define @ENDIANNESS@
# endif
#endif

要将上述代码改成:

#if !defined (L_BIG_ENDIAN) && !defined (L_LITTLE_ENDIAN)
# if defined (__APPLE_CC__)//@APPLE_UNIVERSAL_BUILD@
#  ifdef __BIG_ENDIAN__
#   define L_BIG_ENDIAN
#  else
#   define L_LITTLE_ENDIAN
#  endif
# else
#  define L_LITTLE_ENDIAN//@ENDIANNESS@
# endif
#endif

保存后,重新编译即可。
解决方法二:从建构好的leptonicanew文件夹中找到该头文件,copy至所需目录下即可:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第52张图片
报错找不到allheaders.h头文件
在这里插入图片描述
allheaders.h是leptonica的头文件,路径如下:
Tesseract5.0.0+OpenCV3+VS2019安装、字符识别学习_第53张图片
解决方法:分别右击libtesseract和tesseract,VC++目录——包含目录,添加D:\leptonica\include\leptonica

其它情况

如果遇到其它情况,可以尝试用vcpkg编译。

在Visual Studio 2019中配置Tesseract

待更新…

你可能感兴趣的:(Tesseract-OCR,机器学习,windows,cmake)