2009-08-26 4 views
3

私はTesseract OCRpytesser経由)とPIL(Python Image Library)を使ってアプリケーションの自動テストを行っています。OCRソフトウェアを成功させるにはどうすればいいですか?

私は、スクリーンショットを作成し、tesseractのおかげでテキストを取得することで、表示されたテキストがOKであることを確認しています。

私は最初にいくつかの問題があり、PILのバイキュービック補間のおかげでスクリーンショットのサイズを増やしたので、よりうまくいくように思えます。

残念ながら、私はまだ '0'と 'O'の間に混乱のようないくつかの間違いがあります。私は将来、他の同様の問題があると思います。

OCRを支援するために画像を準備する技術があるかどうかを知りたいと思います。どんなアイデアも歓迎されます。 0とOを区別するための事前

+0

この質問はまだ関連の場合:これは、たTesseractでなければなりませんか?低品質の入力画像に最適なOCRエンジン(ABBYYなど)があり、自動的に画像の前処理を行います。 http://www.wisetrend.com/wisetrend_ocr_cloud.shtmlでABBYYエンジンを使用するOCR用のREST APIがあります。無料の試用版を用意していますので、あなた自身でいくつかの画像を試すことができます –

答えて

1

恥知らずなプラグや免責事項:.NET

たTesseractで使用するためmy companyパッケージたTesseractはOK OCRエンジンです。それは多くを見逃す可能性があり、簡単に非テキストで混乱します。あなたのためにできることは、テキストだけを取得することです。次善策は、2値化(アダプティブまたはダイナミックスレッシュホールド)またはグレースケールに2値化を試み、2値化を試みることです。

  • フォント
  • メイク画像の余分な周りの清潔で十分な空き容量を持つ文字を認識する

  • +0

    私はそれに同意します。ダイアログボックスの端で混乱し、「I」に変換されました。テキストのみの画像を取得すると、うまくいく。二値化も良い考えです。ありがとう。 – luc

    0

    おかげで、1つの簡単な解決策は、(例:0は、その中央にダッシュやドットを持っている)の両方を区別するフォントを選択することです。それはあなたのアプリケーションで受け入れられるでしょうか?

    もう1つの解決策は、テキストを文字単位で解析した後に辞書ベースのステップを適用することです。認識されたテキストを綴りチェッカーやバリデーターに入力して、難しい文字を区別します。

    たとえば、丸い記号の後ろに他の数字が続いている可能性が最も高く、同じ記号の後に文字が続いているのは、大文字である可能性が最も高いです。これは簡単な例ですが、より信頼性の高いOCRシステムを構築するためにコンテキストがどのように必要であるかを示しています。

    +0

    残念ながら、私はコントロールできませんフォントあなたは、辞書ベースのステップの意味をもう少し説明してください。 – luc

    0

    最高の条件であっても、OCRの亜種があなたの上に潜入します。あなたの最善の選択肢は、それらを認識するようにテストを設計することです。

    1
    1. トレインたTesseract利益:)

    ここでは、いくつかの現実世界での例です。

    • 最初のイメージは、元の画像である(cropedパワーメータ番号)
    • 第2の画像はわずかに50%のOCR精度の周りに、GIMPで画像をクリーンアップされたTesseractで
    • 第三の画像を完全に洗浄画像である - 100%OCRトレーニングなしで認められました!

    enter image description here enter image description here enter image description here

    関連する問題