Convolution 2D
Par :
Dr. Jyotsna Singh
Division de ECE
Convolution en 2D
• La convolution 2D est simplement une extension de la convolution 1D et se fait par
convoluant à la fois dans les directions horizontale et verticale en 2D spatiale
domaine.
• La convolution est fréquemment utilisée pour le traitement d'image, tel que
lissage, accentuation et détection des contours des images.
• La fonction d'impulsion est également dans un espace 2D, donc δ[m, n] a 1
où mannis zéro et zéros atm,n ≠ 0. La réponse impulsionnelle dans
2D est généralement appelé "noyau" ou "filtre" dans le traitement d'image.
• La deuxième image est une représentation en matrice 2D de la fonction d'impulsion.
Le point central ombragé est l'origine où m=n=0.
Convolution en 2D
• Un signal peut être décomposé en une somme d'impulsions mises à l'échelle et décalées.
(delta) fonctions.
• For example,x[0, 0]isx[0, 0]·δ[m, n],
x[1, 2] est x[1, 2]·δ[m-1, n-2], et ainsi de suite.
** Notez que les matrices sont référencées ici comme [colonne, ligne], et non [ligne,
La colonne]. M est la direction horizontale (colonne) et N est la direction verticale (ligne)
direction.
• La sortie d'un système linéaire et invariant dans le temps peut être écrite par
convolution du signal d'entrée x[m, n] et de la réponse impulsionnelle h[m, n]
Exemple 1
• Remarquez que le noyau (réponse impulsionnelle) en 2D est d'origine centrale.
dans la plupart des cas, ce qui signifie que le point central d'un noyau est [0, 0].
• Disons que la taille de la réponse impulsionnelle (noyau) est de 3x3,
et ses valeurs sont a, b, c, d,...
Remarquez que l'origine (0,0) est située au centre du noyau.
• Choisissons un échantillon simple et calculons la convolution,
par exemple, la sortie à (1, 1) sera
L'image suivante montre le graphique
représentation de la convolution 2D.
Exemple 2
• Supposons que nous ayons une matrice d'entrée 3x3 x(n)
et
noyau 3x3 h(n) Remarquez que l'origine de
(le noyau dans cet exemple s'appelle la réponse impulsionnelle est toujours
Filtre de Sobel, qui est utilisé pour détecter centré. (h[0,0] est situé à
the horizontal edge lines in an image.) l'échantillon central du noyau
pas le premier élément.)
• Commençons à calculer chaque échantillon du résultat un par un.
• Tout d'abord, retournez le noyau, qui est la case ombragée, à la fois horizontalement et
direction verticale.
• Ensuite, déplacez-le au-dessus du tableau d'entrée.
• Si le noyau est centré (aligné) exactement sur l’échantillon que nous sommes
intéressé par, multiplier les données du noyau par les données d'entrée superposées.
• L'accumulation (ajouter ces 9 multiplications) est la dernière chose à faire pour
déterminez la valeur de sortie.
Convolution Séparable 2D
• Dans la convolution 2D avec un noyau de M×N, cela nécessite M×N multiplications pour
chaque échantillon.
• Par exemple, si la taille du noyau est de 3x3, alors, 9 multiplications et
Les accumulations sont nécessaires pour chaque échantillon. Ainsi, la convolution 2D est
très coûteux d'effectuer des opérations de multiplication et d'accumulation.
• Cependant, si le noyau est séparable, alors le calcul peut être réduit.
à M + N multiplications.
• Une matrice est séparable si elle peut être décomposée en (M×1) et (1×N)
matrices.
Par exemple ;
• Et, la convolution avec ce noyau séparable est équivalente à;
Convolution séparable 2D
• Par conséquent, afin de réduire le calcul, nous effectuons 1D
convolution deux fois au lieu de convolution 2D;
• Convoluer avec l'entrée et le noyau M×1 dans la direction verticale, puis
convoluer à nouveau dans la direction horizontale avec le résultat de la précédente
convolution et noyau 1×N.
• La première convolution verticale 1D nécessite M fois de multiplications et
la convolution horizontale nécessite N multiplications, au total,
Produits M+N.
• Cependant, la convolution 2D séparable nécessite un stockage supplémentaire
(tampon) pour conserver les calculs intermédiaires.
• C'est-à-dire que si nous faisons d'abord une convolution verticale 1D, nous devons préserver le
résultats dans un tampon temporaire afin de les utiliser pour l'horizontal
convolution par la suite.
• La convolution est associative c'est-à-dire que le résultat est le même, même si l'ordre de
la convolution est modifiée. Ainsi, nous pouvons convoluer d'abord dans la direction horizontale
puis direction verticale plus tard.
Convolution 2D Séparable : Preuve}
• Par la définition de la convolution 2D
• Puisque la convolution est commutative (x[n] * y[n] = y[n] * x[n]), échangez
l'ordre de la convolution
• Et, si h[m, n] est séparable en (M×1) et (1×N);
• Par conséquent, substituez h[m, n] dans l'équation
Convolution 2D séparable : Preuve}
• Puisque la définition de la convolution 1D est;
il se convole avec l'entrée et1, puis convoluer à nouveau avec le
résultat de la convolution précédente et2.
• Par conséquent, la convolution 2D séparable s'effectue deux fois plus qu'une 1D
convolution dans la direction horizontale et verticale.
• la convolution est associative, peu importe quelle direction effectuer
premièrement. Par conséquent, nous pouvons convoluer avec2[n] d'abord puis convoluer
avec1[m] plus tard.
Filtres séparables
• Un noyau de filtre bidimensionnel est séparable s'il peut être exprimé
comme le produit extérieur de deux vecteurs.
• Noyau de Sobel.
s = [-1 0 1; -2 0 2; -1 0 1]
Ce noyau peut être écrit comme un produit matriciel d'une colonne et d'un
vecteur ligne.
v = [1; 2; 1]
• Le filtre de lissage gaussien est une matrice séparabile bien connue. Pour
par exemple, le filtre gaussien 3x3 est :