infoMore than 5 years have passed since last update.
3x3 畳み込みフィルタ 結果画像
Last updated at Posted at 2017-05-30
畳み込みフィルタで、フィルタの重みによって、画像がどう変わるかを見比べられる形でまとめました。参考になれば幸いです。
背景
- NNを自前で実装できる程度に理解しようとしています。
- Convolution NNについて理解を深めていくにあたり、フィルタの重みを変えると、変換後の画像がどう変わるのか、見比べれる形でまとめたいと思ってました。
元画像
|
|
|
| 0.00 |
0.00 |
0.00 |
| 0.00 |
1.00 |
0.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:0.0 |
👁 01_01.png
|
明るさ変換
明るく。 中心の値を1.0 より大きい値に
|
|
|
| 0.00 |
0.00 |
0.00 |
| 0.00 |
1.50 |
0.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:0.0 |
👁 01_02.png
- 明るくなる。
- 単純に輝度を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 |
👁 01_03.png
重み値合計 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 |
👁 02_01.png
|
- 比較用に原画 と フィルタ画像を並べている。 左が原画 右がフィルタ後の画像
- 並べると ぼかしの効果がわかる。
中心と 8近傍で ほぼ同値
|
|
|
| 0.11 |
0.11 |
0.11 |
| 0.11 |
0.12 |
0.11 |
| 0.11 |
0.11 |
0.11 |
| Bias:0.0 |
👁 02_02.png
|
- 先の4近傍に比べ、ぼかし効果が強まっているのが判る。(左下の髪のあたりが特に)
4近傍に対し中心値を大きくする
|
|
|
| 0.00 |
0.10 |
0.00 |
| 0.10 |
0.60 |
0.10 |
| 0.00 |
0.10 |
0.00 |
| Bias:0.0 |
👁 02_03.png
|
中心値を少し小さく & 4近傍→8近傍
|
|
|
| 0.05 |
0.10 |
0.05 |
| 0.10 |
0.40 |
0.10 |
| 0.05 |
0.10 |
0.05 |
| Bias:0.0 |
👁 02_04.png
|
- 中心値と近傍値の比率で、ぼかし加減を調節できるみたい。
エッジ強調。 中心は正数 近傍は負数 合計は1.0
|
|
|
| 0.00 |
-0.20 |
0.00 |
| -0.20 |
1.80 |
-0.20 |
| 0.00 |
-0.20 |
0.00 |
| Bias:0.0 |
👁 02_05.png
|
値を大きくした場合
|
|
|
| 0.00 |
-1.00 |
0.00 |
| -1.00 |
5.00 |
-1.00 |
| 0.00 |
-1.00 |
0.00 |
| Bias:0.0 |
👁 02_06.png
|
さらに倍に
|
|
|
| 0.00 |
-2.00 |
0.00 |
| -2.00 |
10.00 |
-2.00 |
| 0.00 |
-2.00 |
0.00 |
| Bias:0.0 |
👁 02_07.png
|
さらに倍ぷっしゅ
|
|
|
| 0.00 |
-4.00 |
0.00 |
| -4.00 |
20.00 |
-4.00 |
| 0.00 |
-4.00 |
0.00 |
| Bias:0.0 |
👁 02_08.png
|
エンボス効果。 重みに傾きをつける。 合計は1.0
① ↑ 方向
|
|
|
| -1.00 |
-2.00 |
-1.00 |
| 0.00 |
1.00 |
0.00 |
| 1.00 |
2.00 |
1.00 |
| Bias:0.0 |
👁 03_01.png
|
② ↗ 方向
|
|
|
| 0.00 |
-1.00 |
-2.00 |
| 1.00 |
1.00 |
-1.00 |
| 2.00 |
1.00 |
0.00 |
| Bias:0.0 |
👁 03_02.png
|
③ → 方向
|
|
|
| 1.00 |
0.00 |
-1.00 |
| 2.00 |
1.00 |
-2.00 |
| 1.00 |
0.00 |
-1.00 |
| Bias:0.0 |
👁 03_03.png
|
④ ↘ 方向
|
|
|
| 2.00 |
1.00 |
0.00 |
| 1.00 |
1.00 |
-1.00 |
| 0.00 |
-1.00 |
-2.00 |
| Bias:0.0 |
👁 03_04.png
|
⑤ ↓ 方向
|
|
|
| 1.00 |
2.00 |
1.00 |
| 0.00 |
1.00 |
0.00 |
| -1.00 |
-2.00 |
-1.00 |
| Bias:0.0 |
👁 03_05.png
|
⑥ ↙ 方向
|
|
|
| 0.00 |
1.00 |
2.00 |
| -1.00 |
1.00 |
1.00 |
| -2.00 |
-1.00 |
0.00 |
| Bias:0.0 |
👁 03_06.png
|
⑦ ← 方向
|
|
|
| -1.00 |
0.00 |
1.00 |
| -2.00 |
1.00 |
2.00 |
| -1.00 |
0.00 |
1.00 |
| Bias:0.0 |
👁 03_07.png
|
⑧ ↖ 方向
|
|
|
| -2.00 |
-1.00 |
0.00 |
| -1.00 |
1.00 |
1.00 |
| 0.00 |
1.00 |
2.00 |
| Bias:0.0 |
👁 03_08.png
|
- 向きで画像の印象がだいぶ変わる。
- 絵のタッチが変わったようにも見えなくもない。
- 画調変換ではこのあたりのフィルタが使われてるのかな。
エッジ抽出。 重み合計 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 |
👁 04_01.png
|
値を倍に
|
|
|
| 0.00 |
-0.50 |
0.00 |
| -0.50 |
2.00 |
-0.50 |
| 0.00 |
-0.50 |
0.00 |
| Bias:0.0 |
👁 04_02.png
|
さらに倍に
|
|
|
| 0.00 |
-1.00 |
0.00 |
| -1.00 |
4.00 |
-1.00 |
| 0.00 |
-1.00 |
0.00 |
| Bias:0.0 |
👁 04_03.png
|
8近傍 合計は0.0
|
|
|
| -0.25 |
-0.50 |
-0.25 |
| -0.50 |
3.00 |
-0.50 |
| -0.25 |
-0.50 |
-0.25 |
| Bias:0.0 |
👁 05_01.png
|
|
|
|
| -0.50 |
-1.00 |
-0.50 |
| -1.00 |
6.00 |
-1.00 |
| -0.50 |
-1.00 |
-0.50 |
| Bias:0.0 |
👁 05_02.png
|
輪郭強調 中心と近傍1つ
① ↑
|
|
|
| 0.00 |
-1.00 |
0.00 |
| 0.00 |
1.00 |
0.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:0.0 |
👁 05_03.png
|
② →
|
|
|
| 0.00 |
0.00 |
0.00 |
| 0.00 |
1.00 |
-1.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:0.0 |
👁 05_06.png
|
③ ↓
|
|
|
| 0.00 |
0.00 |
0.00 |
| 0.00 |
1.00 |
0.00 |
| 0.00 |
-1.00 |
0.00 |
| Bias:0.0 |
👁 05_04.png
|
④ ←
|
|
|
| 0.00 |
0.00 |
0.00 |
| -1.00 |
1.00 |
0.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:0.0 |
👁 05_05.png
|
重みに方向を持たせる ↑方向
|
|
|
| -0.20 |
-0.20 |
-0.20 |
| 0.00 |
0.00 |
0.00 |
| 0.20 |
0.20 |
0.20 |
| Bias:0.0 |
👁 06_01.png
|
重みの傾きを増した場合
|
|
|
| -1.00 |
-1.00 |
-1.00 |
| 0.00 |
0.00 |
0.00 |
| 1.00 |
1.00 |
1.00 |
| Bias:0.0 |
👁 06_02.png
|
傾きをさらに増した場合
|
|
|
| -2.00 |
-2.00 |
-2.00 |
| 0.00 |
0.00 |
0.00 |
| 2.00 |
2.00 |
2.00 |
| Bias:0.0 |
👁 06_03.png
|
傾きの方向を変える →
|
|
|
| 1.00 |
0.00 |
-1.00 |
| 1.00 |
0.00 |
-1.00 |
| 1.00 |
0.00 |
-1.00 |
| Bias:0.0 |
👁 07_03.png
|
方向 ↓
|
|
|
| 1.00 |
1.00 |
1.00 |
| 0.00 |
0.00 |
0.00 |
| -1.00 |
-1.00 |
-1.00 |
| Bias:0.0 |
👁 07_01.png
|
方向 ←
|
|
|
| -1.00 |
0.00 |
1.00 |
| -1.00 |
0.00 |
1.00 |
| -1.00 |
0.00 |
1.00 |
| Bias:0.0 |
👁 07_02.png
|
ソーベル フィルタ (時計回り)
① ↑ 方向
|
|
|
| -1.00 |
-2.00 |
-1.00 |
| 0.00 |
0.00 |
0.00 |
| 1.00 |
2.00 |
1.00 |
| Bias:0.0 |
👁 08_01.png
|
② ↗ 方向
|
|
|
| 0.00 |
-1.00 |
-2.00 |
| 1.00 |
0.00 |
-1.00 |
| 2.00 |
1.00 |
0.00 |
| Bias:0.0 |
👁 08_02.png
③ → 方向
|
|
|
| 1.00 |
0.00 |
-1.00 |
| 2.00 |
0.00 |
-2.00 |
| 1.00 |
0.00 |
-1.00 |
| Bias:0.0 |
👁 08_03.png
|
④ ↘ 方向
|
|
|
| 2.00 |
1.00 |
0.00 |
| 1.00 |
0.00 |
-1.00 |
| 0.00 |
-1.00 |
-2.00 |
| Bias:0.0 |
👁 08_04.png
|
⑤ ↓ 方向
|
|
|
| 1.00 |
2.00 |
1.00 |
| 0.00 |
0.00 |
0.00 |
| -1.00 |
-2.00 |
-1.00 |
| Bias:0.0 |
👁 08_05.png
|
⑥ ↙ 方向
|
|
|
| 0.00 |
1.00 |
2.00 |
| -1.00 |
0.00 |
1.00 |
| -2.00 |
-1.00 |
0.00 |
| Bias:0.0 |
👁 08_06.png
|
⑦ ← 方向
|
|
|
| -1.00 |
0.00 |
1.00 |
| -2.00 |
0.00 |
2.00 |
| -1.00 |
0.00 |
1.00 |
| Bias:0.0 |
👁 08_07.png
|
⑧ ↖ 方向
|
|
|
| -2.00 |
-1.00 |
0.00 |
| -1.00 |
0.00 |
1.00 |
| 0.00 |
1.00 |
2.00 |
| Bias:0.0 |
👁 08_08.png
|
畳み込みフィルタ 重み値合計 -1.0 ネガポジ反転
|
|
|
| 0.00 |
0.00 |
0.00 |
| 0.00 |
-1.00 |
0.00 |
| 0.00 |
0.00 |
0.00 |
| Bias:255.0 |
👁 09_01.png
|
感想
- グレースケール画像 + 3x3フィルタ のシンプルな組み合わせでも、フィルタを通しての表現が幅広い事を体感した。
- フィルタを組み合わせ検出器をつくる作業は、機械に任せた方がいいと体感した。
48Go to list of users who liked
36
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up