こんにちは、FullMoonです。
質問なんですが画像を解析して一致しているかを確認する
プログラムを作ってみようと考えています。
具体的には登録印鑑の画像データベースに蓄積されている
印鑑の画像と実際に比較する画像を解析して印鑑が一致し
ているかどうか、欲あらば何%以上の確立で同じですと表
示するような感じです。同じ名字でもフォントが違えば
違う印鑑であると判断したいのです。なお比較する画像に
は白紙上ではなく書類の上での印鑑なのでまずは印鑑部分
だけの抽出が必要になると思いますが。
私は
①比較画像から印鑑部分だけを抽出して2つの画像を手動
でもいいから重ねる
②抽出した後にエッジ検出するなどして閾値にて比較する
(なんらかの数字を出して比較したい)
の2通りで考えているのですが皆さんならばどのように作
るのかを教えていただきたいです。アルゴリズムだけでな
く、もしC言語以外のほうが作りやすいというアドバイスが
あればそういった情報も教えていただきたいです。
環境はWindowsで、C言語でWindowsアプリ的に作りたいと
思っています。なので今のところマイクロソフトが無料で
提供しているVisual Studio 2010 Expressで作成しよう
と思います。
私はC言語がどれくらい使えるかはうまく
説明できませんがLinuxで作っていたので初心者はクリア
して中級になるかならないという感じだと思います。あ
まり具体的でなくすみません。
よろしくお願いします。
印鑑などの一致の確認
Re:印鑑などの一致の確認
まずは輝度で印鑑部分(朱色?に近い箇所)とそうでない部分に分けてはいかがでしょうか?
そのうえでパターンマッチング処理で登録されてある印鑑データとの一致率を求める…というのでいけそうな気がします。
詳しいアルゴリズムなんかはググるなり書籍を求めるなりして勉強してくださいm(_ _)m
そのうえでパターンマッチング処理で登録されてある印鑑データとの一致率を求める…というのでいけそうな気がします。
詳しいアルゴリズムなんかはググるなり書籍を求めるなりして勉強してくださいm(_ _)m
Re:印鑑などの一致の確認
昔信号処理を勉強していたときにパターン認識をした時
ニューラルネットワーク
テンプレートマッチング(これもニューラルネットワークの一部かも)
KL展開(KL変換)
での画像認識をやっていました
アルゴリズムは
ニューラルネットワークは
ttp://www-ailab.elcom.nitech.ac.jp/lecture/neuro/menu.html
KL変換については
ttp://hooktail.org/computer/index.php?KL%C5%B8%B3%AB
信号処理についてはアルゴリズムが複雑なのでここで記述するより
見たほうが早いかと
自分はwinAPIは苦手なのでVisualC#.NETを使っていました
GUIの部分がはるかに楽ですので,画像処理の部分のみを考えれば良いという点で便利です
同じ理由でBisual Basicなんかも使ってらっしゃる方はいるようです
ニューラルネットワーク
テンプレートマッチング(これもニューラルネットワークの一部かも)
KL展開(KL変換)
での画像認識をやっていました
アルゴリズムは
ニューラルネットワークは
ttp://www-ailab.elcom.nitech.ac.jp/lecture/neuro/menu.html
KL変換については
ttp://hooktail.org/computer/index.php?KL%C5%B8%B3%AB
信号処理についてはアルゴリズムが複雑なのでここで記述するより
見たほうが早いかと
自分はwinAPIは苦手なのでVisualC#.NETを使っていました
GUIの部分がはるかに楽ですので,画像処理の部分のみを考えれば良いという点で便利です
同じ理由でBisual Basicなんかも使ってらっしゃる方はいるようです
Re:印鑑などの一致の確認
書類の形式が全て同じ物ならば場所を指定して抜き出してしまうのも有だと思いますが、汎用性がなくなりますよね・・・。
抜き出した後は私なら
色の輝度で2値化、ノイズ除去、位置を揃える、回転などの正規化をしてデータとのマッチングでしょうか。
登録印鑑データベースのデータはどのようにデータがあるんでしょうか?
同じ名字でもフォントが違えば異なるデータとして存在はするようですが、印鑑と言っても押したときのインクの付き具合による印字の太さや傾きなどもありますので。
1つのデータに対して数パターン用意されているならばマッチング手法にhttp://www5.ocn.ne.jp/~shinya91/csm/332csm_knn.htmlなどどうでしょう。
抜き出した後は私なら
色の輝度で2値化、ノイズ除去、位置を揃える、回転などの正規化をしてデータとのマッチングでしょうか。
登録印鑑データベースのデータはどのようにデータがあるんでしょうか?
同じ名字でもフォントが違えば異なるデータとして存在はするようですが、印鑑と言っても押したときのインクの付き具合による印字の太さや傾きなどもありますので。
1つのデータに対して数パターン用意されているならばマッチング手法にhttp://www5.ocn.ne.jp/~shinya91/csm/332csm_knn.htmlなどどうでしょう。
Re:印鑑などの一致の確認
OpenCVを使った画像比較を手段として、この辺参考にならないでしょうか。
http://wiki.livedoor.jp/mikk_ni3_92/d/O ... 9%28SAD%29
http://wiki.livedoor.jp/mikk_ni3_92/d/O ... 9%28SSD%29
http://wiki.livedoor.jp/mikk_ni3_92/d/O ... 9%28SAD%29
http://wiki.livedoor.jp/mikk_ni3_92/d/O ... 9%28SSD%29
Re:印鑑などの一致の確認
やはり、みなさん私なんかよりはるかに知識がありますね。
皆さんの意見すべてが参考になります。
>バグさん
私のやりたいことと似たような考えですね。ありがとうございます。
アルゴリズムは書籍で勉強したいと思います。
>438番さん
初めて聞いたアルゴリズムなのでしっかり勉強したいと思います。
GUIについては考えてみます。
私もWinAPIは不慣れな部分が多いので。
ありがとうございました。
>やっくんさん
具体的な方法ありがとうございました。
データベースには登録印鑑の画像が保存されている状態のままなので
一度そちらも解析する必要がある感じです。
汎用性は結構必要なんですよね。特にやっくんさんも書かれていた印鑑
の太さや傾きがネックだと思われます。
まだまだ勉強してみます。
>Dixqさん
わざわざありがとうございました。
OpenCVについては私もありかな思っていましたが
使ったことがなかったので作れるかなという不安が
あったためためらっています。
そもそもWinAPIが作れるのかなと思いながらなので
まずはいろいろやってみます。
まだまだ意見がありましたらよろしくお願いします。
皆さんの意見すべてが参考になります。
>バグさん
私のやりたいことと似たような考えですね。ありがとうございます。
アルゴリズムは書籍で勉強したいと思います。
>438番さん
初めて聞いたアルゴリズムなのでしっかり勉強したいと思います。
GUIについては考えてみます。
私もWinAPIは不慣れな部分が多いので。
ありがとうございました。
>やっくんさん
具体的な方法ありがとうございました。
データベースには登録印鑑の画像が保存されている状態のままなので
一度そちらも解析する必要がある感じです。
汎用性は結構必要なんですよね。特にやっくんさんも書かれていた印鑑
の太さや傾きがネックだと思われます。
まだまだ勉強してみます。
>Dixqさん
わざわざありがとうございました。
OpenCVについては私もありかな思っていましたが
使ったことがなかったので作れるかなという不安が
あったためためらっています。
そもそもWinAPIが作れるのかなと思いながらなので
まずはいろいろやってみます。
まだまだ意見がありましたらよろしくお願いします。