ページセグメンテーションモード :テキストのページを分析するには、いくつかの方法があります。
TESSERACT apiは、小さな領域や異なる向きなどでOCRを実行する場合に、いくつかのページ分割モードを提供します。
tesseractでサポートされているページ分割モードのリストは次のとおりです。
0. 方向およびスクリプト検出(OSD)のみ。
1. OSDによる自動ページ分割。
2. 自動ページ分割、ただしOSD、またはOCRはありません。
3. 完全に自動のページ分割、しかしOSD無し。 (デフォルト)
4. 可変サイズのテキストの単一の列を想定します。
5. 垂直方向に整列したテキストの単一の一様なブロックを想定します。
6. 単一の一様なテキストブロックを想定します。
7. 画像を単一のテキスト行として扱います。
8. 画像を単一の単語として扱います。
9. 画像を円の中の単一の単語として扱います。
10. 画像を単一の文字として扱います。
11. スパーステキスト。 できるだけ多くのテキストを特定の順序で検索します。
12. Osdを使用したスパーステキスト。
13. 生のライン。 画像を単一のテキスト行として扱い、Tesseract固有のハックをバイパスします。ページ分割モードを変更するには、カスタム設定文字列の--psm
引数を上記のモードコードのいずれかに変更します。
設定を使用して数字のみを検出します。
設定を次のように変更することで数字のみを認識できます。
これは次の出力を与えます。あなたが見ることができるように、出力は同じではありません。規表現を使用します。
ホワイトリスト/ブラックリスト文字:
指定された画像から特定の文字だけを検出し、残りを無視したいとします。 次の設定を使用して、文字のホワイトリストを指定することができます(ここでは、aからzまでのすべての小文字のみを使用しています)。p>
そして、それは私たちにこの出力を与えます :/div>ブラックリスト文字:
いくつかの文字や式が間違いなくテキストに表示されないと確信している場合(ocrはブラックリスト文字の代わりに間違ったテキP>
出力 :
複数の言語のテキスト:ocr出力が必要な言語を指定するには、設定で-l LANG
引数を使用します。langは、使用する言語の3文字コードです。次のようにLANGパラメータを変更することで、複数の言語で作業できます。
NB : -l
パラメータに最初に指定された言語がプライマリ言語です。div>の出力:
残念ながらtesseractには、画像内のテキストの言語を自動的に検出する機能はありません。 別の解決策は、langdetect
という別のpythonモジュールによって提供されています。
このモジュールは、画像を使用してテキストの言語を検出しませんが、言語を検出するために文字列入力が必要です。 これを行う最善の方法は、最初にtesseractを使用して、そこにあると感じる可能性のある言語でOCRテキストを取得し、langdetect
を使用してOCRテキストに含まれている言語を見つけてから、見つかった言語でOCRを再度実行することです。
私たちは英語とポルトガル語であったと思ったテキストを持っていると言います。NB:複数の言語を持つ画像で、設定で指定された言語が間違っているか、まったく言及されていない場合、Tesseractはひどく実行されます。 これはlangdetectモジュールをかなり誤解させる可能性があります。TESSERACT OCRは非常に強力ですが、いくつかの制限があります。
tesseractの制限:
TESSERACT OCRは非常に強力ですが、いくつかの制限があります。OCRは、いくつかの利用可能な商業的なソリューションほど正確ではありません。
-
- は、部分的なオクルージョン、歪んだ遠近法、複雑な背景などのアーティファクトの影響を受ける画像ではうまくいきません。
- 手書きを認識することはできません。
- ちんぷんかんぷんを見つけて、これをOCR出力として報告するかもしれません。
- -l LANG引数で指定された言語以外の言語がドキュメントに含まれている場合、結果が悪くなる可能性があります。
- 文書の自然な読み取り順序を分析するのは必ずしも得意ではありません。 たとえば、文書に2つの列が含まれていることを認識できず、列間でテキストを結合しようとする可能性があります。
- 品質の悪いスキャンは、品質の悪いOCRを生成する可能性があります。
- どのフォントファミリのテキストが属しているかについての情報は公開しません。
結論:
Tesseractはきれいな文書をスキャンするのに最適であり、そのトレーニングは包括的だったので、かなり高い精度とフォントの変動が付属し
Tesseract4.0の最新リリースは、はるかに正確である深い学習ベースのOCRをサポートしています。 OCRエンジン自体は、特定のタイプのリカレントニューラルネットワーク(RNN)である長期短期記憶(LSTM)ネットワーク上に構築されています。
Leave a Reply