web-dev-qa-db-ja.com

OCR適用前の画像クリーニング

私は過去数時間PyTesserを試してきましたが、これは本当に素晴らしいツールです。 PyTesserの精度について私が気付いたいくつかのこと:

  1. アイコン、画像、テキストを含むファイル-5〜10%正確
  2. テキストのみのファイル(画像とアイコンが消去されている)-50〜60%正確
  3. ストレッチのあるファイル(そしてこれが最良の部分です)-上記のx軸またはy軸で2)のファイルをストレッチすると、精度が10〜20%向上しました

したがって、どうやらPytesserはフォントのサイズや画像の拡大を考慮していません。画像処理とOCRについて読むべき理論はたくさんありますが、言語に関係なく、PyTesserや他のライブラリを適用する前に実行する必要がある画像クリーンアップの標準的な手順(アイコンと画像の消去を除く)はありますか?

.........。

うわー、この投稿はかなり古いです。ここ数日、OCRの研究を再開しました。今回はPyTesserをチャックし、代わりにImageMagikでTesseractエンジンを使用しました。要点にまっすぐに来ると、これは私が見つけたものです:

1) You can increase the resolution with ImageMagic(There are a bunch of simple Shell commands you can use)
2) After increasing the resolution, the accuracy went up by 80-90%.

したがって、Tesseractエンジンは間違いなく市場で最高のオープンソースOCRエンジンです。ここでは、事前の画像クリーニングは必要ありませんでした。注意点は、多くの埋め込み画像を含むファイルでは機能しないことです。Tesseractをトレーニングしてそれらを無視する方法がわかりません。また、画像のテキストレイアウトとフォーマットは大きな違いを生みます。テキストだけの画像でうまく機能します。これがお役に立てば幸いです。

14
zenCoder

あなたの意図が商用目的であるかどうかはわかりませんが、これは、同じような画像の束に対してOCRを実行するかどうか疑問に思います。

http://www.fmwconcepts.com/imagemagick/textcleaner/index.php

元の ORIGINAL

与えられた引数で前処理した後。

After Pre-Processing with given arguments.

5
Milne

結局のところ、 tesseract wikiには、私が想像できる最善の方法でこの質問に答える記事があります。


(最初の回答、記録のためだけに)

PyTesserは使用していませんが、tesseract(バージョン:3.02.02)。

カラー画像でtesseractを呼び出すと、最初にグローバル 大津の方法 を適用して2値化し、次に実際の文字認識を2値(白黒)画像で実行します。

画像: http://scikit-image.org/docs/dev/auto_examples/plot_local_otsu.html

Otsu's threshold illustration

ご覧のとおり、「グローバル大津」は必ずしも望ましい結果を生むとは限りません。

Tesseractが「見る」ことをよりよく理解するには、大津の方法を画像に適用してから、結果の画像を確認します。

結論:認識率を向上させる最も簡単な方法は、画像を自分で2値化することです(試行錯誤によって適切なしきい値が見つかる可能性が高いです)それらの2値化された画像をtesseractに渡します。

誰かが親切にも公開してくれました tesseractのapiドキュメント なので、パイプラインの処理に関する以前のステートメントを確認することができます: ProcessPage ->- GetThresholdedImage -> ThresholdToPix -> OtsuThresholdRectToPix

4
iljau

私はそれが完璧な答えではないことを知っています。しかし、私がPyCon 2013で見た、該当する可能性のあるビデオをあなたと共有したいと思います。実装の詳細が少し欠けていますが、問題を解決/改善する方法についてのガイダンス/インスピレーションになるかもしれません。

ビデオへのリンク

プレゼンテーションへのリンク

また、ImageMagickを使用してソース画像を少し前処理することにした場合。 ここ はニースpythonバインディングを指す質問です。

ちなみに。 Tesseractにとって非常に重要なことです。あなたはそれを訓練する必要があります、さもなければそれはそれが可能であるのとほぼ同じくらい良く/正確ではありません。

3
Zoran Pavlovic