畳み込みフィルタで、フィルタの重みによって、画像がどう変わるかを見比べられる形でまとめました。参考になれば幸いです。
背景
- NNを自前で実装できる程度に理解しようとしています。
- Convolution NNについて理解を深めていくにあたり、フィルタの重みを変えると、変換後の画像がどう変わるのか、見比べれる形でまとめたいと思ってました。
元画像
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
1.00 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
明るさ変換
明るく。 中心の値を1.0 より大きい値に
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
1.50 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
- 明るくなる。
- 単純に輝度を1.5倍にするので、白飛びが生じている。
暗く: 中心の値を1.0 より小さい値に(0より大きい値で)
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
0.75 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
重み値合計 1.0
ぼかし効果。 中心と近傍とも正数 合計は1.0
中心と 4近傍で 同値
|
|
|
0.00 |
0.20 |
0.00 |
0.20 |
0.20 |
0.20 |
0.00 |
0.20 |
0.00 |
Bias:0.0
- 比較用に原画 と フィルタ画像を並べている。 左が原画 右がフィルタ後の画像
- 並べると ぼかしの効果がわかる。
中心と 8近傍で ほぼ同値
|
|
|
0.11 |
0.11 |
0.11 |
0.11 |
0.12 |
0.11 |
0.11 |
0.11 |
0.11 |
Bias:0.0
- 先の4近傍に比べ、ぼかし効果が強まっているのが判る。(左下の髪のあたりが特に)
4近傍に対し中心値を大きくする
|
|
|
0.00 |
0.10 |
0.00 |
0.10 |
0.60 |
0.10 |
0.00 |
0.10 |
0.00 |
Bias:0.0
中心値を少し小さく & 4近傍→8近傍
|
|
|
0.05 |
0.10 |
0.05 |
0.10 |
0.40 |
0.10 |
0.05 |
0.10 |
0.05 |
Bias:0.0
- 中心値と近傍値の比率で、ぼかし加減を調節できるみたい。
エッジ強調。 中心は正数 近傍は負数 合計は1.0
|
|
|
0.00 |
-0.20 |
0.00 |
-0.20 |
1.80 |
-0.20 |
0.00 |
-0.20 |
0.00 |
Bias:0.0
値を大きくした場合
|
|
|
0.00 |
-1.00 |
0.00 |
-1.00 |
5.00 |
-1.00 |
0.00 |
-1.00 |
0.00 |
Bias:0.0
さらに倍に
|
|
|
0.00 |
-2.00 |
0.00 |
-2.00 |
10.00 |
-2.00 |
0.00 |
-2.00 |
0.00 |
Bias:0.0
さらに倍ぷっしゅ
|
|
|
0.00 |
-4.00 |
0.00 |
-4.00 |
20.00 |
-4.00 |
0.00 |
-4.00 |
0.00 |
Bias:0.0
エンボス効果。 重みに傾きをつける。 合計は1.0
① ↑ 方向
|
|
|
-1.00 |
-2.00 |
-1.00 |
0.00 |
1.00 |
0.00 |
1.00 |
2.00 |
1.00 |
Bias:0.0
② ↗ 方向
|
|
|
0.00 |
-1.00 |
-2.00 |
1.00 |
1.00 |
-1.00 |
2.00 |
1.00 |
0.00 |
Bias:0.0
③ → 方向
|
|
|
1.00 |
0.00 |
-1.00 |
2.00 |
1.00 |
-2.00 |
1.00 |
0.00 |
-1.00 |
Bias:0.0
④ ↘ 方向
|
|
|
2.00 |
1.00 |
0.00 |
1.00 |
1.00 |
-1.00 |
0.00 |
-1.00 |
-2.00 |
Bias:0.0
⑤ ↓ 方向
|
|
|
1.00 |
2.00 |
1.00 |
0.00 |
1.00 |
0.00 |
-1.00 |
-2.00 |
-1.00 |
Bias:0.0
⑥ ↙ 方向
|
|
|
0.00 |
1.00 |
2.00 |
-1.00 |
1.00 |
1.00 |
-2.00 |
-1.00 |
0.00 |
Bias:0.0
⑦ ← 方向
|
|
|
-1.00 |
0.00 |
1.00 |
-2.00 |
1.00 |
2.00 |
-1.00 |
0.00 |
1.00 |
Bias:0.0
⑧ ↖ 方向
|
|
|
-2.00 |
-1.00 |
0.00 |
-1.00 |
1.00 |
1.00 |
0.00 |
1.00 |
2.00 |
Bias:0.0
- 向きで画像の印象がだいぶ変わる。
- 絵のタッチが変わったようにも見えなくもない。
- 画調変換ではこのあたりのフィルタが使われてるのかな。
エッジ抽出。 重み合計 0.0
- 重みの合計を 0.0 にすると、エッジ画像となる。
4近傍均等 合計は0.0
|
|
|
0.00 |
-0.25 |
0.00 |
-0.25 |
1.00 |
-0.25 |
0.00 |
-0.25 |
0.00 |
Bias:0.0
値を倍に
|
|
|
0.00 |
-0.50 |
0.00 |
-0.50 |
2.00 |
-0.50 |
0.00 |
-0.50 |
0.00 |
Bias:0.0
さらに倍に
|
|
|
0.00 |
-1.00 |
0.00 |
-1.00 |
4.00 |
-1.00 |
0.00 |
-1.00 |
0.00 |
Bias:0.0
8近傍 合計は0.0
|
|
|
-0.25 |
-0.50 |
-0.25 |
-0.50 |
3.00 |
-0.50 |
-0.25 |
-0.50 |
-0.25 |
Bias:0.0
|
|
|
-0.50 |
-1.00 |
-0.50 |
-1.00 |
6.00 |
-1.00 |
-0.50 |
-1.00 |
-0.50 |
Bias:0.0
輪郭強調 中心と近傍1つ
① ↑
|
|
|
0.00 |
-1.00 |
0.00 |
0.00 |
1.00 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
② →
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
1.00 |
-1.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
③ ↓
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
1.00 |
0.00 |
0.00 |
-1.00 |
0.00 |
Bias:0.0
④ ←
|
|
|
0.00 |
0.00 |
0.00 |
-1.00 |
1.00 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:0.0
重みに方向を持たせる ↑方向
|
|
|
-0.20 |
-0.20 |
-0.20 |
0.00 |
0.00 |
0.00 |
0.20 |
0.20 |
0.20 |
Bias:0.0
重みの傾きを増した場合
|
|
|
-1.00 |
-1.00 |
-1.00 |
0.00 |
0.00 |
0.00 |
1.00 |
1.00 |
1.00 |
Bias:0.0
傾きをさらに増した場合
|
|
|
-2.00 |
-2.00 |
-2.00 |
0.00 |
0.00 |
0.00 |
2.00 |
2.00 |
2.00 |
Bias:0.0
傾きの方向を変える →
|
|
|
1.00 |
0.00 |
-1.00 |
1.00 |
0.00 |
-1.00 |
1.00 |
0.00 |
-1.00 |
Bias:0.0
方向 ↓
|
|
|
1.00 |
1.00 |
1.00 |
0.00 |
0.00 |
0.00 |
-1.00 |
-1.00 |
-1.00 |
Bias:0.0
方向 ←
|
|
|
-1.00 |
0.00 |
1.00 |
-1.00 |
0.00 |
1.00 |
-1.00 |
0.00 |
1.00 |
Bias:0.0
ソーベル フィルタ (時計回り)
① ↑ 方向
|
|
|
-1.00 |
-2.00 |
-1.00 |
0.00 |
0.00 |
0.00 |
1.00 |
2.00 |
1.00 |
Bias:0.0
② ↗ 方向
|
|
|
0.00 |
-1.00 |
-2.00 |
1.00 |
0.00 |
-1.00 |
2.00 |
1.00 |
0.00 |
Bias:0.0
③ → 方向
|
|
|
1.00 |
0.00 |
-1.00 |
2.00 |
0.00 |
-2.00 |
1.00 |
0.00 |
-1.00 |
Bias:0.0
④ ↘ 方向
|
|
|
2.00 |
1.00 |
0.00 |
1.00 |
0.00 |
-1.00 |
0.00 |
-1.00 |
-2.00 |
Bias:0.0
⑤ ↓ 方向
|
|
|
1.00 |
2.00 |
1.00 |
0.00 |
0.00 |
0.00 |
-1.00 |
-2.00 |
-1.00 |
Bias:0.0
⑥ ↙ 方向
|
|
|
0.00 |
1.00 |
2.00 |
-1.00 |
0.00 |
1.00 |
-2.00 |
-1.00 |
0.00 |
Bias:0.0
⑦ ← 方向
|
|
|
-1.00 |
0.00 |
1.00 |
-2.00 |
0.00 |
2.00 |
-1.00 |
0.00 |
1.00 |
Bias:0.0
⑧ ↖ 方向
|
|
|
-2.00 |
-1.00 |
0.00 |
-1.00 |
0.00 |
1.00 |
0.00 |
1.00 |
2.00 |
Bias:0.0
畳み込みフィルタ 重み値合計 -1.0 ネガポジ反転
|
|
|
0.00 |
0.00 |
0.00 |
0.00 |
-1.00 |
0.00 |
0.00 |
0.00 |
0.00 |
Bias:255.0
感想
- グレースケール画像 + 3x3フィルタ のシンプルな組み合わせでも、フィルタを通しての表現が幅広い事を体感した。
- フィルタを組み合わせ検出器をつくる作業は、機械に任せた方がいいと体感した。