2011-02-10 28 views
9

他の投稿を読んで、3.00でマルチスレッドサポートを追加することを提案しました。しかし、それがリリースされたときに3.00で追加されたかどうかはわかりません。tesseract 3.00はマルチスレッドですか?

マルチスレッド以外では、複数のプロセスを並行処理を実現するための実現可能なオプションとして実行していますか?

ありがとうございました。

+0

[Tesseract(OCRエンジン)のリエントラントは可能ですか?](http://stackoverflow.com/questions/4827924/is-tesseractan-ocr-engine-reentrant) –

答えて

8

私がしたことの1つは、マルチページシステムのためのマルチコアシステムで可能なものと同じくらい多くのTess *のインスタンスを実行するためにGNU Parallelが呼び出されたことです(これは基本クラス、API、単一ページ画像に変換された文書。

これは、ほとんどのLinuxディストリビューションで簡単にコンパイルされた短いプログラムです(私はOpenSuSE 11.4を使用しています)。

ここで私が使用するコマンドラインです:

/usr/local/bin/parallel -j 4 \ 
    /usr/local/bin/tesseract -psm 1 -l eng {} {.} \ 
    ::: /tmp/tmp/*.jpg 

-j 4私は、サーバー上で持っているすべての4つのCPUコアを使用するように並列に指示します。

これを実行し、別の端末で「トップ」を実行すると、指定されたディレクトリ内のすべてのJPGを拾うまで、一度に4つのプロセスが表示されます。

あなたの負荷は、(Linuxを実行している場合は)システムのCPUコアの数を超えてはいけません。ここで

はGNUパラレルへのリンクです:

http://www.gnu.org/software/parallel/

2

私は、CentOSに上だけでなく、このようにparallelを使用しました:

ls | parallel --gnu "tesseract {} {.}" 

から提案されているよう私は--gnuオプションを使用しましたstdoutログは次のとおりです。

parallel: Warning: YOU ARE USING --tollef. IF THINGS ARE ACTING WEIRD USE --gnu. 

{}{.}はparallelのプレースホルダです。この場合は、最初の引数としてリストされたファイルを使用するようにtesseractに指示し、2番目の引数として拡張子のない同じファイル名を使用します。言う - - あなたがしている場合

さて、3つの.tifファイルは、あなたが実行時間を合計し、tesseract 3回、各ファイルのいずれかを実行し、次にあなたがparalleltimeで上記のコマンドを実行して、簡単に確認することができますスピードアップ。

関連する問題