コンテンツにスキップします。

さまざまなプラットフォーム向けのコンパイルガイド

注:このドキュメントは、あなたがオペレーティングシステム上でソフトウェアをコンパイルすることに精通していることを前提としています。

leptonicaのビルドに使用したのと同じツールを使って、tesseractをビルドしてください。

ソースからTesseractをビルドするには、C++17を適切にサポートしたC++コンパイラが必要です。Tesseractのビルドに役立つツールチェーンはいくつか(既知の)あります:GNU AutotoolsCMakeSoftware Network (a.k.a. sw)、vcpkg。以下の説明が不明確な場合は、tesseract Github Action Worklowsを参照してください。

目次

Linux

Tesseract 4.x をインストールするには、Ubuntu 18.xx bionic で次のコマンドを実行するだけです。

sudo apt install tesseract-ocr

トレーニングに使用できる開発ツールをインストールしたい場合は、次のコマンドを実行します。

sudo apt install libtesseract-dev

以下の手順はLinuxでのビルドに関するものですが、他のUNIX系オペレーティングシステムにも適用できます。

依存関係

Ubuntu

まだインストールされていない場合は、次のライブラリが必要です(Ubuntu 16.04/14.04)。

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 libwebpdemux2 libwebp-dev
sudo apt-get install libopenjp2-7-dev
sudo apt-get install libgif-dev
sudo apt-get install libarchive-dev libcurl4-openssl-dev

トレーニングツールをインストールする場合は、次のライブラリも必要です。

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

Leptonica

Leptonicaもインストールする必要があります。Tesseractをコンパイルする前に、Leptonicaの開発ヘッダーがインストールされていることを確認してください。

Tesseractのバージョンと必要なLeptonicaの最小バージョン

Tesseract Leptonica Ubuntu
4.00 1.74.2 Ubuntu 18.04
3.05 1.74.0 ソースからビルドする必要があります
3.04 1.71 Ubuntu 16.04
3.03 1.70 Ubuntu 14.04
3.02 1.69 Ubuntu 12.04
3.01 1.67  

1つのオプションは、ディストリビューションのLeptonicaパッケージをインストールすることです

sudo apt-get install libleptonica-dev

しかし、古いバージョンのLinuxを使用している場合、Leptonicaのバージョンが古すぎる可能性があるため、ソースからビルドする必要があります。

ソースは https://github.com/DanBloomberg/leptonica にあります。ビルド手順はLeptonica READMEに記載されています。

Leptonicaをソースからビルドする場合、/usr/local/libがライブラリパスに含まれていることを確認する必要がある場合があります。これは標準的なLinuxのバグであり、Stackoverflowの情報が非常に役立ちます。

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

Compiling–GitInstallationの手順に従ってください。

インストール手順も読んでください。

他の場所にインストールする/ルートなしでインストールする

Tesseractは任意の場所にインストールするように構成できるため、ルートアクセスなしでインストールできます。

$HOME/local にインストールするには

./autogen.sh
./configure --prefix=$HOME/local/
make
make install

$HOME/local にインストールし、$HOME/local にインストールされたLeptonicaライブラリを使用するには

./autogen.sh
LIBLEPT_HEADERSDIR=$HOME/local/include ./configure \
  --prefix=$HOME/local/ --with-extra-libraries=$HOME/local/lib
make
make install

システムによっては、configure スクリプトを実行する前に、pkg-config へのパスも指定する必要がある場合があります

export PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig

Ubuntu 16.xxでのTesseract 4.0およびLeptonica 1.7.4のコンパイルプロセスのビデオ表現

言語データ

次を使用することもできます

export TESSDATA_PREFIX=/some/path/to/tessdata

tessdataディレクトリを指すようにします(例:tessdataパスが'/usr/local/share/tessdata'の場合、'export TESSDATA_PREFIX='/usr/local/share/tessdata/'を使用する必要があります)。

Windows

mainブランチ、3.05以降

Tesseractの使用

!!! 重要 !!! アプリケーションでTesseractを使用する(Tesseractを含める、またはアプリにリンクする)場合は、この非常に簡単なを参照してください。

最新のライブラリをビルドする(Software Networkクライアントを使用)

  1. 最新のSW(Software Network https://software-network.org/)クライアントをhttps://software-network.org/client/からダウンロードします。
  2. sw setup を実行します(管理者アクセスが必要な場合があります)。
  3. sw build org.sw.demo.google.tesseract.tesseract を実行します。

トレーニングツールをビルドする

現在、Visual StudioでWindows上でTesseractトレーニングツールのフルセットをビルドすることが可能です。最新のVSコンパイラ(VS2019/2022または軽量VS 2019/2022ビルドツールディストリビューションがインストールされている必要があります)。

これを行うには

  1. 最新のSW(Software Network https://software-network.org/client/)クライアントをhttps://software-network.org/client/からダウンロードします。
  2. tesseractソースをチェックアウトします:git clone https://github.com/tesseract-ocr/tesseract tesseract && cd tesseract
  3. sw build を実行します。
  4. バイナリは .sw\out\some hash dir... にあります。

Tesseractを使用するVisual Studioプロジェクトの場合(vcpkgビルド)

  1. Visual C++パッケージマネージャーであるVcpkgを設定します。
  2. 64ビットの場合は vcpkg install tesseract:x64-windows を実行します。mainブランチの場合は --head を使用します。

静的リンク

自己完結型の tesseract.exe 実行ファイル(DLLやランタイム依存関係なし)をビルドするには、上記のVcpkgを次のコマンドで使用します。

mainブランチの場合は --head を使用します。OpenMPランタイム用に1つのDLL(vcomp140.dll)(Visual C++ Redistributable 2015にあります)が必要になる場合があります。

Software Networkクライアントを使用しないVS2017でのCMakeビルド

  1. Leptonicaのwikiに記載されているように、Leptonicaをベースにビルドおよびインストールします
  2. Visual Studio用ICUライブラリをインストールします
chdir tesseract
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%INSTALL_DIR% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_LTO=ON -DBUILD_TRAINING_TOOLS=ON -DFAST_FLOAT=ON -DGRAPHICS_DISABLED=ON -DOPENMP_BUILD=OFF
cmake --build build --config Release --target install

これにより、ほとんどのトレーニングツールが作成されます(Pangoライブラリの要件がWindowsでビルドおよびインストールが容易ではないため、text2imageは除きます)。詳細については、https://github.com/tesseract-ocr/tesseract/blob/main/.github/workflows/cmake-win64.yml を参照してください。

Tesseractを開発する

Tesseract自体の開発目的では、次の手順を実行します

  1. Git、CMakeをダウンロードしてインストールし、PATHに配置します。
  2. 最新のSW(Software Network https://software-network.org/)クライアントを https://software-network.org/client/からダウンロードします。SWはソースパッケージ配布システムです。
  3. SWクライアントをPATHに追加します。
  4. sw setup を実行します(管理者アクセスが必要な場合があります)。
  5. リリースアーカイブがある場合は、tesseract ディレクトリに解凍します。

mainブランチを使用している場合は、次を実行します

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

     cd tesseract
     mkdir build && cd build
     cmake ..
    
  2. Visual Studioバージョンでソリューション(tesseract.sln)をビルドします。コマンドラインからビルドおよびインストールしたい場合(例:リリースビルド)、このコマンドを使用できます

    cmake --build . --config Release --target install
    

    C:\Program Files以外のディレクトリにインストールしたい場合(これには管理者権限が必要です)、構成時にインストールパスを指定する必要があります

    cmake .. -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=inst
    

前の段落からリポジトリをクローンした後、トレーニングツールの開発目的で、次を実行します

sw build

Tesseractのルートディレクトリにソリューションリンクが表示されます。

x64プラットフォーム向けにビルドする

sw

sw+cmakeでビルドしている場合は、次のようにcmakeを実行します

mkdir win64 && cd win64
cmake .. -G "Visual Studio 14 2015 Win64"

swでビルドしている場合は、sw generate を実行すると、ソリューションリンクが作成されます(まだ実装されていません!)。

3.05

Visual Studio 2015をお持ちの場合は、Tesseractと依存関係のVisual Studio 2015プロジェクトについてはhttps://github.com/peirick/VS2015_Tesseractリポジトリをチェックアウトし、build_tesseract.batをクリックしてください。その後、言語パックをダウンロードする必要があります。

3.03rc-1

ブログVisual Studio 2013でTesseract 3.03をビルドする方法を参照してください。

3.02

tesseract-ocr 3.02については、Tesseract-OCRのVisual Studio 2008開発者ノートの手順に従ってください。

3.01

SourceForgeのダウンロードアーカイブページからこれらのパッケージをダウンロードしてください

それらを1つのディレクトリ(例:tesseract-3.01)に解凍します。tesseract-ocr-3.01.eng.tar.gzはルートディレクトリの名前を 'tesseract-3.01'ではなく'tesseract-ocr'にしていることに注意してください。

Windows関連のファイルは vs2008 ディレクトリにあります(例:tesseract-3.01\vs2008)。通常と同じビルドプロセスが適用されます。VC++Express 2008で tesseract.sln を開き、すべて(またはTesseractのみ)をビルドします。さらに何もインストールしなくても、(少なくともリリースモードで)コンパイルできるはずです。DLLの依存関係とLeptonicaが含まれています。出力はtesseract-3.01\vs2008\bin(または構成ビルドに基づいてtesseract-3.01\vs2008\bin.rdまたはtesseract-3.01\vs2008\bin.dbg)になります。

Mingw+Msys

Mingw+Msysについては、ブログMingw+Msysを使用したLeptonicaおよびTesseract-ocrのコンパイルを参照してください。

Msys2

https://msys2.github.io/ からMSYS2インストーラーをダウンロードしてインストールします。

PKGBUILDからビルドしたい場合は、インストールする必要があるコアパッケージグループは次のとおりです

tesseract-ocrリリースパッケージをビルドするには、https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-tesseract-ocr のPKGBUILDを使用します。

Cygwin

Cygwinでビルドするには、ブログCygwinでTesseractをビルドする方法を参照してください。

3.04.00以降のTesseractおよびトレーニングユーティリティはCygwinパッケージとして入手できます。

Tesseract specific packages to be installed:

tesseract-ocr                           3.04.01-1
tesseract-ocr-eng                       3.04-1
tesseract-training-core                 3.04-1
tesseract-training-eng                  3.04-1
tesseract-training-util                 3.04.01-1

Mingw-w64

Mingw-w64を使用すると、Windows用の32ビットまたは64ビットの実行ファイルをビルドできます。Windowsでのネイティブコンパイルに使用できますが、Linuxでのクロスコンパイルにも使用できます(ネイティブコンパイルよりも簡単かつ高速です)。ほとんどの大規模なLinuxディストリビューションには、クロスビルドに必要なツールを含むパッケージが既に含まれています。Tesseractをビルドする前に、いくつかの前提条件をビルドする必要があります。

Debianおよび同様のディストリビューション(例:Ubuntu)の場合、クロスツールはこのようにインストールできます

# Development environment targeting 32- and 64-bit Windows (required)
apt-get install mingw-w64
# Development tools for 32- and 64-bit Windows (optional)
apt-get install mingw-w64-tools

次の前提条件が必要です

macOS

通常、AppleのXcodeに加えて、Fink、Homebrew、MacPortsのようなパッケージマネージャーが必要です。Xcodeと関連するコマンドラインツールは、コンパイラ(llvm-gcc)とリンカー、およびzlibのようなライブラリを提供します。パッケージマネージャーは、Xcodeに含まれていないフリーソフトウェアパッケージを提供します。

Xcode Command Line Toolsは、xcode-select --installを実行することでインストールできます。

Tesseract 4はOpenMPサポート付きでビルドできますが、そのためには追加のインストールが必要です。

Finkを使用したmacOS

Fink(2017年4月現在)は、LeptonicaもTesseractのトレーニングツールに必要なパッケージも提供していないため、Tesseractをビルドするためには推奨できません。

MacPortsを使用したmacOS

OpenMPのサポートを準備する(オプション)

OpenMPをインストールする

sudo port install libomp

OpenMPを手動で取得、コンパイル、インストールする以下の方法は、もはや必要ないはずです。

# Install cmake if it is not available.
sudo port install cmake
git clone https://github.com/llvm-mirror/openmp.git
cd openmp
mkdir build
cd build
cmake ..
make
sudo make install

必要なパッケージをインストールする

sudo port install autoconf \
                  automake \
                  libtool \
                  pkgconfig \
                  leptonica

コンパイル

コンパイル自体は、Autotoolsスイートに依存しています。

  git clone https://github.com/tesseract-ocr/tesseract.git
  cd tesseract
  ./autogen.sh
  ./configure
  make
  sudo make install

マルチスレッドのサポートが必要な場合は、最初にOpenMPをインストールし(上記参照)、コンパイラとリンカーにOpenMPサポートをアクティブにする方法を指示する必要があります。これは、configureのオプションにその情報を追加することで行います。

  ./configure CXXFLAGS="-Xpreprocessor -fopenmp -I/opt/local/include/libomp -Wall -O2" LDFLAGS=-L/opt/local/lib/libomp LIBS=-lomp

makeコマンドでコンパイルが失敗し、libtoolが指示の欠落でエラーを出す場合は、MacPortのg++コンパイラでビルドしている可能性があります。既知の問題があります。コミュニティではclangを使用することを推奨していますが、g++の回避策はビルドを再構成することです。

./configure CXXFLAGS=-Wa,-q

そして、makeを続行します。

トレーニングツール付きでTesseractをインストールする

上記では、トレーニングツールはインストールされていません。Tesseractだけでなく、以下のようなトレーニングツールもインストールできます。

トレーニングツールに必要なパッケージをインストールする

sudo port install cairo pango
sudo port install icu +devel

ビルドとインストール

git clone https://github.com/tesseract-ocr/tesseract/
cd tesseract
./autogen.sh
./configure
make training
sudo make install training-install

Homebrewを使用したmacOS

依存関係をインストールする

# Packages which are always needed.
brew install automake autoconf libtool
brew install pkgconfig
brew install icu4c
brew install leptonica
# Packages required for training tools.
brew install pango
# Optional packages for extra features.
brew install libarchive
# Optional package for builds using g++.
brew install gcc

コンパイル

2017年1月現在、clangはビルドできますが、OpenMPはシングルスレッドしか使用せず、パフォーマンスが低下する可能性があります。本当にOpenMPが必要な場合は、gccをインストールして使用してください。

git clone https://github.com/tesseract-ocr/tesseract/
cd tesseract
./autogen.sh
mkdir build
cd build
# Optionally add CXX=g++-8 to the configure command if you really want to use a different compiler.
../configure PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libarchive/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig
make -j
# Optionally install Tesseract.
sudo make install
# Optionally build and install training tools.
make training
sudo make training-install

macOS: arm-apple-darwin64向けにビルド

クロスコンパイルについては、issue 2334の議論を参照してください。次のようにターゲットを指定する必要があります。

./configure CXX="g++ --target=arm-apple-darwin64"

Android

Tesseractは、静的なコマンドライン実行可能ファイルtesseractとしてAndroid用にビルドできます。または、Javaバインディングを使用して、Androidアプリからlibtessを操作できます。

現在、最も簡単なビルド方法は、tess-twoフォークにあります。このフォークには、tesseractとleptonicaの両方のソースが含まれているため、リポジトリをダウンロードするだけで十分です。コマンドライン実行可能ファイルをビルドするには、Android SDKまたはAndroid Studioは必要ありません。Android NDK(r.20がテスト済み)をインストールし、ndk-buildコマンドを実行するだけです。例:

ndk-build -C tess-two-git/tess-two tesseract APP_ABI=arm64-v8a

4.1ブランチも利用可能です。パフォーマンスは大幅に異なる場合があることに注意してください。

> adb shell time tess3 --tessdata-dir tessdata3 eurotext.png txt3
Tesseract Open Source OCR Engine v3.05.00 with Leptonica
    0m05.95s real     0m05.77s user     0m00.17s system

> adb shell time tess4 --tessdata-dir tessdata4 eurotext.png txt4
Tesseract Open Source OCR Engine v4.1.0 with Leptonica
    0m59.07s real     0m58.56s user     0m00.45s system

> adb shell time tess4 --tessdata-dir tessdata3 eurotext.png txt42
Tesseract Open Source OCR Engine v4.1.0 with Leptonica
    0m05.61s real     0m05.37s user     0m00.23s system

代替案

コンパイルの別の方法は、Dockerを使用したAndroid向けビルドプロジェクトを使用することです。執筆時点では、次のバージョンとアーキテクチャの共有ライブラリを生成できます。

アーキテクチャ \ バージョン 3.02.02 3.05.02 4.0.0 4.1.0
armv7-a
arm64-v8a
x86

依存ライブラリのコンパイル、leptonicatiffも含まれており、処理されます。

NDKを使用したLinuxでのクロスコンパイル

コンパイルの別の方法は、Android NDK r22(22.1.7171670)を使用してLinuxマシンで行うことです。この方法は、次のバージョンとアーキテクチャ向けにコンパイルします。

アーキテクチャ \ バージョン 4.1.0
armv7-a
arm64-v8a
x86
x86_64

次の前提条件が必要です

Leptonicaをコンパイルするには

./autobuild
./configure \
    --host=$TARGET \
    --disable-programs \
    --without-giflib \
    --without-libwebp \
    --without-zlib \
    --without-libopenjpeg \
    --prefix $ROOT/output/$OUTARCH/

make -j && make install

Tesseractをコンパイルするには

export API=23

export TOOLCHAIN=$ANDROID_NDK_HOME_22/toolchains/llvm/prebuilt/linux-x86_64

export ABI_CONFIGURE_HOST=$NDKTARGET
export AR=$TOOLCHAIN/bin/$NDKTARGET-ar
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export AS=$CC
export LD=$TOOLCHAIN/bin/$TARGET-ld
export RANLIB=$TOOLCHAIN/bin/$NDKTARGET-ranlib
export STRIP=$TOOLCHAIN/bin/$NDKTARGET-strip

export LEPTONICA_LIBS="-L$ROOT/output/$OUTARCH/lib -llept"
export LEPTONICA_CFLAGS="-I$ROOT/output/$OUTARCH/include/leptonica"
export PKG_CONFIG_PATH="$ROOT/output/$OUTARCH/lib/pkgconfig"

export LIBS="-L$ROOT/output/$OUTARCH/lib"

make clean
./autogen.sh
./configure \
    --host=$TARGET \
    --disable-doc \
    --without-archive \
    --disable-openmp \
    --without-curl \
    --prefix $ROOT/output/$OUTARCH/

make -j
make install

よくあるエラー

GitHubの最新のコードは、autoconf-archiveを必要としません。

解決策は、PKG_CONFIG_PATHを設定することです。例:PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

この場合、m4ディレクトリを作成し(mkdir m4)、./configureから始まる上記のコマンドを再実行する必要があります。

その他