2D-Faltung: Kernel umdrehen?

15

Warum müssen wir den Kernel überhaupt in 2D-Faltung umdrehen? Was ist der Vorteil davon? Warum können wir es nicht ungedreht lassen? http://www.songho.ca/dsp/convolution/convolution2d_example.html

Eingang Eingang

Kernel Kernel

Ausgabe Ausgabe

"Drehen Sie zuerst den Kernel, der das schattierte Feld ist, sowohl in horizontaler als auch in vertikaler Richtung um." http://www.songho.ca/dsp/convolution/files/conv_img16.gif

user1095332
quelle

Antworten:

6

Wenn Sie den Kernel nicht umdrehen, erhalten Sie einfach eine andere Operation, die als Kreuzkorrelation bezeichnet wird. Wenn der Filter symmetrisch ist, wie ein Gaußscher oder ein Laplace-Filter, fallen Faltung und Korrelation zusammen. Wenn der Filter jedoch nicht symmetrisch ist, wie bei einer Ableitung, erhalten Sie unterschiedliche Ergebnisse.

Der Grund, warum Faltung gegenüber Korrelation bevorzugt wird, ist, dass sie schönere mathematische Eigenschaften hat. Insbesondere ist die Faltung assoziativ, die Korrelation im Allgemeinen nicht.

fGfG

F.{fG}}=kF.{f}}F.{G}}

F. die Fourier-Transformation ist. Im Falle einer Korrelation würden Sie eine Multiplikation mit dem komplexen Konjugat erhalten, das weniger schön und insbesondere nicht assoziativ ist.

Eine weitere interessante Eigenschaft der Faltung ist, dass Sie beim Falten eines Kernels mit einem Einheitsimpuls (z. B. einer Matrix mit einer einzelnen 1 in der Mitte und ansonsten 0) den Kernel selbst als Ergebnis erhalten. Die Korrelation würde stattdessen den Kernel umdrehen.

Andrea Asperti
quelle