web-dev-qa-db-ja.com

TesseractOCRライブラリ-学習フォント

さて、私はこのOCRの準拠した.NETバージョンを使用しています。これは@ http://www.pixel-technology.com/freeware/tessnet2/ にあります。

私はそれを機能させていますが、これの目的はナンバープレートを翻訳することです、悲しいことに、エンジンは実際にはいくつかの文字を正確に翻訳しません、例えばこれは文字の問題を特定するためにスキャンした画像です

enter image description here

結果:

12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ

したがって、次の文字は正しく翻訳されていません。

1、O、Q、W

これはそれほど悪くはないようですが、私のナンバープレートでは、結果はそれほど良くありません。

enter image description here = H4 ODM

enter image description here = LDH IFW

偽のテスト

enter image description here = NR4 y2k

お分かりのように、私はノイズリダクション、コントラストの増加、絶対的な黒ではないピクセルの削除を試みましたが、実際の改善はありませんでした。

どうやらエンジンの新しいフォントを「学ぶ」ことができるようですが、.NET用のライブラリを再コンパイルする必要があると思います。また、これは私が持っていないLinuxOSで実行されているようです。

http://www.scribd.com/doc/16747664/Tesseract-Trainingfor-Khmer-LanguageFor-Posting

だから私は次に何を試すべきか悩んでいます、誰かがそれを試したいのであれば、私は純粋にテスト目的のためにクイックコンソールアプリケーションを書きました。誰かがアイデア/グラフィック操作/ライブラリの考えを持っているなら、私はそれらを聞いていただければ幸いです。

15
Ash

最近、Tessnet2を介してTesseractを使用しました(Tessnet2は、よく覚えていれば、RémyThomasによって作成されたTesseract2.0のVS2008C++ラッパーです)。このツールに関して私が持っている少しの知識であなたを助けようとしましょう:

  • まず、前述したように、このラッパーはTesseract 2.0専用であり、 Google Codeの最新のTesseractバージョン は3.00です(コードはSource Forgeでホストされなくなりました)。定期的な寄稿者がいます:バージョン3.01かそこらが計画されているのを見ました。したがって、ナンバープレートが100%水平でない場合に役立つ可能性のあるページレイアウト分析など、最後の機能強化のメリットはありません。

  • 私はレミーにバージョン3のTessnet2.NETラッパーを要求しました。彼は今のところ何も計画していません。だから私がしたように、あなたは自分でそれをしなければならないでしょう!

  • したがって、ソースの最新バージョンを入手したい場合は、 Subversion リポジトリからダウンロードできます(すべてが 専用サイトページ に記載されています)。 Visual Studio 2008を使用している場合は、それらをコンパイルします。これらのソースには、vs2008サブフォルダーにVS2008ソリューションが含まれているためです。このソリューションはVS2008C++プロジェクトで構成されているため、C#で結果を取得するには、プロジェクトによってビルドされたtessDllで.NETP/Invokeを使用する必要があります。繰り返しになりますが、これが必要な場合は、興味のあるコード例がありますが、たとえば、C++を使用して、独自の新しいWinFormプロジェクトを実行することをお勧めします。

  • コンパイルが完了したら(大きな問題はないはずですが、いくつか会ったら教えてください、私も会ったかもしれません:-))、出力にいくつかのバイナリがあり、特定のトレーニング!繰り返しになりますが、 Tesseract 3トレーニング専用のページ があります。このトレーニングのおかげで、次のことができます。

    • 文字のセットを制限すると、句読点が自動的に削除されます(たとえば、「A」の代わりに「/-\」)

    • トレーニングを使用するときに考慮される、検出したあいまいさ(「O」の代わりに「D」、「8」の代わりに「B」など)を示します。

  • また、文字が配置されているゾーン(つまり、顔や周囲の風景がない)に画像を制限すると、Tesseractの結果が向上することもわかりました。私の場合、ウェブカメラから撮影したカード写真の特定のゾーンのみを認識する必要がありました。 、だから私はゾーンを抑制するために画像処理を使用しました。もちろんそれは長かったのですが、私の画像はさまざまなソースからのものだったので、仕方がありませんでした。最小限に抑えられた画像が得られれば、それは素晴らしいことです!

お役に立てば幸いです。遠慮なくご意見やご質問をお寄せください。

28
Emmanuel

こんにちは私はtesseractでたくさんのocrをしました、そして私もあなたの問題のいくつかを抱えていました。あなたは画像処理ツールについて尋ねます、そして私はお勧めします "unpaper" (windowsポートもあります、グーグルを参照してください)などのプログラム。実行する前に実行するのに最適です。

画像に(やや)可変の背景色がある場合は、 "textcleaner" imagemagickスクリプト エッジがエッジのないものをすべて検出して白くすることをお勧めします。

また、複雑なテキストがある場合は、 "ocropus" が役立つ可能性があります。構文は(Linuxの場合): "ocroscript rec-tess"

私の設定は1.textcleaner 2. unpaper 3.ocroupsです。

これらの3つのステップで、私はほとんど何でも読むことができます。不均一な照明で撮影された非常にぼやけた+ノイズの多い画像でも、2列の密集したテキストが非常に読みやすくなります。おそらくあなたのニーズはそれほど多くのテキストではありませんが、ステップ1)と2)はあなたに役立つかもしれません。

11
Arno Teigseth

私は現在、 ispy -のナンバープレート認識エンジンを構築しています。ナンバープレートを個々の文字に分割し、その周りに空白を入れて垂直に表示される新しい画像を作成すると、tesseractからはるかに良い結果が得られました。

W

4

O

O

M

正八胞体の大きな問題は、横の文字と数字から単語を作ろうとすることだと思います。文字と数字が混在するナンバープレートの場合、数字が文字であるか、またはその逆であると判断されます。文字を縦に並べて画像を入力すると、テキストではなく個別の文字として扱われます。

3
Sean

素晴らしい読み物です! http://robotics.usc.edu/publications/downloads/pub/635/

ナンバープレートのスキュー問題について:

問題:OCR入力がハンドヘルドカメラまたはスキャナーのように遠近法が固定されていない他のイメージングデバイスから取得されると、テキスト行が元の方向から歪む可能性があります[13]。私たちの実験に基づくと、このような回転した画像をOCRエンジンに送ると、非常に悪い結果になります。提案されたアプローチ:認識エンジンを呼び出す前に、スキュー検出プロセスが必要です。スキューが検出されると、自動回転手順が実行されてスキューが修正されてから、テキストがさらに処理されます。スキュー検出に使用するアルゴリズムを特定しているときに、[13]で説明されているような多くのアプローチが、ドキュメントにマージンがあるという仮定に基づいていることがわかりました。ただし、この仮定は、アプリケーションで常に当てはまるとは限りません。さらに、形態学的操作と投影法に基づく従来の方法は非常に遅く、カメラでキャプチャされた画像が存在すると失敗する傾向があります。この作業では、スキュー検出と自動回転のために、分岐と境界のテキスト行検索アルゴリズム(RASTアルゴリズム)[25]に基づくより堅牢なアプローチを選択します。このアルゴリズムの基本的な考え方は、各線を個別に識別し、テキストセグメント全体のスキュー角度として最高スコアの線の傾きを使用することです。スキュー角を検出した後、それに応じて回転が実行されます。私たちの実験に基づいて、このアルゴリズムは非常に堅牢で、非常に効率的で高速であることがわかりました。ただし、30を超える回転を検出できなかったという点で、1つの小さな制限がありました。また、90までの任意の角度のスキューを検出できる別のアプローチも試しました。ただし、このアプローチは、ある種の存在に基づいていました。画像上の十字の。拡張性が不足しているため、RASTアルゴリズムを使用することにしました。

2
sschrass

Tesseract 3.0xは、デフォルトで、単語ではなく、一般的な単語でもない組み合わせにペナルティを課します。 FAQは、そのようなナンセンスへの嫌悪感を高める方法を説明しています。ここで(逆に)説明されているように、まれな単語または存在しない単語のペナルティをオフにすると役立つ場合があります: http ://code.google.com/p/tesseract-ocr/wiki/FAQ#How_to_increase_the_trust_in/strength_of_the_dictionary

1
Mongoose1021

ABCocr .NETはTesseract3を使用するため、.NETで最新のコードが必要な場合に適しています。

将来の誰かがこの質問に出くわした場合、Tesseractを簡単に教えることができるjTessBoxEditorと呼ばれるツールがあります。サンプル画像を含むフォルダーにポイントし、ボタンをクリックするだけで、*。learneddataファイルが作成されます。

0