By Victor Powell
画像カーネルは、ぼかし、シャープ、輪郭、エンボスなどの Photoshop や Gimp で見られるような効果を適用するために使用する小さなマトリクスです。 また、機械学習では、画像の最も重要な部分を決定するための技術である「特徴抽出」にも使用されます。 この文脈では、このプロセスはより一般的に「畳み込み」(畳み込みニューラルネットワークを参照)と呼ばれます。
それらがどのように機能するかを見るために、まずモノクロ画像を検査しましょう。 左側の行列は 0 から 255 までの数字を含んでおり、それぞれが顔の写真の 1 ピクセルの明るさに対応しています。
では、次の 3×3 {{selectedKernel}} カーネルを上からの顔の画像に適用することを見ていきましょう。
以下では、左の画像内のピクセルの各 3×3 ブロックについて、それぞれのピクセルにカーネルの対応するエントリを掛け、その合計を取っています。 その合計が右の画像の新しい画素になります。
この処理の微妙な点は、イメージのエッジに沿って何を行うかです。 例えば、入力画像の左上隅には3つの近傍領域しかない。 これを修正する 1 つの方法は、新しい画像を同じサイズに保ちながら、元の画像でエッジ値を 1 つ拡張することです。 このデモでは、代わりにそれらの値を黒くして無視しています。
ここにあるプレイグラウンドでは、さまざまなカーネル マトリックスを選択して、それらが元のイメージにどのように影響するかを見たり、独自のカーネルを構築したりすることができます。
シャープカーネルは、隣接するピクセル値の差異を強調することができます。
ぼかしカーネルは、隣接するピクセル値の差を強調しません。
エンボスカーネル(ソベルカーネルと似ていて同じ意味で使われることがあります)は、ある方向のピクセル差を強調し、深さの錯覚を与えるものです。 この場合、左上から右下への線に沿った方向です。
インデントカーネルは画像を変化させません。
カスタムカーネルは、あなたが作るものなら何でもです。
ソベルカーネルは、特定の方向に隣接するピクセル値の差のみを表示するために使用されます。 同じ強度に近い隣接ピクセルの隣のピクセルは新しいイメージで黒く表示され、強い違いのある隣接ピクセルの隣のピクセルは白く表示されます。 Photoshop でも、フィルタ -> その他 -> カスタム…
を実行することにより、独自のカスタム フィルタを適用することができます。