Blogブログ

2012-7-12 ITのお話

やってみたいシリーズ No.2

先日の水力発電に続きまして。

画像認識です。やってみたい。

もちろん、既に世の中にごろごろあるのはわかっています。精度はともかくとして、とにかく高速に、という目的でやってみたい。「高速に」の中には、認識対象識別データ生成や、認識開始時のローディング速度も含みます。

特に目新しい分野でも無いのですが、「素人のほうがとんでもないものを作り出す!」と信じて、完全オリジナルロジックでいってやろうかと思っています。(笑

おおよそのロジック(認識時)は以下の通り。

Step1) 画像を2値化(白黒に)
Step2) 外形を取得
Step3) 2値データ面積比率判定(!、笑)で外形合致判断
Step4) 認識対象画像の輪郭パレットを利用して必要部分のデータを比較
Step5) 分散閾値判定(!、笑)で、ライン毎の合致度判定
Step6) 全体の合致判定

まぁ、使い物になら無さそうだとは思うのですが、上記のロジックで以下を目指したいです。

==
・スマホで撮った写真にメモをする。
・以降、対象をスマホで撮影するたびにそのメモが表示される
==

現時点アイデアをメモ代わりにもう少し詳しく書いておきますー。

画像認識の「画」の字も知らない素人の発言なので、おいおいおい、というのは指摘お願いします。
#と言っても相変わらず、本 Blog にはコメントできないのです。

Step1) 画像を2値化(白黒に)
・入力画像の周囲(4本の線)を Gray Scale ベースで積算し、128 を閾値として、ベースの白黒判定
・Gray Scale で、ベース判定結果と凸合し、2値画像を生成

Step2) 外形を取得
・Step1) の結果でルックアップテーブルを作成

Step3) 2値データ面積比率判定(!、笑)で外形合致判断
・Step2) と同時に、2値ベースで、外形面積を算出
・ターゲット面積と合致すれば(この判定は甘く行くぜよ)、移行の判定に移行
 合致率が低すぎれば、ここでサヨナラ・・・するかなぁ。
 悩ましい。軽ければ、全体を通してしまう、というのもありだす。
・画面内で最も大きい外形要素 1つ が今回の判定対象
 これで、処理を軽くなると信じているぜよー♪

Step4) 認識対象画像の輪郭パレットを利用して必要部分のデータを比較

Step5) 分散閾値判定(!、笑)で、ライン毎の合致度判定
・(現在情報の Gray Scale 値 - ターゲット情報の Gray Scale 値)の2乗の
 和を積算して、なんちゃって分散を求める
・その際、Step1) で取得した周囲の明るさ(全体 Gray Scale 値)を利用して、
 現在画像の Gray Scale 値を補正する

Step6) 全体の合致判定
・Step5) の結果を積算して、合致度を求める
・合致度テーブルは経験則で出す想定(アバウト過ぎる?)
・OK なら元画像の位置情報込みで呼び出し元に通知

これで、画像認識できたらすげーなー。(笑