Introduction à la convolution
La convolution est une opération mathématique qui permet de combiner deux fonctions afin de décrire leur chevauchement. Elle consiste à faire « glisser » l'une des fonctions sur l'autre, en multipliant les valeurs des fonctions à chaque point de chevauchement, puis en additionnant les produits pour créer une nouvelle fonction. Ce processus crée une nouvelle fonction qui représente l'interaction entre les deux fonctions initiales.
Formellement, la convolution est une intégrale qui mesure le degré de chevauchement d'une fonction \(f(t)\) lorsqu'elle est déplacée sur une autre fonction \(g(t)\) et s'exprime comme suit :
$$(f*g)(t) \approx^{def} \int_{-\infty}^{\infty}f(\tau)g(t-\tau)d\tau$$
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.
Dans la pratique, le théorème de convolution est utilisé pour concevoir des filtres dans le domaine fréquentiel. Le théorème de convolution établit que la convolution dans le domaine temporel est équivalente à la multiplication dans le domaine fréquentiel.
Il est également possible d'utiliser le domaine fréquentiel pour améliorer la vitesse d'exécution des convolutions. L'algorithme FFT permet de transformer les signaux dans le domaine fréquentiel, de les multiplier, puis de les retransformer dans le domaine temporel. Pour les signaux de taille suffisamment importante, cela peut considérablement accélérer l'exécution.
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, low-pass et high-pass.
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).
Image Processing Toolbox™ dispose de fonctions comme fspecial
et imfilterv
permettant de concevoir des filtres pour mettre en évidence certaines caractéristiques ou en supprimer d'autres dans les images.
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'autres 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 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 apprentissage. Les couches initiales extraient généralement à partir des données des caractéristiques de bas niveau, tandis que les couches plus profondes extraient des caractéristiques de haut niveau.
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.
Exemples et démonstrations
Références logicielles
Voir aussi: réseau de neurones à convolution (CNN), détection des contours, intégrale, MATLAB et Simulink pour le traitement du signal, MATLAB pour le traitement d'images et la Computer Vision, MATLAB pour le Deep Learning
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.