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

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