2Dたたみ込み:カーネルをめくる?


15

そもそもなぜ2D畳み込みでカーネルを反転させる必要があるのでしょうか。これの利点は何ですか?では、なぜそれを裏返さないままにできないのでしょうか? http://www.songho.ca/dsp/convolution/convolution2d_example.html

入力 入力

カーネル カーネル

出力 出力

「最初に、影付きのボックスであるカーネルを水平方向と垂直方向の両方に反転させます」 http://www.songho.ca/dsp/convolution/files/conv_img16.gif

回答:


6

カーネルをフリップしない場合は、相互相関と呼ばれる別の操作を取得するだけです。フィルターがガウスまたはラプラシアンのように対称である場合、畳み込みと相関は一致します。しかし、フィルターが微分のように対称でない場合、異なる結果が得られます。

相関よりも畳み込みが好まれる理由は、より優れた数学的特性があるためです。特に、畳み込みは結合的ですが、一般に相関はそうではありません。

より技術的な説明のために、周波数領域に入る必要があります。畳み込みの主定理は、2つの関数およびの畳み込みのフーリエ変換は、2つの関数のフーリエ変換の積に等しい(変換によっては定数まで)と述べています。シンボルで fgfg

F{fg}=kF{f}F{g}

ここで、はフーリエ変換です。相関の場合、複素共役による乗算が得られます。これはあまり好ましくなく、特に結合的ではありません。F

畳み込みのもう1つの興味深い特性は、単位インパルスでカーネルを畳み込むことです(たとえば、中心に1が1、それ以外は0の行列)。結果としてカーネル自体が得られます。代わりに、相関はカーネルを反転します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.