コンテンツにスキップ。

Git から Tesseract をインストールする

目次

これらは、Git リポジトリから Tesseract をインストールするための手順です。予期せぬ問題に直面する覚悟が必要です。C++17 を十分にサポートする C++ コンパイラが、ソースから Tesseract をビルドするために必要です。

Autoconf ツールを使ったインストール

これを行うには、automake、libtool、leptonica、make、pkg-config がインストールされている必要があります。さらに、Git と C++ コンパイラが必要です。

Debian または Ubuntu では、必要なすべてのパッケージを次のようにインストールできる可能性があります。

apt-get install automake ca-certificates g++ git libtool libleptonica-dev make pkg-config

オプションの man ページは asciidoc でビルドされます

apt-get install --no-install-recommends asciidoc docbook-xsl xsltproc

Tesseract トレーニングツールもビルドする場合は、Pango も必要になります

apt-get install libpango1.0-dev

その後、master ブランチをコンピュータにクローンするには、次のようにします。

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

または、コミット履歴を最新のコミットのみに切り捨てた shallow クローンを作成するには、次のようにします。

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

または、異なるブランチ/バージョンをクローンするには、次のようにします。

git clone https://github.com/tesseract-ocr/tesseract.git --branch <branchName> --single-branch

注意: GitHub の最新バージョンのビルドで問題が発生する場合があります。その場合は、ここ (https://github.com/tesseract-ocr/tesseract/releases) から、最新のリリースバージョンのいずれかを代わりにダウンロードしてください。


注意: Tesseract には Leptonica v1.74 以降が必要です。システムに Leptonica の古いバージョンしかない場合は、DanBloomberg/leptonica から入手できるソースから手動でコンパイルする必要があります。

最後に、以下を実行します。

    cd tesseract
    ./autogen.sh
    ./configure
    make
    sudo make install
    sudo ldconfig

重要: 下記の インストール後の指示のセクションを参照してください。

このエラーが表示された場合

make  all-recursive
Making all in ccstruct
/bin/sh ../libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -
I..  -I../ccutil -I../cutil -I../image -I../viewer -I/opt/local/
include -I/usr/local/include/leptonica  -g -O2 -MT blobbox.lo -MD -MP -
MF .deps/blobbox.Tpo -c -o blobbox.lo blobbox.cpp
mv -f .deps/blobbox.Tpo .deps/blobbox.Plo
mv: rename .deps/blobbox.Tpo to .deps/blobbox.Plo: No such file or
directory
make[3]: *** [blobbox.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

./autogen.sh の実行後、autoreconf -i を実行してみてください。

トレーニングツールを使ったビルド

上記では、Tesseract トレーニングツールはビルドされません。トレーニングツールをインストールする場合は、次のライブラリも必要です。

sudo apt-get install libicu-dev
sudo apt-get install libpango1.0-dev
sudo apt-get install libcairo2-dev

トレーニングツールを使用して Tesseract をビルドするには、次を実行します。

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

必要に応じて、configure に追加のオプションを指定できます。例:

./configure --disable-openmp --disable-debug --disable-opencl --disable-graphics --disable-shared 'CXXFLAGS=-g -O2 -Wall -Wextra -Wpedantic'

インストール後の指示

Tesseract をインストールするには、エンジン自体と、言語の traineddata の 2 つの部分があります。

上記のインストールコマンドは、Tesseract エンジンとトレーニングツールをインストールします。また、pdf, tsv, hocr, alto などの出力に必要なものや、lstmbox, wordstrbox などのボックスファイルを作成するために必要な構成ファイルもインストールします。これらに加えて、画像内のテキストを認識するには、言語のtraineddataが必要です。

130 を超える言語と 35 を超えるスクリプトに対応した 3 種類の traineddata ファイル (tessdatatessdata_best、および tessdata_fast) が、tesseract-ocr GitHub リポジトリで入手できます。

Linux でソースからビルドする場合、./configure --prefix=/usr を使用した場合を除き、tessdata の構成は /usr/local/share/tessdata にインストールされます。Tesseract のインストールが完了したら、必ず必要な言語の traineddata ファイルをダウンロードし、この tessdata ディレクトリ (/usr/local/share/tessdata) に配置してください。

レガシー (–oem 0) エンジンと LSTM (–oem 1) エンジンの両方をサポートする場合は、tessdata から traineddata ファイルをダウンロードしてください。

LSTM エンジン (–oem 1) のみをサポートする場合は、tessdata_best または tessdata_fast の traineddata ファイルを使用してください。

必ずダウンロードリンクを使用するか、raw ファイルを wget してください。例: tesseract のレガシーエンジンと LSTM エンジンの両方をサポートする tessdata リポジトリの eng.traineddata の直接ダウンロードリンクは次のとおりです。

これで、tesseract を使用する準備ができました。

traineddata ファイルをダウンロードするための python3 スクリプトは、https://github.com/zdenop/tessdata_downloader から入手できます。

インストール時に定義されたディレクトリ (つまり、/usr/local/share/tessdata) とは異なるディレクトリに traineddata ファイルを配置する場合は、Tesseract の tessdata ディレクトリを指すローカル変数 TESSDATA_PREFIX を設定する必要があります。

  1. 例: Linux Ubuntu では、~/.bashrc ファイルの末尾に次を追加して変更します。状況に応じてパスを変更してください

        export TESSDATA_PREFIX="/home/$USER/Downloads/tesseract/tesseract-4.1.0/tessdata" 
    
  2. 次に、ターミナルを閉じて再度開き、有効にするか、. ~/.bashrc または export ~/.bashrc (同じこと) を呼び出して、現在のターミナルで直ちに有効にします。

  3. 必要な言語トレーニングデータもこの tessdata フォルダーに配置します。たとえば、英語のものは eng.traineddata と呼ばれます。ここから tessdata リポジトリからダウンロードし、上記の TESSDATA_PREFIX 変数で指定した tessdata ディレクトリに移動します。

TensorFlow を使ったビルド

TensorFlow を使用したビルドには、Protocol Buffers と TensorFlow 用の追加パッケージが必要です。Debian または Ubuntu では、次のようにインストールできる可能性があります。

apt-get install libprotoc-dev libtensorflow-dev

必要な開発ファイルが見つかると、すべてのビルドで Tesseract とトレーニングツールが TensorFlow で自動的にビルドされます。これは上書きできます

# Enforce build with TensorFlow (will fail if requirements are not met).
./configure --with-tensorflow [...]

# Don't build with TensorFlow.
./configure --without-tensorflow [...]

TensorFlow を使用したビルドのサポートは、Git master の新機能です。結果として得られるコードはまだテストされていません。

単体テストのビルド

このようなビルドは、自動回帰テストを実行するために使用できます。これには、(上記で説明した) トレーニングツール用の追加の依存関係と、すべての git サブモジュール、およびモデルリポジトリ (*.traineddata) のダウンロードが含まれます。

# Clone the Tesseract source tree:
git clone https://github.com/tesseract-ocr/tesseract.git
# Clone repositories with model files (from the same directory):
git clone https://github.com/tesseract-ocr/tessdata.git
git clone https://github.com/tesseract-ocr/tessdata_best.git
git clone https://github.com/tesseract-ocr/tessdata_fast.git
git clone https://github.com/tesseract-ocr/langdata_lstm.git
# Change to the Tesseract source tree and get all submodules:
cd tesseract
git submodule update --init
# Build the training tools (see above). Here we use a release built with sanitizers:
./autogen.sh
mkdir -p bin/unittest
cd bin/unittest
../../configure --disable-shared 'CXXFLAGS=-g -O2 -Wall -Wextra -Wpedantic -fsanitize=address,undefined -fstack-protector-strong -ftrapv'
make training
# Run the unit tests:
make check
cd ../..

これにより、bin/unittest/unittest の下に、個別の単体テストと累積的な単体テストの両方のログファイルが作成されます。スタンドアロンで実行することもできます。例:

bin/unittest/unittest/stringrenderer_test

失敗したテストは、(プラットフォームに応じて) セグメンテーション違反または SIGILL ハンドラーとして目立つように表示されます。

デバッグビルド

このようなビルドでは、非常に遅く実行される Tesseract バイナリが生成されます。本番環境では役に立ちませんが、ソフトウェアの問題を見つけたり分析したりするのに適しています。これは実績のあるビルドシーケンスです

cd tesseract
./autogen.sh
mkdir -p bin/debug
cd bin/debug
../../configure --enable-debug --disable-shared 'CXXFLAGS=-g -O0 -Wall -Wextra -Wpedantic -fsanitize=address,undefined -fstack-protector-strong -ftrapv'
# Build tesseract and training tools. Run `make` if you don't need the training tools.
make training
cd ../..

これにより、デバッグコードがアクティブになり、共有 Tesseract ライブラリが使用されず (これにより、インストールなしで tesseract を実行できます)、コンパイラの最適化が無効になり (gdb でより良いデバッグが可能になります)、多数のコンパイラ警告が有効になり、いくつかの実行時チェックが有効になります。

プロファイリングビルド

このようなビルドは、パフォーマンスの問題を調査するために使用できます。Tesseract はプロファイリングなしの場合よりも遅くなりますが、許容できる速度で実行されます。これは実績のあるビルドシーケンスです

cd tesseract
./autogen.sh
mkdir -p bin/profiling
cd bin/profiling
../../configure --disable-shared 'CXXFLAGS=-g -p -O2 -Wall -Wextra -Wpedantic'
# Build tesseract and training tools. Run `make` if you don't need the training tools.
make training
cd ../..

これにより、共有 Tesseract ライブラリが使用されず (tesseract をインストールなしで実行できます)、プロファイリングコードが有効になり、コンパイラの最適化が有効になり、多数のコンパイラ警告が有効になります。

オプションで、--enable-debug を追加し、-O2-O0 に置き換えることで、デバッグコードでも使用できます。

プロファイリングコードは、Tesseract が終了すると、現在のディレクトリに gmon.out という名前のファイルを作成します。GNU gprof は、そのファイルからプロファイリング情報を表示するために使用されます。

量産向けリリースビルド

デフォルトのビルドでは、単一の画像の処理に適した Tesseract 実行可能ファイルが作成されます。その後、Tesseract は 4 つの CPU コアを使用して、可能な限り高速に OCR 結果を取得します。

数百または数千の画像を大量生産する場合、デフォルトは、マルチスレッド実行のオーバーヘッドが非常に大きいため、適切ではありません。Tesseract のシングルスレッドインスタンスを実行する方が優れています。これにより、使用可能なすべての CPU コアが異なる画像を処理します。

これは実績のあるビルドシーケンスです

cd tesseract
./autogen.sh
mkdir -p bin/release
cd bin/release
../../configure --disable-openmp --disable-shared 'CXXFLAGS=-g -O2 -fno-math-errno -Wall -Wextra -Wpedantic'
# Build tesseract and training tools. Run `make` if you don't need the training tools.
make training
cd ../..

これにより、OpenMP (マルチスレッド) が無効になり、共有 Tesseract ライブラリが使用されず (これにより、インストールなしで tesseract を実行できます)、コンパイラの最適化が有効になり、数学関数に対する errno の設定が無効になり (実行が高速になります)、多数のコンパイラ警告が有効になります。

ファジング用ビルド

ファジングは、Tesseract API のバグをテストするために使用されます。Tesseract は OSS-Fuzz を使用しますが、ファジングはローカルで実行することもできます。新しい Clang++ コンパイラが必要です。

ビルド例 (使用可能な clang++ の CXX の値を修正してください)

cd tesseract
./autogen.sh
mkdir -p bin/fuzzer
cd bin/fuzzer
../../configure --disable-openmp --disable-shared CXX=clang++-7 CXXFLAGS='-g -O2 -Wall -Wextra -Wpedantic -D_GLIBCXX_DEBUG -fsanitize=fuzzer-no-link,address,undefined'
# Build the fuzzer executable.
make fuzzer-api
cd ../..

例 (ヘルプ情報を表示)

bin/fuzzer/fuzzer-api -help=1

例 (既知のテストケースでファザーを実行)

bin/fuzzer/fuzzer-api clusterfuzz-testcase-minimized-fuzzer-api-5670045835853824

例 (新しいバグを見つけるためにファザーを実行)

nice bin/fuzzer/fuzzer-api -jobs=16 -workers=16

Windows Visual Studio を使用したビルド

Windows 用のコンパイルを参照してください。