3×3のカーネルを持つ7×7の行列に対するコンボリューション演算
  1. 数学において、コンボリューションとは二つの関数(fとg)に行われ第三の関数が作られる演算のことである。 コンボリューションは、信号および画像処理において最も重要な操作の 1 つです。 1次元(音声処理など)、2次元(画像処理など)、または3次元(ビデオ処理)で動作します。
  2. 画像処理では、コンボリューションは、画像全体にわたって各画素とその局所近傍にカーネルを適用して画像を変換するプロセスです。 カーネルは値の行列で、そのサイズと値がコンボリューション処理の変換効果を決定します。
  3. コンボリューション処理には次のステップがあります。 (1)カーネル・マトリクスを画像の各ピクセル上に配置し(カーネル全体が画像内にあることを保証する)、カーネルの各値を、それが上にある対応するピクセルと掛け合わせる。 (2)掛け合わされた値を合計し、その値を中心画素の新しい値として返す。 (3) この処理を画像全体で繰り返します。
  4. 図にあるように、3×3のカーネルは7×7のソース画像に対して畳み込まれます。 カーネルの中心要素はソースピクセルの上に配置されます。 ソースピクセルは、それ自身と周囲のピクセルの加重和に置き換えられます。 出力は出力先ピクセルの値に配置されます。 この例では、最初の位置で、ソースピクセルは0、カーネルは4となります。 4×0は0です。次に次の画素に移動すると、両方の場所に0と0があります。 0x0は0、そしてまた0x0は0です。次に中央の位置では、ソース画像では1、カーネルの対応する位置では0となります。 0x1 は 0、再び 0x1 は 0、次に 0x0 は 0、0x1 は 0、最後の位置は -4×2 で -8 となります。 これらの結果をすべて合計すると、答えとして -8 となるので、この畳み込み演算の出力は -8 です。 この結果は出力画像に更新されます。
  5. 畳み込み処理の出力はカーネル値の変更に伴って変化します。 例えば、以下に示すアイデンティティカーネルは、コンボリューションによって画像に適用されたとき、結果の画像に何の影響も及ぼさないでしょう。 下図のように、すべての画素が元の値を保持します。

Identity Kernel

の場合

元画像(左)とサイズ3×3のIdentity Filter適用後の画像(右)

このようなSharpen Kernelを画像に適用して畳み込むと、このようになります。 は、出来上がった画像にシャープネス効果を与えます。 下図のように、正確な値をカスタマイズすることで、さまざまなレベルのシャープネスを得ることができます。

Sharpen Kernel

の場合

元画像(左)とサイズ3×3のシャープフィルタを適用した画像(右)

このようにガウスぼかしカーネルを画像に適用して畳み込むと、次のようになります。 は、出来上がった画像にガウシアンぼかし効果を適用します。

Gaussian Blur Kernel

元画像(左)とサイズ7×7のぼかしフィルタを適用した画像(右)

カーネルの値を変えることで、さまざまな効果が得られるのと同じように、ぼかしフィルタもさまざまな効果が得られます。 カーネルの大きさを変えることで、コンボリューションの効果を形成することができます。カーネルマトリックスのサイズを大きくすると、より遠くのピクセルが方程式に引き込まれるため、各ピクセルの結果値に影響を与える空間的な局所性が高まります。 エッジ検出、エンボス、回転など、画像処理で使用されるカーネルは他にもたくさんあります。 コンボリューションはコンボリューショナルニューラルネットワークのキーコンセプトです。 畳み込みニューラルネットワーク(CNN)は、ディープニューラルネットワークの一種である。 CNNは、畳み込み層、プーリング層、全結合層から構成される。 CNNは畳み込み層で、学習によって較正されたカーネル・マトリクスを用いて入力に畳み込みを適用する。 このため、CNNは画像の特徴マッチングや物体分類に非常に優れている。 畳み込み層のパラメータは学習可能なカーネルのセットで構成される。 すべてのカーネルは、入力ボリュームの深さいっぱいに広がる小さな行列である。 フォワードパスでは、各カーネルを入力画像の幅と高さに渡って畳み込み、対応する位置のソースとカーネルの画素値間の内積を計算する

コメントを残す

メールアドレスが公開されることはありません。