La convolution

Appliquer la convolution au traitement d'images, au traitement du signal et au Deep Learning

La convolution est une opération mathématique qui combine deux signaux et produit un troisième signal.

Soient deux fonctions, \(f(t)\) et \(g(t)\), le produit de convolution est une intégrale qui exprime le degré de superposition de la fonction \(g\) lorsqu'on la fait glisser sur la fonction \(f\)

Le produit de convolution s'exprime ainsi :

$$(f*g)(t) \approx^{def} \int_{-\infty}^{\infty}f(\tau)g(t-\tau)dr$$

Représentation graphique de la convolution.

Suivant le cas d'application de la convolution, les fonctions peuvent être remplacées par des signaux, des images ou d'autres types de données. La convolution et ses applications peuvent être implémentées de plusieurs manières dans MATLAB®.

La convolution dans le traitement du signal

La convolution est utilisée dans le traitement numérique du signal pour étudier et concevoir des systèmes linéaires invariants (LTI) comme les filtres numériques.

Le signal de sortie, \(y[n]\), dans les systèmes linéaires invariants, est la convolution du signal d'entrée, \(x[n]\), et de la réponse impulsionnelle \(h[n]\)] du système.

La convolution pour les systèmes linéaires invariants.

La convolution pour les systèmes linéaires invariants.

Dans la pratique, le théorème de convolution est utilisé pour concevoir le filtre dans le domaine fréquentiel. Le théorème de convolution établit que la convolution dans le domaine temporel est égale à la multiplication dans le domaine fréquentiel.

Les fonctions MATLAB comme conv et filter vous permettent d'effectuer la convolution et de créer des filtres à partir de zéro. Signal Processing Toolbox™ et DSP System Toolbox™ disposent de plusieurs fonctions et blocs Simulink® pour l'implémentation directe de filtres numériques comme designfilt, lowpass et highpass.

La convolution dans le traitement d'images

Dans le traitement d'images, le filtrage par convolution peut être utilisé pour implémenter des algorithmes comme la détection de contours, l'amélioration de la netteté de l'image et le floutage de l'image.

Pour ce faire, il faut sélectionner le noyau approprié (la matrice de convolution).

Opération de convolution avec un noyau 3x3 pour l'amélioration de la netteté.

Image Processing Toolbox™ dispose de fonctions comme fspecial et imfilter pour concevoir des filtres afin de mettre en évidence certaines caractéristiques ou en supprimer d'autres dans les images.

Floutage de l'image effectué par convolution avec un filtre moyenneur.

Floutage de l'image effectué par convolution avec un filtre moyenneur. Consultez l'exemple MATLAB.

Réseaux de neurones à convolution (CNN)

La convolution joue un rôle clé dans les réseaux de neurones à convolution (CNN). Les CNN sont un type de réseau profond couramment utilisé pour analyser des images. Ils permettent d'éviter l'extraction manuelle de caractéristiques et fonctionnent donc très bien sur des problèmes complexes comme la classification d'images et l'analyse d'images médicales. Les CNN sont également efficaces sur des analyses d'autre types de données comme les données audio, les séries temporelles et les signaux.

Les CNN possèdent plusieurs couches, les plus courantes étant la convolution, l'unité linéaire rectifiée (ReLU) et le pooling.

Les couches d'un réseau de neurones à convolution (CNN)

Les couches d'un réseau de neurones à convolution (CNN).

Les couches de convolution agissent comme des filtres : chaque couche applique un filtre et extrait des caractéristiques spécifiques de l'image. Ces valeurs de filtre sont apprises par le réseau lors de son entraînement. Les couches initiales extraient généralement des caractéristiques de bas niveau, tandis que les couches plus profondes extraient des caractéristiques de haut niveau des données.

Pour plus d'informations sur la convolution et ses applications dans le traitement du signal, le traitement d'images, le Deep Learning et d'autres domaines, consultez Signal Processing Toolbox, DSP System Toolbox, Image Processing Toolbox et Deep Learning Toolbox™ pour une utilisation avec MATLAB.

Voir aussi: convolutional neural network, edge detection, integral, MATLAB and Simulink for signal processing, MATLAB for image processing and computer vision, MATLAB for deep learning, deep learning for signal processing

Image Processing Onramp

Maîtrisez les concepts fondamentaux des techniques de traitement d'images dans MATLAB.

Signal Processing Onramp

Une introduction interactive aux méthodes de traitement du signal pour l'analyse spectrale.