首页 > 编程语言 >基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略

时间:2022-12-25 12:00:39浏览次数:109  
标签:OpenVINO tesseract lib Tesseract5 编译 源码 cppan 添加 tess

一,记录我目前在win10 X64和VS2017的环境下成功编译Tesseract5.0的方式;



二,记录在VS2017 C++工程中调用Tesseract4.0的方法;

三,记录编译和调用Tesseract4.0过程中踩到的坑和相应的解决方案或看法。

最终结果:

 

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量

识别为:

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_02

=======================================================================================================================

一、资料准备



 

1 ​​下载​​最新的CPPAN版本。解压缩后,将cppan.exe所在的路径添加到系统变量中; 

 

CPPAN是跨平台的C / C++ 依赖管理器。它建立在 CMake 的基础之上,并具有构建系统的能力。CPPAN 支持快速的脚本式编码和原型制作,以及处理大型项目。查找,共享和重用库,发布您的项目。把时间花在你的代码上,而不是管理依赖关系。CPPAN为您降低包时间到几秒钟!它支持简单的交叉编译,继承和推送你自己的设置,标志到每个依赖。

 

链接为 ​​https://cppan.org/client/​

    编译过程中相应的支持库是由cppan下载的,我们需要下载cppan并设置其环境变量

   解压后 在系统变量里面选择PATH变量,将cppan.exe所在的文件路径作为环境变量的值  ,或者也可以将cppan.exe放置在path包含的目录下

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_03

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_04

2 ​​下载​​​cmake​​https://cmake.org/download/​​,本文用的是cmake-3.10.1-win64-x64,将cmake.exe所在的路径添加到系统变量中;

   为cmake设置环境变量,解压后目录下的bin文件夹的目录地址加载至系统环境变量PATH中,

   与cppan设置环境变量的方法一致。  

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_05

3 ​​下载​​​Tesseract源码​​https://github.com/tesseract-ocr/tesseract​​,,最新版已经到5.0

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_06

解压后放英文目录

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_07

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

 二、tesseract编译

1.cmd,以 管理员身份进入命令行终端

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_08

2.运行cppan

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

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

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_09

   下载相关依赖

 

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_10

3.cmake编译

 

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_11

 

 



 


 

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_12

 



 

  使用GUI进行2次configure,1次generate,一路回车即可。




基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_13


4  生成tesseract.sln,打开并编译。

进入项目,一般选择Install和all_build进行批生成最为稳妥,在我们这个项目中,生成install是足够

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_14

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_15

编译的过程中,可能出现这样的错误

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_16

 

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_17

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_18

出现这个错误的原因是因为字符集不相符,首先参考

​https://jingyan.baidu.com/article/9faa7231df5453473c28cbd9.html​​ ,为vs2017恢复“高级保存”

而后,一次打开出现问题的文件,使用“高级保存选项”将字符进行转码为GB码。

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_19

需要转码的文件主要集中在glib模块


 


 

5、最终在c盘下会出现tesseract目录,并得到这样结果:

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_20

三、在VS2017 C++工程中调用Tesseract4.0

1. 找到所有依赖lib文件并整理

编译tesseract.sln并安装之后,在C:/Program Files/tesseract/lib路径下仅有tesseract500.lib和tesseract500d.lib,但在工程中调用Tesseract4.0时,仅有这两个文件是不够的,为了方便调用,我们要找到其他的lib文件,它们在这里:C:\Users\username\.cppan\storage\lib,包含重要的pvt.cppan.demo.danbloomberg.leptonica-1.76.0.lib。

需要按照规则添加进去。

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_21

2.找到所有依赖dll文件并整理

在C:/Program Files/tesseract/bin路径下仅有tesseract500.dll和tesseract500d.dll,

其他的dll文件在 C:\Program Files\tesseract\bin 下,全部添加到PATH中

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_环境变量_22

3. 找到leptonica所需要的头文件并整理

有两个头文件是编译的时候需要的,这里也必须添加到include中去

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_23

如果你不添加,会自动报错,也能够帮助你找到这两个目录。

4. 新建VS2017 C++工程,下载​​https://github.com/cppan/tesseract_example/blob/master/with_cppan/main.cpp​​并添加到该工程中。

4.1 项目属性—>配置属性–>C/C++–>常规,在“附加包含目录”中添加:

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_24

4.2 项目属性–>链接器–>常规,在”附加库目录”中添加

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_github_25

4.3 项目属性–>链接器–>输入,在“附加依赖项”中添加

基于OpenVINO的端到端DL网络-Tesseract5+VS2017+win10源码编译攻略_系统变量_26

4.4 在工程目录下新建文件夹tessdata,到tesseract下载相应的语言文件,copy到tessdata文件目录下。

 

5. 完成上述动作后,编译代码


#
include "pch.h"

# include <iostream
>

# include <memory
>

# include <allheaders.h
>
// leptonica main header for image io

# include <baseapi.h
>
// tesseract main header

int main( int argc, char *argv[])

{
if (argc ==
1)

return 1;

tesseract :
:TessBaseAPI tess;

if (tess.Init( "E:/OpenCV_DNN数据集/tessdata",
"eng"))

{
std :
:cout
<<
"OCRTesseract: Could not initialize tesseract."
<< std
:
:endl;

return 1;

}
// setup

tess.SetPageSegMode(tesseract :
:PageSegMode
:
:PSM_AUTO);

tess.SetVariable( "save_best_choices",
"T");

// read image

auto pixs = pixRead(argv[
1]);

if ( !pixs)

{
std :
:cout
<<
"Cannot open input file: "
<< argv[
1]
<< std
:
:endl;

return 1;

}
// recognize

tess.SetImage(pixs);
tess.Recognize( 0);

// get result and delete[] returned char* string

std :
:cout
<< std
:
:unique_ptr
<
char[] >(tess.GetUTF8Text()).get()
<< std
:
:endl;

// cleanup

tess.Clear();
pixDestroy( &pixs);

return 0;

}

 实现题图结果。


标签:OpenVINO,tesseract,lib,Tesseract5,编译,源码,cppan,添加,tess
From: https://blog.51cto.com/jsxyhelu2017/5968082

相关文章