Convolution 2D: retourner le noyau?

16

Pourquoi avons-nous besoin de retourner le noyau en convolution 2D en premier lieu? Quel est l'avantage de cela? Alors, pourquoi ne pouvons-nous pas le laisser intact? http://www.songho.ca/dsp/convolution/convolution2d_example.html

contribution contribution

noyau noyau

production production

"D'abord, retournez le noyau, qui est la boîte ombrée, dans le sens horizontal et vertical" http://www.songho.ca/dsp/convolution/files/conv_img16.gif

user1095332
la source

Réponses:

7

Si vous ne retournez pas le noyau, vous obtenez simplement une opération différente qui est appelée corrélation croisée. Lorsque le filtre est symétrique, comme un gaussien ou un laplacien, la convolution et la corrélation coïncident. Mais lorsque le filtre n'est pas symétrique, comme un dérivé, vous obtenez des résultats différents.

La raison pour laquelle la convolution est préférée à la corrélation est qu'elle a de plus belles propriétés mathématiques. En particulier, la convolution est associative, contrairement à la corrélation en général.

Pour une explication plus technique, nous devons aller dans le domaine des fréquences. Le théorème principal des convolutions indique que la transformation de Fourier de la convolution de deux fonctions et est égale (jusqu'à une constante dépendant de la transformation) au produit des transformées de Fourier des deux fonctions. En symboles fgfg

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

où est la transformée de Fourier. Dans le cas de la corrélation, vous obtiendriez la multiplication par le conjugué complexe, c'est moins sympa, et en particulier non associatif.F

Une autre propriété intéressante de la convolution est qu'en convoluant un noyau avec une impulsion unitaire (par exemple une matrice avec un seul 1 en son centre et 0 sinon), vous obtenez le noyau lui-même comme résultat. La corrélation retournerait le noyau à la place.

Andrea Asperti
la source