フィルタ処理とは?
フィルタ処理は、画像の各ピクセルとその周辺ピクセルに対して畳み込み演算を行うことで、 画像を変換する基本的な画像処理技術です。
平滑化(ぼかし)、シャープ化、エッジ検出など、さまざまな処理に使われます。
カーネル(フィルタ)とは?
カーネルは、畳み込み演算に使用する小さな行列です。
通常、3×3や5×5のサイズが使われます。
カーネルの各要素の値によって、画像にどのような処理を施すかが決まります。
平滑化カーネル(平均値フィルタ)
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
すべて同じ重みで周辺ピクセルの平均を取る
畳み込み演算のプロセス
畳み込み演算は、以下の手順で行われます:
ステップ1: カーネルを画像上に配置
画像の一部
120
130
125
128
122
135
140
138
142
136
145
150
148
152
147
138
144
146
150
142
132
136
140
138
135
青い領域: カーネルが重なる3×3範囲
赤い枠:
カーネルの中心位置(計算結果が格納される場所)
×
カーネル(3×3)
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
ステップ2: 要素ごとの積を計算して合計
$$\begin{aligned} \text{新しい値} &= (120 \times \frac{1}{9}) +
(130 \times \frac{1}{9}) + (125 \times \frac{1}{9}) \\ &\quad +
(135 \times \frac{1}{9}) + (140 \times \frac{1}{9}) + (138 \times
\frac{1}{9}) \\ &\quad + (145 \times \frac{1}{9}) + (150 \times
\frac{1}{9}) + (148 \times \frac{1}{9}) \\ &= \frac{1231}{9}
\approx 136.8 \end{aligned}$$
- 画像の各ピクセル値とカーネルの対応する値を掛け算
- 9つの積を合計する
- この値が中心ピクセル(赤枠)の新しい値になる
- カーネルを1ピクセルずつ移動させて全画像に適用
さまざまなフィルタの種類
カーネルの値を変えることで、さまざまな効果を得ることができます。
カーネル
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
$$K = \frac{1}{9}\begin{bmatrix}1 & 1 & 1\\1 & 1 & 1\\1 & 1 &
1\end{bmatrix}$$
平均値フィルタ:
周辺ピクセルの平均値を取ることでノイズ除去や平滑化を行います。
ガウシアンフィルタ
ガウシアンフィルタは、最もよく使われる平滑化フィルタです。
中心からの距離に応じて重みを変えることで、より自然なぼかし効果が得られます。
平均値フィルタ
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
1/9
すべて同じ重み
ガウシアンフィルタ
1/16
2/16
1/16
2/16
4/16
2/16
1/16
2/16
1/16
中心ほど重みが大きい
まとめ
フィルタ処理は画像処理の基本となる重要な技術です。
重要なポイント
-
畳み込み演算:
カーネルを画像上でスライドさせて各位置で積和演算
- カーネル: 小さな行列で、処理の内容を決定
-
平均値フィルタ: 周辺ピクセルの平均でノイズ除去
-
ガウシアンフィルタ:
中心に重みを置いた自然な平滑化
-
シャープ化:
中心と周辺の差を強調してエッジを際立たせる
- 応用: この技術はCNNなど深層学習の基礎