2013-07-16 141 views
13

私が実行している問題は、画像からテキストを抽出することです。このために私はTesseract v3.02を使用しました。私がテキストを抽出しなければならないサンプル画像は、メーターの読みに関連しています。それらのうちのいくつかは、シートの背景がしっかりしていて、その中にはLEDディスプレイがあります。 私はソリッドシートバックグラウンドのデータセットを訓練しました。その結果はいくつか効果的です。Tesseract OCRによる7セグメント表示のテキスト検出

今私が持っている主な問題は、Tesseractによって認識されないLED/LCDバックグラウンドを持つテキストイメージです。このため、トレーニングセットは生成されません。

誰もが7つのセグメントディスプレイ(LCD/LEDバックグラウンド)でたTesseractの使用方法についての正しい方向に私を導くか、私はたTesseractの代わりに使用することができ、他の選択肢があることができます。

LED background image 1 LED background image 2 Meter 1 with solid sheet background enter image description here enter image description here

+2

"私はソリッドシートの背景のためのデータセットを訓練しました。"あなたはこれをどのように達成したかを教えてください。 –

答えて

4

これは、画像前処理作業のように思えます。 Tesseractはそのイメージをすべて白黒テキストのビットマップ形式にすることを本当に好むでしょう。そうでないものを与えると、それをその形式に変換するのに最善を尽くします。これを行う方法はそれほど賢明ではありません。いくつかの画像操作ツール(私はimagemagickが好きである)を使用して、画像をtesseractの満足度にさらに増やす必要があります。最初の簡単なパスは、小さな半径のガウスのぼかしを行うことです。閾値はかなり低い値です(黒だけを維持しようとしているので、15%が正しいと思われます)。次にイメージを反転させます。

ハード部分は、どの前処理タスクを行うかを知るようになります。あなたが扱っているディスプレイの種類を教えてくれるメタデータがあれば、素晴らしいです。もしそうでなければ、画像の色のヒストグラムを見て、テキストが黒で白であるのか黒であるのかを少なくとも突き止めることができると思う。これらが唯一のシナリオである場合、白黒は常に堅実な背景であり、黒色は常に7セグメント表示です。もしそうでなければ、あなたは賢明でなければならないでしょう。幸運にも、あなたが思いついたことを私たちに知らせてください。あなたには、いくつかの前処理機能を備えた7つのセグメントのフォントやPythonスクリプトのために訓練されたデータをダウンロードすることができますがあり

https://github.com/arturaugusto/display_ocr

+0

http://stackoverflow.com/questions/9361213/7-segment-display-ocr?rq=1このstackoverflow質問には、OCRから独立した7セグメントを読み取るためのcスクリプトへのリンクがあります。おそらく一見価値があるでしょう。 – Mongoose1021

+0

ありがとう、私はそれを更新します。 – yunas

+0

私はGPUImageLibrary https://github.com/BradLarson/GPUImageを使用しています。あなたと同じようにしました。私はガウスのぼかしを適用し、反転させるのではなく、ぼかした画像を鮮明にし、それがある程度は機能したが、私が問題の位置4に追加した画像のガウスに与えました。それは失敗します...どのような種類のフィルタを適用する必要がありますか? – yunas

1

は、このプロジェクトを見てみましょう。