画像の畳み込み
カーネル(小さな重みの表)を 1 画素ずつずらして積和をとります。横線より上が出力で下が入力です。係数は上下にドラッグして変えられます。1 次元の原理は「畳み込み」のページにあります。
画像
画素出力 —
速さ
1 秒に進む画素数。ゆっくり 5・ふつう 900・速く 16000
比較用の非線形フィルタ(畳み込みでない)
n 大きさ
カーネルの幅(奇数)
画素
n 大きさ
メディアンの窓の幅
画素
σ 標準偏差
ぼけの広がり。±3σ で打ち切る
画素
k 強さ
強調の度合い
↕ 係数を上下にドラッグ
畳み込み
動作原理と式
2 次元の畳み込み
- 入力の画像
- カーネル(点像分布関数)
- 出力の画像
- 行・列
- 出力ごとに集める: 180° 回したカーネルを重ねて積和をとる(式 24-3)[1]
- 入力ごとに配る: 入力の値を掛けたカーネルを出力へ足し込む(図 24-14)[1]。配り終えると同じ結果
- 1 次元の原理: 畳み込み
- 係数の和 1 → 明るさを保つ。和 0 → 平らな所が 0
カーネルの例
| カーネル | 係数 | 出典 |
|---|---|---|
| 恒等(デルタ関数) | 中央だけ 1 | 図 24-4 a[1] |
| 円形ぼけ | 円の中で一定(和 1) | 図 24-3 a[1] |
| ガウシアン | (±3σ で打ち切り) | 図 24-3 b[1] |
| エンボス | 中央 1・右下 −1 | 図 24-4 b[1] |
| エッジ検出 | 中央 1・周囲 −1/8 | 図 24-4 c[1] |
| 鮮鋭化 | 中央 ・周囲 | 図 24-4 d[1] |
| アンシャープマスク | [6] | |
| Sobel | [4] |
- 円形ぼけ・ガウシアン・モーションブラーは点像分布関数(PSF)。レンズの点像: カメラレンズ
アンシャープマスク
分離可能なカーネル
- 横方向に 1 次元の畳み込み → 縦方向に 1 次元の畳み込み(式 24-1)[1]
- のカーネル: 1 画素あたりの積和 回 → 回
- 円対称で分離可能なのはガウシアンだけ[1]
- 1 次元のカーネル = FIR フィルタ の係数
相関
- カーネルを反転せずに重ねる
- CNN の「畳み込み」は多くが相関(式 9.6)[3]
- 点対称のカーネル(平均化・ガウシアン)では同じ結果。Sobel・エンボス・平行移動では向きが逆
周波数で見る
- 2 次元の DFT: 行ごとに FFT → 列ごとに FFT[1]
- ゼロ埋めせずに掛けると巡回畳み込み(端の処理 = 周期)[1]
- はカーネルの MTF。ガウシアンの MTF もガウス関数(図 25-1)[2]
- 大きいカーネルでは FFT が速い(512 × 512 の画像に 50 × 50 で約 20 倍)[1]
- DFT の高速な計算: FFT
非線形のフィルタ
このツールの設定
- 画像: 256 × 192 のグレースケール(Rec. 709 の重み)
- テスト画像: 64 × 64 の区画 12 個(点と線・縞・ジーメンススター・ゾーンプレート・ノイズ・文字など)
- 端の処理: 延長・ゼロ・折り返し(端の画素も写す)・周期[5]
- 係数の和 0 のカーネル: 出力 0 を灰色で表示(正は明・負は暗)
- ガウシアン: ±3σ で打ち切って和を 1 に
- 円形ぼけ: マスが円に入る割合を係数に(8 × 8 の点で数える)
- 分離可能なカーネル: 横 → 縦の 2 回で計算
- 画像の表示: 線より上が出力で下が入力(「配る」では途中の値)
- 係数と窓の計算: 大きいカーネルは中央 7 × 7 だけ表示。係数は 1/8 刻み
- メディアンの窓: 3〜7
- 月面: NASA SVS の CGI Moon Kit のカラーマップを切り抜いてグレースケールに[8]
出典
- 集める見方と配る見方(図 24-14)・PSF の例(図 24-3)・3 × 3 のカーネル(図 24-4)・分離可能なカーネル(式 24-1)・2 次元の畳み込み(式 24-3)・FFT による畳み込みS. W. Smith, The Scientist and Engineer’s Guide to Digital Signal Processing, California Technical Publishing, 1997, ch. 24 Linear Image Processing
- PSF と MTF(図 25-1)・線像と縁の応答(図 25-3)・モルフォロジーS. W. Smith, The Scientist and Engineer’s Guide to Digital Signal Processing, California Technical Publishing, 1997, ch. 25 Special Imaging Techniques
- 相互相関と畳み込みの呼び分け(9.1 節・式 9.6)I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning, MIT Press, 2016, ch. 9 Convolutional Networks
- Sobel の 3 × 3 の勾配の演算子I. Sobel, “History and Definition of the Sobel Operator,” 2014(1968 年の講演 “An Isotropic 3×3 Image Gradient Operator” の記録)
- 端の処理(reflect・constant・nearest・wrap)SciPy, scipy.ndimage.convolve
- アンシャープマスクscikit-image, skimage.filters.unsharp_mask(M. Petrou and C. Petrou, Image Processing: The Fundamentals, 2nd ed., Wiley, 2010, p. 357 を引く)
- メディアンSciPy, scipy.ndimage.median_filter
- 月面の画像E. Wright, CGI Moon Kit, NASA's Scientific Visualization Studio, 2019