[筆記]Win10下編譯Tesseract-OCR 4.0


Tesseract-OCR 4.0使用了LSTM網絡,准確性相比3.x版本提升不少。
官網提供的安裝包會提供一堆DLL,而我需要的是一個靜態鏈接的exe文件,所以只能重新編譯。

編譯環境

  • Windows 10 專業版

  • Visual Studio 2017

需要選擇開發桌面程序的相關組件,並選擇英文。

  • cmake

我的cmake版本是3.13.2,貌似沒它也行。

  • cppan

cppan官網下載CPPAN客戶端,編譯動態庫時使用。

  • vckpg

下載vcpkg源碼,使用管理員權限打開PowerShell,編譯之。

> git clone https://github.com/Microsoft/vcpkg.git
> cd vcpkg

PS> .\bootstrap-vcpkg.bat
PS> .\vcpkg integrate install

編譯Tesseract-OCR 4.0

PS> .\vcpkg install tesseract:x86-windows-static

如果需要64位的exe,將上面的x86換成x64即可。
如果發現某個組件下載失敗,可以自行下載后,將文件放在vcpkg\downloads\目錄下,然后重新運行上面的命令。
最后成功時,會得到exe文件在vcpkg\packages\tesseract_x86-windows-static\tools\tesseract\tesseract.exe

驗證exe文件

PS> .\tesseract.exe --version
tesseract 4.0.0
 leptonica-1.76.0 (Jan  5 2019, 23:01:20) [MSC v.1916 LIB Release x86]
  libgif 5.1.4 : libjpeg 6b (libjpeg-turbo 1.5.3) : libpng 1.6.35 : libtiff 4.0.10 : zlib 1.2.11
 Found AVX
 Found SSE

使用Tesseract-OCR 4.0識別圖片文件

將tesseract.exe拷貝到某個目錄,然后在該目錄之下建立tessdata目錄,下載所需的語言庫文件放在里面。
要識別簡體中文,需要下載的是chi_sim_best.traineddatachi_sim_vert.traineddata文件。

舉例要識別a.jpg文件,命令行如下:

> tesseract.exe a.jpg output -l chi_sim_best --oem 1

識別結果在output.txt文件內。

OpenMP

安裝Visual C++ Redistributable 2015,就有了vcomp140.dll,以支持OpenMP。

編譯動態庫

如果想得到動態庫,使用下面的命令:

cppan --build pvt.cppan.demo.google.tesseract.tesseract-master

中間出現錯誤,將equationdetect.cpp使用帶BOM的UTF-8編碼另存一下就解決了,最終生成的動態庫文件如下:

pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll
pvt.cppan.demo.google.tesseract.libtesseract-master.dll
pvt.cppan.demo.google.tesseract.tesseract-master.exe
pvt.cppan.demo.jpeg-9.2.0.dll
pvt.cppan.demo.madler.zlib-1.2.11.dll
pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll
pvt.cppan.demo.png-1.6.35.dll
pvt.cppan.demo.tiff-4.0.9.dll
pvt.cppan.demo.webp-0.6.1.dll
pvt.cppan.demo.xz_utils.lzma-5.2.4.dll

Tesseract訓練工具

cppan官網下載CPPAN客戶端,然后執行

cppan --build pvt.cppan.demo.google.tesseract-master

最后也沒成功,部分報錯如下:

Performing Test HAVE_DECL_DECL - Failed
...
error C2065: 'decl': undeclared identifier

不清楚原因是什么。


[更新於 2019-11-05]

上述流程可以應用於生成最新版的Tesseract,目前編譯成功了 4.1.0

  • 可以使用VS2019 Commnunity版
  • 安裝時需要選擇使用C++的桌面開發,默認配置即可
  • 注意要包含Windows 10 SDK
  • 語言包要勾選English


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM