tesseract-ocrのビルドに苦労したので記載
- (2021/04/05追記)
自分向けのメモとして残しただけの記事にいくつかのWebページからリンクされておりました。ありがとうございます。
やはりビルドに苦戦していた人が・・・こんな雑な記事で申し訳ない。
CPPANが終了し、SoftwareNetworkなるものに変わっていたりするので以下を参考にvcpkgでインストールすると良いと思います。
再び環境を作成したので、vcpkgのみで構築してみました。
使うもの(バージョン)
- Visual Studio Community(2017)
- CMake(3.11.4)
- CPPAN
- tesseract-ocr(3.05.01)
- OpenCV(3.4.1)
CMakeインストール
Windowsでよく使われるであろうMakeツール。
CMakeのダウンロードから環境にあったものをインストール。 (今回は「Windows win64-x64 Installer」)
インストーラで聞かれるけど環境変数のPATHはお好みで
CPPANインストール
必要なライブラリをまとめてダウンロード&ビルドするツール?
情報が少なくてよくわからん。
CPPANのインデックスからcppan-master-Windows-client.zipをダウンロード&解凍すれば良い。
こちらも環境変数のPATHを・・・
tesseract-ocrビルド
ダウンロード
ビルド手順(tesseractの展開先で実行)
- cppan.ymlの以下コメントを外し、インストールされているVisual Studioに合わせて変更。
cppan.yml(変更前)
local_settings:
#use_shared_libs: true
#generator: Visual Studio 14 2015 Win64
cppan.yml
local_settings:
#use_shared_libs: true
generator: Visual Studio 15 2017 Win64
- 以下コマンドをコマンドプロンプトで実行(管理者)
mkdir build && cd build
cppan ..
cmake .. -G "Visual Studio 15 2017 Win64"
cppan --generate .
- コントロールパネルの地域「管理->システムロケールの変更」から「英語(英国)」を選択して再起動(日本語だとビルドが失敗する)
- Visual Studioでbuildフォルダに作成されたtesseract.slnを開いてビルド(Debug、Release)
- ビルドが完了したら日本語に戻していい
インストール
- buildフォルダにあるcmake_install.cmakeで以下のインストール設定を変更(「C:/Program Files」に権限なくて失敗する)
cmake_install.cmake
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "C:/tesseract")
- Visual Studioでbuildフォルダのtesseract.slnを開いてINSTALLプロジェクトのみビルド(Debug、Release)
OpenCVビルド
ダウンロード
ビルド手順
- CMakeのGUIツールを起動
- source codeに解凍したopencvフォルダを指定
- build the binariesにVisual Studioのソリューション作成先フォルダを指定
- Configureを実行
- OPENCV_EXTRA_MODULES_PATHに解凍したopenCV_contribのmodulesフォルダを指定
- 再度Configureを実行
- contribモジュールが読み込まれるのでBUILD_***となっているモジュールをBUILD_text以外チェックを外す(今回はOCRのみ使用)
- インストールしたtesseractの設定を以下のように指定する(C:/tesseractにインストールしたとする)
Lept_LIBRARY=C:/tesseract/lib/pvt.cppan.demo.danbloomberg.leptonica-1.74.4.lib
Tesseract_INCLUDE_DIR=C:/tesseract/include
Tesseract_LIBRARY=C:/tesseract/lib/tesseract305.lib
-
Configure実行後、Generateでソリューションファイルを作成
-
Visual Studioでbuildフォルダに作成されたtesseract.slnを開いてReleaseビルド(Debugでビルドする場合はtesseract305d.libを指定)
インストール
- buildフォルダにあるcmake_install.cmakeで以下のインストール設定を変更(「C:/Program Files」に権限なくて失敗する)
cmake_install.cmake
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "C:/opencv")
- Visual Studioでbuildフォルダのtesseract.slnを開いてINSTALLプロジェクトのみReleaseビルド(Debugもしているならそちらも実行)
使うための設定
Visual Studioで使用するための設定(プロジェクトのプロパティ)
- 構成プロパティ > デバッグ > 環境に「PATH=C:\opencv\x64\vc15\bin;C:\tesseract\bin;%PATH%」
- 構成プロパティ > VC++ディレクトリ > インクルードディレクトリに「C:\opencv\include」
- 構成プロパティ > VC++ディレクトリ > ライブラリディレクトリに「C:\opencv\x64\vc15\lib」
- 構成プロパティ > リンカー > 入力 > 追加の依存ファイルにC:\opencv\x64\vc15\lib内にあるlibファイルをすべて指定