仕事の関係上詳細は書けないので、ご了承ください。
OCRを使って、画像にある数字を読み込みたいのですが、背景が画像の半分ほど占めており、なかなか数字を認識してもらえません。
id:deflation さんに教えていただいた、
* コントラスト向上
* シャープネス
* 2値化
で、ある程度は改善されました。
しかしまだ不十分な状態です。
OCRで読み込みたい数字以外の、背景部分を上手く消す方法は無いでしょうか?
画像加工ソフトPhotoshop等は使えません。プログラムに組み込んで使うためです。
読み込みたい数字以外の背景を消すアルゴリズムを教えていただくか、サイトを詳解していただけないでしょうか?
どうぞよろしくお願いいたします。
URLは必須ですが、詳しくアルゴリズムを紹介していただければ、ダミーでも大丈夫です。
この数字を読み込む処理が、定型的背景パターンの上にある数字を読み込むものだったら、定型的背景パターンを軽減するような処理をしてはどうでしょうか。
背景を白や灰色に単純化できれば、数字部分がまだら模様になっていてもコントラストを調整したり、二値化したりすれば、何とかなりませんか。
http://kyle-in-jp.blogspot.com/2008/06/jmagick_29.html
http://imagingsolution.blog107.fc2.com/blog-entry-246.html
http://www2.lint.ne.jp/~lrc/im_edit.htm
また読み取りたい数字と同色でランダムに背景に色がついている場合には単なる画像処理ではなくて、あり得ないゴミやパターンを除去するような処理が必要と思います。OCRの処理にはそうした処理が含まれていると思います。漢字や「・」「,」「.」「、」「。」などがなく、0~9だけで、ほぼ数字の大きさも統一がとれ、数字の位置も決まっていることがはっきりしているのなら、そのように扱ってはいかがでしょうか。
もともとの画像が機械読み取りを防止するために加工された画像ならば、それを読み取る工夫をするのは好ましくないし、おそらく加工処理の腕を破るのは難しいでしょう。
なるほど。一つアイデアが増えました。上司と相談します。
他にもアイデアやアルゴリズムをご存知のかたよろしくお願いいたします。
この数字を読み込む処理が、定型的背景パターンの上にある数字を読み込むものだったら、定型的背景パターンを軽減するような処理をしてはどうでしょうか。
背景を白や灰色に単純化できれば、数字部分がまだら模様になっていてもコントラストを調整したり、二値化したりすれば、何とかなりませんか。
http://kyle-in-jp.blogspot.com/2008/06/jmagick_29.html
http://imagingsolution.blog107.fc2.com/blog-entry-246.html
http://www2.lint.ne.jp/~lrc/im_edit.htm
また読み取りたい数字と同色でランダムに背景に色がついている場合には単なる画像処理ではなくて、あり得ないゴミやパターンを除去するような処理が必要と思います。OCRの処理にはそうした処理が含まれていると思います。漢字や「・」「,」「.」「、」「。」などがなく、0~9だけで、ほぼ数字の大きさも統一がとれ、数字の位置も決まっていることがはっきりしているのなら、そのように扱ってはいかがでしょうか。
もともとの画像が機械読み取りを防止するために加工された画像ならば、それを読み取る工夫をするのは好ましくないし、おそらく加工処理の腕を破るのは難しいでしょう。
詳しい解説ありがとうございます。
紹介してくださったサイトを参考にいたします。
>漢字や「・」「,」「.」「、」「。」などがなく、0~9だけで、
>ほぼ数字の大きさも統一がとれ、数字の位置も決まっていることがはっきりしている
だいたいその通りでございます。上司と相談します。
他にもアイデアやアルゴリズムをご存知のかたよろしくお願いいたします。
OCR用のライブラリを買って、それを使うだけにすればよいと思いますが・・。
WEBとかでも、アルファベットや数字の崩れたものに背景が重なってるものを
自動で認識して自動投稿するようなライブラリがすでにありますよ。
>OCRで読み込みたい数字以外の、背景部分を上手く消す方法は無いでしょうか?
輪郭だけを抽出とかして、あとはごみを消去
数字とわかってる場合は、パターン認識で判断していくとかです。
グラフィック処理系もライブラリを使うのが早いです。
OCRライブラリは、50万円ほどするものをすでに評価版で試しておりますが、
満足のいく結果は得られておりません。
ライブラリをもっと使いこなせれば精度が上がるのかもしれませんが。
詳しい解説ありがとうございます。
紹介してくださったサイトを参考にいたします。
>漢字や「・」「,」「.」「、」「。」などがなく、0~9だけで、
>ほぼ数字の大きさも統一がとれ、数字の位置も決まっていることがはっきりしている
だいたいその通りでございます。上司と相談します。
他にもアイデアやアルゴリズムをご存知のかたよろしくお願いいたします。