ICAとNNを用いた顔画像照合

MATLAB 応用講習会(A)
情報アシスタント M1 山本幸司
アウトライン
0 . イントロダクション
1 . 簡単な数値解析処理
1. 1 因数分解
1. 2 多項式の微分
1. 3 定積分
2 . 音声のディジタル信号処理
2. 1 FFTを用いた周波数解析
2. 2 実際の音声を用いた周波数解析
3 . 画像のディジタル信号処理
3. 1 画像のヒストグラム
3. 2 エッジ検出
3. 3 ノイズ除去
2009.7.29 MATLAB応用講習会(A)
0 . イントロダクション
• MATLAB応用講習会(A)の目的
1. 難しいテーマを扱わずにMATLABの利便性を感じてもらう.
2. 1を理解してもらうため,主に信号処理をテーマに演習問題を行
い,MATLABを体験してもらう.
3. 色々なテーマに触れてもらい,研究へのヒントを掴んでもらう.
資料:http://www.isc.meiji.ac.jp/~kairomou/seminar.html
2009.7.29 MATLAB応用講習会(A)
1 . 簡単な数値解析処理
• 演習問題(Sample1.m)
適当な関数を与えて,その関数の因数分解を行う.
• 演習問題(Sample2.m)
適当な関数を与えて,その微分をして,グラフに表示して
みる.
• 演習問題(Sample3.m)
適当な関数と積分区間を与えて,定積分を行う.
2009.7.29 MATLAB応用講習会(A)
2 . 音声のディジタル信号処理
• MATLAB環境におけるディジタル音声の基礎
基本的に読み込めるフォーマットは*.wavファイルである.
(少し頑張れば*.mp3も読み込むことは可能)
ディジタル音声は連続信号を,一定
の間隔でサンプリングして,さらにそ
の大きさを量子化している.
例)一般的なCD
2009.7.29 MATLAB応用講習会(A)
2.1 FFTを用いた周波数解析
• 時間領域から周波数領域へ
時間領域から周波数領域への変換は,次のようなFourier変換がよく
知られている.
上式では連続時間信号のため,離散信号には適応できない.
そこで,時間・周波数共に離散化を行い計算機でFourier変換できるよ
うに式変形をしたのがDFT(Discrete Fourier Transform)である.
2009.7.29 MATLAB応用講習会(A)
2.1 FFTを用いた周波数解析
• DFTとFFT(Fast Fourier Transform)
DFTは以下のように計算する.
FFTはDFTの冗長性(何度も同じ計算をするところ)を省き高速に演算を
することである.従って,本質的にはFFTとDFTは同じ.
2009.7.29 MATLAB応用講習会(A)
2.1 FFTを用いた周波数解析
• スペクトル構造
ナイキスト周波数で対称
直流成分からナイキスト周波数まで見れば十分
2009.7.29 MATLAB応用講習会(A)
2.1 FFTを用いた周波数解析
• 演習問題(Sample4.m)
様々な周波数の正弦波を入力して,そのスペクトルをグラ
フに表せ.
2009.7.29 MATLAB応用講習会(A)
2.2 実際の音声を用いた周波数解析
• 演習問題(Sample5.m)
基本周波数220[Hz]の実際のピアノの’La’の音声をFFT
を用いて解析して,周波数構造を観察せよ.
2009.7.29 MATLAB応用講習会(A)
3 . 画像のディジタル信号処理
• MATLAB環境におけるディジタル画像の基礎
164
163
163
163
165
165
164
163
163
163
165
163
162
161
161
161
160
159
159
160
157
156
156
157
159
一般的にグレースケール画像は8bit=256階調で量子化されている
2009.7.29 MATLAB応用講習会(A)
3 . 画像のディジタル信号処理
分解
height
• MATLAB環境におけるディジタル画像の基礎
width
MATLABで画像を読み込むと光の3原色である赤R・緑G・青BのRGB画像
として読み込まれる.各成分の値は,先ほどのグレースケール画像と同様に
8bitに量子化された値を持つ.
2009.7.29 MATLAB応用講習会(A)
3 .1 画像のヒストグラム
• ヒストグラムは,各値がいくつあるかを棒グラフに表したも
ので,横軸にデータ区間・縦軸に頻度を表している.
1
2
3
4
3
1
2
4
2
3
3
4
4
4
5
5
左の行列データに対して,1の要素をもつ数は2つ.2の要素を持つ数は
3つ.3の要素を持つ数は4つ.4の要素を持つ数は5つ.6の要素を持つ
数は2つ.したがって,ヒストグラムは右の図のようになる.
2009.7.29 MATLAB応用講習会(A)
3 .1 画像のヒストグラム
• 演習問題(Sample6.m)
次の3枚の画像のヒストグラムをMATLABで表示せよ.
ヒストグラムによりコントラストがわかる.
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• ディジタル画像におけるエッジ検出は画像の濃度変化が
大きなところを検出することである.つまり,微係数の大き
なところを探索すれば良い.
x方向(水平方向)の微分
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
水平方向の微分(垂直方向にも同様に計算)
後方微分
前方微分
対象微分
処理を行う信号はディジタル(離散信号)なので微分は差分で行う.
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• 微分フィルタ
-1
1
0
後方微分
0
-1
1
前方微分
-1
0
1
対象微分(×1/2)
• 一般に使用される微分フィルタ
0
0
0
-1
0
1
0
0
0
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• ディジタル画像へのフィルタの適応
58
62 192
54
77 221
67
75 200
入力画像
167
出力画像
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• 様々なフィルタの紹介(水平方向に対して)
-1
0
1
-1
0
1
0
0
0
-1
0
1
-2
0
2
1
-2
1
-1
0
1
-1
0
1
0
0
0
Prewitt Filter
Sobel Filter
Laplacian Filter
他にも,垂直方向に対するフィルタや斜め方向等のフィルタが多数存在す
る.また,色々な方向を組み合わせたフィルタもある.
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• 演習問題(Sample7.m)
次の画像を色々なフィルタを用いてエッジ検出せよ.
2009.7.29 MATLAB応用講習会(A)
3 .3 ノイズ除去
• デジカメ(熱雑音や暗電流)や通信経路から信号にノイズ
(雑音)がのることがある.これを除去することを試みる.
ノイズにも色々な種類があるが,ここではパルス状の
Salt&Pepper Noise(ゴマ塩状雑音)の除去を行う.
粒粒の雑音が
のっている
2009.7.29 MATLAB応用講習会(A)
3 .3 ノイズ除去
• 移動平均フィルタによるノイズ低減
1
1
1
1
1
1
1
1
1
注目画素と8近傍の値の平
均をとる.
2009.7.29 MATLAB応用講習会(A)
3 .3 ノイズ除去
• 移動平均フィルタによるノイズ低減
入力画像
58
62 62
54
77 75
67
75 68
出力画像
66
9画素の平均値を新たな値とする
2009.7.29 MATLAB応用講習会(A)
3 .3 ノイズ除去
• メディアンフィルタによるノイズ低減
メディアンフィルタは外れ値に強い(ロバスト)
パルス状の雑音は,いわば外れ値なのでメディアンフィルタはこの
雑音に強い.
12
15 23
14
18
17
16 255
12
処理領域において一つでも外
れた値があると,平均値等の処
理を取ると外れ値の影響大!
2009.7.29 MATLAB応用講習会(A)
3 .3 ノイズ除去
• メディアンフィルタによるノイズ低減
入力画像
12
15 23
14
18 12
17
16 255
出力画像
16
昇順もしくは降順な並べたときの中央の値を選択
{255, 23, 18, 17, 16, 15, 14, 12, 12}
2009.7.29 MATLAB応用講習会(A)
3 .2 エッジ検出
• 演習問題(Sample8.m)
次の画像を移動平均フィルタとメディアンフィルタを適応し
て適応後の画像を表示せよ.
2009.7.29 MATLAB応用講習会(A)
最後に...
数値解析や音声・画像のディジタル信号処理のほんの一
部に触れてもらいました.
MATLABを使用することで,CやFORTRAN,JAVAと
いった他言語に比べて圧倒的にプログラミングが簡単に
できることを実感して頂けましたか?
まだまだ色々なことができるので,MATLABで遊んでみ
て下さい.
2009.7.29 MATLAB応用講習会(A)
最後に...
• MATLABで他に何ができる?
–
–
–
–
–
–
–
–
–
–
–
制御系解析・設計
データ解析・可視化
シミュレーション
金融解析
実験・計測
信号処理
音声解析
画像・動画像解析
統計解析
生物情報系の解析
データベースアクセス
これらの内容はMATLABがサポートしてお
り,豊富な組み込み関数が用意されている.
もちろん,これ以外でも自分でプログラムを
作成すればだいたいのことができる.
‥‥‥
2009.7.29 MATLAB応用講習会(A)