2011/12/25

パターン認識の精度を向上させる。■■■

今回は、前回の内容を用いて認証精度の向上を図ってみました。
実は、ウェーブレットの事を調べていて、別階級のウェーブレット係数は、そのままでは比較できない事、もし比較する場合には、変換作業が必要であることがわかりました。その変換作業を用いることで認証制度の向上に取り組んだわけです。

スケール係数の比較は不要

スケール係数の数値を変更して確認してみました。以下がその画像です。
※白線:無加工 ※黄線:スケール係数+0.05 ※赤線:スケール係数+0.1
スケール
この画像でわかるとおり、波形の形状には変化がなく、位置が変化したにすぎません。その為、パターン認証では不要な要素であることがわかります。

ウェーブレット係数の変換作業

まず、変換作業に使用する重みを作成しました。
これは、ウェーブレット変換する際に乗算されるsqr(1/√2=0.70710678)を各階級に応じて除算するものです。
重み
変換作業を画像で見てみると、以下の図のとおりとなります。
wbr
実際に使用するのは、黄線のように高周波成分を削除した形の物を使用するわけです。

認識精度の確認

前回のコードに上記コードを追加し、以下のコードを修正します。赤線が変更箇所です。
ちなみに、y=0から1に変更したのは、g[0]に格納されているスケール係数を排除するためです。
追加
結果を見ると、上図が、変更前で下図が、変更後のチャートです。
※赤線:基本波形 ※黄色:一番近い過去の波形 ※白線:2・3番目に近い過去の線 です。
【変更前】
変更前

【変更後】
変更
使用した結果、1番近い過去の波形及び2番目と同じ波形を導いていますが、3番目の波形が異なることがわかります。(用いるデータが悪く変化がわかりづらい。。。orz)数値的には、悪くなっていますが、パターン認識の精度は、向上した、、、はずです。^^;

その他

3か月にわたり開催されたATC2011が修了しました。参加されたみなさん、お疲れ様でした。そして、応援して頂いた皆様、期待に応えられず申し訳ありません。今年は、第1週目にほぼ敗北宣言をするような結果になってしまいました。私の力量不足が招いた結果だと思っています。しかし、ATCへの参加は、面白いですよ^^;来年は、みなさんも参加されてはいかがでしょう?世界を相手に勝負できますよ(^o^)丿それでは、良いお年を!

3 件のコメント :

alohafx さんのコメント...

重み付け関数のところで、「各階級に応じて除算する」部分だと思うのですが、 Wt=MathFloor(MathLog(index)/log2)+1;
のlog2という変数はどこで何を入れるのでしょうか?

bighope さんのコメント...

alohafxさんへ
ホントですね^^;
すっかり抜けいていました....orz
実は、グローバル領域で、
【#define log2 0.69314718】
と宣言しているのを忘れていました^^;
本来は、MathLog(2) としておけばいいのですが、計算処理を省くために、定数化していました。
ファイルを上げておきます。
でわ(^o^)丿
https://docs.google.com/open?id=0B42sh1xkCfgtOGU1ZWJhZmUtYTU3ZS00Y2FmLWJjZDctNDQzZTg4NzIyYTAz

alohafx さんのコメント...

できました。
ありがとうございました。