MinGWでTesseract OCRを構築する

tesseract ocr



私のプロジェクトの1つでは、文字認識が必要でした。選択はtesseract ocrでした。 Habréには既に同様の記事がありましたが、現時点では関係ないため、インストール中に著者の指示を正確に繰り返すことはできませんでした。 この記事では、MinGWでのTesseract OCRのインストールプロセスについて説明します。



現在、Googleはtesseract ocrを開発しています。これは、ライブラリが近い将来に開発されることを意味する可能性があります。 MinGWのインストールから始めて、インストールプロセスを可能な限り詳細に説明しようとします。



MinGWインストール



開始するには、MinGWをインストールする必要があります。MinGW はプロジェクトの公式Webサイトからダウンロードできます。 インストール中に、次のオプションを選択する必要があります。



ステップ1. MinGWのインストール:



tesseract ocr







mingwインストール完了







必要なオプションであるC ++コンパイラとMSYS Basic Systemに注意することを忘れないでください。



オプションを設定する



次に、[ インストール]セクションに移動して、[ チャネジの適用]を選択します。



変更を適用する



次に、選択した[インストールするパッケージを適用]を選択します。



コンポーネントのインストール



MinGWパッケージのインストールが終了するまで待機し、[ 閉じる ]をクリックします



完全インストール



これらの手順を完了した後、インストーラーを閉じることができます。



追加のパッケージをインストールする前に、MinGWディレクトリをPATHに追加する必要があります。



これを行うには、システムプロパティに移動します。



システムプロパティ



次に、 システムの詳細設定 -> 環境変数 -> 作成に進みます



変数名にPATHと入力します。 変数値に、mingwを使用してフォルダーへのパスを入力します。この場合、 C:\ MinGW \ binです。



パスの設定



次に、 Tesseract OCRライブラリを構築するときに必要になるMinGW Shellを使用して、いくつかのパッケージをインストールする必要があります。



MinGWシェルを開くには、フォルダーC:\ MinGW \ msys \ 1.0に移動し、バイナリmsys.batファイルを実行します



msysを起動する



開いたコンソールで、次のコマンドを入力します。

  mingw-get install mingw32-automake mingw32-autoconf mingw32-autotools mingw32-libz 


インストール結果



この場合、これらのパッケージはすでにインストールされていると言われましたが、大丈夫です、それで問題ありません。



重要なポイント ! MinSYSでMinGWを使用してフォルダーをマウントする必要があります。



これを行うには、次の手順を実行します。



ファイルC:\ MinGW \ msys \ 1.0 \ etc \ fstabを作成して、マウントポイント/ mingwにC:\ MinGWディレクトリをマウントします。

  #Win32_Path Mount_Point
 c:/ MinGW / mingw 




Mount Mingw



fstabを作成した後、MinGWシェルを再起動する必要があります。msys.batを閉じて再度開きます。



Leptonicaライブラリのインストール



MinGWをセットアップしたらLeptonicaライブラリをインストールする必要があります。 Tesseract ocrはLeptonicaライブラリを使用してイメージを操作しますが、インストールする前にいくつかの補助ライブラリをインストールする必要があります。



LibJpegをインストールする



最初に、ライブラリを保存するディレクトリを作成します(例:C:\ libs \) 。 このディレクトリで、ライブラリを保存するサブフォルダーlibjpegを作成します。 職場の準備ができたので、 公式サイトからLibJpegをダウンロードし、フォルダーC:\ libs \ libjpegに解凍します。



解凍後、libjpegフォルダーへの次のパスを取得しました。C:\ libs \ libjpeg \ jpegsrc.v8c.tar \ jpegsrc.v8c \ jpeg-8c。



ligjpegへの道



ライブラリをビルドしてインストールする必要があります。これを行うには、MinGWシェルに移動して、次のコマンドを入力します。

  cd /C/libs/libjpeg/jpegsrc.v8c.tar/jpegsrc.v8c/jpeg-8c/
 ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw
作る
インストールする 


構成する



構成2



エンドメイク



インストールする



この時点で、libJpegのインストールは完了です。



libPngをインストールする



プロジェクトの公式サイトからソースアーカイブをダウンロードし、 C :\ libs \ libpngディレクトリに展開します。 MinGWシェルに戻ります。このライブラリのインストール手順は、libJpegのインストールと同じです。 開梱後、次のディレクトリを取得しました: C:\ libs \ libpng \ libpng-1.5.4.tar \ libpng-1.5.4

  cd /C/libs/libpng/libpng-1.5.4.tar/libpng-1.5.4/
 ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw
作る
インストールする 




LibTiffビルド



ソースアーカイブは、プロジェクトのftpサーバーからダウンロードできます。 C :\ libs \ libtiffでアーカイブを解凍します このライブラリのアセンブリは、前の2つのライブラリのアセンブリに似ています。



解凍後、次のパスが判明しました: C:\ libs \ libtiff \ tiff-3.9.5.tar \ tiff-3.9.5

  cd /C/libs/libtiff/tiff-3.9.5.tar/tiff-3.9.5/
 ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw
作る
インストールする 




レプトニカを構築



すべての追加ライブラリをインストールした後、レプトニカを構築します。 まず、Leptonica 1.71をダウンロードする必要があります。これは重要です。バージョン1.71が必要です。 テストが示しているように、より高いバージョンまたはより低いバージョンを使用すると、tesseract ocr自体はビルドされません。 ただし、このバージョンでは、修正する必要があるバグが1つあります。 開始するには、 公式サイトからソースファイルを含むアーカイブをダウンロードします。 ダウンロードしたアーカイブをC:/ libs / leptonica / folderに解凍します 。 開梱後、次のパスを取得しました: C:\ libs \ leptonica \ leptonica-1.71.tar \ leptonica-1.71



次のステップは、ライブラリをビルドすることです。以前のライブラリのアセンブリと違いはありません。

  cd /C/libs/leptonica/leptonica-1.71.tar/leptonica-1.71/
 ./configure CFLAGS = '-O2' CXXFLAGS = '-O2' --prefix = / mingw
作る
インストールする 


素晴らしい。 アセンブリTesseract OCRに渡します。



Tesseract OCRビルド



Leptonicaを正常に組み立てたら、Tesseract OCRの組み立てに進むことができます。 公式サイトからソースコードのアーカイブをダウンロードしてください。 ダウンロードしたアーカイブをTesseract OCRソースコードとともにフォルダーC:\ libs \ tesseractに解凍します。 開梱後、次のパスを取得しました: C:\ libs \ tesseract \ tesseract-ocr-3.02.02.tar \ tesseract-ocr-3.02.02 \ tesseract-ocr



Tesseracr OCRを配置します。

  cd /C/libs/tesseract/tesseract-ocr-3.02.02.tar/tesseract-ocr-3.02.02/tesseract-ocr
 ./configure CFLAGS = '-D__MSW32__ -O2' CXXFLAGS = '-D__MSW32 __- O2' LIBS = '-lws2_32' LIBLEPT_HEADERSDIR = '/ mingw / include' --prefix = / mingw
作る
インストールする 


Tesseracrtの組み立てプロセスには時間がかかりますが、お茶を飲むこともできます。



Tesseract ocrヘッダーファイルはC:\ MinGW \ include \ tesseractにLeptonicaヘッダーファイルはC:\ MinGW \ include \ leptonicaに 、C:\ mingw \ libにあるすべてのライブラリになります。



将来のプログラムを成功させるには、 公式WebサイトからTesseract ocr SDKをダウンロードしてインストールする必要があります。



Tesseract OCRをインストールした後に現れる小さなバグを修正するために残っています。



これを行うには、Tesseract OCRヘッダーファイルC:\ MinGW \ include \ tesseractのあるフォルダーに移動します



platform.hファイルで、 BLOB型の繰り返し宣言についてコメントします 次のようなものが得られるはずです。

  / * typedef struct _BLOB {
 unsigned int cbSize;
 char * pBlobData;
 } BLOB、* LPBLOB; * / 


baseapi.hのPBLOBクラスの宣言についてコメントします。



修正する



Tesseract OCRテストアプリケーション



tesseract ocrをインストールしたら、テストして、簡単なC ++アプリケーションを作成できます。

  #include <tesseract / baseapi.h>
 #include <leptonica / allheaders.h>
 #include <string>
 #include <iostream>

 int main(int argc、char * argv [])
 {
	 tesseract :: TessBaseAPI ocr;
	 ocr.Init(NULL、「eng」);

	 if(argc> 1) 
	 {
		 PIX * pix = pixRead(argv [1]);
		 ocr.SetImage(pix);
		 std :: string result = ocr.GetUTF8Text();

		 std :: cout << "認識テキスト:" <<結果<< std :: endl;
	 }
	他に
		 std :: cout << "認識のためにプログラムに画像ファイルをドラッグアンドドロップ" << std :: endl;

	 0を返します。
 } 


コマンドラインからアプリケーションをビルドできます。

  g ++ -O2 main.cpp -o ocr.exe -ltesseract -llept -lws2_32


結果




All Articles