私は過去数時間PyTesserを試してきましたが、これは本当に素晴らしいツールです。 PyTesserの精度について私が気付いたいくつかのこと:
したがって、どうやら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をトレーニングしてそれらを無視する方法がわかりません。また、画像のテキストレイアウトとフォーマットは大きな違いを生みます。テキストだけの画像でうまく機能します。これがお役に立てば幸いです。
あなたの意図が商用目的であるかどうかはわかりませんが、これは、同じような画像の束に対してOCRを実行するかどうか疑問に思います。
http://www.fmwconcepts.com/imagemagick/textcleaner/index.php
元の
与えられた引数で前処理した後。
結局のところ、 tesseract
wikiには、私が想像できる最善の方法でこの質問に答える記事があります。
"[OCR]出力の品質の向上" に関する図解ガイド。
質問 "tesseract OCRの精度を向上させるための画像処理" も興味深いかもしれません。
(最初の回答、記録のためだけに)
PyTesser
は使用していませんが、tesseract
(バージョン:3.02.02
)。
カラー画像でtesseractを呼び出すと、最初にグローバル 大津の方法 を適用して2値化し、次に実際の文字認識を2値(白黒)画像で実行します。
画像: http://scikit-image.org/docs/dev/auto_examples/plot_local_otsu.html
ご覧のとおり、「グローバル大津」は必ずしも望ましい結果を生むとは限りません。
Tesseractが「見る」ことをよりよく理解するには、大津の方法を画像に適用してから、結果の画像を確認します。
結論:認識率を向上させる最も簡単な方法は、画像を自分で2値化することです(試行錯誤によって適切なしきい値が見つかる可能性が高いです)それらの2値化された画像をtesseract
に渡します。
誰かが親切にも公開してくれました tesseractのapiドキュメント なので、パイプラインの処理に関する以前のステートメントを確認することができます: ProcessPage ->- GetThresholdedImage -> ThresholdToPix -> OtsuThresholdRectToPix
私はそれが完璧な答えではないことを知っています。しかし、私がPyCon 2013で見た、該当する可能性のあるビデオをあなたと共有したいと思います。実装の詳細が少し欠けていますが、問題を解決/改善する方法についてのガイダンス/インスピレーションになるかもしれません。
また、ImageMagickを使用してソース画像を少し前処理することにした場合。 ここ はニースpythonバインディングを指す質問です。
ちなみに。 Tesseractにとって非常に重要なことです。あなたはそれを訓練する必要があります、さもなければそれはそれが可能であるのとほぼ同じくらい良く/正確ではありません。