果物識別 補足資料1 やりたい事 入力された画像内に映っている果物が何かを自動判別 するプログラムを組むこと 識別器 りんご です 簡単化の為の制約 テストで送られてくる画像には果物は1つしかない 果物画像の背景は単純背景 果物は{りんご, レモン, バナナ}と定義する 学習・識別器作成までの流れ 学習用画像 ・・・・ 学習器 各果物毎の 特徴 ・・・・ テスト用画像 識別器 りんご です 学習器作成 画像読み込み 学習器 画像から特徴量取得 得た特徴を何らかの変数に保存 YES 未学習の画像はあるか? NO 学習した果物クラスの平均ベクトルと 分散共分散行列を求め外部ファイルに保存 特徴ベクトル 特徴ベクトル : (赤み, 円形度) 赤み h 360 h r max 1 , 1 180 180 円形度 テスト 画像 1.0 Q0 h 360 りんご レモン バナナ 円形度 0 赤み 1.0 円形度=(4π*(面積))/(周囲長*周囲長) vectorの使い方 #include<iostream> #include<vector> int main{ 格納する要素の型を指定 vector<int> v; v.push_back(1); 格納する要素 v.push_back(2); for(int i = 0 ; i < v.size() ; i++){ 格納されている要素の個数 std::cout << v[i] << “ ”; 格納されている要素にアクセス } return 0; } 出力結果 12 果物識別 補足資料2 識別 未学習の画像はあるか? NO 学習した果物クラスの平均ベクトルと 分散共分散行列を求め外部ファイルに保存 入力したテスト画像と各クラス タとの距離で、入力された画 像がどのクラスタに分類され るかを判定する。 円形度 テスト画像 1.0 りんご レモン バナナ 0 赤み 1.0 識別作業のイメージ 平均ベクトルと分散共分散行列を求める なぜ求めるのか? テスト画像がどのクラス(りんご, レモン, バナナ)に最も近いか を判断するためにマハラノビス距離を用いる。 マハラノビス距離の算出式は以下のとおりである。 テスト画像の 特徴量空間での座標 Tx Avex dis ( x) Ty Ave y マハラノビス距離 対象クラスの分散共分散行列 の逆行列 T C xx C yx C xy C yy 対象クラスの平均ベクトル 1 Tx Avex Ty Avey 平均ベクトルと分散共分散行列を求める 前提 nは画像の番号 n n 学習で入力されたデータ: pn ( px , p y ) xは赤み, yは円形度 平均ベクトル Avex 1 Ave N y p xn n1 p n y N 分散共分散行列(Covariance Matrix) 1 N N n 1 1 N C xy n 1 N 1 N C yx n 1 N 1 N C yy n 1 N C xx C xx CM C yx C xy C yy p n x Avex p xn Avex p n x Avex p yn Avey p n y Avey p xn Avex p n y Avey p yn Avey クラス辞書作成例(数値はテキトーです) 1/3 学習したりんごのデータ:(赤み,円形度) , N = 3 平均ベクトル=(0.8 , 0.8) (0.9 , 0.7) , (0.7 , 0.8) , (0.8 , 0.9) 1 0.9 0.82 0.7 0.82 (0.8 0.8) 2 0.02 3 3 1 0.01 C xy 0.9 0.80.7 0.8 0.7 0.80.8 0.8 0.8 0.80.9 0.8 3 3 以下めんどくさいので 途中式省略 0.01 C yx 1 2 1 3 CM apple 1 2 0.02 300 C yy 3 C xx CM 1 apple 2 1 100 1 2 クラス辞書作成例(数値はテキトーです) 2/3 学習したレモンのデータ:(赤み,円形度) , N = 3 平均ベクトル=(0.6 , 0.4) (0.6 , 0.5) , (0.7 , 0.4) , (0.5 , 0.3) C xx CM 1 lemon 1 0.6 0.62 0.7 0.62 (0.5 0.6) 2 0.02 3 3 1 0.01 C xy 0.6 0.6 0.5 0.4 0.7 0.6 0.4 0.4 0.5 0.6 0.3 0.4 3 3 以下めんどくさいので 途中式省略 0.01 C yx 1 2 1 3 CM lemon 1 2 0.02 300 C yy 3 2 1 100 1 2 クラス辞書作成例(数値はテキトーです) 3/3 平均ベクトル りんご (0.8 , 0.8) レモン (0.6 , 0.4) 分散共分散行列の逆行列 CM CM 1 apple 1 lemon 2 1 100 1 2 2 1 100 1 2 識別器のアルゴリズム テスト画像読み込み 識別器 テスト画像から特徴量抽出 抽出した特徴と各クラスとの マハラノビス距離を計算 距離最小のクラスを探す 結果を表示 識別例(数値はテキトーです) 1/1 テスト画像xの特徴 (0.7, 0.9) りんごとの距離 2 1 0.7 0.8 dis apple ( x) 0.7 0.8 0.9 0.8100 1 2 0.9 0.8 dis apple ( x) 6 レモンとの距離 2 1 0.7 0.6 dislemon ( x) 0.7 0.6 0.9 0.4100 1 2 0.9 0.4 dislemon ( x) 42 dis apple ( x) dislemon ( x) なので、テスト画像xはりんごであると推測できる
© Copyright 2024 ExpyDoc