Tesseract4のコンパイル・インストール手順[Ubuntu]

tesseractがデフォルトで準備しているモデルを再学習させるためには、
githubから落としてきたリポジトリを決まった手順にしたがって、
コンパイルしインストールまで実行する必要がある。

そこでこの記事ではtesseractのgithubからのクローンから
コンパイル、インストールするところまでの手順を紹介する。

この記事に書かれていることを全て実施すれば、
tesseractで再学習をするための準備は完了する。

なお以下の公式サイトを参考に記述している。
英語が得意という人はこのサイトを見てください。
https://github.com/tesseract-ocr/tesseract/wiki/Compiling

コンパイルに必要なパッケージをインストール

sudo apt-get install g++ # or clang++ (presumably)
sudo apt-get install autoconf automake libtool
sudo apt-get install pkg-config
sudo apt-get install libpng-dev
sudo apt-get install libjpeg8-dev
sudo apt-get install libtiff5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libicu-dev
sudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev

leptonicaのインストール

tesseractは学習の際、内部でleptonicaというパッケージを使っている。

そのためtesseractのコンパイル時にこのleptonicaが無いと、
エラーが発生してしまう。

そのためtesseractをインストールする前にleptonicaをインストールする。

$ git clone https://github.com/DanBloomberg/leptonica.git
$ cd leptonica
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

tesseractリポジトリのクローン

tesseractのリポジトリをgithubからcloneしてくる。

git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git

“–depth 1″というのは最小限のデータだけデータを取ってくるというオプション。
持ってくる浅さを1にしている。
参考ページ:git リポジトリの最新の履歴だけを取得する shallow clone

tesseractのコンパイルとインストール

参考ページ
https://github.com/tesseract-ocr/tesseract/blob/master/INSTALL.GIT.md

$ cd tesseract
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig
$ make training
$ sudo make training-install

以上でtesseractのインストールは完了。

上記のコマンド実行時、何かしらエラーらしき表示が出ることがある。
しかし、実行結果の出力の最終行の方でエラーになっていなければ、
必要な処理は完了していてtesseractの再学習が出来る状態になる。

おまけ

おまけとしてViewerという、
画像認識の途中経過を画像で確認出来るツールのインストール方法も載せておく。

このインストールをしておかないとtesseractの公式ページにあるTessTutorialの
lstmtraingのところでエラーが発生してしまうのでそのチュートリアルをやる人は必須。

# javaファイルをコンパイルするために必要なパッケージをインストール
$ sudo apt install openjdk-11-jre
# 正常にインストールできたか確認
$ javac --version
$ cd tesseract
$ make ScrollView.jar
# path/to/tesseract/javaの箇所はtesseractをクローンしてできたディレクトリの
# 一階層下にあるjavaというディレクトリを指定する。
$ export SCROLLVIEW_PATH="path/to/tesseract/java"

参考にした記事