20

畳み込みカーネルを分離可能にするものは何ですか? 2D 畳み込みの代わりに 2 つの 1D 畳み込みを行うために、それらの分離可能な部分が何であるかをどのように判断できますか?

ありがとう

4

2 に答える 2

19

2D フィルター カーネルの arankが 1 の場合、分離可能です。これは、Matlab や Octave などでテストできます。

octave-3.2.3:1>     sobel = [-1 0 1 ; -2 0 2 ; -1 0 1];
octave-3.2.3:2>     rank(sobel)
ans =  1
octave-3.2.3:3> 

参照: http://blogs.mathworks.com/steve/2006/11/28/separable-convolution-part-2/ - SVD(特異値分解) を使用して、分離可能な 2D カーネルから 2 つの 1D カーネルを抽出する方法について説明します。

DSP.stackexchange.com のこの質問も参照してください:分離可能な整数 2D フィルター係数を分解するための高速で効率的な方法

于 2011-05-04T16:42:31.727 に答える
4

行列を対称部分と歪んだ部分に分割し、各部分を分離することもできます。これは、より大きな 2d 畳み込みに効果的です。

于 2011-05-13T21:47:34.583 に答える